vlc/bootstrap

177 lines
4.9 KiB
Bash
Executable File

#! /bin/sh
## bootstrap.sh file for vlc, the VideoLAN Client
## $Id: bootstrap,v 1.9 2002/08/28 13:38:14 sam Exp $
##
## Authors: Samuel Hocevar <sam@zoy.org>
###
### get a sane environment
###
export LANG=C
###
### argument check
###
do_po=no
while test $# -gt 0; do
case "$1" in
--update-po)
do_po=yes
;;
*)
echo "unknown option $1"
;;
esac
shift
done
###
### classic stuff
###
set -x
rm -f aclocal.m4 configure config.guess config.log config.sub ltmain.sh libtool ltconfig missing mkinstalldirs depcomp install-sh
# Check for gettext
if which gettextize >/dev/null 2>&1
then
if expr `gettextize --version | sed -e '1s/[^0-9]*//' -e q` \
'>' 0.11.3 >/dev/null 2>&1
then
# We have gettext, and a recent version! Everything is cool.
autopoint --force
rm -f m4/Makefile.am
echo 'EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4 progtest.m4' > m4/Makefile.am
GETTEXT=yes
else
# What?! User is not using a recent version of gettext? We'll have to
# cheat a bit, then.
rm -f po/ChangeLog~
aclocaldir=`gettextize --copy --force | grep '^from the' | cut -f3 -d' '`
# Yuck!
test -f po/ChangeLog~ && mv po/ChangeLog~ po/ChangeLog
mkdir -p m4
# Yuck! - don't copy anything, it makes old autoconf barf.
#for file in codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 \
# lcmessage.m4 progtest.m4
# do cp ${aclocaldir}/${file} m4/
#done
# Yuck!
echo 'AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])' > m4/gettext.m4
GETTEXT=old
fi;else
# we don't have gettext. grmbl. try to continue anyway.
mkdir -p m4
echo 'AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])' > m4/gettext.m4
echo 'AC_DEFUN([AM_GNU_GETTEXT], [])' >> m4/gettext.m4
GETTEXT=no
fi
`which automake-1.6 >/dev/null 2>&1` && amvers=1.6 || amvers=1.5
aclocal-${amvers} -I m4
autoheader
automake-${amvers} --foreign --add-missing --copy
autoconf
# nuahahahahaha !! overwriting Makefile.in with what *I* want!
cp Makefile.old Makefile.in
##
## headers which need to be regenerated because of the VLC_EXPORT macro
##
file=src/misc/modules_plugin.h
rm -f $file
sed -e 's#.*\$[I][d]:.*# * Automatically generated from '$file'.in by bootstrap.sh#' < $file.in > $file
echo '#define STORE_SYMBOLS( p_symbols ) \' >> $file
cat include/*.h | grep '^ *VLC_EXPORT.*;' | \
sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/ (p_symbols)->\2_inner = \2; \\/' >> $file
echo '' >> $file
file=include/vlc_symbols.h
rm -f $file && touch $file
echo '/* DO NOT EDIT THIS FILE ! It was generated by bootstrap.sh */' >> $file
echo '' >> $file
echo 'struct module_symbols_t' >> $file
echo '{' >> $file
cat include/*.h | grep '^ *VLC_EXPORT.*;' | \
sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/ \1 (* \2_inner) \3;/' | sort >> $file
echo '};' >> $file
echo '' >> $file
echo '#ifdef __PLUGIN__' >> $file
cat include/*.h | grep '^ *VLC_EXPORT.*;' | \
sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/# define \2 p_symbols->\2_inner/' | sort >> $file
echo '#endif /* __PLUGIN__ */' >> $file
echo '' >> $file
##
## Glade sometimes sucks
##
for file in gnome_interface.c gtk_interface.c
do
if grep "DO NOT EDIT THIS FILE" modules/gui/gtk/$file 2>&1 > /dev/null
then
rm -f /tmp/$$.$file.bak
cat > /tmp/$$.$file.bak << EOF
/* This file was created automatically by glade and fixed by bootstrap.sh */
#include <vlc/vlc.h>
EOF
sed -e 1,7d \
-e 's#_("-:--:--")#"-:--:--"#' \
-e 's#_("---")#"---"#' \
-e 's#_("--")#"--"#' \
-e 's#_("/dev/dvd")#"/dev/dvd"#' \
-e 's#_(\("./."\))#\1#' \
< modules/gui/gtk/$file >> /tmp/$$.$file.bak
mv -f /tmp/$$.$file.bak modules/gui/gtk/$file
fi
done
file=gtk_support.h
if grep "DO NOT EDIT THIS FILE" modules/gui/gtk/$file 2>&1 > /dev/null
then
rm -f /tmp/$$.$file.bak
sed -e 's/DO NOT EDIT THIS FILE.*/This file was created automatically by glade and fixed by bootstrap.sh/ ; s/#if.*ENABLE_NLS.*/#if defined( ENABLE_NLS ) \&\& defined ( HAVE_GETTEXT )/' < modules/gui/gtk/$file > /tmp/$$.$file.bak
mv -f /tmp/$$.$file.bak modules/gui/gtk/$file
fi
##
## Shut up
##
set +x
##
## Update the potfiles because no one ever does it
##
if test "$do_po" = "no"
then
echo "not updating potfiles. use --update-po to force doing it."
else
cd po
make update-po 2>&1 | grep '^[^:]*:$' | cut -f1 -d: | tr '\n' ' ' | sed 's/ $//'
cd ..
fi
##
## Tell the user about gettext
##
case "$GETTEXT" in
yes)
;;
no)
echo ""
echo "==========================================================="
echo "IMPORTANT NOTE: you do not have gettext installed on your"
echo "system. The vlc build will work, but you will not have"
echo "internationalization support. We suggest installing gettext."
;;
old)
echo ""
echo "=========================================================="
echo "NOTE: you have an old version of gettext installed on your"
echo "system. We suggest upgrading to gettext 0.11.3 or later."
;;
esac