diff options
author | Max Horn | 2006-06-24 08:48:11 +0000 |
---|---|---|
committer | Max Horn | 2006-06-24 08:48:11 +0000 |
commit | 9a955180a4179237d3474a73c6829a6554a9bc09 (patch) | |
tree | 0bd1edc157e90b6b71241ef2a03642f8a0b3c827 /rules.mk | |
parent | d210b19aec69d34711e5d473e6e4e5081955b02e (diff) | |
download | scummvm-rg350-9a955180a4179237d3474a73c6829a6554a9bc09.tar.gz scummvm-rg350-9a955180a4179237d3474a73c6829a6554a9bc09.tar.bz2 scummvm-rg350-9a955180a4179237d3474a73c6829a6554a9bc09.zip |
* Renamed config.mak to config.mk
* Renamed common.rules to rules.mk
* Removed explicit declaration of MODULE_DIRS in various spots (instead we let rules.mk compute it)
svn-id: r23275
Diffstat (limited to 'rules.mk')
-rw-r--r-- | rules.mk | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/rules.mk b/rules.mk new file mode 100644 index 0000000000..f1f1888095 --- /dev/null +++ b/rules.mk @@ -0,0 +1,53 @@ +# Common build rules, used by the sub modules and their module.mk files + +# 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 +# module object lists, one for each module. +MODULE_OBJS-$(MODULE) := $(addprefix $(MODULE)/, $(MODULE_OBJS)) + +# Add all involved directories to the MODULE_DIRS list +MODULE_DIRS += $(sort $(dir $(MODULE_OBJS-$(MODULE)))) + + +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 +PLUGIN-$(MODULE) := plugins/$(PLUGIN_PREFIX)$(notdir $(MODULE))$(PLUGIN_SUFFIX) +$(PLUGIN-$(MODULE)): $(MODULE_OBJS-$(MODULE)) $(PLUGIN_EXTRA_DEPS) + $(MKDIR) plugins + $(CXX) $(PLUGIN_LDFLAGS) $(filter-out $(PLUGIN_EXTRA_DEPS),$+) -o $@ +PLUGIN:= +plugins: $(PLUGIN-$(MODULE)) + +# Pseudo target for comfort, allows for "make common", "make gui" etc. +$(MODULE): $(PLUGIN-$(MODULE)) + +else + +MODULE_LIB-$(MODULE) := $(MODULE)/lib$(notdir $(MODULE)).a + +# If not building as a plugin, add the object files to the main OBJS list +OBJS += $(MODULE_LIB-$(MODULE)) + +# Convenience library target +$(MODULE_LIB-$(MODULE)): $(MODULE_OBJS-$(MODULE)) + -$(RM) $@ + $(AR) $@ $+ + $(RANLIB) $@ + +# Pseudo target for comfort, allows for "make common", "make gui" etc. +$(MODULE): $(MODULE_LIB-$(MODULE)) + +endif + + +# 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-$*) + +.PHONY: clean-$(MODULE) $(MODULE) |