mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-01 05:11:09 +00:00
9a4bc8ce16
svn-id: r17231
50 lines
1.6 KiB
Plaintext
50 lines
1.6 KiB
Plaintext
# 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) := $(MODULE_OBJS)
|
|
|
|
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)$(MODULE)$(PLUGIN_SUFFIX)
|
|
$(PLUGIN-$(MODULE)): $(MODULE_OBJS) $(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)
|
|
-$(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)
|