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.
125 echo "autopoint program we will use:"
127 echo "autopoint --version"
129 echo "Directory listing of extras/contrib/bin"
130 ls -la extras/contrib/bin
131 echo "extras/contrib/bin/autopoint --version"
132 extras/contrib/bin/autopoint --version
135 # User's gettext is too old. try to continue anyway.
140 echo "$0: you need gettextize (package gettext-devel or gettext)"
144 # Check for pkg-config
145 if pkg-config --version >/dev/null 2>&1; then
146 # We have pkg-config, everything is cool.
152 aclocal=aclocal${amsuff}
153 automake=automake${amsuff}
155 autoheader=autoheader
158 ## Generate the modules makefile, by parsing modules/**/Modules.am
162 echo "generating modules/**/Makefile.am and m4/private.m4"
164 # Prepare m4/private.m4
165 rm -f m4/private.m4 && cat > m4/private.m4 << EOF
166 dnl Private VLC macros - generated by bootstrap
170 if [ "${PKGCONFIG}" = "no" ]; then cat >> m4/private.m4 << EOF
171 dnl User does not have pkg-config, so assume package was not found
172 AC_DEFUN([PKG_CHECK_MODULES],[ifelse([\$4], , :, [\$4])])
177 if [ "${GETTEXT}" != "yes" ]; then cat >> m4/private.m4 << EOF
178 dnl User does not have gettext, so this is a no-op
179 AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
184 cat >> m4/private.m4 << EOF
185 dnl Helper macro for vlc-config generation
186 AC_DEFUN([VLC_CONFIG_HELPER], [
187 cat >> vlc-config.in << BLAH
192 rm -f modules/Makefile.am && cat > modules/Makefile.am << EOF
193 # Autogenerated by bootstrap - DO NOT EDIT
195 dist_noinst_SCRIPTS = genmf
196 SUBDIRS = `sed -ne 's,modules/\([^/]*\)/Makefile,\1,p' configure.ac | xargs`
200 modules/genmf `sed -ne 's,modules/\(.*\)/Makefile,\1,p' configure.ac`
202 cat >> m4/private.m4 << EOF
208 ### classic bootstrap stuff
212 # remove autotools cruft
213 rm -f aclocal.m4 configure config.log config.h config.h.in
214 rm -Rf autom4te*.cache
215 # remove old autotools extra cruft
216 rm -f config.guess config.sub missing mkinstalldirs compile depcomp install-sh
217 # remove new autotools extra cruft
220 # remove libtool cruft
221 rm -f ltmain.sh libtool ltconfig
222 # remove gettext cruft
226 rm -f stamp-builtin stamp-h* mozilla/stamp-pic
228 # Automake complains if these are not present
229 rm -f vlc-config.in && printf "" > vlc-config.in
230 if [ "$GETTEXT" != "yes" ]; then
231 test -d intl || mkdir intl
232 printf "" > intl/Makefile.am
233 printf "" > ABOUT-NLS
236 # Libtoolize directory
237 ${libtoolize} --copy --force
238 if test -f "ltmain.sh"; then
239 echo "$0: working around a minor libtool issue"
240 mv ltmain.sh autotools/
245 rm -f po/Makevars.template
246 ${aclocal} ${ACLOCAL_ARGS}
249 ${automake} --add-missing --copy -Wall
252 ## files which need to be regenerated
254 rm -f vlc-config.in vlc-config
255 rm -f src/misc/modules_builtin.h
261 ## Tell the user about gettext, pkg-config and sed
263 if [ "${GETTEXT}" = "old" ]; then
266 ==========================================================
267 NOTE: you have an old version of gettext installed on your
268 system. The vlc build will work, but if your system does not
269 have libintl you will not have internationalization support.
270 We suggest upgrading to gettext 0.11.5 or later.
274 if [ "$PKGCONFIG" = "no" ]; then
277 ==============================================================
278 NOTE: you do not have the "pkg-config" utility on your system;
279 detection of the Gtk-2.0 and GNOME 2.0 libraries will not be
284 echo "Successfully bootstrapped"