7 CPPFLAGS := -I. -Isource -Iflavors/$(FLAVOR)/source
8 CFLAGS := -ggdb -Wall -Wextra
11 PACKAGES_gldbg := mspcore mspstrings mspio mspfs libpng12
13 FLAVOR_ROOT := flavors/$(FLAVOR)
14 VPATH := $(FLAVOR_ROOT)
16 SOURCES_libgldbg := source/gldecoder.c \
23 SOURCES_glwrap := source/glwrap.c \
24 source/glwrap_funcs.c \
28 SOURCES_gldump := source/gldump.c
29 SOURCES_gldbg := source/gldbg.cpp \
30 source/commandinterpreter.cpp \
33 SOURCES_tracer := source/tracer.cpp
34 SOURCES_profiler := source/profiler.cpp
35 SOURCES_inspector := source/inspector.cpp \
37 source/arraystate.cpp \
38 source/texturestate.cpp \
39 source/bufferstate.cpp
40 SOURCES_grabber := source/grabber.cpp \
41 source/grabber_flavor.cpp
42 TEMPLATES := source/functions.enum.t \
43 source/functions.table.t \
44 source/gldecoder.funcs.t \
45 source/gldecoder.struct.t \
46 source/glprint.funcs.t \
47 source/glwrap.funcs.t \
50 rename = $(addprefix $(1)/,$(addsuffix $(2),$(basename $(notdir $(3)))))
51 objs = $(call rename,temp,.o,$(1))
52 deps = $(call rename,temp,.d,$(1))
53 gen = $(call rename,gensrc,,$(1))
56 all: glwrap.so gldump gldbg
58 include flavors/$(FLAVOR)/flavor.mk
60 SOURCES_gldbg += $(foreach tool,$(TOOLS),$(SOURCES_$(tool)))
61 GENSOURCES := $(call gen,$(TEMPLATES))
62 SOURCES_all := $(sort $(SOURCES_libgldbg) $(SOURCES_glwrap) $(SOURCES_gldump) $(SOURCES_gldbg))
64 OBJECTS_libgldbg := $(call objs,$(SOURCES_libgldbg))
65 OBJECTS_glwrap := $(call objs,$(SOURCES_glwrap))
66 OBJECTS_gldump := $(call objs,$(SOURCES_gldump))
67 OBJECTS_gldbg := $(call objs,$(SOURCES_gldbg))
69 OBJECTS_all := $(call objs,$(SOURCES_all))
70 DEPS_all := $(call deps,$(SOURCES_all) $(TEMPLATES))
72 $(OBJECTS_gldbg): CXXFLAGS += $(shell pkg-config --cflags $(PACKAGES_gldbg))
73 gldbg: LIBS += $(shell pkg-config --libs $(PACKAGES_gldbg)) -lreadline
74 gldump gldbg: LIBS += ./libgldbg.a
75 glwrap.so: LDFLAGS += -s
76 glwrap.so: LIBS += -ldl
78 glwrap.so: $(OBJECTS_glwrap) glwrap.ld
79 $(CC) -shared -o $@ $^ $(LIBS) $(LDFLAGS)
81 gldump: $(OBJECTS_gldump) libgldbg.a
82 $(CC) -o $@ $^ $(LIBS) $(LDFLAGS)
84 gldbg: $(OBJECTS_gldbg) libgldbg.a
85 $(CXX) -o $@ $^ $(LIBS) $(LDFLAGS)
87 libgldbg.a: $(OBJECTS_libgldbg)
90 temp/%.o: source/%.c temp/.created
91 $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
93 temp/%.o: source/%.cpp temp/.created
94 $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
100 gensrc/%: source/%.t gensrc/.created generate.py
101 python ./generate.py $< $(APIS) >$@
109 temp/%.d: source/%.c temp/.created
110 $(CC) $(CPPFLAGS) -MM -MF $@ -MT $(call rename,temp,.o,$<) -MG $<
112 temp/%.d: source/%.cpp temp/.created
113 $(CXX) $(CPPFLAGS) -MM -MF $@ -MT $(call rename,temp,.o,$<) -MG $<
115 temp/%.d: source/%.t temp/.created
116 python ./generate.py --depends=$(call rename,gensrc,,$<) $< $(APIS) >$@
122 $(RM) gensrc/enums.table $(GENSOURCES)
123 $(RM) glwrap.so libgldbg.a gldump gldbg