]> git.sesse.net Git - vlc/blobdiff - bootstrap
python/setup.py: use vlc-config --version to determine version and misc. doc updates
[vlc] / bootstrap
index fc7f4c3bb98bdfac291b38df3e3bb0f4b78b7ead..78dd8affaa5d4bd35e315a2c4a71816d4dd18fe0 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -1,14 +1,16 @@
 #! /bin/sh
 
 ##  bootstrap file for the VLC media player
 #! /bin/sh
 
 ##  bootstrap file for the VLC media player
-##  $Id: bootstrap,v 1.51 2003/06/23 10:21:25 sam Exp $
+##  $Id$
 ##
 ##
-##  Authors: Samuel Hocevar <sam@zoy.org>
+## Copyright (C) 2005 the VideoLAN team
+##
+##  Initial author: Sam Hocevar <sam@zoy.org>
 
 
-if test x$# != x0; then
-  echo "Usage: ./bootstrap"
-  echo "  Calls automake, autoconf, autoheader, autopoint and other auto* to build"
-  echo "  Makefiles."
+if test "$#" != "0"; then
+  echo "Usage: $0"
+  echo "  Calls automake, autoconf, autoheader, autopoint and other auto* to generate"
+  echo "  m4 macros and prepare Makefiles."
   exit 1
 fi
 
   exit 1
 fi
 
@@ -20,152 +22,375 @@ export LANG
 CYGWIN=binmode
 export CYGWIN
 
 CYGWIN=binmode
 export CYGWIN
 
+set -e
+set -x
+
 ##
 ##
-## Naively assume our system doesn't suck. Unfortunately it seldom doesn't.
+## Check for various tools
 ##
 ##
-SEDSUCKS=no
-PERLSUCKS=no
 AUTOMAKESUCKS=no
 INSTALLSUCKS=no
 
 AUTOMAKESUCKS=no
 INSTALLSUCKS=no
 
-##
-## Check that our tools don't suck
-##
-if test ! 20000 -eq `perl -e 'printf "%s\n","a"x20000' | sed -e 's/.//' 2>/dev/null | wc -c`
-then
-  SEDSUCKS=yes
+ACLOCAL_ARGS="-I m4"
+
+# Check for contrib directory
+if test -d extras/contrib/bin; then
+  export PATH=./extras/contrib/bin:$PATH
+  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
+  elif test ".`uname -s`" = ".BeOS"; then
+    export LIBRARY_PATH=./extras/contrib/lib:$LIBRARY_PATH
+    export BELIBRARIES=./extras/contrib/lib:$BELIBRARIES
+  fi
+fi
+
+# Check for automake
+amvers="none"
+if automake-1.9 --version >/dev/null 2>&1; then
+  amvers="-1.9"
+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"
+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
+    AUTOMAKESUCKS=yes
+  fi
+elif automake-1.5 --version >/dev/null 2>&1; then
+  INSTALLSUCKS=yes
+  amvers="-1.5"
+elif automake --version > /dev/null 2>&1; then
+  amvers=""
+  case "`automake --version | sed -e '1s/[^0-9]*//' -e q`" in
+    0|0.*|1|1.[01234]|1.[01234][-.]*)
+      amvers="none" ;;
+    1.5|1.5.*)
+      INSTALLSUCKS=yes ;;
+    1.6|1.6.0|1.6.1)
+      AUTOMAKESUCKS=yes ;;
+    1.9|1.9.2)
+      ;;
+  esac
+fi
+
+if test "${amvers}" = "none"; then
+  set +x
+  echo "you need automake version 1.5 or later"
+  exit 1
+fi
+
+# Check for gettext
+if gettextize --version >/dev/null 2>&1; then
+# Autopoint is available from 0.11.3, but we need 0.11.5
+if expr `gettextize --version | sed -e '1s/[^0-9]*//' -e q` \
+        '>=' 0.11.5 >/dev/null 2>&1; then
+  # We have gettext, and a recent version! Everything is cool.
+  autopoint=autopoint
+  GETTEXT=yes
+else
+  # User's gettext is too old. try to continue anyway.
+  autopoint=:
+  GETTEXT=old
+fi;else
+  set +x
+  echo "you need gettextize (package gettext-devel or gettext)"
+  exit 1
+fi
+
+# Check for pkg-config
+if pkg-config --version >/dev/null 2>&1; then
+  # We have pkg-config, everything is cool.
+  PKGCONFIG=yes
+else
+  PKGCONFIG=no
 fi
 
 fi
 
