3 ## bootstrap file for the VLC media player
5 ## Copyright (C) 2005-2006 the VideoLAN team
7 ## Authors: Sam Hocevar <sam@zoy.org>
8 ## RĂ©mi Denis-Courmont <rem # videolan # org>
10 if test "$#" != "0"; then
12 echo " Calls automake, autoconf, autoheader, autopoint and other auto* to generate"
13 echo " m4 macros and prepare Makefiles."
18 ### Get a sane environment, just in case
29 ## Check for various tools
32 ACLOCAL_ARGS="-I m4 ${ACLOCAL_ARGS}"
34 # Check for contrib directory
35 if test -d extras/contrib/bin; then
36 export PATH="`pwd`/extras/contrib/bin:$PATH"
37 if test -d extras/contrib/share/aclocal; then
38 ACLOCAL_ARGS="${ACLOCAL_ARGS} -I extras/contrib/share/aclocal"
40 if test ".`uname -s`" = ".Darwin"; then
41 export LD_LIBRARY_PATH=./extras/contrib/lib:$LD_LIBRARY_PATH
42 export DYLD_LIBRARY_PATH=./extras/contrib/lib:$DYLD_LIBRARY_PATH
43 elif test ".`uname -s`" = ".BeOS"; then
44 export LIBRARY_PATH=./extras/contrib/lib:$LIBRARY_PATH
45 export BELIBRARIES=./extras/contrib/lib:$BELIBRARIES
47 elif test ".`uname -s`" = ".Darwin"; then
50 echo "ERR: Contribs haven't been built"
51 echo "ERR: Please run:"
53 echo "ERR: 'cd extras/contrib && ./bootstrap && make && cd ../..'"
55 echo "ERR: Make sure fink has been disabled too."
62 rm -f m4/autoconf260.m4
63 case "$(autoconf --version|head -n 1)" in
65 echo "$0: you need autoconf version 2.59 or later (2.60 recommanded)."
70 echo "Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP."
71 echo "Press Enter to continue"
73 cp -f extras/m4/autoconf260.m4 m4/
79 for v in "-1.10" "110" "-1.9" "19"; do
80 if automake${v} --version >/dev/null 2>&1; then
82 amvers="`echo ${v} | sed -e 's/^-//'`"
87 if test "${amvers}" = "no" && automake --version > /dev/null 2>&1; then
88 amvers="`automake --version | sed -e '1s/[^0-9]*//' -e q`"
93 no|1.[012345678]|1.[0123456].*|1[0123456]|1.[0123456]-*)
95 echo "$0: you need automake version 1.9 or later"
102 if test -x extras/contrib/bin/libtoolize; then
103 libtoolize="extras/contrib/bin/libtoolize"
104 elif glibtoolize --version >/dev/null 2>&1; then
105 libtoolize="glibtoolize"
106 elif libtoolize --version >/dev/null 2>&1; then
107 libtoolize="libtoolize"
110 if test "$libtoolize" = "no"; then
112 echo "$0: you need libtool"
117 if gettextize --version >/dev/null 2>&1; then
118 # Autopoint is available from 0.11.3, but we need 0.11.5
119 if expr `gettextize --version |cut -d' ' -f2- | sed -e '1s/[^0-9]*//' -e q` \
120 '>=' 0.11.5 >/dev/null 2>&1; then
121 # We have gettext, and a recent version! Everything is cool.
124 if test `which autopoint` = "/home/buildslave/slave/win32-trunk-contrib/build/extras/contrib/bin/autopoint"; then
125 (cd extras/contrib/src ; rm -rf gettext .gettext ; make gettext && make .intl)
128 # User's gettext is too old. try to continue anyway.
133 echo "$0: you need gettextize (package gettext-devel or gettext)"
137 # Check for pkg-config
138 if pkg-config --version >/dev/null 2>&1; then
139 # We have pkg-config, everything is cool.
145 aclocal=aclocal${amsuff}
146 automake=automake${amsuff}
148 autoheader=autoheader
151 ## Generate the modules makefile, by parsing modules/**/Modules.am
155 echo "generating modules/**/Makefile.am and m4/private.m4"
157 # Prepare m4/private.m4
158 rm -f m4/private.m4 && cat > m4/private.m4 << EOF
159 dnl Private VLC macros - generated by bootstrap
163 if [ "${PKGCONFIG}" = "no" ]; then cat >> m4/private.m4 << EOF
164 dnl User does not have pkg-config, so assume package was not found
165 AC_DEFUN([PKG_CHECK_MODULES],[ifelse([\$4], , :, [\$4])])
170 if [ "${GETTEXT}" != "yes" ]; then cat >> m4/private.m4 << EOF
171 dnl User does not have gettext, so this is a no-op
172 AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
177 cat >> m4/private.m4 << EOF
178 dnl Helper macro for vlc-config generation
179 AC_DEFUN([VLC_CONFIG_HELPER], [
180 cat >> vlc-config.in << BLAH
185 rm -f modules/Makefile.am && cat > modules/Makefile.am << EOF
186 # Autogenerated by bootstrap - DO NOT EDIT
188 dist_noinst_SCRIPTS = genmf
189 SUBDIRS = `sed -ne 's,modules/\([^/]*\)/Makefile,\1,p' configure.ac | xargs`
193 modules/genmf `sed -ne 's,modules/\(.*\)/Makefile,\1,p' configure.ac`
195 cat >> m4/private.m4 << EOF
201 ### classic bootstrap stuff
205 # remove autotools cruft
206 rm -f aclocal.m4 configure config.log config.h config.h.in
207 rm -Rf autom4te*.cache
208 # remove old autotools extra cruft
209 rm -f config.guess config.sub missing mkinstalldirs compile depcomp install-sh
210 # remove new autotools extra cruft
213 # remove libtool cruft
214 rm -f ltmain.sh libtool ltconfig
215 # remove gettext cruft
219 rm -f stamp-builtin stamp-h* mozilla/stamp-pic
221 # Automake complains if these are not present
222 rm -f vlc-config.in && printf "" > vlc-config.in
223 if [ "$GETTEXT" != "yes" ]; then
224 test -d intl || mkdir intl
225 printf "" > intl/Makefile.am
226 printf "" > ABOUT-NLS
229 # Libtoolize directory
230 ${libtoolize} --copy --force
231 if test -f "ltmain.sh"; then
232 echo "$0: working around a minor libtool issue"
233 mv ltmain.sh autotools/
238 rm -f po/Makevars.template
239 ${aclocal} ${ACLOCAL_ARGS}
242 ${automake} --add-missing --copy -Wall
245 ## files which need to be regenerated
247 rm -f vlc-config.in vlc-config
248 rm -f src/misc/modules_builtin.h
254 ## Tell the user about gettext, pkg-config and sed
256 if [ "${GETTEXT}" = "old" ]; then
259 ==========================================================
260 NOTE: you have an old version of gettext installed on your
261 system. The vlc build will work, but if your system does not
262 have libintl you will not have internationalization support.
263 We suggest upgrading to gettext 0.11.5 or later.
267 if [ "$PKGCONFIG" = "no" ]; then
270 ==============================================================
271 NOTE: you do not have the "pkg-config" utility on your system;
272 detection of the Gtk-2.0 and GNOME 2.0 libraries will not be
277 echo "Successfully bootstrapped"