X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bootstrap;h=f5dcfa54f106ca9b0b56a53eac09300931d98ec3;hb=0640b738e27b650c51de19ef5e0aaff7c5302a97;hp=96564eb8ad16b795452d8f9df8c8698a59f36d5a;hpb=c4a560fb1d47c3e77925fd96c1a9132cea239ae6;p=vlc diff --git a/bootstrap b/bootstrap index 96564eb8ad..f5dcfa54f1 100755 --- a/bootstrap +++ b/bootstrap @@ -3,7 +3,7 @@ ## bootstrap file for the VLC media player ## $Id$ ## -## Copyright (C) 2005 the VideoLAN team +## Copyright (C) 2005-2006 the VideoLAN team ## ## Initial author: Sam Hocevar @@ -36,7 +36,9 @@ ACLOCAL_ARGS="-I m4" # Check for contrib directory if test -d extras/contrib/bin; then export PATH=./extras/contrib/bin:$PATH - ACLOCAL_ARGS="${ACLOCAL_ARGS} -I extras/contrib/share/aclocal" + if test -d extras/contrib/share/aclocal; then + ACLOCAL_ARGS="${ACLOCAL_ARGS} -I extras/contrib/share/aclocal" + fi if test ".`uname -s`" = ".Darwin"; then export LD_LIBRARY_PATH=./extras/contrib/lib:$LD_LIBRARY_PATH export DYLD_LIBRARY_PATH=./extras/contrib/lib:$DYLD_LIBRARY_PATH @@ -48,30 +50,12 @@ fi # Check for automake amvers="none" -if automake-1.8 --version >/dev/null 2>&1; then - amvers="-1.8" - # If we also have 1.6 (>> 1.6.1), use it instead because it is faster - if automake-1.6 --version >/dev/null 2>&1; then - if expr "`automake-1.6 --version | sed -e '1s/[^0-9]*//' -e q`" ">" "1.6.1" > /dev/null 2>&1; then - amvers="-1.6" - fi - fi -elif automake-1.9 --version >/dev/null 2>&1; then +if automake-1.9 --version >/dev/null 2>&1; then amvers="-1.9" - # If we also have 1.6 (>> 1.6.1), use it instead because it is faster - if automake-1.6 --version >/dev/null 2>&1; then - if expr "`automake-1.6 --version | sed -e '1s/[^0-9]*//' -e q`" ">" "1.6.1" > /dev/null 2>&1; then - amvers="-1.6" - fi - fi +elif automake-1.8 --version >/dev/null 2>&1; then + amvers="-1.8" elif automake-1.7 --version >/dev/null 2>&1; then amvers="-1.7" - # If we also have 1.6 (>> 1.6.1), use it instead because it is faster - if automake-1.6 --version >/dev/null 2>&1; then - if expr "`automake-1.6 --version | sed -e '1s/[^0-9]*//' -e q`" ">" "1.6.1" > /dev/null 2>&1; then - amvers="-1.6" - fi - fi elif automake-1.6 --version >/dev/null 2>&1; then amvers="-1.6" if expr "`automake-1.6 --version | sed -e '1s/[^0-9]*//' -e q`" "<=" "1.6.1" > /dev/null 2>&1; then @@ -96,7 +80,21 @@ fi if test "${amvers}" = "none"; then 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 fi @@ -113,9 +111,9 @@ else autopoint=: GETTEXT=old fi;else - # we don't have gettext. grmbl. try to continue anyway. - autopoint=: - GETTEXT=no + set +x + echo "you need gettextize (package gettext-devel or gettext)" + exit 1 fi # Check for pkg-config @@ -145,8 +143,8 @@ dnl Private VLC macros - generated by bootstrap EOF if [ "${PKGCONFIG}" = "no" ]; then cat >> m4/private.m4 << EOF -dnl User does not have pkg-config, so this is a no-op -AC_DEFUN([PKG_CHECK_MODULES], [:], [], [], []) +dnl User does not have pkg-config, so assume package was not found +AC_DEFUN([PKG_CHECK_MODULES],[ifelse([\$4], , :, [\$4])]) EOF fi @@ -196,10 +194,11 @@ do subdirs="`sed -ne 's,'modules/${dir}'/\([^/]*\)/Makefile,\1,p' configure.ac | xargs`" mods="`sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < "${modf}" | xargs`" extra_libs="" + extra_ltlibs="" for mod in $mods do - extra_libs="${extra_libs} lib${mod}_plugin.a" - extra_libs="${extra_libs} lib${mod}.a lib${mod}_pic.a" + extra_libs="${extra_libs} lib${mod}_plugin.a lib${mod}.a lib${mod}_pic.a" + extra_ltlibs="${extra_ltlibs} lib${mod}_plugin.la lib${mod}.la" done rm -f "${makf}" && cat > "${makf}" << EOF @@ -210,46 +209,49 @@ basedir = ${basedir} mods = ${mods} NULL = -libvlc_LIBRARIES = -noinst_LIBRARIES = -noinst_HEADERS = +libvlc_LTLIBRARIES = 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) EXTRA_LIBRARIES = ${extra_libs} +EXTRA_LTLIBRARIES = ${extra_ltlibs} + include Modules.am -if !BUILD_MOZILLA -pic = no -else -if HAVE_WIN32 -### There's no need for pic code on win32 so get rid of this to substantially -### reduce the compilation time. -pic = no -endif +LTLIBVLC = \$(top_builddir)/src/libvlc.la + +if BUILD_SHARED +LIBVLC = \$(top_builddir)/src/libvlc\$(LIBEXT) +LIBADD = \$(LIBVLC) endif all: all-modules # Find out which modules were enabled and tell make to build them 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=\`\\ 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 "\$(pic)" != "no"; 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; \\ test -z "\$\$fail" +endif # 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)" ; \ + @mod="\$*" ; mod=\$\${mod#lib} ; \ + ldfl="\`\$(VLC_CONFIG) --libs plugin \$\$mod\` \$(LIBADD) -u \$(SYMPREF)\$(VLC_ENTRY)" ; \ case \`\$(VLC_CONFIG) --linkage \$\$mod\` in \\ c++) ld="\$(CXXLINK)" ;; \ objc) ld="\$(OBJCLINK)" ;; \ @@ -257,9 +259,15 @@ _plugin.a_plugin\$(LIBEXT): esac ; \ echo \$\$ld \$< \$\$ldfl ; \ \$\$ld \$< \$\$ldfl +#ifneq (,\$(findstring cygwin,\$(host))) +# mv -f "\$@.exe" "\$@" +#endif + @if test -f "\$@.exe"; then mv -f "\$@.exe" "\$@"; fi +if MAINTAINER_MODE \$(srcdir)/Makefile.am: \$(srcdir)/Modules.am \$(top_srcdir)/bootstrap cd \$(top_srcdir) && \$(SHELL) ./bootstrap +endif mostlyclean-local: -rm -f *.a *\$(LIBEXT) @@ -267,13 +275,21 @@ mostlyclean-local: ### automake creates libvlcdir after running install-*-local ### so we have to create it ourselves first install-exec-local: all-modules - \$(mkdir_p) "\$(DESTDIR)\$(libvlcdir)" +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\` ; \ + test -z "\$\$m" || \ + \$(MAKE) \$(AM_MAKEFLAGS) libvlc_LTLIBRARIES="\$\$m" install ; \ + fi +else + mkdir -p -- "\$(DESTDIR)\$(libvlcdir)" @z=\$\$(\$(VLC_CONFIG) --list plugin); \ for mod in \$(mods); do \ case "\$\$z " \ in *\ \$\${mod}\ *) \ - echo \$(INSTALL_PROGRAM) -m 755 "lib\$\${mod}_plugin\$(LIBEXT)" "\$(DESTDIR)\$(libvlcdir)/" ; \ - \$(INSTALL_PROGRAM) -m 755 "lib\$\${mod}_plugin\$(LIBEXT)" "\$(DESTDIR)\$(libvlcdir)/" || exit \$\$?; \ + echo \$(INSTALL_PROGRAM) "lib\$\${mod}_plugin\$(LIBEXT)" "\$(DESTDIR)\$(libvlcdir)/" ; \ + \$(INSTALL_PROGRAM) "lib\$\${mod}_plugin\$(LIBEXT)" "\$(DESTDIR)\$(libvlcdir)/" || exit \$\$?; \ ;; \ esac; \ done @@ -281,8 +297,8 @@ install-exec-local: all-modules for mod in \$(mods); do \ case "\$\$z " \ in *\ \$\${mod}\ *) \ - echo \$(INSTALL_DATA) -m 644 "lib\$\${mod}.a" "\$(DESTDIR)\$(libdir)/vlc/" ; \ - \$(INSTALL_DATA) -m 644 "lib\$\${mod}.a" "\$(DESTDIR)\$(libvlcdir)/" || exit \$\$?; \ + echo \$(INSTALL_DATA) "lib\$\${mod}.a" "\$(DESTDIR)\$(libdir)/vlc/" ; \ + \$(INSTALL_DATA) "lib\$\${mod}.a" "\$(DESTDIR)\$(libdir)/vlc/" || exit \$\$?; \ ;; \ esac; \ done @@ -291,14 +307,23 @@ if BUILD_MOZILLA for mod in \$(mods); do \ case "\$\$z " \ in *\ \$\${mod}\ *) \ - echo \$(INSTALL_DATA) -m 644 "lib\$\${mod}_pic.a" "\$(DESTDIR)\$(libdir)/vlc/" ; \ - \$(INSTALL_DATA) -m 644 "lib\$\${mod}_pic.a" "\$(DESTDIR)\$(libvlcdir)/" || exit \$\$?; \ + echo \$(INSTALL_DATA) "lib\$\${mod}_pic.a" "\$(DESTDIR)\$(libdir)/vlc/" ; \ + \$(INSTALL_DATA) "lib\$\${mod}_pic.a" "\$(DESTDIR)\$(libdir)/vlc/" || exit \$\$?; \ ;; \ esac; \ done endif +endif 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\` ; \ + test -z "\$\$m" || \ + \$(MAKE) \$(AM_MAKEFLAGS) libvlc_LTLIBRARIES="\$\$m" uninstall ; \ + fi +else @z=\$\$(\$(VLC_CONFIG) --list plugin); \ for mod in \$(mods); do \ case "\$\$z " \ @@ -328,6 +353,7 @@ if BUILD_MOZILLA esac; \ done endif +endif EOF for mod in $mods @@ -362,15 +388,23 @@ EOF fi cat >> "${makf}" << EOF lib${mod}_plugin_a_SOURCES = \$(SOURCES_${mod}) +lib${mod}_plugin_la_SOURCES = \$(SOURCES_${mod}) EOF if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF nodist_lib${mod}_plugin_a_SOURCES = \$(nodist_SOURCES_${mod}) +nodist_lib${mod}_plugin_la_SOURCES = \$(nodist_SOURCES_${mod}) EOF fi cat >> "${makf}" << EOF 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}_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}) EOF @@ -383,16 +417,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_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 if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF nodist_lib${mod}_a_SOURCES = ${PRIVATE}\$(nodist_SOURCES_${mod}) +nodist_lib${mod}_la_SOURCES = ${PRIVATE}\$(nodist_SOURCES_${mod}) EOF fi cat >> "${makf}" << EOF 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}_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 done @@ -425,7 +465,7 @@ set -x # remove autotools cruft rm -f aclocal.m4 configure config.log config.h config.h.in -rm -Rf autom4te.cache +rm -Rf autom4te*.cache # remove old autotools extra cruft rm -f config.guess config.sub missing mkinstalldirs compile depcomp install-sh # remove new autotools extra cruft @@ -449,6 +489,13 @@ if [ "$GETTEXT" != "yes" ]; then printf "" > ABOUT-NLS 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 ${autopoint} -f ${aclocal} ${ACLOCAL_ARGS} @@ -469,17 +516,8 @@ set +x ## ## Tell the user about gettext, pkg-config and sed ## -case "${GETTEXT}" in - yes) ;; - no) cat << EOF - -=========================================================== -IMPORTANT NOTE: you do not have gettext installed on your -system. The vlc build will work, but you will not have -internationalization support. We suggest installing gettext. -EOF - ;; - old) cat << EOF +if [ "${GETTEXT}" = "old" ]; then + cat << EOF ========================================================== NOTE: you have an old version of gettext installed on your @@ -487,24 +525,20 @@ system. The vlc build will work, but if your system does not have libintl you will not have internationalization support. We suggest upgrading to gettext 0.11.5 or later. EOF - ;; -esac +fi -case "$PKGCONFIG" in - yes) ;; - no) cat << EOF +if [ "$PKGCONFIG" = "no" ]; then + cat << EOF ============================================================== NOTE: you do not have the "pkg-config" utility on your system; detection of the Gtk-2.0 and GNOME 2.0 libraries will not be reliable. EOF - ;; -esac +fi -case "$AUTOMAKESUCKS" in - no) ;; - yes) cat << EOF +if [ "$AUTOMAKESUCKS" = "yes" ]; then + cat << EOF ============================================================= IMPORTANT NOTE: your version of automake has a bug which will @@ -512,12 +546,10 @@ prevent proper plugin compilation. Either compile VLC with the --disable-plugins flag, or use a version of automake newer than 1.6.1 (1.6.2 is OK, and so are the 1.5 series). EOF - ;; -esac +fi -case "$INSTALLSUCKS" in - no) ;; - yes) cat << EOF +if [ "$INSTALLSUCKS" = "yes" ]; then + cat << EOF ============================================================= IMPORTANT NOTE: your version of automake has a bug which will @@ -525,6 +557,5 @@ prevent proper installation. Do not use "make install" with this version of automake, or use a version of automake newer than 1.5 (such as 1.6 or 1.7). EOF - ;; -esac +fi