-# Mac OS X stacksize sucks
-if test x`uname -s` = xDarwin; then ulimit -s 20000; fi
+aclocal=aclocal${amvers}
+automake=automake${amvers}
+autoconf=autoconf
+autoheader=autoheader
 
 ##
 ## Generate the modules makefile, by parsing modules/**/Modules.am
 ##
 
 
 ##
 ## Generate the modules makefile, by parsing modules/**/Modules.am
 ##
 
-printf "generating Modules.am and vlc.m4"
+set +x
+echo "generating modules/**/Makefile.am and m4/private.m4"
 
 
-# Prepare Modules.am and m4/vlc.m4
-rm -f Modules.am && echo > Modules.am
-rm -f m4/vlc.m4 && cat > m4/vlc.m4 << EOF
+# Prepare m4/private.m4
+rm -f m4/private.m4 && cat > m4/private.m4 << EOF
 dnl  Private VLC macros - generated by bootstrap
 
 dnl  Private VLC macros - generated by bootstrap
 
-dnl  The required AM_CONDITIONAL an AC_SUBST calls
-AC_DEFUN([VLC_VARIABLES], [
 EOF
 
 EOF
 
-ALL_FLAGS="`sed -n -e '/^[^=A-Z]*[A-Z]*FLAGS_[^=]*=/s/[^=A-Z]*\([A-Z]*FLAGS_[^=]*=\).*/\1/p' < configure.ac | sort | uniq`"
+if [ "${PKGCONFIG}" = "no" ]; then cat >> m4/private.m4 << EOF
+dnl  User does not have pkg-config, so assume package was not found
+AC_DEFUN([PKG_CHECK_MODULES],[ifelse([\$4], , :, [\$4])])
+
+EOF
+fi
+
+if [ "${GETTEXT}" != "yes" ]; then cat >> m4/private.m4 << EOF
+dnl  User does not have gettext, so this is a no-op
+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
+dnl  Helper macro for vlc-config generation
+AC_DEFUN([VLC_CONFIG_HELPER], [
+  cat >> vlc-config.in << BLAH
+EOF
 
 modules=""
 
 modules=""
-for mf in `sed -ne 's@[^a-z]*\([^ ]*\)am.*@modules/\1am@p' < modules/Makefile.am`
+
+rm -f modules/Makefile.am && cat > modules/Makefile.am << EOF
+# Autogenerated by bootstrap - DO NOT EDIT
+EXTRA_DIST = LIST
+SUBDIRS = `sed -ne 's,modules/\([^/]*\)/Makefile,\1,p' configure.ac | xargs`
+EOF
+
+for dir in `sed -ne 's,modules/\(.*\)/Makefile,\1,p' configure.ac`
 do
   printf "."
 do
   printf "."
-  dir=`echo ${mf} | sed -e 's@\(.*\)/.*@\1@'`
-  topdir=`echo ${dir} | cut -f2 -d/`
-  sym=`echo ${dir} | sed -e 'y@/@_@'`
-  cat >> Modules.am << EOF
-# Directory ${dir}
+  modf="modules/${dir}/Modules.am"
+  makf="modules/${dir}/Makefile.am"
+  basedir="`echo "${dir}" | cut -f1 -d/`"
+  # 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=""
+  for mod in $mods
+  do
+    extra_libs="${extra_libs} lib${mod}_plugin.a"
+    extra_libs="${extra_libs} lib${mod}.a lib${mod}_pic.a"
+  done
+  rm -f "${makf}" && cat > "${makf}" << EOF
+
+# ${makf} automatically generated from ${modf} by bootstrap
+# DO NOT EDIT - edit Modules.am or \$(top_srcdir)/bootstrap instead
+
+basedir = ${basedir}
+mods = ${mods}
+
+NULL =
+libvlc_LIBRARIES =
+noinst_LIBRARIES =
+noinst_HEADERS =
+EXTRA_DIST = Modules.am
+BUILT_SOURCES =
+SUBDIRS = ${subdirs}
+SUFFIXES = _plugin\$(LIBEXT) _plugin.a
+
+libvlcdir = \$(libdir)/vlc/\$(basedir)
+
+EXTRA_LIBRARIES = ${extra_libs}
+include Modules.am
+
+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; \\
+       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; \\
+       \`; 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#lib} ; \
+       ldfl="\`\$(VLC_CONFIG) --libs plugin \$\$mod\` -u \$(SYMPREF)\$(VLC_ENTRY)" ; \
+       case \`\$(VLC_CONFIG) --linkage \$\$mod\` in \\
+         c++)  ld="\$(CXXLINK)" ;; \
+         objc) ld="\$(OBJCLINK)" ;; \
+         c|*)  ld="\$(LINK)" ;; \
+       esac ; \
+       echo \$\$ld \$< \$\$ldfl ; \
+       \$\$ld \$< \$\$ldfl
+
+if MAINTAINER_MODE
+\$(srcdir)/Makefile.am: \$(srcdir)/Modules.am \$(top_srcdir)/bootstrap
+       cd \$(top_srcdir) && \$(SHELL) ./bootstrap
+endif
+
+mostlyclean-local:
+       -rm -f *.a *\$(LIBEXT)
+
+### automake creates libvlcdir after running install-*-local
+### so we have to create it ourselves first
+install-exec-local: all-modules
+       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
+if BUILD_MOZILLA
+       @z=\$\$(\$(VLC_CONFIG) --list builtin); \
+       for mod in \$(mods); do \
+         case "\$\$z " \
+           in *\ \$\${mod}\ *) \
+             echo \$(INSTALL_DATA) "lib\$\${mod}_pic.a" "\$(DESTDIR)\$(libdir)/vlc/" ; \
+             \$(INSTALL_DATA) "lib\$\${mod}_pic.a" "\$(DESTDIR)\$(libdir)/vlc/" || exit \$\$?; \
+             ;; \
+         esac; \
+       done
+endif
 
 
-include ${dir}/Modules.am
+uninstall-local:
+       @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
+if BUILD_MOZILLA
+       @z=\$\$(\$(VLC_CONFIG) --list builtin); \
+       for mod in \$(mods); do \
+         case "\$\$z " \
+           in *\ \$\${mod}\ *) \
+             echo rm -f "\$(DESTDIR)\$(libdir)/vlc/lib\$\${mod}_pic.a" ; \
+             rm -f "\$(DESTDIR)\$(libdir)/vlc/lib\$\${mod}_pic.a" || true; \
+             ;; \
+         esac; \
+       done
+endif
 
 EOF
 
 EOF
-  sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < ${mf} | while read mod
+  for mod in $mods
   do
   do
-    LINKER="LINK"
-    if echo "$ALL_FLAGS" | grep '^CPPFLAGS_'${mod}'=$' >/dev/null 2>&1; then
-        echo "AC_SUBST(CPPFLAGS_${mod})" >> m4/vlc.m4; fi
-    if echo "$ALL_FLAGS" | grep '^CFLAGS_'${mod}'=$' >/dev/null 2>&1; then
-        echo "AC_SUBST(CFLAGS_${mod})" >> m4/vlc.m4; fi
-    if echo "$ALL_FLAGS" | grep '^CXXFLAGS_'${mod}'=$' >/dev/null 2>&1; then
-        LINKER="CXXLINK"
-        echo "AC_SUBST(CXXFLAGS_${mod})" >> m4/vlc.m4; fi
-    if echo "$ALL_FLAGS" | grep '^OBJCFLAGS_'${mod}'=$' >/dev/null 2>&1; then
-        LINKER="OBJCLINK"
-        echo "AC_SUBST(OBJCFLAGS_${mod})" >> m4/vlc.m4; fi
-    if echo "$ALL_FLAGS" | grep '^LDFLAGS_'${mod}'=$' >/dev/null 2>&1; then
-        echo "AC_SUBST(LDFLAGS_${mod})" >> m4/vlc.m4; fi
-    if grep '^SOURCES_'${mod}'.*=.*PRIVATE' < ${mf} >/dev/null 2>&1; then
-        PRIVATE='#'; else
-        PRIVATE=''; fi
-    if grep '^nodist_SOURCES_'${mod}'' < ${mf} >/dev/null 2>&1; then
+    if grep '^nodist_SOURCES_'${mod}'' < "${modf}" >/dev/null 2>&1; then
         NODIST=''; else
         NODIST='#'; fi
         NODIST=''; else
         NODIST='#'; fi
-    cat >> m4/vlc.m4 << EOF
-AM_CONDITIONAL(${mod}_p, test x\$${mod}_p = xyes)
-AM_CONDITIONAL(${mod}_b, test x\$${mod}_b = xyes)
+    cat >> m4/private.m4-tmp4 << EOF
+    ${mod}) list="\\\${list} ${dir}/lib${mod}" ;;
 EOF
 EOF
-# Generation of Modules.am
-# ~~~~~~~~~~~~~~~~~~~~~~~~
+# Generation of modules/**/Makefile.am
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 # - L_ is for LIBRARIES_, D_ for DATA_, B_ for BUILT_SOURCES_, F_ for LDFLAGS_,
 #   S_ for SOURCES_, _p is for _plugin, _b is for _builtin. This is to reduce
 #   the resulting file size.
 # - L_ is for LIBRARIES_, D_ for DATA_, B_ for BUILT_SOURCES_, F_ for LDFLAGS_,
 #   S_ for SOURCES_, _p is for _plugin, _b is for _builtin. This is to reduce
 #   the resulting file size.
-# - *_CFLAGS, *_CXXFLAGS etc. include *_CPPFLAGS because per-object CPPFLAGS
-#   does not seem to work properly with any automake version I tested.
-    cat >> Modules.am << EOF
+# - *_CFLAGS, *_CXXFLAGS etc. because per-object CPPFLAGS does not seem to
+#   work properly with any automake version I tested.
+    cat >> "${makf}" << EOF
 # The ${mod} plugin
 
 # The ${mod} plugin
 
-if ${mod}_p
-if UNTRUE
-L_${mod}_p = ${dir}/lib${mod}_plugin.a
-endif
-D_${mod}_p = ${dir}/lib${mod}_plugin\$(LIBEXT)
-${NODIST}B_${mod}_p = \$(nodist_SOURCES_${mod})
-endif
-if ${mod}_b
-L_${mod}_b = ${dir}/lib${mod}.a
-F_${mod}_b = \$(LDFLAGS_${mod})
-if BUILD_MOZILLA
-L_${mod}_pic = ${dir}/lib${mod}_pic.a
-endif
-${NODIST}B_${mod}_b = \$(nodist_SOURCES_${mod})
-endif
+EOF
+    if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF
+clean-local: 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})
+EOF
+    if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF
+nodist_lib${mod}_plugin_a_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}\`
 
 
-L_builtin += \$(L_${mod}_b)
-L_builtin_pic += \$(L_${mod}_pic)
-LDFLAGS_builtin += \$(F_${mod}_b)
-${PRIVATE}BUILT_SOURCES += \$(B_${mod}_p) \$(B_${mod}_b)
-PLUGIN_FILES += \$(D_${mod}_p)
-
-${PRIVATE}${sym}_lib${mod}_plugin_a_SOURCES = \$(SOURCES_${mod})
-${NODIST}${PRIVATE}nodist_${sym}_lib${mod}_plugin_a_SOURCES = \$(nodist_SOURCES_${mod})
-${sym}_lib${mod}_plugin_a_CPPFLAGS = \$(CPPFLAGS_plugin) \$(CPPFLAGS_${mod}) -DMODULE_NAME=${mod} -DMODULE_NAME_IS_${mod}
-${sym}_lib${mod}_plugin_a_CFLAGS = \$(CFLAGS_plugin) \$(CFLAGS_${mod}) \$(${sym}_lib${mod}_plugin_a_CPPFLAGS)
-${sym}_lib${mod}_plugin_a_CXXFLAGS = \$(CXXFLAGS_plugin) \$(CXXFLAGS_${mod}) \$(${sym}_lib${mod}_plugin_a_CPPFLAGS)
-${sym}_lib${mod}_plugin_a_OBJCFLAGS = \$(OBJCFLAGS_plugin) \$(OBJCFLAGS_${mod}) \$(${sym}_lib${mod}_plugin_a_CPPFLAGS)
-
-${sym}_lib${mod}_pic_a_SOURCES = ${PRIVATE}\$(SOURCES_${mod})
-${NODIST}nodist_${sym}_lib${mod}_pic_a_SOURCES = ${PRIVATE}\$(nodist_SOURCES_${mod})
-${sym}_lib${mod}_pic_a_CPPFLAGS = \$(CPPFLAGS_builtin_pic) \$(CPPFLAGS_${mod}) -DMODULE_NAME=${mod} -DMODULE_NAME_IS_${mod}
-${sym}_lib${mod}_pic_a_CFLAGS = \$(CFLAGS_builtin_pic) \$(CFLAGS_${mod}) \$(${sym}_lib${mod}_pic_a_CPPFLAGS)
-${sym}_lib${mod}_pic_a_CXXFLAGS = \$(CXXFLAGS_builtin_pic) \$(CXXFLAGS_${mod}) \$(${sym}_lib${mod}_pic_a_CPPFLAGS)
-${sym}_lib${mod}_pic_a_OBJCFLAGS = \$(OBJCFLAGS_builtin_pic) \$(OBJCFLAGS_${mod}) \$(${sym}_lib${mod}_pic_a_CPPFLAGS)
-
-${sym}_lib${mod}_a_SOURCES = ${PRIVATE}\$(SOURCES_${mod})
-${NODIST}nodist_${sym}_lib${mod}_a_SOURCES = ${PRIVATE}\$(nodist_SOURCES_${mod})
-${sym}_lib${mod}_a_CPPFLAGS = \$(CPPFLAGS_builtin) \$(CPPFLAGS_${mod}) -DMODULE_NAME=${mod} -DMODULE_NAME_IS_${mod}
-${sym}_lib${mod}_a_CFLAGS = \$(CFLAGS_builtin) \$(CFLAGS_${mod}) \$(${sym}_lib${mod}_a_CPPFLAGS)
-${sym}_lib${mod}_a_CXXFLAGS = \$(CXXFLAGS_builtin) \$(CXXFLAGS_${mod}) \$(${sym}_lib${mod}_a_CPPFLAGS)
-${sym}_lib${mod}_a_OBJCFLAGS = \$(OBJCFLAGS_builtin) \$(OBJCFLAGS_${mod}) \$(${sym}_lib${mod}_a_CPPFLAGS)
-
-libvlc_LIBRARIES += \$(L_${mod}_b) \$(L_${mod}_pic)
-lib${mod}_DATA = \$(D_${mod}_p)
-
-lib${mod}dir = \$(libdir)/vlc/${topdir}
-${PRIVATE}noinst_LIBRARIES += \$(L_${mod}_p)
-${PRIVATE}${dir}/lib${mod}_plugin\$(LIBEXT): \$(${sym}_lib${mod}_plugin_a_OBJECTS)
-${PRIVATE}     \$(${LINKER}) \$(${sym}_lib${mod}_plugin_a_OBJECTS) \$(LDFLAGS_plugins) \$(LDFLAGS_${mod})
+lib${mod}_pic_a_SOURCES = \$(SOURCES_${mod})
+EOF
+    if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF
+nodist_lib${mod}_pic_a_SOURCES = \$(nodist_SOURCES_${mod})
+EOF
+    fi
+    cat >> "${makf}" << EOF
+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})
+EOF
+    if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF
+nodist_lib${mod}_a_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}\`
 
 EOF
   done
 done
 
 
 EOF
   done
 done
 
-cat >> m4/vlc.m4 << EOF
-AM_CONDITIONAL(UNTRUE, false)
+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
+BLAH
 ])
 EOF
 ])
 EOF
+cat m4/private.m4-tmp4 >> m4/private.m4 && rm -f m4/private.m4-tmp4
 
 
-echo "done."
+echo " done."
 
 ###
 ###  classic bootstrap stuff
 
 ###
 ###  classic bootstrap stuff
@@ -173,169 +398,53 @@ echo "done."
 set -x
 
 # remove autotools cruft
 set -x
 
 # remove autotools cruft
-rm -f aclocal.m4 configure configure.ac.in config.log
+rm -f aclocal.m4 configure config.log config.h config.h.in
+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
 # remove old autotools extra cruft
 rm -f config.guess config.sub missing mkinstalldirs compile depcomp install-sh
 # remove new autotools extra cruft
-(cd autotools && rm -f config.guess config.sub missing mkinstalldirs compile depcomp install-sh)
+rm -Rf autotools
+mkdir autotools
 # remove libtool cruft
 rm -f ltmain.sh libtool ltconfig
 # remove gettext cruft
 # remove libtool cruft
 rm -f ltmain.sh libtool ltconfig
 # remove gettext cruft
-rm -f m4/oldgettext.m4 ABOUT-NLS
+rm -f ABOUT-NLS
 rm -Rf intl
 rm -Rf intl
-
-# Check for gettext
-if gettextize --version >/dev/null 2>&1
-then
-# Autopoint is available from 0.11.3, but we need 0.11.5
-if expr `gettextize --version | sed -e '1s/[^0-9]*//' -e q` \
-        '>=' 0.11.5 >/dev/null 2>&1
-then
-  # We have gettext, and a recent version! Everything is cool.
-  autopoint || exit 1
-  GETTEXT=yes
-else
-  # User's gettext is too old. try to continue anyway.
-  echo > ABOUT-NLS
-  mkdir -p intl
-  echo > intl/Makefile.am
-  cat >> m4/vlc.m4 << EOF
-dnl  User's gettext is too old, so this is a no-op
-AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
-
-EOF
-  GETTEXT=old
-fi;else
-  # we don't have gettext. grmbl. try to continue anyway.
-  echo > ABOUT-NLS
-  mkdir -p intl
-  echo > intl/Makefile.am
-  cat >> m4/vlc.m4 << EOF
-dnl  User does not have gettext, so this is a no-op
-AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
-
-EOF
-  GETTEXT=no
-fi
-
-# Check for pkg-config
-if pkg-config --version >/dev/null 2>&1
-then
-  # We have pkg-config, everything is cool.
-  PKGCONFIG=yes
-else
-  # Not present, use a workaround.
-  cat >> m4/vlc.m4 << EOF
-dnl  User does not have pkg-config, so this is a no-op
-AC_DEFUN([PKG_CHECK_MODULES], [])
-
-EOF
-  PKGCONFIG=no
-fi
-
-# Check for automake
-amvers="none"
-if automake-1.7 --version >/dev/null 2>&1
-then
-  amvers="-1.7"
-else
-  if 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 AUTOMAKESUCKS=yes
-    fi
-  else
-    if automake-1.5 --version >/dev/null 2>&1
-    then
-      INSTALLSUCKS=yes
-      amvers="-1.5"
-    else
-      if automake --version > /dev/null 2>&1
-      then
-        amvers=`automake --version | sed -e '1s/[^0-9]*//' -e q`
-        case $amvers in
-        1.6|1.6.0|1.6.1)
-          AUTOMAKESUCKS=yes ;;
-        1.5|1.5.*)
-          INSTALLSUCKS=yes ;;
-        esac
-
-        if expr "$amvers" "<" "1.5" > /dev/null 2>&1
-        then amvers="none"
-        else amvers=""
-        fi
-      fi
-    fi
-  fi
-fi
-
-if test x$amvers = xnone
-then
-  set +x
-  echo "you need automake version 1.5 or later"
-  exit 1
+# remove old vlc cruft
+rm -f m4/oldgettext.m4 stamp-pic configure.ac.in Modules.am
+# remove new vlc cruft
+rm -f stamp-builtin stamp-h* mozilla/stamp-pic
+
+# Automake complains if these are not present
+rm -f vlc-config.in && printf "" > vlc-config.in
+if [ "$GETTEXT" != "yes" ]; then
+  test -d intl || mkdir intl
+  printf "" > intl/Makefile.am
+  printf "" > ABOUT-NLS
 fi
 
 # Do the rest
 fi
 
 # Do the rest
-aclocal${amvers} -I m4 || exit 1
-autoheader || exit 1
-
-automake${amvers} --add-missing --copy || PERLSUCKS=yes
-
-case "$PERLSUCKS" in
-  no)
-  ;;
-  yes)
-    set +x
-    cat << EOF
-
-=======================================================================
-IMPORTANT NOTE: automake failed, please check the error messages. If it
-actually segfaulted, it might be because of insufficient stack size; set
-the stack size to something bigger or unlimited (\`unlimit stacksize')
-and try again.
-EOF
-    exit 1
-  ;;
-esac
-
-# Wrap automake's long lines, because the Solaris sed doesn't support lines
-# longer than 3999 characters, and ./configure calls sed. We use Perl instead
-# of sed for obvious reasons :)
-perl -ne 'if(/^.{500}/) {s/(.{200}[^ ]* )/$1\\\n\t/g} print $_' < Makefile.in > Makefile.in.tmp && mv Makefile.in.tmp Makefile.in
-
-autoconf || exit 1
+${autopoint} -f
+${aclocal} ${ACLOCAL_ARGS}
+${autoconf}
+${autoheader}
+${automake} --add-missing --copy
 
 ##
 
 ##
-##  headers which need to be regenerated
+##  files which need to be regenerated
 ##
 ##
-rm -f src/misc/modules_builtin.h src/misc/modules_plugin.h
-rm -f include/vlc_symbols.h
+rm -f vlc-config.in vlc-config
+rm -f src/misc/modules_builtin.h
 rm -f mozilla/vlcintf.h
 
 rm -f mozilla/vlcintf.h
 
-##
-##  Shut up
-##
+# Shut up
 set +x
 
 ##
 ##  Tell the user about gettext, pkg-config and sed
 ##
 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
 
 ==========================================================
 NOTE: you have an old version of gettext installed on your
@@ -343,28 +452,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
 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
 
 ==============================================================
 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
 
 =============================================================
 IMPORTANT NOTE: your version of automake has a bug which will
@@ -372,14 +473,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
 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
 
 =============================================================
 IMPORTANT NOTE: your version of automake has a bug which will
@@ -387,21 +484,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
 version of automake, or use a version of automake newer than 1.5
 (such as 1.6 or 1.7).
 EOF
-  ;;
-esac
-
-case "$SEDSUCKS" in
-  no)
-  ;;
-  yes)
-    cat << EOF
-
-=============================================================
-IMPORTANT NOTE: the version of 'sed' on your system is unable
-to handle long lines. bootstrap will try its best to generate
-a correct Makefile, but you should expect problems. We highly
-recommend installing GNU sed.
-EOF
-  ;;
-esac
+fi