-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
63 lines (43 loc) · 1.95 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
all: programs
FWK_DIR = libfwk/
FWK_MODE ?= devel
FWK_GEOM := disabled
CFLAGS := -Isrc/
CFLAGS_linux := -fopenmp
CFLAGS_mingw := -fopenmp
CFLAGS_release := -DNDEBUG
LDFLAGS_linux := -Wl,--export-dynamic
LDFLAGS_mingw :=
PCH_SOURCE := src/lucid_pch.h
BUILD_DIR = build/$(PLATFORM)_$(MODE)
include $(FWK_DIR)Makefile-shared
# --- Creating necessary sub-directories ----------------------------------------------------------
SUBDIRS = build
BUILD_SUBDIRS =
ifndef JUNK_GATHERING
_dummy := $(shell mkdir -p $(SUBDIRS))
endif
# --- List of source files ------------------------------------------------------------------------
SRC := lucid_app lucid_renderer simple_renderer pbr_renderer scene scene_setup scene_convert \
shading texture_atlas wavefront_obj meshlet quad_generator tri_optimizer path_tracer \
extern_impl
PROGRAM_SRC := lucid
ALL_SRC := $(PROGRAM_SRC) $(SRC)
OBJECTS := $(ALL_SRC:%=$(BUILD_DIR)/%.o)
PROGRAMS := $(PROGRAM_SRC:%=%$(PROGRAM_SUFFIX))
programs: $(PROGRAMS)
# --- Build targets -------------------------------------------------------------------------------
#time -o stats.txt -a -f "%U $@"
$(OBJECTS): $(BUILD_DIR)/%.o: src/%.cpp $(PCH_TARGET)
$(COMPILER) -MMD $(CFLAGS_$*) $(CFLAGS) $(PCH_CFLAGS) -c $< -o $@
$(PROGRAMS): %$(PROGRAM_SUFFIX): $(SHARED_OBJECTS) $(BUILD_DIR)/%.o $(OBJECTS) $(FWK_LIB_FILE)
$(LINKER) -o $@ $^ $(LDFLAGS) $(LDFLAGS_$*)
DEPS:=$(ALL_SRC:%=$(BUILD_DIR)/%.d) $(PCH_TEMP).d
JUNK_FILES := $(OBJECTS) $(OBJ_molecular_cuda) $(DEPS)
JUNK_DIRS := $(SUBDIRS)
# --- Other stuff ---------------------------------------------------------------------------------
# Recreates dependency files, in case they got outdated
depends: $(PCH_TARGET)
@echo $(ALL_SRC) | tr '\n' ' ' | xargs -P16 -t -d' ' -I '{}' $(COMPILER) $(CFLAGS) $(PCH_CFLAGS) \
src/'{}'.cpp -MM -MF $(BUILD_DIR)/'{}'.d -MT $(BUILD_DIR)/'{}'.o -E > /dev/null
-include $(DEPS)