-# $Id$
+ifeq ($(FLAVOR),)
+FLAVOR := gl
+endif
-CPPFLAGS := -I.
+CPPFLAGS := -I. -Isource -Iflavors/$(FLAVOR)/source
CFLAGS := -ggdb -Wall -Wextra
CXXFLAGS := $(CFLAGS)
-PACKAGES_gldbg := mspcore mspstrings mspio mspfs
+PACKAGES_gldbg := libpng12
+
+FLAVOR_ROOT := flavors/$(FLAVOR)
+VPATH := $(FLAVOR_ROOT)
SOURCES_libgldbg := source/gldecoder.c \
source/glprint.c \
source/enums.c \
source/arraysize.c \
- source/tmpalloc.c
+ source/tmpalloc.c \
+ source/packet.c \
+ source/functions.c
SOURCES_glwrap := source/glwrap.c \
source/glwrap_funcs.c \
- source/arraysize.c
+ source/arraysize.c \
+ source/packet.c \
+ source/tmpalloc.c
SOURCES_gldump := source/gldump.c
-SOURCES_gldbg := source/gldbg.cpp \
+SOURCES_gldbg := source/main.cpp \
+ source/gldbg.cpp \
source/commandinterpreter.cpp \
- source/tracer.cpp \
source/process.cpp \
+ source/strformat.cpp \
+ source/tool.cpp
+SOURCES_tracer := source/tracer.cpp
+SOURCES_profiler := source/profiler.cpp
+SOURCES_inspector := source/inspector.cpp \
source/glstate.cpp \
+ source/arraystate.cpp \
source/texturestate.cpp \
source/bufferstate.cpp \
- source/profiler.cpp \
- source/arraystate.cpp
+ source/programstate.cpp
+SOURCES_grabber := source/grabber.cpp \
+ source/grabber_flavor.cpp
TEMPLATES := source/functions.enum.t \
+ source/functions.table.t \
source/gldecoder.funcs.t \
source/gldecoder.struct.t \
source/glprint.funcs.t \
deps = $(call rename,temp,.d,$(1))
gen = $(call rename,gensrc,,$(1))
+.PHONY: all
+all: glwrap.so gldump gldbg
+
+include flavors/$(FLAVOR)/flavor.mk
+
+SOURCES_gldbg += $(foreach tool,$(TOOLS),$(SOURCES_$(tool)))
GENSOURCES := $(call gen,$(TEMPLATES))
SOURCES_all := $(sort $(SOURCES_libgldbg) $(SOURCES_glwrap) $(SOURCES_gldump) $(SOURCES_gldbg))
OBJECTS_all := $(call objs,$(SOURCES_all))
DEPS_all := $(call deps,$(SOURCES_all) $(TEMPLATES))
-.PHONY: all
-all: glwrap.so gldump gldbg
-
$(OBJECTS_gldbg): CXXFLAGS += $(shell pkg-config --cflags $(PACKAGES_gldbg))
-gldbg: LIBS += $(shell pkg-config --libs $(PACKAGES_gldbg)) -lreadline
+gldbg: LIBS += $(shell pkg-config --libs $(PACKAGES_gldbg)) -lreadline -lrt
gldump gldbg: LIBS += ./libgldbg.a
+$(OBJECTS_glwrap): CFLAGS += -fPIC
+glwrap.so: LDFLAGS += -s
+glwrap.so: LIBS += -ldl
-glwrap.so: $(OBJECTS_glwrap)
+glwrap.so: $(OBJECTS_glwrap) glwrap.ld
$(CC) -shared -o $@ $^ $(LIBS) $(LDFLAGS)
gldump: $(OBJECTS_gldump) libgldbg.a
touch $@
gensrc/%: source/%.t gensrc/.created generate.py
- python ./generate.py $< gl.api glx.api >$@
+ python ./generate.py $< $(APIS) >$@
gensrc/.created:
mkdir -p gensrc
$(CXX) $(CPPFLAGS) -MM -MF $@ -MT $(call rename,temp,.o,$<) -MG $<
temp/%.d: source/%.t temp/.created
- python ./generate.py --depends=$(call rename,gensrc,,$<) $< gl.api glx.api >$@
+ python ./generate.py --depends=$(call rename,gensrc,,$<) $< $(APIS) >$@
.PHONY: clean
clean: