Commit 6aa5b046 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

_Experimental_ *optional* libtool support (--enable-libtool)

Should work fine (ie. better than --enable-shared-libvlc) on Linux,
should work on Mac OS X (except for packaging), while shared libvlc doesn't.

Won't work on Win32 with the current Win32 contrib. Stick to static libvlc or
use --enable-shared-libvlc for now.
parent ad2d545a
...@@ -221,27 +221,32 @@ if HAVE_WINCE ...@@ -221,27 +221,32 @@ if HAVE_WINCE
vlc_WORKAROUNDLDFLAGS = $(LIB_libvlc) vlc_WORKAROUNDLDFLAGS = $(LIB_libvlc)
endif endif
vlc_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
vlc_LDFLAGS = $(LDFLAGS_libvlc) $(vlc_WORKAROUNDLDFLAGS) $(INCLUDED_LIBINTL)
vlc_LDADD = $(DATA_win32_rc)
# We use DEPENDENCIES_vlc instead of vlc_DEPENDENCIES because of an # We use DEPENDENCIES_vlc instead of vlc_DEPENDENCIES because of an
# old automake-1.5 bug (automake/279). # old automake-1.5 bug (automake/279).
DEPENDENCIES_vlc = $(LIB_libvlc) $(DATA_win32_rc) DEPENDENCIES_vlc = $(LIB_libvlc) $(DATA_win32_rc)
vlc_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
if USE_LIBTOOL
vlc_LDFLAGS = `$(VLC_CONFIG) --libs vlc`
LIB_libvlc = src/libvlc.la
LIBVLC = $(LIB_libvlc)
else
if BUILD_SHARED if BUILD_SHARED
vlc_LDFLAGS += `$(VLC_CONFIG) --libs vlc` -Wl,-rpath $(libdir) -L$(top_builddir)/src -lvlc vlc_LDFLAGS = `$(VLC_CONFIG) --libs vlc` -Wl,-rpath $(libdir) -L$(top_builddir)/src -lvlc
if HAVE_WIN32 if HAVE_WIN32
LIB_libvlc = src/libvlc.dll.a LIB_libvlc = src/libvlc.dll.a
else else
LIB_libvlc = src/libvlc$(LIBEXT) LIB_libvlc = src/libvlc$(LIBEXT)
endif endif
LIBVLC =
else else
vlc_LDFLAGS += `$(VLC_CONFIG) --libs vlc builtin` vlc_LDFLAGS = $(vlc_WORKAROUNDLFDLAGS) `$(VLC_CONFIG) --libs vlc builtin`
vlc_LDADD += $(LIB_libvlc)
LIB_libvlc = src/libvlc.a LIB_libvlc = src/libvlc.a
LIBVLC = $(LIB_libvlc)
DEPENDENCIES_vlc += stamp-builtin DEPENDENCIES_vlc += stamp-builtin
endif endif
endif
vlc_LDADD = $(DATA_win32_rc) $(LIBVLC) $(INCLUDED_LIBINTL)
vlc$(EXEEXT): $(vlc_OBJECTS) $(DEPENDENCIES_vlc) vlc$(EXEEXT): $(vlc_OBJECTS) $(DEPENDENCIES_vlc)
@rm -f vlc$(EXEEXT) @rm -f vlc$(EXEEXT)
...@@ -280,7 +285,7 @@ vlc-bundle: vlc ...@@ -280,7 +285,7 @@ vlc-bundle: vlc
find $(top_builddir)/vlc-bundle -type f -exec mimeset -f "{}" \; find $(top_builddir)/vlc-bundle -type f -exec mimeset -f "{}" \;
endif endif
# Install the symlinks and shared libvlc # Install the symlinks
install-exec-local: install-exec-local:
for i in "" $(ALIASES) ; do if test -n "$$i" ; then \ for i in "" $(ALIASES) ; do if test -n "$$i" ; then \
rm -f "$(DESTDIR)$(bindir)/$$i" && \ rm -f "$(DESTDIR)$(bindir)/$$i" && \
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
## bootstrap file for the VLC media player ## bootstrap file for the VLC media player
## $Id$ ## $Id$
## ##
## Copyright (C) 2005 the VideoLAN team ## Copyright (C) 2005-2006 the VideoLAN team
## ##
## Initial author: Sam Hocevar <sam@zoy.org> ## Initial author: Sam Hocevar <sam@zoy.org>
...@@ -80,7 +80,21 @@ fi ...@@ -80,7 +80,21 @@ fi
if test "${amvers}" = "none"; then if test "${amvers}" = "none"; then
set +x set +x
echo "you need automake version 1.5 or later" echo "$0: you need automake version 1.5 or later"
exit 1
fi
# Check for libtool
libtoolize="no"
if glibtoolize --version >/dev/null 2>&1; then
libtoolize="glibtoolize"
elif libtoolize --version >/dev/null 2>&1; then
libtoolize="libtoolize"
fi
if test "$libtoolize" = "no"; then
set +x
echo "$0: you need libtool"
exit 1 exit 1
fi fi
...@@ -180,10 +194,11 @@ do ...@@ -180,10 +194,11 @@ do
subdirs="`sed -ne 's,'modules/${dir}'/\([^/]*\)/Makefile,\1,p' configure.ac | xargs`" subdirs="`sed -ne 's,'modules/${dir}'/\([^/]*\)/Makefile,\1,p' configure.ac | xargs`"
mods="`sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < "${modf}" | xargs`" mods="`sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < "${modf}" | xargs`"
extra_libs="" extra_libs=""
extra_ltlibs=""
for mod in $mods for mod in $mods
do do
extra_libs="${extra_libs} lib${mod}_plugin.a" extra_libs="${extra_libs} lib${mod}_plugin.a lib${mod}.a lib${mod}_pic.a"
extra_libs="${extra_libs} lib${mod}.a lib${mod}_pic.a" extra_ltlibs="${extra_ltlibs} lib${mod}_plugin.la lib${mod}.la"
done done
rm -f "${makf}" && cat > "${makf}" << EOF rm -f "${makf}" && cat > "${makf}" << EOF
...@@ -194,9 +209,7 @@ basedir = ${basedir} ...@@ -194,9 +209,7 @@ basedir = ${basedir}
mods = ${mods} mods = ${mods}
NULL = NULL =
libvlc_LIBRARIES = libvlc_LTLIBRARIES =
noinst_LIBRARIES =
noinst_HEADERS =
EXTRA_DIST = Modules.am EXTRA_DIST = Modules.am
BUILT_SOURCES = BUILT_SOURCES =
SUBDIRS = ${subdirs} SUBDIRS = ${subdirs}
...@@ -205,8 +218,12 @@ SUFFIXES = _plugin\$(LIBEXT) _plugin.a ...@@ -205,8 +218,12 @@ SUFFIXES = _plugin\$(LIBEXT) _plugin.a
libvlcdir = \$(libdir)/vlc/\$(basedir) libvlcdir = \$(libdir)/vlc/\$(basedir)
EXTRA_LIBRARIES = ${extra_libs} EXTRA_LIBRARIES = ${extra_libs}
EXTRA_LTLIBRARIES = ${extra_ltlibs}
include Modules.am include Modules.am
LTLIBVLC = \$(top_builddir)/src/libvlc.la
if BUILD_SHARED if BUILD_SHARED
LIBVLC = \$(top_builddir)/src/libvlc\$(LIBEXT) LIBVLC = \$(top_builddir)/src/libvlc\$(LIBEXT)
if HAVE_WIN32 if HAVE_WIN32
...@@ -224,12 +241,20 @@ all: all-modules ...@@ -224,12 +241,20 @@ all: all-modules
# Find out which modules were enabled and tell make to build them # Find out which modules were enabled and tell make to build them
all-modules: all-modules:
if USE_LIBTOOL
@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.la;; esac; done; fi; \\
if test "\$(builtin)" != "no"; then z=\$\$(\$(VLC_CONFIG) --list builtin); for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) echo lib\$\${mod}.la;; esac; done; fi; \\
\`; case "\$\$targets" in *lib*) \$(MAKE) \$(AM_MAKEFLAGS) \$\$targets || case "\$\$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; ;; esac; \\
test -z "\$\$fail"
else
@set fnord \$\$MAKEFLAGS; amf=\$\$2; targets=\`\\ @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; \\ 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; \\
if test "\$(builtin)" != "no"; then z=\$\$(\$(VLC_CONFIG) --list builtin); for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) echo lib\$\${mod}.a;; esac; done; fi; \\ if test "\$(builtin)" != "no"; then z=\$\$(\$(VLC_CONFIG) --list builtin); for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) echo lib\$\${mod}.a;; esac; done; fi; \\
if test "\$(pic)" = "pic"; then z=\$\$(\$(VLC_CONFIG) --list builtin); for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) echo lib\$\${mod}_pic.a;; esac; done; fi; \\ if test "\$(pic)" = "pic"; then z=\$\$(\$(VLC_CONFIG) --list builtin); for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) echo lib\$\${mod}_pic.a;; esac; done; fi; \\
\`; case "\$\$targets" in *lib*) \$(MAKE) \$(AM_MAKEFLAGS) \$\$targets || case "\$\$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; ;; esac; \\ \`; case "\$\$targets" in *lib*) \$(MAKE) \$(AM_MAKEFLAGS) \$\$targets || case "\$\$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; ;; esac; \\
test -z "\$\$fail" test -z "\$\$fail"
endif
# Build a plugin with the adequate linker and linker's flags # Build a plugin with the adequate linker and linker's flags
_plugin.a_plugin\$(LIBEXT): _plugin.a_plugin\$(LIBEXT):
...@@ -254,6 +279,13 @@ mostlyclean-local: ...@@ -254,6 +279,13 @@ mostlyclean-local:
### automake creates libvlcdir after running install-*-local ### automake creates libvlcdir after running install-*-local
### so we have to create it ourselves first ### so we have to create it ourselves first
install-exec-local: all-modules install-exec-local: all-modules
if USE_LIBTOOL
@if test -z "\$(libvlc_LTLIBRARIES)"; then \
z=\$\$(\$(VLC_CONFIG) --list plugin); \
m=\`for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) echo -n " lib\$\${mod}_plugin.la" ;; esac; done\` ; \
\$(MAKE) \$(AM_MAKEFLAGS) libvlc_LTLIBRARIES="\$\$m" install ; \
fi
else
mkdir -p -- "\$(DESTDIR)\$(libvlcdir)" mkdir -p -- "\$(DESTDIR)\$(libvlcdir)"
@z=\$\$(\$(VLC_CONFIG) --list plugin); \ @z=\$\$(\$(VLC_CONFIG) --list plugin); \
for mod in \$(mods); do \ for mod in \$(mods); do \
...@@ -284,8 +316,16 @@ if BUILD_MOZILLA ...@@ -284,8 +316,16 @@ if BUILD_MOZILLA
esac; \ esac; \
done done
endif endif
endif
uninstall-local: uninstall-local:
if USE_LIBTOOL
@if test -z "\$(libvlc_LTLIBRARIES)"; then \
z=\$\$(\$(VLC_CONFIG) --list plugin); \
m=\`for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) echo -n " lib\$\${mod}_plugin.la" ;; esac; done\` ; \
\$(MAKE) \$(AM_MAKEFLAGS) libvlc_LTLIBRARIES="\$\$m" uninstall ; \
fi
else
@z=\$\$(\$(VLC_CONFIG) --list plugin); \ @z=\$\$(\$(VLC_CONFIG) --list plugin); \
for mod in \$(mods); do \ for mod in \$(mods); do \
case "\$\$z " \ case "\$\$z " \
...@@ -315,6 +355,7 @@ if BUILD_MOZILLA ...@@ -315,6 +355,7 @@ if BUILD_MOZILLA
esac; \ esac; \
done done
endif endif
endif
EOF EOF
for mod in $mods for mod in $mods
...@@ -349,15 +390,23 @@ EOF ...@@ -349,15 +390,23 @@ EOF
fi fi
cat >> "${makf}" << EOF cat >> "${makf}" << EOF
lib${mod}_plugin_a_SOURCES = \$(SOURCES_${mod}) lib${mod}_plugin_a_SOURCES = \$(SOURCES_${mod})
lib${mod}_plugin_la_SOURCES = \$(SOURCES_${mod})
EOF EOF
if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF
nodist_lib${mod}_plugin_a_SOURCES = \$(nodist_SOURCES_${mod}) nodist_lib${mod}_plugin_a_SOURCES = \$(nodist_SOURCES_${mod})
nodist_lib${mod}_plugin_la_SOURCES = \$(nodist_SOURCES_${mod})
EOF EOF
fi fi
cat >> "${makf}" << EOF cat >> "${makf}" << EOF
lib${mod}_plugin_a_CFLAGS = \`\$(VLC_CONFIG) --cflags plugin ${mod}\` lib${mod}_plugin_a_CFLAGS = \`\$(VLC_CONFIG) --cflags plugin ${mod}\`
lib${mod}_plugin_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags plugin ${mod}\` lib${mod}_plugin_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags plugin ${mod}\`
lib${mod}_plugin_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags plugin ${mod}\` lib${mod}_plugin_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags plugin ${mod}\`
lib${mod}_plugin_la_CFLAGS = \`\$(VLC_CONFIG) --cflags plugin ${mod}\`
lib${mod}_plugin_la_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags plugin ${mod}\`
lib${mod}_plugin_la_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags plugin ${mod}\`
lib${mod}_plugin_la_LDFLAGS = \`\$(VLC_CONFIG) --libs plugin ${mod}\` \\
-rpath '\$(libvlcdir)' -module -shrext \$(LIBEXT)
lib${mod}_plugin_la_LIBADD = \$(LTLIBVLC)
lib${mod}_pic_a_SOURCES = \$(SOURCES_${mod}) lib${mod}_pic_a_SOURCES = \$(SOURCES_${mod})
EOF EOF
...@@ -370,16 +419,22 @@ lib${mod}_pic_a_CFLAGS = \`\$(VLC_CONFIG) --cflags builtin pic ${mod}\` ...@@ -370,16 +419,22 @@ lib${mod}_pic_a_CFLAGS = \`\$(VLC_CONFIG) --cflags builtin pic ${mod}\`
lib${mod}_pic_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags builtin pic ${mod}\` lib${mod}_pic_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags builtin pic ${mod}\`
lib${mod}_pic_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags builtin pic ${mod}\` lib${mod}_pic_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags builtin pic ${mod}\`
lib${mod}_a_SOURCES = ${PRIVATE}\$(SOURCES_${mod}) lib${mod}_a_SOURCES = \$(SOURCES_${mod})
lib${mod}_la_SOURCES = \$(SOURCES_${mod})
EOF EOF
if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF
nodist_lib${mod}_a_SOURCES = ${PRIVATE}\$(nodist_SOURCES_${mod}) nodist_lib${mod}_a_SOURCES = ${PRIVATE}\$(nodist_SOURCES_${mod})
nodist_lib${mod}_la_SOURCES = ${PRIVATE}\$(nodist_SOURCES_${mod})
EOF EOF
fi fi
cat >> "${makf}" << EOF cat >> "${makf}" << EOF
lib${mod}_a_CFLAGS = \`\$(VLC_CONFIG) --cflags builtin ${mod}\` lib${mod}_a_CFLAGS = \`\$(VLC_CONFIG) --cflags builtin ${mod}\`
lib${mod}_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags builtin ${mod}\` lib${mod}_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags builtin ${mod}\`
lib${mod}_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags builtin ${mod}\` lib${mod}_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags builtin ${mod}\`
lib${mod}_la_CFLAGS = \`\$(VLC_CONFIG) --cflags builtin ${mod}\`
lib${mod}_la_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags builtin ${mod}\`
lib${mod}_la_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags builtin ${mod}\`
lib${mod}_la_LDFLAGS = \`\$(VLC_CONFIG) --libs ${mod}\` -static
EOF EOF
done done
...@@ -436,6 +491,13 @@ if [ "$GETTEXT" != "yes" ]; then ...@@ -436,6 +491,13 @@ if [ "$GETTEXT" != "yes" ]; then
printf "" > ABOUT-NLS printf "" > ABOUT-NLS
fi fi
# Libtoolize directory
${libtoolize} --copy --force
if test -f "ltmain.sh"; then
echo "$0: working around a minor libtool issue"
mv ltmain.sh autotools/
fi
# Do the rest # Do the rest
${autopoint} -f ${autopoint} -f
${aclocal} ${ACLOCAL_ARGS} ${aclocal} ${ACLOCAL_ARGS}
......
dnl Autoconf settings for vlc dnl Autoconf settings for vlc
dnl $Id$
AC_INIT(vlc,0.8.5-svn) AC_INIT(vlc,0.8.5-svn)
VERSION_MAJOR="0" VERSION_MAJOR="0"
...@@ -74,9 +73,15 @@ AC_CHECK_TOOL(STRIP, strip, :) ...@@ -74,9 +73,15 @@ AC_CHECK_TOOL(STRIP, strip, :)
AC_CHECK_TOOL(AR, ar, :) AC_CHECK_TOOL(AR, ar, :)
AC_CHECK_TOOL(LD, ld, :) AC_CHECK_TOOL(LD, ld, :)
dnl Sam, if you think I didn't see that... --Meuuh AC_DISABLE_STATIC
dnl AM_PROG_LIBTOOL AC_LIBTOOL_DLOPEN
AC_PROG_INSTALL AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
AC_ARG_ENABLE(libtool,
[ --enable-libtool use libtool (default disabled, EXPERIMENTAL)],
[],[enable_libtool="no"])
AM_CONDITIONAL(USE_LIBTOOL, [test "${enable_libtool}" != "no"])
dnl Check for compiler properties dnl Check for compiler properties
AC_C_CONST AC_C_CONST
...@@ -290,7 +295,11 @@ AM_GNU_GETTEXT ...@@ -290,7 +295,11 @@ AM_GNU_GETTEXT
if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl) AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
INCLUDES="${INCLUDES} -I\$(top_builddir)/intl" INCLUDES="${INCLUDES} -I\$(top_builddir)/intl"
INCLUDED_LIBINTL="${LIBINTL}" AS_IF([test "${enable_libtool}" != "no"], [
INCLUDED_LIBINTL="${LTLIBINTL}"
],[
INCLUDED_LIBINTL="${LIBINTL}"
])
else else
VLC_ADD_LDFLAGS([vlc],[${LIBINTL}]) VLC_ADD_LDFLAGS([vlc],[${LIBINTL}])
INCLUDED_LIBINTL= INCLUDED_LIBINTL=
...@@ -306,7 +315,11 @@ AS_IF([test "$am_cv_func_iconv" != "yes"], ...@@ -306,7 +315,11 @@ AS_IF([test "$am_cv_func_iconv" != "yes"],
[AC_MSG_ERROR([libiconv is needed for VLC to work properly])]) [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
fi fi
VLC_ADD_CFLAGS([vlc],[${INCICONV}]) VLC_ADD_CFLAGS([vlc],[${INCICONV}])
VLC_ADD_LDFLAGS([vlc],[${LIBICONV}]) AS_IF([test "${enable_libtool}" != "no"], [
VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
],[
VLC_ADD_LDFLAGS([vlc],[${LTLIBICONV}])
])
dnl Check for the need to include the mingwex lib for mingw32 dnl Check for the need to include the mingwex lib for mingw32
if test "${SYS}" = "mingw32" if test "${SYS}" = "mingw32"
...@@ -365,6 +378,7 @@ VLC_LIBRARY_SUFFIX ...@@ -365,6 +378,7 @@ VLC_LIBRARY_SUFFIX
VLC_SYMBOL_PREFIX VLC_SYMBOL_PREFIX
AC_SUBST(SYMPREF) AC_SUBST(SYMPREF)
AS_IF([test "${enable_libtool}" = "no"], [
case "${SYS}" in case "${SYS}" in
mingw32|cygwin) mingw32|cygwin)
VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}]) VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
...@@ -380,6 +394,7 @@ case "${SYS}" in ...@@ -380,6 +394,7 @@ case "${SYS}" in
VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC]) VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
;; ;;
esac esac
])
dnl The -DSYS_FOO flag dnl The -DSYS_FOO flag
CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}" CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
...@@ -945,10 +960,10 @@ AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic], ...@@ -945,10 +960,10 @@ AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
[ac_cv_c_dynamic_no_pic], [ac_cv_c_dynamic_no_pic],
[CFLAGS="${CFLAGS_save} -mdynamic-no-pic" [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)]) AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
if test "${ac_cv_c_dynamic_no_pic}" != "no"; then AS_IF([test "${enable_libtool}" = "no" && test "${ac_cv_c_dynamic_no_pic}" != "no"], [
VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic]) VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic]) VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
fi ])
dnl Check for Darwin plugin linking flags dnl Check for Darwin plugin linking flags
AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error], AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
...@@ -1374,7 +1389,9 @@ dnl ...@@ -1374,7 +1389,9 @@ dnl
build_pic=no build_pic=no
AC_ARG_ENABLE(shared-libvlc, AC_ARG_ENABLE(shared-libvlc,
[ --enable-shared-libvlc shared libvlc (default disabled EXPERIMENTAL)]) [ --enable-shared-libvlc shared libvlc (default disabled EXPERIMENTAL)])
AS_IF([test "${enable_libtool}" != "no" && test "${enable_shared_libvlc}"], [
AC_MSG_ERROR([--enable-shared-libvlc and --enable-libtool are mutually exclusive])
])
dnl dnl
dnl Stream output dnl Stream output
......
...@@ -18,4 +18,4 @@ SOURCES_motiondetect = motiondetect.c ...@@ -18,4 +18,4 @@ SOURCES_motiondetect = motiondetect.c
SOURCES_rv32 = rv32.c SOURCES_rv32 = rv32.c
SOURCES_osdmenu = osdmenu.c SOURCES_osdmenu = osdmenu.c
SOURCES_magnify = magnify.c SOURCES_magnify = magnify.c
noinst_HEADERS += filter_common.h noinst_HEADERS = filter_common.h
...@@ -10,7 +10,7 @@ EXTRA_DIST = extras/COPYING misc/modules_builtin.h.in ...@@ -10,7 +10,7 @@ EXTRA_DIST = extras/COPYING misc/modules_builtin.h.in
BUILT_SOURCES = $(DISTCLEANFILES) $(CLEANFILES) BUILT_SOURCES = $(DISTCLEANFILES) $(CLEANFILES)
DISTCLEANFILES = stamp-api DISTCLEANFILES = stamp-api
CLEANFILES = misc/modules_builtin.h misc/version.c CLEANFILES = misc/modules_builtin.h misc/version.c
MOSTLYCLEANFILES = $(DATA_noinst_libvlc) MOSTLYCLEANFILES = $(DATA_noinst_libvlc) stamp-builtins
TOOLBOX = srcdir=$(top_srcdir) builddir=$(top_builddir) $(top_srcdir)/toolbox TOOLBOX = srcdir=$(top_srcdir) builddir=$(top_builddir) $(top_srcdir)/toolbox
...@@ -119,10 +119,19 @@ misc/version.c: FORCE ...@@ -119,10 +119,19 @@ misc/version.c: FORCE
# shared object, which will make builtins fairly redumdant. Until then, we # shared object, which will make builtins fairly redumdant. Until then, we
# need this workaround. # need this workaround.
stamp-builtins:
if USE_LIBTOOL
@for c in `$(VLC_CONFIG) --libs builtin`; do \
case $$c in \
../modules/*.a) echo $$c ;; \
esac ; \
done | \
sed -e 's/^\(.*\)\/\([^\/]*\)\.a$$/cd \1 \&\& $(MAKE) \2/g' | \
while read cmd; do echo $$cmd$$ext; eval "($$cmd$$ext)" || exit $$? ; done
sed -e 's/^\(.*\)\/\([^\/]*\)\.a$$/cd \1 \&\& $(MAKE) \2.la/g' | \
while read cmd; do echo $$cmd; eval "($$cmd)" || exit $$? ; done
endif
if BUILD_SHARED if BUILD_SHARED
do_builtins = builtins
builtins:
@if test "$(pic)" = "pic"; then ext="_pic.a"; else ext=".a"; fi ; \ @if test "$(pic)" = "pic"; then ext="_pic.a"; else ext=".a"; fi ; \
for c in `$(VLC_CONFIG) --libs builtin`; do \ for c in `$(VLC_CONFIG) --libs builtin`; do \
case $$c in \ case $$c in \
...@@ -131,9 +140,8 @@ builtins: ...@@ -131,9 +140,8 @@ builtins:
done | \ done | \
sed -e 's/^\(.*\)\/\([^\/]*\)\.a$$/cd \1 \&\& $(MAKE) \2/g' | \ sed -e 's/^\(.*\)\/\([^\/]*\)\.a$$/cd \1 \&\& $(MAKE) \2/g' | \
while read cmd; do echo $$cmd$$ext; eval "($$cmd$$ext)" || exit $$? ; done while read cmd; do echo $$cmd$$ext; eval "($$cmd$$ext)" || exit $$? ; done
.PHONY: builtins
endif endif
touch $@
############################################################################### ###############################################################################
# Building libvlc # Building libvlc
...@@ -164,6 +172,15 @@ libvlc_pic_a_CFLAGS = `$(VLC_CONFIG) --cflags vlc pic` ...@@ -164,6 +172,15 @@ libvlc_pic_a_CFLAGS = `$(VLC_CONFIG) --cflags vlc pic`
libvlc_pic_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags vlc pic` libvlc_pic_a_CXXFLAGS = `$(VLC_CONFIG) --cxxflags vlc pic`
libvlc_pic_a_OBJCFLAGS = `$(VLC_CONFIG) --objcflags vlc pic` libvlc_pic_a_OBJCFLAGS = `$(VLC_CONFIG) --objcflags vlc pic`
libvlc_la_SOURCES = $(SOURCES_libvlc)
libvlc_la_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
libvlc_la_CXXFLAGS = `$(VLC_CONFIG) --cxxflags vlc`
libvlc_la_OBJCFLAGS = `$(VLC_CONFIG) --objcflags vlc`
libvlc_la_LDFLAGS = `$(VLC_CONFIG) --libs vlc builtin|sed -e 's/\.a /.la /g'` \
-avoid-version -no-undefined
libvlc_la_DEPENDENCIES = stamp-builtins
if HAVE_BEOS if HAVE_BEOS
OPT_SOURCES_libvlc_beos = $(SOURCES_libvlc_beos) OPT_SOURCES_libvlc_beos = $(SOURCES_libvlc_beos)
endif endif
...@@ -184,6 +201,9 @@ OPT_SOURCES_libvlc_getopt = $(SOURCES_libvlc_getopt) ...@@ -184,6 +201,9 @@ OPT_SOURCES_libvlc_getopt = $(SOURCES_libvlc_getopt)
endif endif
# Build libvlc as a shared library # Build libvlc as a shared library
if USE_LIBTOOL
lib_LTLIBRARIES = libvlc.la
endif
if BUILD_SHARED if BUILD_SHARED
DATA_noinst_libvlc = libvlc$(LIBEXT) DATA_noinst_libvlc = libvlc$(LIBEXT)
if HAVE_WIN32 if HAVE_WIN32
...@@ -194,7 +214,7 @@ OBJECTS_libvlc_so = $(libvlc_pic_a_OBJECTS) ...@@ -194,7 +214,7 @@ OBJECTS_libvlc_so = $(libvlc_pic_a_OBJECTS)
endif endif
endif endif
libvlc$(LIBEXT): $(OBJECTS_libvlc_so) $(do_builtins) libvlc$(LIBEXT): $(OBJECTS_libvlc_so) stamp-builtins
@ldfl="`$(VLC_CONFIG) --libs plugin vlc builtin $(pic)` $(INCLUDED_LIBINTL)" ; \ @ldfl="`$(VLC_CONFIG) --libs plugin vlc builtin $(pic)` $(INCLUDED_LIBINTL)" ; \
case `$(VLC_CONFIG) --linkage vlc builtin` in \ case `$(VLC_CONFIG) --linkage vlc builtin` in \
c++) ld="$(CXXLINK)" ;; \ c++) ld="$(CXXLINK)" ;; \
...@@ -339,13 +359,15 @@ SOURCES_libvlc = \ ...@@ -339,13 +359,15 @@ SOURCES_libvlc = \
$(OPT_SOURCES_libvlc_getopt) \ $(OPT_SOURCES_libvlc_getopt) \
$(NULL) $(NULL)
# Install the symlinks and shared libvlc if !USE_LIBTOOL
# Install shared libvlc
install-exec-local: install-exec-local:
test -z "$(DATA_noinst_libvlc)" || $(INSTALL_PROGRAM) "$(DATA_noinst_libvlc)" "$(DESTDIR)$(libdir)" test -z "$(DATA_noinst_libvlc)" || $(INSTALL_PROGRAM) "$(DATA_noinst_libvlc)" "$(DESTDIR)$(libdir)"
# the opposite of install-{data,exec}-local # the opposite of install-{data,exec}-local
uninstall-local: uninstall-local:
test -z "$(DATA_noinst_libvlc)" || rm -f "$(DESTDIR)$(libdir)/$(DATA_noinst_libvlc)" test -z "$(DATA_noinst_libvlc)" || rm -f "$(DESTDIR)$(libdir)/$(DATA_noinst_libvlc)"
endif
############################################################################### ###############################################################################
# Stamp rules # Stamp rules
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment