diff options
-rw-r--r-- | Makefile.common | 33 | ||||
-rw-r--r-- | common.rules | 2 |
2 files changed, 25 insertions, 10 deletions
diff --git a/Makefile.common b/Makefile.common index 2fef3f31f0..d4c2dcf13f 100644 --- a/Makefile.common +++ b/Makefile.common @@ -41,10 +41,21 @@ PLUGIN_PREFIX := lib PLUGIN_SUFFIX := .so ifdef BUILD_PLUGINS -# FIXME/TODO: The following is OS X specific -LDFLAGS += -all_load +# TODO: The following stuff should be controlled by 'configure' + +# Define DYNAMIC_MODULES during building CXXFLAGS += -DDYNAMIC_MODULES + +# Uncomment these for Mac OS X +#PLUGIN_LDFLAGS := -bundle -bundle_loader $(EXECUTABLE) +#LDFLAGS += -all_load +#LIBS += -ldl + +# Uncomment these for Linux +CXXFLAGS += -fpic +PLUGIN_LDFLAGS := -shared LIBS += -ldl + endif ###################################################################### @@ -96,6 +107,10 @@ CPPFLAGS:= $(DEFINES) $(INCLUDES) # Include the build instructions for all modules -include $(addsuffix /module.mk,$(MODULES)) +# Depdir information +DEPDIRS = $(addsuffix /$(DEPDIR),$(MODULE_DIRS)) +DEPFILES = + # Make main.o depend on all other object files. This way if anything is # changed, it causes main.cpp to be recompiled. This in turn ensures that # the build date in gScummVMBuildDate is correct. @@ -105,14 +120,15 @@ base/main.o: $(filter-out base/libbase.a,$(OBJS)) $(EXECUTABLE): $(OBJS) $(CXX) $(LDFLAGS) $+ $(LIBS) -o $@ +distclean: clean + $(RM_REC) $(DEPDIRS) + $(RM) build.rules config.h config.mak config.log + clean: $(RM) $(OBJS) $(EXECUTABLE) .PHONY: all clean dist distclean -DEPDIRS = $(addsuffix /$(DEPDIR),$(MODULE_DIRS)) -DEPFILES = $(wildcard $(addsuffix /*.d,$(DEPDIRS))) - # Old (dumb) compile & dependcy rules #INCS = scumm/scumm.h common/scummsys.h common/stdafx.h #.cpp.o: @@ -137,8 +153,7 @@ else $(MKDIR) $(*D)/$(DEPDIR) $(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o endif --include $(DEPFILES) /dev/null -distclean: clean - $(RM_REC) $(DEPDIRS) - $(RM) build.rules config.h config.mak config.log +# Include the dependency tracking files. We add /dev/null at the end +# of the list to avoid a warning/error if no .d file exist +-include $(wildcard $(addsuffix /*.d,$(DEPDIRS))) /dev/null diff --git a/common.rules b/common.rules index 0ddd6b01c8..244c91c386 100644 --- a/common.rules +++ b/common.rules @@ -10,7 +10,7 @@ ifdef PLUGIN # one of several build rules PLUGIN-$(MODULE) := $(MODULE)/$(PLUGIN_PREFIX)$(MODULE)$(PLUGIN_SUFFIX) $(PLUGIN-$(MODULE)): $(MODULE_OBJS) $(EXECUTABLE) - $(CXX) -bundle -bundle_loader $(EXECUTABLE) $(filter-out $(EXECUTABLE),$+) $(LIBS) -o $@ + $(CXX) $(PLUGIN_LDFLAGS) $(EXECUTABLE) $(filter-out $(EXECUTABLE),$+) $(LIBS) -o $@ PLUGIN:= plugins: $(PLUGIN-$(MODULE)) |