X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bootstrap;h=d019670af1fc7030c589624907b6c9b1bb53c145;hb=51318129c09a9621f2e42a13532aed659bc15658;hp=d7d603cfbb5610822d3b512efa23d2b80f661959;hpb=ba98f2bd51b7e1f7a7f5ca69807774894fd05e30;p=vlc diff --git a/bootstrap b/bootstrap index d7d603cfbb..d019670af1 100755 --- a/bootstrap +++ b/bootstrap @@ -6,8 +6,6 @@ ## ## Authors: Sam Hocevar ## Rémi Denis-Courmont -## -## Muahaha! no annoying dollar I dee dollar that causes rebuild at commit if test "$#" != "0"; then echo "Usage: $0" @@ -33,11 +31,11 @@ set -x AUTOMAKESUCKS=no INSTALLSUCKS=no -ACLOCAL_ARGS="-I m4" +ACLOCAL_ARGS="-I m4 ${ACLOCAL_ARGS}" # Check for contrib directory if test -d extras/contrib/bin; then - export PATH=./extras/contrib/bin:$PATH + export PATH="`pwd`/extras/contrib/bin:$PATH" if test -d extras/contrib/share/aclocal; then ACLOCAL_ARGS="${ACLOCAL_ARGS} -I extras/contrib/share/aclocal" fi @@ -48,14 +46,40 @@ if test -d extras/contrib/bin; then export LIBRARY_PATH=./extras/contrib/lib:$LIBRARY_PATH export BELIBRARIES=./extras/contrib/lib:$BELIBRARIES fi +elif test ".`uname -s`" = ".Darwin"; then + set +x + echo "" + echo "ERR: Contribs haven't been built" + echo "ERR: Please run:" + echo "ERR: " + echo "ERR: 'cd extras/contrib && ./bootstrap && make && cd ../..'" + echo "ERR: " + echo "ERR: Make sure fink has been disabled too." + echo "" + set -x + exit 1 fi +# Check for autoconf +rm -f m4/autoconf260.m4 +case "$(autoconf --version|head -n 1)" in + *2.5[012345678]*) + echo "Hey, your autoconf is quite old. Update it." >&2 + exit 1 + ;; + + *2.59*) + echo "Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP." + cp -f extras/m4/autoconf260.m4 m4/ + ;; +esac + # Check for automake amvers="no" -for v in "-1.9" "19" "-1.8" "18" "-1.7" "17"; do +for v in "-1.10" "110" "-1.9" "19"; do if automake${v} --version >/dev/null 2>&1; then amsuff="${v}" - amvers="${v}" + amvers="`echo ${v} | sed -e 's/^-//'`" break fi done @@ -66,16 +90,18 @@ if test "${amvers}" = "no" && automake --version > /dev/null 2>&1; then fi case "${amvers}" in - no|1.[0123456]|1.[0123456].*|1[0123456]) + no|1.[012345678]|1.[0123456].*|1[0123456]|1.[0123456]-*) set +x - echo "$0: you need automake version 1.7 or later" + echo "$0: you need automake version 1.9 or later" exit 1 ;; esac # Check for libtool libtoolize="no" -if glibtoolize --version >/dev/null 2>&1; then +if test -x extras/contrib/bin/libtoolize; then + libtoolize="extras/contrib/bin/libtoolize" +elif glibtoolize --version >/dev/null 2>&1; then libtoolize="glibtoolize" elif libtoolize --version >/dev/null 2>&1; then libtoolize="libtoolize" @@ -113,8 +139,8 @@ else PKGCONFIG=no fi -aclocal=aclocal${amvers} -automake=automake${amvers} +aclocal=aclocal${amsuff} +automake=automake${amsuff} autoconf=autoconf autoheader=autoheader @@ -145,21 +171,7 @@ AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) EOF fi -rm -f m4/private.m4-tmp1 && cat > m4/private.m4-tmp1 << EOF -dnl The required AM_CONDITIONAL calls -dnl XXX: too many conditionals make the build very slow, disabled them -AC_DEFUN([VLC_CONDITIONALS], [ -EOF -rm -f m4/private.m4-tmp2 && cat > m4/private.m4-tmp2 << EOF -dnl The required AC_SUBST calls -AC_DEFUN([VLC_SUBSTS], [ -EOF -rm -f m4/private.m4-tmp3 && cat > m4/private.m4-tmp3 << EOF -dnl The required AC_OUTPUT calls -dnl XXX: this feature is only supported starting from automake-1.7 -AC_DEFUN([VLC_MAKEFILES], [AC_OUTPUT([ -EOF -rm -f m4/private.m4-tmp4 && cat > m4/private.m4-tmp4 << EOF +cat >> m4/private.m4 << EOF dnl Helper macro for vlc-config generation AC_DEFUN([VLC_CONFIG_HELPER], [ cat >> vlc-config.in << BLAH @@ -182,12 +194,10 @@ do # automake will not recurse for make dist if we don't define SUBDIRS = . 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 lib${mod}.a" - extra_ltlibs="${extra_ltlibs} lib${mod}_plugin.la lib${mod}_builtin.la" + extra_ltlibs="${extra_ltlibs} lib${mod}_plugin.la" done rm -f "${makf}" && cat > "${makf}" << EOF @@ -199,26 +209,28 @@ mods = ${mods} NULL = libvlc_LTLIBRARIES = -noinst_LTLIBRARIES = EXTRA_DIST = Modules.am BUILT_SOURCES = -clean_modules = +CLEANFILES = SUBDIRS = ${subdirs} -SUFFIXES = _plugin\$(LIBEXT) _plugin.a +SUFFIXES = _plugin\$(LIBEXT) _plugin.la libvlcdir = \$(libdir)/vlc/\$(basedir) -EXTRA_LIBRARIES = ${extra_libs} EXTRA_LTLIBRARIES = ${extra_ltlibs} include Modules.am -LTLIBVLC = \$(top_builddir)/src/libvlc.la +LTLIBVLC = -L\$(top_builddir)/src -lvlc -if BUILD_SHARED -LIBVLC = -L\$(top_builddir)/src -lvlc -LIBADD = \$(LIBVLC) +AM_LDFLAGS = -rpath '\$(libvlcdir)' -avoid-version \\ + -module -no-undefined -shrext \$(LIBEXT) +if HAVE_COMPILER_EXPORT +AM_LDFLAGS += -export-dynamic +else +AM_LDFLAGS += -export-symbol-regex ^\$(VLC_ENTRY)\$\$ endif +AM_LIBADD = \$(LTLIBVLC) all: all-modules @@ -227,24 +239,15 @@ nice: # 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}_builtin.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; \\ + z=\$\$(\$(VLC_CONFIG) --list plugin); for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) echo lib\$\${mod}_plugin.la;; esac; done; \\ \`; 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): +_plugin.la_plugin\$(LIBEXT): @mod="\$*" ; mod=\$\${mod#lib} ; \ - ldfl="\`\$(VLC_CONFIG) --libs plugin \$\$mod\` \$(LIBADD) -u \$(SYMPREF)\$(VLC_ENTRY)" ; \ + ldfl="\`\$(VLC_CONFIG) --libs plugin \$\$mod\` \$(LIBVLC) -u \$(SYMPREF)\$(VLC_ENTRY)" ; \ case \`\$(VLC_CONFIG) --linkage \$\$mod\` in \\ c++) ld="\$(CXXLINK)" ;; \ objc) ld="\$(OBJCLINK)" ;; \ @@ -252,10 +255,7 @@ _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 test -f "\$@.exe"; then mv -f -- "\$@.exe" "\$@"; fi if MAINTAINER_MODE \$(srcdir)/Makefile.am: \$(srcdir)/Modules.am \$(top_srcdir)/bootstrap @@ -263,74 +263,25 @@ if MAINTAINER_MODE endif mostlyclean-local: -if USE_LIBTOOL - -rm -f *.la -else - -rm -f *.a *\$(LIBEXT) -endif - -clean-local: \$(clean_modules) + -rm -f -- *.la ### automake creates libvlcdir after running install-*-local ### so we have to create it ourselves first 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\` ; \ test -z "\$\$m" || \ \$(MAKE) \$(AM_MAKEFLAGS) libvlc_LTLIBRARIES="\$\$m" install-libvlcLTLIBRARIES || exit \$\$? ; \ fi -else - mkdir -p -- "\$(DESTDIR)\$(libvlcdir)" - @z=\$\$(\$(VLC_CONFIG) --list plugin); \ - for mod in \$(mods); do \ - case "\$\$z " \ - in *\ \$\${mod}\ *) \ - echo \$(INSTALL_PROGRAM) "lib\$\${mod}_plugin\$(LIBEXT)" "\$(DESTDIR)\$(libvlcdir)/" ; \ - \$(INSTALL_PROGRAM) "lib\$\${mod}_plugin\$(LIBEXT)" "\$(DESTDIR)\$(libvlcdir)/" || exit \$\$?; \ - ;; \ - esac; \ - done - @z=\$\$(\$(VLC_CONFIG) --list builtin); \ - for mod in \$(mods); do \ - case "\$\$z " \ - in *\ \$\${mod}\ *) \ - echo \$(INSTALL_DATA) "lib\$\${mod}.a" "\$(DESTDIR)\$(libdir)/vlc/" ; \ - \$(INSTALL_DATA) "lib\$\${mod}.a" "\$(DESTDIR)\$(libdir)/vlc/" || exit \$\$?; \ - ;; \ - esac; \ - done -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-libvlcLTLIBRARIES || exit \$\$?; \ fi -else - @z=\$\$(\$(VLC_CONFIG) --list plugin); \ - for mod in \$(mods); do \ - case "\$\$z " \ - in *\ \$\${mod}\ *) \ - echo rm -f "\$(DESTDIR)\$(libvlcdir)/lib\$\${mod}_plugin\$(LIBEXT)" ; \ - rm -f "\$(DESTDIR)\$(libvlcdir)/lib\$\${mod}_plugin\$(LIBEXT)" || true; \ - ;; \ - esac; \ - done - @z=\$\$(\$(VLC_CONFIG) --list builtin); \ - for mod in \$(mods); do \ - case "\$\$z " \ - in *\ \$\${mod}\ *) \ - echo rm -f "\$(DESTDIR)\$(libdir)/vlc/lib\$\${mod}.a" ; \ - rm -f "\$(DESTDIR)\$(libdir)/vlc/lib\$\${mod}.a" || true; \ - ;; \ - esac; \ - done -endif EOF for mod in $mods @@ -338,7 +289,7 @@ EOF if grep '^nodist_SOURCES_'${mod}'' < "${modf}" >/dev/null 2>&1; then NODIST=''; else NODIST='#'; fi - cat >> m4/private.m4-tmp4 << EOF + cat >> m4/private.m4 << EOF ${mod}) list="\\\${list} ${dir}/lib${mod}" ;; EOF # Generation of modules/**/Makefile.am @@ -352,76 +303,31 @@ EOF # The ${mod} plugin EOF - if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF -clean_modules += clean-${mod} -clean-${mod}: - -test -z "\$(nodist_SOURCES_${mod})" || rm -f \$(nodist_SOURCES_${mod}) - -EOF - fi - if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF -BUILT_SOURCES += \$(B${mod}) -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}) +CLEANFILES += "\$(nodist_SOURCES_${mod})" +BUILT_SOURCES += \$(B${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)' -avoid-version -module -shrext \$(LIBEXT) -lib${mod}_plugin_la_LIBADD = \$(LTLIBVLC) - -lib${mod}_a_SOURCES = \$(SOURCES_${mod}) -lib${mod}_builtin_la_SOURCES = \$(SOURCES_${mod}) -EOF - if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF -nodist_lib${mod}_a_SOURCES = \$(nodist_SOURCES_${mod}) -nodist_lib${mod}_builtin_la_SOURCES = \$(nodist_SOURCES_${mod}) -EOF - fi - cat >> "${makf}" << EOF -lib${mod}_a_CFLAGS = \`\$(VLC_CONFIG) --cflags builtin \$(pic) ${mod}\` -lib${mod}_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags builtin \$(pic) ${mod}\` -lib${mod}_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags builtin \$(pic) ${mod}\` -lib${mod}_builtin_la_CFLAGS = \`\$(VLC_CONFIG) --cflags builtin ${mod}\` -lib${mod}_builtin_la_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags builtin ${mod}\` -lib${mod}_builtin_la_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags builtin ${mod}\` - +lib${mod}_plugin_la_LDFLAGS = \`\$(VLC_CONFIG) --libs plugin ${mod}\` \$(AM_LDFLAGS) +lib${mod}_plugin_la_LIBADD = \$(AM_LIBADD) EOF done done -cat >> m4/private.m4-tmp1 << EOF -]) -EOF -cat m4/private.m4-tmp1 >> m4/private.m4 && rm -f m4/private.m4-tmp1 -cat >> m4/private.m4-tmp2 << EOF -]) -EOF -cat m4/private.m4-tmp2 >> m4/private.m4 && rm -f m4/private.m4-tmp2 -cat >> m4/private.m4-tmp3 << EOF -])]) -EOF -cat m4/private.m4-tmp3 >> m4/private.m4 && rm -f m4/private.m4-tmp3 -cat >> m4/private.m4-tmp4 << EOF +printf "\n" + +cat >> m4/private.m4 << EOF BLAH ]) EOF -cat m4/private.m4-tmp4 >> m4/private.m4 && rm -f m4/private.m4-tmp4 - -echo " done." ### ### classic bootstrap stuff @@ -461,6 +367,7 @@ fi # Do the rest ${autopoint} -f +rm -f po/Makevars.template ${aclocal} ${ACLOCAL_ARGS} ${autoconf} ${autoheader} @@ -471,7 +378,6 @@ ${automake} --add-missing --copy -Wall ## rm -f vlc-config.in vlc-config rm -f src/misc/modules_builtin.h -rm -f mozilla/vlcintf.h # Shut up set +x