[Scummvm-cvs-logs] SF.net SVN: scummvm:[46500] tools/branches/gsoc2009-gui/Makefile.common

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Wed Dec 23 15:17:07 CET 2009


Revision: 46500
          http://scummvm.svn.sourceforge.net/scummvm/?rev=46500&view=rev
Author:   fingolfin
Date:     2009-12-23 14:17:03 +0000 (Wed, 23 Dec 2009)

Log Message:
-----------
Revamp the tools build system. In particular, unify build rule(s) for tool binaries; and don't use custom (and inferior) build rules for a few .o files

Modified Paths:
--------------
    tools/branches/gsoc2009-gui/Makefile.common

Modified: tools/branches/gsoc2009-gui/Makefile.common
===================================================================
--- tools/branches/gsoc2009-gui/Makefile.common	2009-12-23 14:15:12 UTC (rev 46499)
+++ tools/branches/gsoc2009-gui/Makefile.common	2009-12-23 14:17:03 UTC (rev 46500)
@@ -45,66 +45,144 @@
 	cp $(srcdir)/gui/media/*.* $(bundle_name)/Contents/Resources
 	cp tools_gui$(EXEEXT) $(bundle_name)/Contents/MacOS/
 
-decine$(EXEEXT): decine.o
-	$(CXX) $(LDFLAGS) -o $@ $+
 
-dekyra$(EXEEXT): dekyra.o dekyra_v1.o $(UTILS)
-	$(CXX) $(LDFLAGS) -o $@ $+
 
-descumm$(EXEEXT): descumm-tool.o descumm.o descumm6.o descumm-common.o tool.o $(UTILS)
-	$(CXX) $(LDFLAGS) -o $@ $+
+PROGRAMS = \
+	decine \
+	dekyra \
+	descumm \
+	desword2 \
+	degob \
+	create_sjisfnt \
+	tools_gui \
+	tools_cli \
+	sword2_clue
 
-desword2$(EXEEXT): desword2.o tool.o $(UTILS)
-	$(CXX) $(LDFLAGS) -o $@ $+
 
-degob$(EXEEXT): degob.o degob_script.o degob_script_v1.o degob_script_v2.o degob_script_v3.o \
-	degob_script_v4.o degob_script_v5.o degob_script_v6.o degob_script_bargon.o \
-	tool.o $(UTILS)
-	$(CXX) $(LDFLAGS) -o $@ $+
+decine_OBJS := decine.o
 
-create_sjisfnt$(EXEEXT): create_sjisfnt.o $(UTILS)
-	$(CXX) $(LDFLAGS) `freetype-config --libs` -liconv -o $@ $+
+dekyra_OBJS := dekyra.o dekyra_v1.o $(UTILS)
 
-tools_gui$(EXEEXT): gui/main.o gui/pages.o gui/gui_tools.o compress_agos.o compress_gob.o compress_kyra.o \
-	compress_queen.o compress_saga.o compress_scumm_bun.o compress_scumm_san.o compress_scumm_sou.o \
-	compress_sword1.o compress_sword2.o compress_touche.o compress_tucker.o compress_tinsel.o \
-	extract_agos.o extract_cine.o extract_gob_stk.o extract_kyra.o extract_loom_tg16.o extract_mm_apple.o \
-	extract_mm_c64.o extract_mm_nes.o extract_parallaction.o extract_scumm_mac.o extract_t7g_mac.o \
-	encode_dxa.o extract_zak_c64.o kyra_pak.o kyra_ins.o compress.o tool.o tools.o $(UTILS)
-	$(CXX) $(LDFLAGS) -o $@ $+ $(WXLIBS) $(LIBS)
+descumm_OBJS := descumm-tool.o descumm.o descumm6.o descumm-common.o tool.o $(UTILS)
 
-tools_cli$(EXEEXT): main_cli.o tools_cli.o compress_agos.o compress_gob.o compress_kyra.o \
-	compress_queen.o compress_saga.o compress_scumm_bun.o compress_scumm_san.o compress_scumm_sou.o \
-	compress_sword1.o compress_sword2.o compress_touche.o compress_tucker.o compress_tinsel.o \
-	extract_agos.o extract_cine.o extract_gob_stk.o extract_kyra.o extract_loom_tg16.o extract_mm_apple.o \
-	extract_mm_c64.o extract_mm_nes.o extract_parallaction.o extract_scumm_mac.o extract_t7g_mac.o \
-	encode_dxa.o extract_zak_c64.o kyra_pak.o kyra_ins.o compress.o tool.o tools.o $(UTILS)
-	$(CXX) $(LDFLAGS) -o $@ $+ $(LIBS)
+desword2_OBJS := desword2.o tool.o $(UTILS)
 
-sword2_clue$(EXEEXT): sword2_clue.o
-	$(CXX) $(LDFLAGS) -o $@ $+ `pkg-config --libs gtk+-2.0`
+degob_OBJS := \
+	degob.o \
+	degob_script.o \
+	degob_script_v1.o \
+	degob_script_v2.o \
+	degob_script_v3.o \
+	degob_script_v4.o \
+	degob_script_v5.o \
+	degob_script_v6.o \
+	degob_script_bargon.o \
+	tool.o \
+	$(UTILS)
 
-gui/main.o: gui/main.cpp gui/main.h gui/configuration.h gui/pages.h
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(WXINCLUDES) -c gui/main.cpp -o gui/main.o
+create_sjisfnt_OBJS := create_sjisfnt.o $(UTILS)
+create_sjisfnt_LIBS := `freetype-config --libs` -liconv
 
-gui/pages.o: gui/pages.cpp gui/pages.h gui/main.h gui/gui_tools.h
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(WXINCLUDES) -c gui/pages.cpp -o gui/pages.o
+tools_gui_OBJS := \
+	gui/main.o \
+	gui/pages.o \
+	gui/gui_tools.o \
+	compress_agos.o \
+	compress_gob.o \
+	compress_kyra.o \
+	compress_queen.o \
+	compress_saga.o \
+	compress_scumm_bun.o \
+	compress_scumm_san.o \
+	compress_scumm_sou.o \
+	compress_sword1.o \
+	compress_sword2.o \
+	compress_touche.o \
+	compress_tucker.o \
+	compress_tinsel.o \
+	extract_agos.o \
+	extract_cine.o \
+	extract_gob_stk.o \
+	extract_kyra.o \
+	extract_loom_tg16.o \
+	extract_mm_apple.o \
+	extract_mm_c64.o \
+	extract_mm_nes.o \
+	extract_parallaction.o \
+	extract_scumm_mac.o \
+	extract_t7g_mac.o \
+	encode_dxa.o \
+	extract_zak_c64.o \
+	kyra_pak.o \
+	kyra_ins.o \
+	compress.o \
+	tool.o \
+	tools.o \
+	$(UTILS)
+tools_gui_LIBS := $(WXLIBS) $(LIBS)
 
-create_sjisfnt.o: create_sjisfnt.cpp util.h
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS) `freetype-config --cflags` -c create_sjisfnt.cpp -o create_sjisfnt.o
+tools_cli_OBJS := \
+	main_cli.o \
+	tools_cli.o \
+	compress_agos.o \
+	compress_gob.o \
+	compress_kyra.o \
+	compress_queen.o \
+	compress_saga.o \
+	compress_scumm_bun.o \
+	compress_scumm_san.o \
+	compress_scumm_sou.o \
+	compress_sword1.o \
+	compress_sword2.o \
+	compress_touche.o \
+	compress_tucker.o \
+	compress_tinsel.o \
+	extract_agos.o \
+	extract_cine.o \
+	extract_gob_stk.o \
+	extract_kyra.o \
+	extract_loom_tg16.o \
+	extract_mm_apple.o \
+	extract_mm_c64.o \
+	extract_mm_nes.o \
+	extract_parallaction.o \
+	extract_scumm_mac.o \
+	extract_t7g_mac.o \
+	encode_dxa.o \
+	extract_zak_c64.o \
+	kyra_pak.o \
+	kyra_ins.o \
+	compress.o \
+	tool.o \
+	tools.o \
+	$(UTILS)
+tools_cli_LIBS := $(LIBS)
 
-tools_gui.o: tools_gui.cpp tools_gui.h
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(WXINCLUDES) -c tools_gui.cpp -o tools_gui.o
+sword2_clue_OBJS := sword2_clue.o
+sword2_clue_LIBS := `pkg-config --libs gtk+-2.0`
 
-gui/gui_tools.o: gui/gui_tools.cpp gui/gui_tools.h
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(WXINCLUDES) -c gui/gui_tools.cpp -o gui/gui_tools.o
 
-sword2_clue.o: sword2_clue.cpp
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS) `pkg-config --cflags gtk+-2.0` -c sword2_clue.cpp
+define PROGRAM_template
+$(1)$(EXEEXT): $$($(1)_OBJS)
+	$(CXX) $(LDFLAGS) $$($(1)_LIBS) -o $(1)$(EXEEXT) $$($(1)_OBJS)
+endef
 
+# Generate build rules for all tools
+$(foreach prog,$(PROGRAMS),$(eval $(call PROGRAM_template,$(prog))))
+
+
 clean:
 	rm -f $(addsuffix *.o,$(MODULE_DIRS)) $(TARGETS)
 
+
+# Set custom build flags for various files
+gui/main.o: CPPFLAGS+=$(WXINCLUDES)
+gui/pages.o: CPPFLAGS+=$(WXINCLUDES)
+create_sjisfnt.o: CPPFLAGS+=`pkg-config --cflags gtk+-2.0`
+gui/gui_tools.o: CPPFLAGS+=$(WXINCLUDES)
+sword2_clue.o: CPPFLAGS+=`pkg-config --cflags gtk+-2.0`
+
+
 ######################################################################
 # The build rules follow - normally you should have no need to
 # touch whatever comes after here.


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list