BUILD: Unify plugin prefix/suffix handling, unify setting DYNAMIC_MODULES

This commit is contained in:
Max Horn 2011-05-25 14:55:36 +02:00
parent 4f34347485
commit 7fcaac9408

121
configure vendored
View file

@ -163,6 +163,8 @@ _arm_asm=no
_verbose_build=no _verbose_build=no
_dynamic_modules=no _dynamic_modules=no
_plugins_default=static _plugins_default=static
_plugin_prefix=
_plugin_suffix=
_nasm=auto _nasm=auto
# Default commands # Default commands
_ranlib=ranlib _ranlib=ranlib
@ -2270,16 +2272,13 @@ add_to_config_mk_if_yes "$_verbose_build" 'VERBOSE_BUILD = 1'
echo_n "Checking whether building plugins was requested... " echo_n "Checking whether building plugins was requested... "
echo "$_dynamic_modules" echo "$_dynamic_modules"
_mak_plugins= _mak_plugins=
_def_plugin="/* -> plugins disabled */"
if test "$_dynamic_modules" = yes ; then if test "$_dynamic_modules" = yes ; then
echo_n "Checking whether building plugins is supported... " echo_n "Checking whether building plugins is supported... "
case $_host_os in case $_host_os in
android) android)
_def_plugin=' _plugin_prefix="lib"
#define PLUGIN_PREFIX "lib" _plugin_suffix=".so"
#define PLUGIN_SUFFIX ".so"
'
# Work around an Android 2.0+ run-time linker bug: # Work around an Android 2.0+ run-time linker bug:
# The linker doesn't actually look in previously # The linker doesn't actually look in previously
# loaded libraries when trying to resolve symbols - # loaded libraries when trying to resolve symbols -
@ -2289,11 +2288,7 @@ _def_plugin='
# (otherwise unnecessary) dependency from plugins back # (otherwise unnecessary) dependency from plugins back
# to the main libscummvm.so. # to the main libscummvm.so.
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX := lib
PLUGIN_SUFFIX := .so
PLUGIN_EXTRA_DEPS = libscummvm.so PLUGIN_EXTRA_DEPS = libscummvm.so
CXXFLAGS += -DDYNAMIC_MODULES
CXXFLAGS += -fpic CXXFLAGS += -fpic
PLUGIN_LDFLAGS += $(LDFLAGS) -L. -lscummvm PLUGIN_LDFLAGS += $(LDFLAGS) -L. -lscummvm
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
@ -2302,16 +2297,10 @@ LIBS += -ldl
' '
;; ;;
darwin*) darwin*)
_def_plugin=' _plugin_prefix=""
#define PLUGIN_PREFIX "" _plugin_suffix=".plugin"
#define PLUGIN_SUFFIX ".plugin"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX :=
PLUGIN_SUFFIX := .plugin
PLUGIN_EXTRA_DEPS = $(EXECUTABLE) PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
CXXFLAGS += -DDYNAMIC_MODULES
PLUGIN_LDFLAGS += -bundle -bundle_loader $(EXECUTABLE) -exported_symbols_list "$(srcdir)/plugin.exp" PLUGIN_LDFLAGS += -bundle -bundle_loader $(EXECUTABLE) -exported_symbols_list "$(srcdir)/plugin.exp"
PRE_OBJS_FLAGS := -all_load PRE_OBJS_FLAGS := -all_load
POST_OBJS_FLAGS := POST_OBJS_FLAGS :=
@ -2319,16 +2308,10 @@ LIBS += -ldl
' '
;; ;;
dreamcast) dreamcast)
_def_plugin=' _plugin_prefix=""
#define PLUGIN_PREFIX "" _plugin_suffix=".plg"
#define PLUGIN_SUFFIX ".plg"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX :=
PLUGIN_SUFFIX := .plg
PLUGIN_EXTRA_DEPS = $(abspath $(srcdir)/backends/platform/dc/plugin.x $(srcdir)/backends/platform/dc/plugin.syms) $(EXECUTABLE) backends/platform/dc/plugin_head.o PLUGIN_EXTRA_DEPS = $(abspath $(srcdir)/backends/platform/dc/plugin.x $(srcdir)/backends/platform/dc/plugin.syms) $(EXECUTABLE) backends/platform/dc/plugin_head.o
CXXFLAGS += -DDYNAMIC_MODULES
PLUGIN_LDFLAGS = -ml -m4-single-only -nostartfiles -Wl,-q,-T$(srcdir)/backends/platform/dc/plugin.x,--just-symbols,$(EXECUTABLE),--retain-symbols-file,$(srcdir)/backends/platform/dc/plugin.syms -L$(ronindir)/lib backends/platform/dc/plugin_head.o PLUGIN_LDFLAGS = -ml -m4-single-only -nostartfiles -Wl,-q,-T$(srcdir)/backends/platform/dc/plugin.x,--just-symbols,$(EXECUTABLE),--retain-symbols-file,$(srcdir)/backends/platform/dc/plugin.syms -L$(ronindir)/lib backends/platform/dc/plugin_head.o
PRE_OBJS_FLAGS := -Wl,--whole-archive PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--no-whole-archive POST_OBJS_FLAGS := -Wl,--no-whole-archive
@ -2342,16 +2325,10 @@ PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/ds/plugin.ld -mthumb-interwo
' '
;; ;;
freebsd*) freebsd*)
_def_plugin=' _plugin_prefix="lib"
#define PLUGIN_PREFIX "lib" _plugin_suffix=".so"
#define PLUGIN_SUFFIX ".so"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX := lib
PLUGIN_SUFFIX := .so
PLUGIN_EXTRA_DEPS = PLUGIN_EXTRA_DEPS =
CXXFLAGS += -DDYNAMIC_MODULES
CXXFLAGS += -fpic CXXFLAGS += -fpic
PLUGIN_LDFLAGS += -shared PLUGIN_LDFLAGS += -shared
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
@ -2366,16 +2343,10 @@ PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/wii/plugin.ld
' '
;; ;;
gph*) gph*)
_def_plugin=' _plugin_prefix=""
#define PLUGIN_PREFIX "" _plugin_suffix=".plugin"
#define PLUGIN_SUFFIX ".plugin"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX :=
PLUGIN_SUFFIX := .plugin
PLUGIN_EXTRA_DEPS = $(EXECUTABLE) PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
CXXFLAGS += -DDYNAMIC_MODULES
CXXFLAGS += -fpic CXXFLAGS += -fpic
PLUGIN_LDFLAGS += -shared PLUGIN_LDFLAGS += -shared
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
@ -2384,16 +2355,10 @@ LIBS += -ldl
' '
;; ;;
linux*) linux*)
_def_plugin=' _plugin_prefix="lib"
#define PLUGIN_PREFIX "lib" _plugin_suffix=".so"
#define PLUGIN_SUFFIX ".so"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX := lib
PLUGIN_SUFFIX := .so
PLUGIN_EXTRA_DEPS = PLUGIN_EXTRA_DEPS =
CXXFLAGS += -DDYNAMIC_MODULES
CXXFLAGS += -fpic CXXFLAGS += -fpic
PLUGIN_LDFLAGS += -shared PLUGIN_LDFLAGS += -shared
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
@ -2402,16 +2367,10 @@ LIBS += -ldl
' '
;; ;;
*mingw32*) *mingw32*)
_def_plugin=' _plugin_prefix=""
#define PLUGIN_PREFIX "" _plugin_suffix=".dll"
#define PLUGIN_SUFFIX ".dll"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX :=
PLUGIN_SUFFIX := .dll
PLUGIN_EXTRA_DEPS = $(EXECUTABLE) PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
CXXFLAGS += -DDYNAMIC_MODULES
PLUGIN_LDFLAGS := -Wl,--enable-auto-import -shared ./libscummvm.a PLUGIN_LDFLAGS := -Wl,--enable-auto-import -shared ./libscummvm.a
PRE_OBJS_FLAGS := -Wl,--whole-archive PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-implib,./libscummvm.a POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-implib,./libscummvm.a
@ -2420,16 +2379,10 @@ POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-im
wince) wince)
DEFINES="$DEFINES -DUNCACHED_PLUGINS" DEFINES="$DEFINES -DUNCACHED_PLUGINS"
HOSTEXEEXT=".dll" HOSTEXEEXT=".dll"
_def_plugin=' _plugin_prefix=""
#define PLUGIN_PREFIX "" _plugin_suffix=".plugin"
#define PLUGIN_SUFFIX ".plugin"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX :=
PLUGIN_SUFFIX := .plugin
PLUGIN_EXTRA_DEPS = $(EXECUTABLE) PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
CXXFLAGS += -DDYNAMIC_MODULES
PLUGIN_LDFLAGS := -shared -lscummvm -L. PLUGIN_LDFLAGS := -shared -lscummvm -L.
PRE_OBJS_FLAGS := -Wl,--whole-archive PRE_OBJS_FLAGS := -Wl,--whole-archive
POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-implib,./libscummvm.a -shared POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-implib,./libscummvm.a -shared
@ -2452,16 +2405,10 @@ PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/psp/plugin.ld -lstdc++ -lc
' '
;; ;;
webos) webos)
_def_plugin=' _plugin_prefix="lib"
#define PLUGIN_PREFIX "lib" _plugin_suffix=".so"
#define PLUGIN_SUFFIX ".so"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX := lib
PLUGIN_SUFFIX := .so
PLUGIN_EXTRA_DEPS = PLUGIN_EXTRA_DEPS =
CXXFLAGS += -DDYNAMIC_MODULES
CXXFLAGS += -fpic CXXFLAGS += -fpic
PLUGIN_LDFLAGS += -shared $(LDFLAGS) PLUGIN_LDFLAGS += -shared $(LDFLAGS)
PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive PRE_OBJS_FLAGS := -Wl,-export-dynamic -Wl,-whole-archive
@ -2472,7 +2419,6 @@ LIBS += -ldl
*) *)
_dynamic_modules=no _dynamic_modules=no
_mak_plugins= _mak_plugins=
_def_plugin=
;; ;;
esac esac
echo "$_dynamic_modules" echo "$_dynamic_modules"
@ -2484,15 +2430,9 @@ fi
define_in_config_if_yes "$_elf_loader" 'USE_ELF_LOADER' define_in_config_if_yes "$_elf_loader" 'USE_ELF_LOADER'
if test "$_elf_loader" = yes; then if test "$_elf_loader" = yes; then
CXXFLAGS="$CXXFLAGS -DDYNAMIC_MODULES" _plugin_prefix=""
_def_plugin=' _plugin_suffix=".plg"
#define PLUGIN_PREFIX ""
#define PLUGIN_SUFFIX ".plg"
'
_mak_plugins=' _mak_plugins='
DYNAMIC_MODULES := 1
PLUGIN_PREFIX :=
PLUGIN_SUFFIX := .plg
PLUGIN_EXTRA_DEPS = $(EXECUTABLE) PLUGIN_EXTRA_DEPS = $(EXECUTABLE)
PLUGIN_LDFLAGS = -nostartfiles backends/plugins/elf/version.o -Wl,-q,--just-symbols,$(EXECUTABLE),--retain-symbols-file,$(srcdir)/backends/plugins/elf/plugin.syms PLUGIN_LDFLAGS = -nostartfiles backends/plugins/elf/version.o -Wl,-q,--just-symbols,$(EXECUTABLE),--retain-symbols-file,$(srcdir)/backends/plugins/elf/plugin.syms
PRE_OBJS_FLAGS := -Wl,--whole-archive PRE_OBJS_FLAGS := -Wl,--whole-archive
@ -2500,6 +2440,20 @@ POST_OBJS_FLAGS := -Wl,--no-whole-archive
'"$_mak_plugins" '"$_mak_plugins"
fi fi
#
# Set up some common plugin settings in config.h and config.mk, if enabled
#
if test "$_dynamic_modules" = yes ; then
add_line_to_config_h "#define PLUGIN_PREFIX \"$_plugin_prefix\""
add_line_to_config_h "#define PLUGIN_SUFFIX \"$_plugin_suffix\""
add_line_to_config_mk "PLUGIN_PREFIX := $_plugin_prefix"
add_line_to_config_mk "PLUGIN_SUFFIX := $_plugin_suffix"
add_line_to_config_mk "DYNAMIC_MODULES := 1"
DEFINES="$DEFINES -DDYNAMIC_MODULES"
fi
# #
# Check whether integrated MT-32 emulator support is requested # Check whether integrated MT-32 emulator support is requested
# #
@ -3269,9 +3223,6 @@ typedef signed $type_1_byte int8;
typedef signed $type_2_byte int16; typedef signed $type_2_byte int16;
typedef signed $type_4_byte int32; typedef signed $type_4_byte int32;
/* Plugin settings */
$_def_plugin
#endif /* CONFIG_H */ #endif /* CONFIG_H */
EOF EOF