mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-18 07:53:12 +00:00
Extended rules.mk with code for building extra (tool) executables, and changed some of the tools to make use of this
svn-id: r30962
This commit is contained in:
parent
ff79a8cd39
commit
85393b6fa4
51
rules.mk
51
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)
|
||||
|
@ -1,13 +1,13 @@
|
||||
# $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/tools/trunk/Makefile $
|
||||
# $Id: Makefile 30664 2008-01-27 19:47:41Z jvprat $
|
||||
|
||||
MODULE := tools/create_igortbl
|
||||
|
||||
MODULE_DIRS += \
|
||||
tools/create_igortbl/
|
||||
|
||||
TOOLS += \
|
||||
$(MODULE)/create_igortbl$(EXEEXT)
|
||||
|
||||
MODULE_OBJS := \
|
||||
$(MODULE)/create_igortbl.o
|
||||
create_igortbl.o
|
||||
|
||||
$(MODULE)/create_igortbl$(EXEEXT): $(MODULE_OBJS)
|
||||
$(CXX) $(LDFLAGS) $+ -o $@
|
||||
# Set the name of the executable
|
||||
TOOL_EXECUTABLE := create_igortbl
|
||||
|
||||
# Include common rules
|
||||
include $(srcdir)/rules.mk
|
||||
|
@ -1,16 +1,16 @@
|
||||
# $URL$
|
||||
# $Id$
|
||||
|
||||
MODULE := tools/create_kyradat
|
||||
|
||||
MODULE_DIRS += \
|
||||
tools/create_kyradat/
|
||||
|
||||
TOOLS += \
|
||||
$(MODULE)/create_kyradat$(EXEEXT)
|
||||
|
||||
MODULE_OBJS := \
|
||||
$(MODULE)/create_kyradat.o \
|
||||
$(MODULE)/pak.o \
|
||||
$(MODULE)/md5.o \
|
||||
$(MODULE)/util.o
|
||||
create_kyradat.o \
|
||||
pak.o \
|
||||
md5.o \
|
||||
util.o
|
||||
|
||||
$(MODULE)/create_kyradat$(EXEEXT): $(MODULE_OBJS)
|
||||
$(CXX) $(LDFLAGS) $+ -o $@
|
||||
# Set the name of the executable
|
||||
TOOL_EXECUTABLE := create_kyradat
|
||||
|
||||
# Include common rules
|
||||
include $(srcdir)/rules.mk
|
||||
|
@ -1,14 +1,14 @@
|
||||
# $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/tools/trunk/Makefile $
|
||||
# $Id: Makefile 30664 2008-01-27 19:47:41Z jvprat $
|
||||
|
||||
MODULE := tools/create_lure
|
||||
|
||||
MODULE_DIRS += \
|
||||
tools/create_lure/
|
||||
|
||||
TOOLS += \
|
||||
$(MODULE)/create_lure$(EXEEXT)
|
||||
|
||||
MODULE_OBJS := \
|
||||
$(MODULE)/create_lure_dat.o \
|
||||
$(MODULE)/process_actions.o
|
||||
create_lure_dat.o \
|
||||
process_actions.o
|
||||
|
||||
$(MODULE)/create_lure$(EXEEXT): $(MODULE_OBJS)
|
||||
$(CXX) $(LDFLAGS) $+ -o $@
|
||||
# Set the name of the executable
|
||||
TOOL_EXECUTABLE := create_lure
|
||||
|
||||
# Include common rules
|
||||
include $(srcdir)/rules.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
|
||||
|
@ -1,13 +1,13 @@
|
||||
# $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/tools/trunk/Makefile $
|
||||
# $Id: Makefile 30664 2008-01-27 19:47:41Z jvprat $
|
||||
|
||||
MODULE := tools/qtable
|
||||
|
||||
MODULE_DIRS += \
|
||||
tools/qtable/
|
||||
|
||||
TOOLS += \
|
||||
$(MODULE)/qtable$(EXEEXT)
|
||||
|
||||
MODULE_OBJS := \
|
||||
$(MODULE)/qtable.o
|
||||
qtable.o
|
||||
|
||||
$(MODULE)/qtable$(EXEEXT): $(MODULE_OBJS)
|
||||
$(CXX) $(LDFLAGS) $+ -o $@
|
||||
# Set the name of the executable
|
||||
TOOL_EXECUTABLE := qtable
|
||||
|
||||
# Include common rules
|
||||
include $(srcdir)/rules.mk
|
||||
|
@ -1,18 +1,18 @@
|
||||
# $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/tools/trunk/Makefile $
|
||||
# $Id: Makefile 30664 2008-01-27 19:47:41Z jvprat $
|
||||
|
||||
MODULE := tools/skycpt
|
||||
|
||||
MODULE_DIRS += \
|
||||
tools/skycpt/
|
||||
|
||||
TOOLS += \
|
||||
$(MODULE)/skycpt$(EXEEXT)
|
||||
|
||||
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
|
||||
|
||||
$(MODULE)/skycpt$(EXEEXT): $(MODULE_OBJS)
|
||||
$(CXX) $(LDFLAGS) $+ -o $@
|
||||
# Set the name of the executable
|
||||
TOOL_EXECUTABLE := skycpt
|
||||
|
||||
# Include common rules
|
||||
include $(srcdir)/rules.mk
|
||||
|
Loading…
x
Reference in New Issue
Block a user