aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2008-02-25 14:10:17 +0000
committerMax Horn2008-02-25 14:10:17 +0000
commit85393b6fa4a6ff5dbc9e599e88d273cf0362b2b8 (patch)
tree5faa48f1cbee29d48dd7250fcdef8ec9124277e6
parentff79a8cd39cf7d43748f03bb44a05811a9026084 (diff)
downloadscummvm-rg350-85393b6fa4a6ff5dbc9e599e88d273cf0362b2b8.tar.gz
scummvm-rg350-85393b6fa4a6ff5dbc9e599e88d273cf0362b2b8.tar.bz2
scummvm-rg350-85393b6fa4a6ff5dbc9e599e88d273cf0362b2b8.zip
Extended rules.mk with code for building extra (tool) executables, and changed some of the tools to make use of this
svn-id: r30962
-rw-r--r--rules.mk51
-rw-r--r--tools/create_igortbl/module.mk18
-rw-r--r--tools/create_kyradat/module.mk24
-rw-r--r--tools/create_lure/module.mk20
-rw-r--r--tools/module.mk5
-rw-r--r--tools/qtable/module.mk18
-rw-r--r--tools/skycpt/module.mk28
7 files changed, 101 insertions, 63 deletions
diff --git a/rules.mk b/rules.mk
index 9524ee4b30..2fea7ccb36 100644
--- a/rules.mk
+++ b/rules.mk
@@ -1,4 +1,10 @@
+###############################################
# Common build rules, used by the sub modules and their module.mk files
+#
+# $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/tools/trunk/Makefile $
+# $Id$
+###############################################
+
# Copy the list of objects to a new variable. The name of the new variable
# contains the module name, a trick we use so we can keep multiple different
@@ -9,23 +15,50 @@ MODULE_OBJS-$(MODULE) := $(addprefix $(MODULE)/, $(MODULE_OBJS))
MODULE_DIRS += $(sort $(dir $(MODULE_OBJS-$(MODULE))))
+
+ifdef TOOL_EXECUTABLE
+################################################
+# Build rule for (tool) executables.
+# TODO: Refactor this, so that even our master executable can use this rule?
+################################################
+TOOL-$(MODULE) := $(MODULE)/$(TOOL_EXECUTABLE)$(EXEEXT)
+$(TOOL-$(MODULE)): $(MODULE_OBJS-$(MODULE))
+ $(CXX) $(LDFLAGS) $+ -o $@
+
+# Reset TOOL_EXECUTABLE var
+TOOL_EXECUTABLE:=
+
+# Add to "tools" target
+tools: $(TOOL-$(MODULE))
+
+# Pseudo target for comfort, allows for "make tools/skycpt", etc.
+$(MODULE): $(TOOL-$(MODULE))
+clean-tools: clean-$(MODULE)
+
+else
ifdef PLUGIN
-# Plugin build rule
-# TODO: Right now, for Mac OS X only. We either will have to generate this
-# via the configure script, or put in some 'if' statements to choose from
-# one of several build rules
+################################################
+# Build rule for dynamic (loadable) plugins
+################################################
PLUGIN-$(MODULE) := plugins/$(PLUGIN_PREFIX)$(notdir $(MODULE))$(PLUGIN_SUFFIX)
$(PLUGIN-$(MODULE)): $(MODULE_OBJS-$(MODULE)) $(PLUGIN_EXTRA_DEPS)
$(MKDIR) plugins
$(CXX) $(filter-out $(PLUGIN_EXTRA_DEPS),$+) $(PLUGIN_LDFLAGS) -o $@
+
+# Reset PLUGIN var
PLUGIN:=
+
+# Add to "plugins" target
plugins: $(PLUGIN-$(MODULE))
# Pseudo target for comfort, allows for "make common", "make gui" etc.
$(MODULE): $(PLUGIN-$(MODULE))
+clean-plugins: clean-$(MODULE)
else
-
+################################################
+# Build rule for static modules/plugins
+################################################
MODULE_LIB-$(MODULE) := $(MODULE)/lib$(notdir $(MODULE)).a
# If not building as a plugin, add the object files to the main OBJS list
@@ -40,14 +73,16 @@ $(MODULE_LIB-$(MODULE)): $(MODULE_OBJS-$(MODULE))
# Pseudo target for comfort, allows for "make common", "make gui" etc.
$(MODULE): $(MODULE_LIB-$(MODULE))
-endif
-
+endif # PLUGIN
+endif # TOOL_EXECUTABLE
+###############################################
# Clean target, removes all object files. This looks a bit hackish, as we have to
# copy the content of MODULE_OBJS to another unique variable (the next module.mk
# will overwrite it after all). The same for the libMODULE.a library file.
+###############################################
clean: clean-$(MODULE)
clean-$(MODULE): clean-% :
- -$(RM) $(MODULE_OBJS-$*) $(MODULE_LIB-$*) $(PLUGIN-$*)
+ -$(RM) $(MODULE_OBJS-$*) $(MODULE_LIB-$*) $(PLUGIN-$*) $(TOOL-$*)
.PHONY: clean-$(MODULE) $(MODULE)
diff --git a/tools/create_igortbl/module.mk b/tools/create_igortbl/module.mk
index 3c68382600..bd5a7176f1 100644
--- a/tools/create_igortbl/module.mk
+++ b/tools/create_igortbl/module.mk
@@ -1,13 +1,13 @@
-MODULE := tools/create_igortbl
-
-MODULE_DIRS += \
- tools/create_igortbl/
+# $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/tools/trunk/Makefile $
+# $Id: Makefile 30664 2008-01-27 19:47:41Z jvprat $
-TOOLS += \
- $(MODULE)/create_igortbl$(EXEEXT)
+MODULE := tools/create_igortbl
MODULE_OBJS := \
- $(MODULE)/create_igortbl.o
+ create_igortbl.o
+
+# Set the name of the executable
+TOOL_EXECUTABLE := create_igortbl
-$(MODULE)/create_igortbl$(EXEEXT): $(MODULE_OBJS)
- $(CXX) $(LDFLAGS) $+ -o $@
+# Include common rules
+include $(srcdir)/rules.mk
diff --git a/tools/create_kyradat/module.mk b/tools/create_kyradat/module.mk
index c8df680c40..557871ce4a 100644
--- a/tools/create_kyradat/module.mk
+++ b/tools/create_kyradat/module.mk
@@ -1,16 +1,16 @@
-MODULE := tools/create_kyradat
-
-MODULE_DIRS += \
- tools/create_kyradat/
+# $URL$
+# $Id$
-TOOLS += \
- $(MODULE)/create_kyradat$(EXEEXT)
+MODULE := tools/create_kyradat
MODULE_OBJS := \
- $(MODULE)/create_kyradat.o \
- $(MODULE)/pak.o \
- $(MODULE)/md5.o \
- $(MODULE)/util.o
+ create_kyradat.o \
+ pak.o \
+ md5.o \
+ util.o
+
+# Set the name of the executable
+TOOL_EXECUTABLE := create_kyradat
-$(MODULE)/create_kyradat$(EXEEXT): $(MODULE_OBJS)
- $(CXX) $(LDFLAGS) $+ -o $@
+# Include common rules
+include $(srcdir)/rules.mk
diff --git a/tools/create_lure/module.mk b/tools/create_lure/module.mk
index 7fa5bafa7f..c5ab6dfef8 100644
--- a/tools/create_lure/module.mk
+++ b/tools/create_lure/module.mk
@@ -1,14 +1,14 @@
-MODULE := tools/create_lure
-
-MODULE_DIRS += \
- tools/create_lure/
+# $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/tools/trunk/Makefile $
+# $Id: Makefile 30664 2008-01-27 19:47:41Z jvprat $
-TOOLS += \
- $(MODULE)/create_lure$(EXEEXT)
+MODULE := tools/create_lure
MODULE_OBJS := \
- $(MODULE)/create_lure_dat.o \
- $(MODULE)/process_actions.o
+ create_lure_dat.o \
+ process_actions.o
+
+# Set the name of the executable
+TOOL_EXECUTABLE := create_lure
-$(MODULE)/create_lure$(EXEEXT): $(MODULE_OBJS)
- $(CXX) $(LDFLAGS) $+ -o $@
+# Include common rules
+include $(srcdir)/rules.mk
diff --git a/tools/module.mk b/tools/module.mk
index 97cc5d0b9a..34d8dc771a 100644
--- a/tools/module.mk
+++ b/tools/module.mk
@@ -1,3 +1,6 @@
+# $URL$
+# $Id$
+
MODULE := tools
MODULE_DIRS += \
@@ -15,7 +18,7 @@ TOOLS := \
include $(srcdir)/tools/*/module.mk
# Make sure the 'all' / 'clean' targets build/clean the tools, too
-all:
+#all:
clean: clean-tools
# Main target
diff --git a/tools/qtable/module.mk b/tools/qtable/module.mk
index f9d6b81604..dc01000a4d 100644
--- a/tools/qtable/module.mk
+++ b/tools/qtable/module.mk
@@ -1,13 +1,13 @@
-MODULE := tools/qtable
-
-MODULE_DIRS += \
- tools/qtable/
+# $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/tools/trunk/Makefile $
+# $Id: Makefile 30664 2008-01-27 19:47:41Z jvprat $
-TOOLS += \
- $(MODULE)/qtable$(EXEEXT)
+MODULE := tools/qtable
MODULE_OBJS := \
- $(MODULE)/qtable.o
+ qtable.o
+
+# Set the name of the executable
+TOOL_EXECUTABLE := qtable
-$(MODULE)/qtable$(EXEEXT): $(MODULE_OBJS)
- $(CXX) $(LDFLAGS) $+ -o $@
+# Include common rules
+include $(srcdir)/rules.mk
diff --git a/tools/skycpt/module.mk b/tools/skycpt/module.mk
index 5ce9217b54..c892cd8c35 100644
--- a/tools/skycpt/module.mk
+++ b/tools/skycpt/module.mk
@@ -1,18 +1,18 @@
-MODULE := tools/skycpt
-
-MODULE_DIRS += \
- tools/skycpt/
+# $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/tools/trunk/Makefile $
+# $Id: Makefile 30664 2008-01-27 19:47:41Z jvprat $
-TOOLS += \
- $(MODULE)/skycpt$(EXEEXT)
+MODULE := tools/skycpt
MODULE_OBJS := \
- $(MODULE)/AsciiCptCompile.o \
- $(MODULE)/KmpSearch.o \
- $(MODULE)/TextFile.o \
- $(MODULE)/cptcompiler.o \
- $(MODULE)/cpthelp.o \
- $(MODULE)/idFinder.o
+ AsciiCptCompile.o \
+ KmpSearch.o \
+ TextFile.o \
+ cptcompiler.o \
+ cpthelp.o \
+ idFinder.o
+
+# Set the name of the executable
+TOOL_EXECUTABLE := skycpt
-$(MODULE)/skycpt$(EXEEXT): $(MODULE_OBJS)
- $(CXX) $(LDFLAGS) $+ -o $@
+# Include common rules
+include $(srcdir)/rules.mk