aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2003-09-19 21:23:23 +0000
committerMax Horn2003-09-19 21:23:23 +0000
commited605c38c535eecab9a0cd8c6d1ef336e7a632a2 (patch)
tree6b2966326ac2b57e2031d63f2de6b9a1c8897b94
parent34b5cd99c388f95c6a708fd8d316cd95d0d5d902 (diff)
downloadscummvm-rg350-ed605c38c535eecab9a0cd8c6d1ef336e7a632a2.tar.gz
scummvm-rg350-ed605c38c535eecab9a0cd8c6d1ef336e7a632a2.tar.bz2
scummvm-rg350-ed605c38c535eecab9a0cd8c6d1ef336e7a632a2.zip
some cleanup, and an (untested) loadable module build rule for Linux
svn-id: r10318
-rw-r--r--Makefile.common33
-rw-r--r--common.rules2
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))