]> git.tdb.fi Git - gldbg.git/blobdiff - Makefile
Fix things for 64-bit systems
[gldbg.git] / Makefile
index 294618646c0f3f46133aab054430a25955758cf8..ca938f26fd46ba1bcabfa46c3737f97267cdead3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,39 +1,64 @@
-# $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 \
-       source/glwrap.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))
 
-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))
+.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))
 
@@ -43,15 +68,16 @@ OBJECTS_gldump := $(call objs,$(SOURCES_gldump))
 OBJECTS_gldbg := $(call objs,$(SOURCES_gldbg))
 
 OBJECTS_all := $(call objs,$(SOURCES_all))
-DEPS_all := $(call deps,$(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
+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
 
-all: glwrap.so gldump gldbg
-
-glwrap.so: $(OBJECTS_glwrap)
+glwrap.so: $(OBJECTS_glwrap) glwrap.ld
        $(CC) -shared -o $@ $^ $(LIBS) $(LDFLAGS)
 
 gldump: $(OBJECTS_gldump) libgldbg.a
@@ -73,11 +99,8 @@ temp/.created:
        mkdir -p temp
        touch $@
 
-gensrc/%: source/%.t gensrc/.created genwrap.py gl.files gl.tm gl.io gl.spec glx.files glx.tm glx.io glx.spec glxext.spec
-       python ./genwrap.py $< gl.files glx.files >$@
-
-gensrc/enums.table: gensrc/.created enum.spec genenum.py
-       python ./genenum.py enum.spec >$@
+gensrc/%: source/%.t gensrc/.created generate.py
+       python ./generate.py $< $(APIS) >$@
 
 gensrc/.created:
        mkdir -p gensrc
@@ -86,10 +109,13 @@ gensrc/.created:
 -include $(DEPS_all)
 
 temp/%.d: source/%.c temp/.created
-       $(CC) $(CPPFLAGS) -MM -MF $@ -MT $(patsubst source/%.c,temp/%.o,$<) -MG $<
+       $(CC) $(CPPFLAGS) -MM -MF $@ -MT $(call rename,temp,.o,$<) -MG $<
 
 temp/%.d: source/%.cpp temp/.created
-       $(CXX) $(CPPFLAGS) -MM -MF $@ -MT $(patsubst source/%.cpp,temp/%.o,$<) -MG $<
+       $(CXX) $(CPPFLAGS) -MM -MF $@ -MT $(call rename,temp,.o,$<) -MG $<
+
+temp/%.d: source/%.t temp/.created
+       python ./generate.py --depends=$(call rename,gensrc,,$<) $< $(APIS) >$@
 
 .PHONY: clean
 clean: