+PACKAGES_gldbg := mspcore mspstrings mspio mspfs
+
+SOURCES_libgldbg := source/gldecoder.c \
+ source/glprint.c \
+ source/enums.c \
+ source/arraysize.c \
+ source/tmpalloc.c
+SOURCES_glwrap := source/glwrap.c \
+ source/glwrap_funcs.c \
+ source/arraysize.c
+SOURCES_gldump := source/gldump.c
+SOURCES_gldbg := source/gldbg.cpp \
+ source/commandinterpreter.cpp \
+ source/tracer.cpp \
+ source/process.cpp \
+ source/glstate.cpp \
+ source/texturestate.cpp \
+ source/bufferstate.cpp \
+ source/profiler.cpp \
+ source/arraystate.cpp
+TEMPLATES := source/functions.enum.t \
+ source/gldecoder.funcs.t \
+ source/gldecoder.struct.t \
+ source/glprint.funcs.t \
+ source/glwrap.funcs.t
+
+objs = $(patsubst source/%.cpp,temp/%.o,$(patsubst source/%.c,temp/%.o,$(1)))
+deps = $(patsubst source/%.cpp,temp/%.d,$(patsubst source/%.c,temp/%.d,$(1)))
+gen = $(patsubst source/%.t,gensrc/%,$(1))
+
+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))
+
+$(OBJECTS_gldbg): CXXFLAGS += $(shell pkg-config --cflags $(PACKAGES_gldbg))
+gldbg: LIBS += $(shell pkg-config --libs $(PACKAGES_gldbg)) -lreadline
+gldump gldbg: LIBS += ./libgldbg.a