+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/packet.c \
+ source/functions.c
+SOURCES_glwrap := source/glwrap.c \
+ source/glwrap_funcs.c \
+ source/arraysize.c \
+ source/packet.c \
+ source/tmpalloc.c
+SOURCES_gldump := source/gldump.c
+SOURCES_gldbg := source/main.cpp \
+ source/gldbg.cpp \
+ source/commandinterpreter.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
+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 \
+ source/glwrap.funcs.t \
+ source/enums.table.t
+
+rename = $(addprefix $(1)/,$(addsuffix $(2),$(basename $(notdir $(3)))))
+objs = $(call rename,temp,.o,$(1))
+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_libgldbg := $(call objs,$(SOURCES_libgldbg))
+OBJECTS_glwrap := $(call objs,$(SOURCES_glwrap))
+OBJECTS_gldump := $(call objs,$(SOURCES_gldump))
+OBJECTS_gldbg := $(call objs,$(SOURCES_gldbg))
+
+OBJECTS_all := $(call objs,$(SOURCES_all))
+DEPS_all := $(call deps,$(SOURCES_all) $(TEMPLATES))
+
+$(OBJECTS_gldbg): CXXFLAGS += $(shell pkg-config --cflags $(PACKAGES_gldbg))
+gldbg: LIBS += $(shell pkg-config --libs $(PACKAGES_gldbg)) -lreadline -lrt
+gldump gldbg: LIBS += ./libgldbg.a
+glwrap.so: LDFLAGS += -s
+glwrap.so: LIBS += -ldl
+
+glwrap.so: $(OBJECTS_glwrap) glwrap.ld