9ba0109c8a1014d38d3684d2ec8fad8fbd9a0ab9
[vlc.git] / bootstrap
1 #! /bin/sh
2
3 ##  bootstrap file for the VLC media player
4 ##
5 ## Copyright (C) 2005-2006 the VideoLAN team
6 ##
7 ##  Authors: Sam Hocevar <sam@zoy.org>
8 ##           RĂ©mi Denis-Courmont <rem # videolan # org>
9
10 if test "$#" != "0"; then
11   echo "Usage: $0"
12   echo "  Calls autoreconf to generate m4 macros and prepare Makefiles."
13   exit 1
14 fi
15
16 ###
17 ###  Get a sane environment, just in case
18 ###
19 CYGWIN=binmode
20 export CYGWIN
21
22 set -e
23 set -x
24
25 ##
26 ## Check for various tools
27 ##
28
29 ACLOCAL_ARGS="-I m4 ${ACLOCAL_ARGS}"
30
31 # Check for contrib directory
32 if test -d extras/contrib/bin; then
33   export PATH="`pwd`/extras/contrib/bin:$PATH"
34   if test -d extras/contrib/share/aclocal; then
35     ACLOCAL_ARGS="${ACLOCAL_ARGS} -I extras/contrib/share/aclocal"
36   fi
37   if test ".`uname -s`" = ".Darwin"; then
38     export LD_LIBRARY_PATH=./extras/contrib/lib:$LD_LIBRARY_PATH
39     export DYLD_LIBRARY_PATH=./extras/contrib/lib:$DYLD_LIBRARY_PATH
40   elif test ".`uname -s`" = ".BeOS"; then
41     export LIBRARY_PATH=./extras/contrib/lib:$LIBRARY_PATH
42     export BELIBRARIES=./extras/contrib/lib:$BELIBRARIES
43   fi
44 elif test ".`uname -s`" = ".Darwin"; then
45   set +x
46   echo ""
47   echo "ERR: Contribs haven't been built"
48   echo "ERR: Please run:"
49   echo "ERR: "
50   echo "ERR:    'cd extras/contrib && ./bootstrap && make && cd ../..'"
51   echo "ERR: "
52   echo "ERR: Make sure fink has been disabled too."
53   echo ""
54   set -x
55   exit 1
56 fi
57
58 # Check for pkg-config
59 if pkg-config --version >/dev/null 2>&1; then
60   # We have pkg-config, everything is cool.
61   PKGCONFIG=yes
62 else
63   PKGCONFIG=no
64 fi
65
66 ##
67 ## Generate the modules makefile, by parsing modules/**/Modules.am
68 ##
69
70 set +x
71 echo "generating modules/**/Makefile.am and m4/private.m4"
72
73 # Prepare m4/private.m4
74 rm -f m4/private.m4 && cat > m4/private.m4 << EOF
75 dnl  Private VLC macros - generated by bootstrap
76
77 EOF
78
79 if [ "${PKGCONFIG}" = "no" ]; then cat >> m4/private.m4 << EOF
80 dnl  User does not have pkg-config, so assume package was not found
81 AC_DEFUN([PKG_CHECK_MODULES],[ifelse([\$4], , :, [\$4])])
82
83 EOF
84 fi
85
86 cat >> m4/private.m4 << EOF
87 dnl  Helper macro for vlc-config generation
88 AC_DEFUN([VLC_CONFIG_HELPER], [
89   cat >> vlc-config.in << BLAH
90 EOF
91
92 modules=""
93
94 rm -f modules/Makefile.am && cat > modules/Makefile.am << EOF
95 # Autogenerated by bootstrap - DO NOT EDIT
96 EXTRA_DIST = LIST
97 dist_noinst_SCRIPTS = genmf
98 SUBDIRS = `sed -ne 's,modules/\([^/]*\)/Makefile,\1,p' configure.ac | xargs`
99
100 EOF
101
102 modules/genmf `sed -ne 's,modules/\(.*\)/Makefile,\1,p' configure.ac`
103
104 cat >> m4/private.m4 << EOF
105 BLAH
106 ])
107 EOF
108
109 ###
110 ###  classic bootstrap stuff
111 ###
112 set -x
113
114 # Automake complains if these are not present
115 echo > vlc-config.in
116 cp -f INSTALL INSTALL.svn
117
118 autoreconf --install --force --verbose ${ACLOCAL_ARGS}
119 rm -f po/Makevars.template
120 echo > ABOUT-NLS
121 mv -f INSTALL.svn INSTALL
122
123 ##
124 ##  files which need to be regenerated
125 ##
126 rm -f vlc-config.in vlc-config
127 rm -f src/misc/modules_builtin.h
128 rm -f stamp-builtin stamp-h* mozilla/stamp-pic
129
130 # Shut up
131 set +x
132
133 ##
134 ##  Tell the user about gettext, pkg-config and sed
135 ##
136 if [ "$PKGCONFIG" = "no" ]; then
137   cat << EOF
138
139 ==============================================================
140 NOTE: you do not have the "pkg-config" utility on your system;
141 detection of the Gtk-2.0 and GNOME 2.0 libraries will not be
142 reliable.
143 EOF
144 fi
145
146 echo "Successfully bootstrapped"