3
## bootstrap file for the VLC media player
4
## $Id: bootstrap 7169 2004-03-25 22:45:59Z sam $
6
## Authors: Sam Hocevar <sam@zoy.org>
8
if test "$#" != "0"; then
10
echo " Calls automake, autoconf, autoheader, autopoint and other auto* to generate"
11
echo " m4 macros and prepare Makefiles."
16
### Get a sane environment, just in case
27
## Check for various tools
32
# Check for contrib directory
33
if test -d extras/contrib/bin; then
34
export PATH=./extras/contrib/bin:$PATH
35
export LD_LIBRARY_PATH=./extras/contrib/lib:$LD_LIBRARY_PATH
36
export DYLD_LIBRARY_PATH=./extras/contrib/lib:$DYLD_LIBRARY_PATH
41
if automake-1.7 --version >/dev/null 2>&1; then
43
# If we also have 1.6 (>> 1.6.1), use it instead because it is faster
44
if automake-1.6 --version >/dev/null 2>&1; then
45
if expr "`automake-1.6 --version | sed -e '1s/[^0-9]*//' -e q`" ">" "1.6.1" > /dev/null 2>&1; then
49
elif automake-1.6 --version >/dev/null 2>&1; then
51
if expr "`automake-1.6 --version | sed -e '1s/[^0-9]*//' -e q`" "<=" "1.6.1" > /dev/null 2>&1; then
54
elif automake-1.5 --version >/dev/null 2>&1; then
57
elif automake --version > /dev/null 2>&1; then
59
case "`automake --version | sed -e '1s/[^0-9]*//' -e q`" in
60
0|0.*|1|1.[01234]|1.[01234][-.]*)
69
if test "${amvers}" = "none"; then
71
echo "you need automake version 1.5 or later"
76
if gettextize --version >/dev/null 2>&1; then
77
# Autopoint is available from 0.11.3, but we need 0.11.5
78
if expr `gettextize --version | sed -e '1s/[^0-9]*//' -e q` \
79
'>=' 0.11.5 >/dev/null 2>&1; then
80
# We have gettext, and a recent version! Everything is cool.
84
# User's gettext is too old. try to continue anyway.
88
# we don't have gettext. grmbl. try to continue anyway.
93
# Check for pkg-config
94
if pkg-config --version >/dev/null 2>&1; then
95
# We have pkg-config, everything is cool.
101
aclocal=aclocal${amvers}
102
automake=automake${amvers}
104
autoheader=autoheader
107
## Generate the modules makefile, by parsing modules/**/Modules.am
111
echo "generating modules/**/Makefile.am and m4/private.m4"
113
# Prepare m4/private.m4
114
rm -f m4/private.m4 && cat > m4/private.m4 << EOF
115
dnl Private VLC macros - generated by bootstrap
119
if [ "${PKGCONFIG}" = "no" ]; then cat >> m4/private.m4 << EOF
120
dnl User does not have pkg-config, so this is a no-op
121
AC_DEFUN([PKG_CHECK_MODULES], [:], [], [], [])
126
if [ "${GETTEXT}" != "yes" ]; then cat >> m4/private.m4 << EOF
127
dnl User does not have gettext, so this is a no-op
128
AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
133
rm -f m4/private.m4-tmp1 && cat > m4/private.m4-tmp1 << EOF
134
dnl The required AM_CONDITIONAL calls
135
dnl XXX: too many conditionals make the build very slow, disabled them
136
AC_DEFUN([AX_VLC_CONDITIONALS], [
138
rm -f m4/private.m4-tmp2 && cat > m4/private.m4-tmp2 << EOF
139
dnl The required AC_SUBST calls
140
AC_DEFUN([AX_VLC_SUBSTS], [
142
rm -f m4/private.m4-tmp3 && cat > m4/private.m4-tmp3 << EOF
143
dnl The required AC_OUTPUT calls
144
dnl XXX: this feature is only supported starting from automake-1.7
145
AC_DEFUN([AX_VLC_MAKEFILES], [AC_OUTPUT([
147
rm -f m4/private.m4-tmp4 && cat > m4/private.m4-tmp4 << EOF
148
dnl Helper macro for vlc-config generation
149
AC_DEFUN([AX_VLC_CONFIG_HELPER], [
150
cat >> vlc-config.in << BLAH
155
rm -f modules/Makefile.am && cat > modules/Makefile.am << EOF
156
# Autogenerated by bootstrap - DO NOT EDIT
158
SUBDIRS = `sed -ne 's,modules/\([^/]*\)/Makefile,\1,p' configure.ac | xargs`
159
#DIST_SUBDIRS = \$(SUBDIRS)
162
for dir in `sed -ne 's,modules/\(.*\)/Makefile,\1,p' configure.ac`
165
mf="modules/${dir}/Modules.am"
166
basedir="`echo "${dir}" | cut -f1 -d/`"
167
# automake will not recurse for make dist if we don't define SUBDIRS = .
168
subdirs="`sed -ne 's,'modules/${dir}'/\([^/]*\)/Makefile,\1,p' configure.ac | xargs`"
169
rm -f modules/${dir}/Makefile.am && cat > modules/${dir}/Makefile.am << EOF
171
# Autogenerated by bootstrap - DO NOT EDIT - edit Modules.am instead
177
EXTRA_DIST = Modules.am
180
#DIST_SUBDIRS = \$(SUBDIRS)
181
libvlcdir = \$(libdir)/vlc/${basedir}
186
# There's no need for pic code on win32 so get rid of this to substantially
187
# reduce the compilation time.
195
-rm -f *.a *.so *.dll *.sl *.dylib
199
@set fnord \$\$MAKEFLAGS; amf=\$\$2; targets=\`\\
200
if test "\$(plugin)" != "no"; then z=\$\$(\$(VLC_CONFIG) --target plugin); for mod in `sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < ${mf} | xargs`; do case "\$\$z" in */lib\$\${mod}_plugin*) echo lib\$\${mod}_plugin\$(LIBEXT);; esac; done; fi; \\
201
if test "\$(builtin)" != "no"; then z=\$\$(\$(VLC_CONFIG) --target builtin); for mod in `sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < ${mf} | xargs`; do case "\$\$z" in */lib\$\${mod}.a*) echo lib\$\${mod}.a;; esac; done; fi; \\
202
if test "\$(pic)" != "no"; then z=\$\$(\$(VLC_CONFIG) --target builtin pic); for mod in `sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < ${mf} | xargs`; do case "\$\$z" in */lib\$\${mod}_pic.a*) echo lib\$\${mod}_pic.a;; esac; done; fi; \\
203
\`; case "\$\$targets" in *lib*) \$(MAKE) \$(AM_MAKEFLAGS) \$\$targets || case "\$\$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; ;; esac; \\
207
for mod in `sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < ${mf}`
209
if grep '^SOURCES_'${mod}'.*=.*PRIVATE' < ${mf} >/dev/null 2>&1; then
212
if grep '^nodist_SOURCES_'${mod}'' < ${mf} >/dev/null 2>&1; then
215
# cat >> m4/private.m4-tmp1 << EOF
216
#dnl AM_CONDITIONAL(${mod}_p, test x\$${mod}_p = xyes)
217
#dnl AM_CONDITIONAL(${mod}_b, test x\$${mod}_b = xyes)
219
cat >> m4/private.m4-tmp4 << EOF
220
${mod}) list="\\\${list} ${dir}/lib${mod}" ;;
222
# Generation of modules/**/Makefile.am
223
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
224
# - L_ is for LIBRARIES_, D_ for DATA_, B_ for BUILT_SOURCES_, F_ for LDFLAGS_,
225
# S_ for SOURCES_, _p is for _plugin, _b is for _builtin. This is to reduce
226
# the resulting file size.
227
# - *_CFLAGS, *_CXXFLAGS etc. because per-object CPPFLAGS does not seem to
228
# work properly with any automake version I tested.
229
cat >> modules/${dir}/Makefile.am << EOF
233
if [ "${NODIST}" != "#" ]; then cat >> modules/${dir}/Makefile.am << EOF
234
clean-local: clean-${mod}
236
-test -z "\$(nodist_SOURCES_${mod})" || rm -f \$(nodist_SOURCES_${mod})
240
cat >> modules/${dir}/Makefile.am << EOF
242
L${mod}p = lib${mod}_plugin.a
243
D${mod}p = lib${mod}_plugin\$(LIBEXT)
244
L${mod}b = lib${mod}.a
245
L${mod}pic = lib${mod}_pic.a
247
if [ "${NODIST}" != "#" ]; then cat >> modules/${dir}/Makefile.am << EOF
248
B${mod} = \$(nodist_SOURCES_${mod})
251
cat >> modules/${dir}/Makefile.am << EOF
255
if [ "${NODIST}" != "#" ]; then cat >> modules/${dir}/Makefile.am << EOF
256
${PRIVATE}BUILT_SOURCES += \$(B${mod})
259
cat >> modules/${dir}/Makefile.am << EOF
260
${PRIVATE}lib${mod}_plugin_a_SOURCES = \$(SOURCES_${mod})
262
if [ "${NODIST}" != "#" ]; then cat >> modules/${dir}/Makefile.am << EOF
263
${PRIVATE}nodist_lib${mod}_plugin_a_SOURCES = \$(nodist_SOURCES_${mod})
266
cat >> modules/${dir}/Makefile.am << EOF
267
lib${mod}_plugin_a_CFLAGS = \`\$(VLC_CONFIG) --cflags plugin ${mod}\`
268
lib${mod}_plugin_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags plugin ${mod}\`
269
lib${mod}_plugin_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags plugin ${mod}\`
271
lib${mod}_pic_a_SOURCES = ${PRIVATE}\$(SOURCES_${mod})
273
if [ "${NODIST}" != "#" ]; then cat >> modules/${dir}/Makefile.am << EOF
274
nodist_lib${mod}_pic_a_SOURCES = ${PRIVATE}\$(nodist_SOURCES_${mod})
277
cat >> modules/${dir}/Makefile.am << EOF
278
lib${mod}_pic_a_CFLAGS = \`\$(VLC_CONFIG) --cflags builtin pic ${mod}\`
279
lib${mod}_pic_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags builtin pic ${mod}\`
280
lib${mod}_pic_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags builtin pic ${mod}\`
282
lib${mod}_a_SOURCES = ${PRIVATE}\$(SOURCES_${mod})
284
if [ "${NODIST}" != "#" ]; then cat >> modules/${dir}/Makefile.am << EOF
285
nodist_lib${mod}_a_SOURCES = ${PRIVATE}\$(nodist_SOURCES_${mod})
288
cat >> modules/${dir}/Makefile.am << EOF
289
lib${mod}_a_CFLAGS = \`\$(VLC_CONFIG) --cflags builtin ${mod}\`
290
lib${mod}_a_CXXFLAGS = \`\$(VLC_CONFIG) --cxxflags builtin ${mod}\`
291
lib${mod}_a_OBJCFLAGS = \`\$(VLC_CONFIG) --objcflags builtin ${mod}\`
293
libvlc_LIBRARIES += \$(L${mod}b) \$(L${mod}pic)
294
lib${mod}_DATA = \$(D${mod}p)
296
lib${mod}dir = \$(libdir)/vlc/${topdir}
297
${PRIVATE}noinst_LIBRARIES += \$(L${mod}p)
298
${PRIVATE}lib${mod}_plugin\$(LIBEXT): \$(lib${mod}_plugin_a_OBJECTS)
299
${PRIVATE} @case \`\$(VLC_CONFIG) --linkage ${mod}\` in \\
300
${PRIVATE} c++) echo \$(CXXLINK) \$(lib${mod}_plugin_a_OBJECTS) \\\`\$(VLC_CONFIG) --libs plugin ${mod}\\\` ; \$(CXXLINK) \$(lib${mod}_plugin_a_OBJECTS) \`\$(VLC_CONFIG) --libs plugin ${mod}\` ;; \\
301
${PRIVATE} objc) echo \$(OBJCLINK) \$(lib${mod}_plugin_a_OBJECTS) \\\`\$(VLC_CONFIG) --libs plugin ${mod}\\\` ; \$(OBJCLINK) \$(lib${mod}_plugin_a_OBJECTS) \`\$(VLC_CONFIG) --libs plugin ${mod}\` ;; \\
302
${PRIVATE} c|*) echo \$(LINK) \$(lib${mod}_plugin_a_OBJECTS) \\\`\$(VLC_CONFIG) --libs plugin ${mod}\\\` ; \$(LINK) \$(lib${mod}_plugin_a_OBJECTS) \`\$(VLC_CONFIG) --libs plugin ${mod}\` ;; \\
310
cat >> m4/private.m4-tmp1 << EOF
311
AM_CONDITIONAL(UNTRUE, false)
314
cat m4/private.m4-tmp1 >> m4/private.m4 && rm -f m4/private.m4-tmp1
315
cat >> m4/private.m4-tmp2 << EOF
318
cat m4/private.m4-tmp2 >> m4/private.m4 && rm -f m4/private.m4-tmp2
319
cat >> m4/private.m4-tmp3 << EOF
322
cat m4/private.m4-tmp3 >> m4/private.m4 && rm -f m4/private.m4-tmp3
323
cat >> m4/private.m4-tmp4 << EOF
327
cat m4/private.m4-tmp4 >> m4/private.m4 && rm -f m4/private.m4-tmp4
332
### classic bootstrap stuff
336
# remove autotools cruft
337
rm -f aclocal.m4 configure config.log config.h config.h.in
338
rm -Rf autom4te.cache
339
# remove old autotools extra cruft
340
rm -f config.guess config.sub missing mkinstalldirs compile depcomp install-sh
341
# remove new autotools extra cruft
342
(cd autotools && rm -f config.guess config.sub missing mkinstalldirs compile depcomp install-sh)
343
# remove libtool cruft
344
rm -f ltmain.sh libtool ltconfig
345
# remove gettext cruft
348
# remove old vlc cruft
349
rm -f m4/oldgettext.m4 stamp-pic configure.ac.in Modules.am
350
# remove new vlc cruft
351
rm -f stamp-builtin stamp-h* mozilla/stamp-pic
353
# Automake complains if these are not present
354
rm -f vlc-config.in && printf "" > vlc-config.in
355
if [ "$GETTEXT" != "yes" ]; then
356
test -d intl || mkdir intl
357
printf "" > intl/Makefile.am
358
printf "" > ABOUT-NLS
366
${automake} --add-missing --copy
369
## files which need to be regenerated
371
rm -f vlc-config.in vlc-config
372
rm -f src/misc/modules_builtin.h src/misc/modules_plugin.h
373
rm -f include/vlc_symbols.h
374
rm -f mozilla/vlcintf.h
380
## Tell the user about gettext, pkg-config and sed
386
===========================================================
387
IMPORTANT NOTE: you do not have gettext installed on your
388
system. The vlc build will work, but you will not have
389
internationalization support. We suggest installing gettext.
394
==========================================================
395
NOTE: you have an old version of gettext installed on your
396
system. The vlc build will work, but if your system does not
397
have libintl you will not have internationalization support.
398
We suggest upgrading to gettext 0.11.5 or later.
407
==============================================================
408
NOTE: you do not have the "pkg-config" utility on your system;
409
detection of the Gtk-2.0 and GNOME 2.0 libraries will not be
415
case "$AUTOMAKESUCKS" in
419
=============================================================
420
IMPORTANT NOTE: your version of automake has a bug which will
421
prevent proper plugin compilation. Either compile VLC with
422
the --disable-plugins flag, or use a version of automake newer
423
than 1.6.1 (1.6.2 is OK, and so are the 1.5 series).
428
case "$INSTALLSUCKS" in
432
=============================================================
433
IMPORTANT NOTE: your version of automake has a bug which will
434
prevent proper installation. Do not use "make install" with this
435
version of automake, or use a version of automake newer than 1.5
436
(such as 1.6 or 1.7).