From c4a560fb1d47c3e77925fd96c1a9132cea239ae6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Thu, 18 Aug 2005 17:00:20 +0000 Subject: [PATCH] Redo 12234; this time with (hopefully) Mac OS X support It was probably too easy that building to Windows and Linux worked the same --- bootstrap | 39 ++++++++++++++++++++---------------- configure.ac | 3 +++ m4/vlc.m4 | 11 ++++++++++ modules/gui/wince/Modules.am | 2 +- 4 files changed, 37 insertions(+), 18 deletions(-) diff --git a/bootstrap b/bootstrap index 7929463c0c..96564eb8ad 100755 --- a/bootstrap +++ b/bootstrap @@ -216,6 +216,9 @@ noinst_HEADERS = EXTRA_DIST = Modules.am BUILT_SOURCES = SUBDIRS = ${subdirs} +SUFFIXES = _plugin\$(LIBEXT) _plugin.a +### TODO ought to be defined somewhere else +VLC_ENTRY = \$(SYMPREF)vlc_entry__0_8_2 libvlcdir = \$(libdir)/vlc/\$(basedir) @@ -233,6 +236,8 @@ endif endif all: all-modules + +# Find out which modules were enabled and tell make to build them all-modules: @set fnord \$\$MAKEFLAGS; amf=\$\$2; targets=\`\\ if test "\$(plugin)" != "no"; then z=\$\$(\$(VLC_CONFIG) --list plugin); for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) echo lib\$\${mod}_plugin\$(LIBEXT);; esac; done; fi; \\ @@ -241,6 +246,18 @@ all-modules: \`; case "\$\$targets" in *lib*) \$(MAKE) \$(AM_MAKEFLAGS) \$\$targets || case "\$\$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; ;; esac; \\ test -z "\$\$fail" +# Build a plugin with the adequate linker and linker's flags +_plugin.a_plugin\$(LIBEXT): + @mod="\$*" ; mod=\$\${mod:3} ; \ + ldfl="\`\$(VLC_CONFIG) --libs plugin \$\$mod\` -u \$(VLC_ENTRY)" ; \ + case \`\$(VLC_CONFIG) --linkage \$\$mod\` in \\ + c++) ld="\$(CXXLINK)" ;; \ + objc) ld="\$(OBJCLINK)" ;; \ + c|*) ld="\$(LINK)" ;; \ + esac ; \ + echo \$\$ld \$< \$\$ldfl ; \ + \$\$ld \$< \$\$ldfl + \$(srcdir)/Makefile.am: \$(srcdir)/Modules.am \$(top_srcdir)/bootstrap cd \$(top_srcdir) && \$(SHELL) ./bootstrap @@ -315,9 +332,6 @@ endif EOF for mod in $mods do - if grep '^SOURCES_'${mod}'.*=.*PRIVATE' < "${modf}" >/dev/null 2>&1; then - PRIVATE='#'; else - PRIVATE=''; fi if grep '^nodist_SOURCES_'${mod}'' < "${modf}" >/dev/null 2>&1; then NODIST=''; else NODIST='#'; fi @@ -343,14 +357,14 @@ clean-${mod}: EOF fi if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF -${PRIVATE}BUILT_SOURCES += \$(B${mod}) +BUILT_SOURCES += \$(B${mod}) EOF fi cat >> "${makf}" << EOF -${PRIVATE}lib${mod}_plugin_a_SOURCES = \$(SOURCES_${mod}) +lib${mod}_plugin_a_SOURCES = \$(SOURCES_${mod}) EOF if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF -${PRIVATE}nodist_lib${mod}_plugin_a_SOURCES = \$(nodist_SOURCES_${mod}) +nodist_lib${mod}_plugin_a_SOURCES = \$(nodist_SOURCES_${mod}) EOF fi cat >> "${makf}" << EOF @@ -358,10 +372,10 @@ lib${mod}_plugin_a_CFLAGS = \`\$(VLC_CONFIG) --cflags plugin ${mod}\` lib${mod}_plugin_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags plugin ${mod}\` lib${mod}_plugin_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags plugin ${mod}\` -lib${mod}_pic_a_SOURCES = ${PRIVATE}\$(SOURCES_${mod}) +lib${mod}_pic_a_SOURCES = \$(SOURCES_${mod}) EOF if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF -nodist_lib${mod}_pic_a_SOURCES = ${PRIVATE}\$(nodist_SOURCES_${mod}) +nodist_lib${mod}_pic_a_SOURCES = \$(nodist_SOURCES_${mod}) EOF fi cat >> "${makf}" << EOF @@ -380,15 +394,6 @@ lib${mod}_a_CFLAGS = \`\$(VLC_CONFIG) --cflags builtin ${mod}\` lib${mod}_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags builtin ${mod}\` lib${mod}_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags builtin ${mod}\` -lib${mod}dir = \$(libdir)/vlc/${topdir} -${PRIVATE}lib${mod}_plugin\$(LIBEXT): \$(lib${mod}_plugin_a_OBJECTS) -${PRIVATE} @case \`\$(VLC_CONFIG) --linkage ${mod}\` in \\ -${PRIVATE} c++) echo \$(CXXLINK) \$(lib${mod}_plugin_a_OBJECTS) \\\`\$(VLC_CONFIG) --libs plugin ${mod}\\\` ; \$(CXXLINK) \$(lib${mod}_plugin_a_OBJECTS) \`\$(VLC_CONFIG) --libs plugin ${mod}\` ;; \\ -${PRIVATE} objc) echo \$(OBJCLINK) \$(lib${mod}_plugin_a_OBJECTS) \\\`\$(VLC_CONFIG) --libs plugin ${mod}\\\` ; \$(OBJCLINK) \$(lib${mod}_plugin_a_OBJECTS) \`\$(VLC_CONFIG) --libs plugin ${mod}\` ;; \\ -${PRIVATE} c|*) echo \$(LINK) \$(lib${mod}_plugin_a_OBJECTS) \\\`\$(VLC_CONFIG) --libs plugin ${mod}\\\` ; \$(LINK) \$(lib${mod}_plugin_a_OBJECTS) \`\$(VLC_CONFIG) --libs plugin ${mod}\` ;; \\ -${PRIVATE} esac - - EOF done done diff --git a/configure.ac b/configure.ac index f11f69e6dc..db14769b5e 100644 --- a/configure.ac +++ b/configure.ac @@ -296,6 +296,9 @@ dnl Plugin compilation stuff VLC_LIBRARY_SUFFIX +VLC_SYMBOL_PREFIX +AC_SUBST(SYMPREF) + case "${SYS}" in mingw32|cygwin) VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}]) diff --git a/m4/vlc.m4 b/m4/vlc.m4 index 053ee6b9cb..15fe9597b3 100644 --- a/m4/vlc.m4 +++ b/m4/vlc.m4 @@ -153,3 +153,14 @@ AC_DEFUN([VLC_LIBRARY_SUFFIX], [ AC_DEFINE_UNQUOTED(LIBEXT, "${LIBEXT}", [Dynamic object extension]) ]) +AC_DEFUN([VLC_SYMBOL_PREFIX], [ + AC_MSG_CHECKING(for prefix to exported symbols) + SYMPREF="" + case "${target_os}" in + darwin*) + SYMPREF="_" + ;; + esac + AC_MSG_RESULT(${SYMPREF}) +]) + diff --git a/modules/gui/wince/Modules.am b/modules/gui/wince/Modules.am index 745d856e13..de2cdf3618 100644 --- a/modules/gui/wince/Modules.am +++ b/modules/gui/wince/Modules.am @@ -1,4 +1,4 @@ -SUFFIXES = .rc +SUFFIXES += .rc .rc.o: $(WINDRES) -DUNDER_CE -D__MINGW32__ -I. -I$(srcdir) -i $< -o $@ -- 2.39.2