2019-06-10 10:41:31 +00:00
|
|
|
ROOT = $(TUP_CWD)
|
|
|
|
|
2019-12-13 14:52:57 +00:00
|
|
|
## Base
|
2019-12-13 11:39:04 +00:00
|
|
|
CFLAGS += -std=c99 -pedantic
|
|
|
|
CFLAGS += -D_POSIX_C_SOURCE=200809L
|
2019-06-10 10:41:31 +00:00
|
|
|
CFLAGS += -I$(ROOT)/src
|
|
|
|
CFLAGS += -I$(ROOT)/src/modules
|
2019-12-13 14:52:57 +00:00
|
|
|
CFLAGS += -fvisibility=hidden
|
|
|
|
CFLAGS += -Wall -Wextra
|
|
|
|
CFLAGS += -Wno-unused-parameter
|
|
|
|
CFLAGS_@(OPENVR) += -Wno-typedef-redefinition
|
|
|
|
CFLAGS_@(STRICT) += -Werror
|
|
|
|
CFLAGS_@(DEBUG) += -g
|
|
|
|
CFLAGS_@(OPTIMIZE) += -Os
|
|
|
|
CFLAGS_@(SANITIZE) += -fsanitize=address,undefined
|
|
|
|
LDFLAGS_@(SANITIZE) += -fsanitize=address,undefined
|
2019-06-10 10:41:31 +00:00
|
|
|
|
2019-12-13 14:52:57 +00:00
|
|
|
## Modules
|
2019-06-10 10:41:31 +00:00
|
|
|
CFLAGS_@(AUDIO) += -DLOVR_ENABLE_AUDIO
|
|
|
|
CFLAGS_@(DATA) += -DLOVR_ENABLE_DATA
|
|
|
|
CFLAGS_@(EVENT) += -DLOVR_ENABLE_EVENT
|
|
|
|
CFLAGS_@(FILESYSTEM) += -DLOVR_ENABLE_FILESYSTEM
|
|
|
|
CFLAGS_@(GRAPHICS) += -DLOVR_ENABLE_GRAPHICS
|
2019-12-13 14:52:57 +00:00
|
|
|
CFLAGS_@(GRAPHICS) += -DLOVR_@(GL)
|
2019-06-10 10:41:31 +00:00
|
|
|
CFLAGS_@(HEADSET) += -DLOVR_ENABLE_HEADSET
|
|
|
|
CFLAGS_@(MATH) += -DLOVR_ENABLE_MATH
|
|
|
|
CFLAGS_@(PHYSICS) += -DLOVR_ENABLE_PHYSICS
|
|
|
|
CFLAGS_@(THREAD) += -DLOVR_ENABLE_THREAD
|
|
|
|
CFLAGS_@(TIMER) += -DLOVR_ENABLE_TIMER
|
|
|
|
CFLAGS_@(JSON) += -DLOVR_ENABLE_JSON
|
|
|
|
CFLAGS_@(ENET) += -DLOVR_ENABLE_ENET
|
|
|
|
|
2019-12-13 14:52:57 +00:00
|
|
|
## Headset backends
|
2019-06-10 10:41:31 +00:00
|
|
|
CFLAGS_@(SIMULATOR) += -DLOVR_USE_DESKTOP_HEADSET
|
|
|
|
CFLAGS_@(OPENVR) += -DLOVR_USE_OPENVR
|
|
|
|
CFLAGS_@(OPENXR) += -DLOVR_USE_OPENXR
|
|
|
|
CFLAGS_@(OCULUS) += -DLOVR_USE_OCULUS
|
2019-06-26 01:19:36 +00:00
|
|
|
CFLAGS_@(OCULUS) += -I@(OCULUS_PATH)/LibOVR/Include
|
2019-06-10 10:41:31 +00:00
|
|
|
CFLAGS_@(VRAPI) += -DLOVR_USE_OCULUS_MOBILE
|
2020-01-01 03:40:39 +00:00
|
|
|
CFLAGS_@(WEBVR) += -DLOVR_USE_WEBVR
|
|
|
|
CFLAGS_@(LEAP) += -DLOVR_USE_LEAP
|
2019-06-10 10:41:31 +00:00
|
|
|
|
2019-12-13 15:27:37 +00:00
|
|
|
## Platforms
|
2019-12-14 03:36:46 +00:00
|
|
|
# A little gnarly, but basically you can set CONFIG_PLATFORM to pick a specific one, otherwise
|
|
|
|
# we use the builtin TUP_PLATFORM which is the current OS (so it won't work with android/web).
|
|
|
|
# Also macosx gets converted to macos
|
|
|
|
ifeq (@(PLATFORM),)
|
|
|
|
PLATFORM = @(TUP_PLATFORM)
|
|
|
|
else
|
|
|
|
PLATFORM = @(PLATFORM)
|
|
|
|
endif
|
|
|
|
ifeq ($(PLATFORM),macosx)
|
|
|
|
PLATFORM = macos
|
|
|
|
endif
|
|
|
|
|
2019-12-14 03:56:55 +00:00
|
|
|
ifeq ($(PLATFORM),macos)
|
2019-12-13 15:27:37 +00:00
|
|
|
LDFLAGS += -lobjc
|
|
|
|
LDFLAGS += -pagezero_size 10000 -image_base 100000000
|
|
|
|
ORIGIN = @executable_path
|
|
|
|
SO = dylib
|
|
|
|
endif
|
2019-12-14 03:36:46 +00:00
|
|
|
ifeq ($(PLATFORM),linux)
|
2019-12-13 15:27:37 +00:00
|
|
|
LDFLAGS += -lm -lpthread
|
|
|
|
ORIGIN = \$ORIGIN
|
|
|
|
SO = so
|
|
|
|
endif
|
|
|
|
|
2019-12-13 14:52:57 +00:00
|
|
|
## Libraries
|
|
|
|
ifeq (@(CMAKE_DEPS),y)
|
|
|
|
|
|
|
|
# enet
|
|
|
|
CFLAGS_@(ENET) += -I$(ROOT)/deps/enet/include
|
|
|
|
LDFLAGS_@(ENET) += -L$(ROOT)/build/enet -lenet
|
2019-06-10 10:41:31 +00:00
|
|
|
|
2019-12-13 14:52:57 +00:00
|
|
|
# LuaJIT
|
|
|
|
CFLAGS += -I$(ROOT)/deps/luajit/src
|
|
|
|
LDFLAGS += -L$(ROOT)/build/luajit/src -lluajit
|
2019-12-13 15:27:37 +00:00
|
|
|
LIBS += $(ROOT)/build/luajit/src/libluajit.$(SO)
|
2019-06-10 10:41:31 +00:00
|
|
|
|
2019-12-13 14:52:57 +00:00
|
|
|
# msdfgen
|
|
|
|
CFLAGS_@(DATA) += -I$(ROOT)/deps/msdfgen
|
|
|
|
LDFLAGS_@(DATA) += -L$(ROOT)/build/lib_msdfgen -lmsdfgen
|
2019-12-13 15:33:23 +00:00
|
|
|
LIBS_@(DATA) += $(ROOT)/build/lib_msdfgen/libmsdfgen.$(SO)
|
2019-12-13 14:52:57 +00:00
|
|
|
|
|
|
|
# ode
|
|
|
|
CFLAGS_@(PHYSICS) += -I$(ROOT)/deps/ode/include -I$(ROOT)/build/ode/include
|
|
|
|
LDFLAGS_@(PHYSICS) += -L$(ROOT)/build/ode -lode
|
2019-12-13 15:27:37 +00:00
|
|
|
LIBS_@(PHYSICS) += $(ROOT)/build/ode/libode.$(SO)
|
2019-12-13 14:52:57 +00:00
|
|
|
|
|
|
|
# glfw
|
|
|
|
CFLAGS += -I$(ROOT)/deps/glfw/include
|
|
|
|
LDFLAGS += -L$(ROOT)/build/glfw/src -lglfw
|
2019-12-13 15:27:37 +00:00
|
|
|
LIBS += $(ROOT)/build/glfw/src/libglfw.*$(SO)*
|
2019-12-13 14:52:57 +00:00
|
|
|
|
|
|
|
# OpenVR
|
|
|
|
CFLAGS_@(OPENVR) += -I$(ROOT)/deps/openvr/headers
|
|
|
|
LDFLAGS_@(OPENVR) += -L$(ROOT)/build/openvr_api -lopenvr_api
|
2019-12-13 15:27:37 +00:00
|
|
|
LIBS_@(OPENVR) += $(ROOT)/build/openvr_api/libopenvr_api.$(SO)
|
2019-12-13 14:52:57 +00:00
|
|
|
|
|
|
|
# OpenAL
|
|
|
|
CFLAGS_@(AUDIO) += -I$(ROOT)/deps/openal-soft/include
|
|
|
|
LDFLAGS_@(AUDIO) += -L$(ROOT)/build/openal -lopenal
|
2019-12-13 15:27:37 +00:00
|
|
|
LIBS_@(AUDIO) += $(ROOT)/build/openal/libopenal.*$(SO)*
|
2019-12-13 14:52:57 +00:00
|
|
|
|
|
|
|
# Configure rpath to look for libraries in a `libs` folder next to the executable
|
2019-12-13 15:27:37 +00:00
|
|
|
LDFLAGS += -Wl,-rpath,$(ORIGIN)/libs
|
2019-12-13 14:52:57 +00:00
|
|
|
LIBS += $(LIBS_y)
|
|
|
|
endif
|
2019-06-10 10:41:31 +00:00
|
|
|
|
2019-12-13 11:39:04 +00:00
|
|
|
CFLAGS += @(EXTRA_CFLAGS)
|
|
|
|
LDFLAGS += @(EXTRA_LDFLAGS)
|
2019-09-27 03:19:50 +00:00
|
|
|
|
2019-12-13 14:52:57 +00:00
|
|
|
## Macros
|
|
|
|
!cc = |> ^ CC %b^ @(CC) $(CFLAGS_y) $(CFLAGS) -c %f -o %o |>
|
|
|
|
!ld = |> ^ LD %o^ @(CC) -o %o %f $(LDFLAGS_y) $(LDFLAGS) |>
|
2020-01-01 03:31:44 +00:00
|
|
|
!xd = |> ^ XD %f^ xxd -i %f > %o |>
|
2019-12-13 14:52:57 +00:00
|
|
|
!cp = |> ^ CP %b^ cp %f %o |>
|