4 CFLAGS := -ggdb -Wall -Wextra
7 PACKAGES_gldbg := mspcore mspstrings mspio mspfs
9 SOURCES_libgldbg := source/gldecoder.c \
14 SOURCES_glwrap := source/glwrap.c \
15 source/glwrap_funcs.c \
17 SOURCES_gldump := source/gldump.c
18 SOURCES_gldbg := source/gldbg.cpp \
19 source/commandinterpreter.cpp \
23 source/texturestate.cpp \
24 source/bufferstate.cpp \
27 TEMPLATES := source/functions.enum.t \
28 source/gldecoder.funcs.t \
29 source/gldecoder.struct.t \
30 source/glprint.funcs.t \
31 source/glwrap.funcs.t \
34 rename = $(addprefix $(1)/,$(addsuffix $(2),$(basename $(notdir $(3)))))
35 objs = $(call rename,temp,.o,$(1))
36 deps = $(call rename,temp,.d,$(1))
37 gen = $(call rename,gensrc,,$(1))
39 GENSOURCES := $(call gen,$(TEMPLATES))
40 SOURCES_all := $(sort $(SOURCES_libgldbg) $(SOURCES_glwrap) $(SOURCES_gldump) $(SOURCES_gldbg))
42 OBJECTS_libgldbg := $(call objs,$(SOURCES_libgldbg))
43 OBJECTS_glwrap := $(call objs,$(SOURCES_glwrap))
44 OBJECTS_gldump := $(call objs,$(SOURCES_gldump))
45 OBJECTS_gldbg := $(call objs,$(SOURCES_gldbg))
47 OBJECTS_all := $(call objs,$(SOURCES_all))
48 DEPS_all := $(call deps,$(SOURCES_all) $(TEMPLATES))
51 all: glwrap.so gldump gldbg
53 $(OBJECTS_gldbg): CXXFLAGS += $(shell pkg-config --cflags $(PACKAGES_gldbg))
54 gldbg: LIBS += $(shell pkg-config --libs $(PACKAGES_gldbg)) -lreadline
55 gldump gldbg: LIBS += ./libgldbg.a
57 glwrap.so: $(OBJECTS_glwrap)
58 $(CC) -shared -o $@ $^ $(LIBS) $(LDFLAGS)
60 gldump: $(OBJECTS_gldump) libgldbg.a
61 $(CC) -o $@ $^ $(LIBS) $(LDFLAGS)
63 gldbg: $(OBJECTS_gldbg) libgldbg.a
64 $(CXX) -o $@ $^ $(LIBS) $(LDFLAGS)
66 libgldbg.a: $(OBJECTS_libgldbg)
69 temp/%.o: source/%.c temp/.created
70 $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
72 temp/%.o: source/%.cpp temp/.created
73 $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
79 gensrc/%: source/%.t gensrc/.created generate.py
80 python ./generate.py $< gl.api glx.api >$@
88 temp/%.d: source/%.c temp/.created
89 $(CC) $(CPPFLAGS) -MM -MF $@ -MT $(call rename,temp,.o,$<) -MG $<
91 temp/%.d: source/%.cpp temp/.created
92 $(CXX) $(CPPFLAGS) -MM -MF $@ -MT $(call rename,temp,.o,$<) -MG $<
94 temp/%.d: source/%.t temp/.created
95 python ./generate.py --depends=$(call rename,gensrc,,$<) $< gl.api glx.api >$@
101 $(RM) gensrc/enums.table $(GENSOURCES)
102 $(RM) glwrap.so libgldbg.a gldump gldbg