2008-03-03 08:22:58 +01:00
#!/bin/sh
2006-03-25 17:14:24 +01:00
2008-03-03 08:22:58 +01:00
# This script does all the magic calls to automake/autoconf and friends
# that are needed to configure a Subversion checkout. As described in
# the file HACKING you need a couple of extra tools to run this script
# successfully.
#
# If you are compiling from a released tarball you don't need these
# tools and you shouldn't use this script. Just call ./configure
# directly.
ACLOCAL = ${ ACLOCAL -aclocal-1.9 }
2008-12-29 03:37:16 +01:00
LIBTOOLIZE = ${ LIBTOOLIZE -libtoolize }
2008-03-03 08:22:58 +01:00
AUTOHEADER = ${ AUTOHEADER -autoheader }
AUTOMAKE = ${ AUTOMAKE -automake-1.9 }
2008-12-29 03:37:16 +01:00
AUTOCONF = ${ AUTOCONF -autoconf }
GETTEXTIZE = ${ GETTEXTIZE -glib-gettextize }
INTLTOOLIZE = ${ INTLTOOLIZE -intltoolize }
2008-03-03 08:22:58 +01:00
GLIB_REQUIRED_VERSION = 2.10.0
AUTOCONF_REQUIRED_VERSION = 2.54
AUTOMAKE_REQUIRED_VERSION = 1.9
INTLTOOL_REQUIRED_VERSION = 0.31
LIBTOOL_REQUIRED_VERSION = 1.5
2008-03-22 11:44:19 +01:00
REQUIRED_M4 = "fontutil.m4 glib-gettext.m4 intltool.m4 intl.m4 pkg.m4 iconv.m4"
2008-03-22 11:38:02 +01:00
REQUIRED_M4_WX = "wxwin.m4 wxwin28.m4"
2008-03-11 17:43:49 +01:00
2008-03-11 21:07:12 +01:00
PROJECT = "aegisub"
2008-03-03 08:22:58 +01:00
srcdir = ` pwd `
test -z " $srcdir " && srcdir = .
ORIGDIR = ` pwd `
cd $srcdir
2008-03-11 21:07:12 +01:00
test -d aegisub || {
2008-03-03 08:22:58 +01:00
echo
echo " You must run this script in the top-level $PROJECT directory. "
echo
exit 1
}
2008-12-30 05:13:33 +01:00
# The internal echo for /bin/sh on darwin doesn't support -n
# therefore we have to use /bin/echo.
if test ` uname -s` = "Darwin" ; then
ECHO_N = "/bin/echo -n" ;
else
ECHO_N = "echo -n" ;
fi
2008-03-03 08:22:58 +01:00
check_version ( )
{
VERSION_A = $1
VERSION_B = $2
save_ifs = " $IFS "
IFS = .
set dummy $VERSION_A 0 0 0
MAJOR_A = $2
MINOR_A = $3
MICRO_A = $4
set dummy $VERSION_B 0 0 0
MAJOR_B = $2
MINOR_B = $3
MICRO_B = $4
IFS = " $save_ifs "
if expr " $MAJOR_A " = " $MAJOR_B " > /dev/null; then
if expr " $MINOR_A " \> " $MINOR_B " > /dev/null; then
echo " yes (version $VERSION_A ) "
elif expr " $MINOR_A " = " $MINOR_B " > /dev/null; then
if expr " $MICRO_A " \> = " $MICRO_B " > /dev/null; then
echo " yes (version $VERSION_A ) "
else
echo " Too old (version $VERSION_A ) "
DIE = 1
fi
else
echo " Too old (version $VERSION_A ) "
DIE = 1
fi
elif expr " $MAJOR_A " \> " $MAJOR_B " > /dev/null; then
echo " Major version might be too new ( $VERSION_A ) "
else
echo " Too old (version $VERSION_A ) "
DIE = 1
fi
}
2008-03-11 17:43:49 +01:00
DIE = 0
2008-12-30 05:13:33 +01:00
$ECHO_N " checking for libtool >= $LIBTOOL_REQUIRED_VERSION ... "
2008-03-03 08:22:58 +01:00
if ( $LIBTOOLIZE --version) < /dev/null > /dev/null 2>& 1; then
LIBTOOLIZE = $LIBTOOLIZE
elif ( glibtoolize --version) < /dev/null > /dev/null 2>& 1; then
LIBTOOLIZE = glibtoolize
else
echo
echo " You must have libtool installed to compile $PROJECT . "
echo " Install the appropriate package for your distribution,"
echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
echo
DIE = 1
fi
if test x$LIBTOOLIZE != x; then
VER = ` $LIBTOOLIZE --version \
| grep libtool | sed " s/.* \([0-9.]*\)[-a-z0-9]* $/\1/ " `
check_version $VER $LIBTOOL_REQUIRED_VERSION
fi
2008-12-30 05:13:33 +01:00
$ECHO_N " checking for autoconf >= $AUTOCONF_REQUIRED_VERSION ... "
2008-03-03 08:22:58 +01:00
if ( $AUTOCONF --version) < /dev/null > /dev/null 2>& 1; then
VER = ` $AUTOCONF --version | head -n 1 \
| grep -iw autoconf | sed " s/.* \([0-9.]*\)[-a-z0-9]* $/\1/ " `
check_version $VER $AUTOCONF_REQUIRED_VERSION
else
echo
echo " You must have autoconf installed to compile $PROJECT . "
echo " Download the appropriate package for your distribution,"
echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/autoconf/"
echo
DIE = 1;
fi
2008-12-30 05:13:33 +01:00
$ECHO_N " checking for automake >= $AUTOMAKE_REQUIRED_VERSION ... "
2008-03-03 08:22:58 +01:00
if ( $AUTOMAKE --version) < /dev/null > /dev/null 2>& 1; then
AUTOMAKE = $AUTOMAKE
ACLOCAL = $ACLOCAL
elif ( automake-1.10 --version) < /dev/null > /dev/null 2>& 1; then
AUTOMAKE = automake-1.10
ACLOCAL = aclocal-1.10
elif ( automake-1.9 --version) < /dev/null > /dev/null 2>& 1; then
AUTOMAKE = automake-1.9
ACLOCAL = aclocal-1.9
else
echo
echo " You must have automake $AUTOMAKE_REQUIRED_VERSION or newer installed to compile $PROJECT . "
echo " Download the appropriate package for your distribution,"
echo " or get the source tarball at ftp://ftp.gnu.org/pub/gnu/automake/"
echo
DIE = 1
fi
if test x$AUTOMAKE != x; then
VER = ` $AUTOMAKE --version \
| grep automake | sed " s/.* \([0-9.]*\)[-a-z0-9]* $/\1/ " `
check_version $VER $AUTOMAKE_REQUIRED_VERSION
fi
2008-12-30 05:13:33 +01:00
$ECHO_N " checking for $GETTEXTIZE ... "
2008-12-29 03:37:16 +01:00
if ( $GETTEXTIZE --version) < /dev/null > /dev/null 2>& 1; then
VER = ` $GETTEXTIZE --version \
2008-03-03 08:22:58 +01:00
| grep glib-gettextize | sed "s/.* \([0-9.]*\)/\1/" `
check_version $VER $GLIB_REQUIRED_VERSION
else
echo
echo " You must have glib-gettextize installed to compile $PROJECT . "
echo " glib-gettextize is part of glib-2.0, so you should already"
echo " have it. Make sure it is in your PATH."
echo
DIE = 1
fi
2008-12-30 05:13:33 +01:00
$ECHO_N " checking for $INTLTOOLIZE >= $INTLTOOL_REQUIRED_VERSION ... "
2008-03-03 08:22:58 +01:00
if ( intltoolize --version) < /dev/null > /dev/null 2>& 1; then
2008-12-29 03:37:16 +01:00
VER = ` $INTLTOOLIZE --version \
2008-03-03 08:22:58 +01:00
| grep intltoolize | sed "s/.* \([0-9.]*\)/\1/" `
check_version $VER $INTLTOOL_REQUIRED_VERSION
else
echo
echo " You must have intltool installed to compile $PROJECT . "
echo " Get the latest version from"
echo " ftp://ftp.gnome.org/pub/GNOME/sources/intltool/"
echo
DIE = 1
fi
2008-12-27 08:21:04 +01:00
if test -z " $BIN_CONVERT " ; then
BIN_CONVERT = ` which convert`
fi
2008-12-30 05:13:33 +01:00
$ECHO_N "checking for ImageMagick 'convert' utility ... "
2008-12-27 08:21:04 +01:00
if test -x " $BIN_CONVERT " ; then
2008-03-11 17:43:49 +01:00
echo $BIN_CONVERT
else
2008-12-27 08:21:04 +01:00
echo "not found"
2008-03-11 17:43:49 +01:00
echo
echo " You must have 'convert' installed from the"
2008-12-27 08:21:04 +01:00
echo " ImageMagick project. Please set BIN_CONVERT or"
echo " Add 'convert' to your PATH"
2008-03-11 17:43:49 +01:00
echo
DIE = 1
fi
2008-12-27 08:21:04 +01:00
if test -z " $BIN_AWK " ; then
BIN_AWK = ` which awk`
fi
2008-12-30 05:13:33 +01:00
$ECHO_N "checking for AWK ... "
2008-12-27 08:21:04 +01:00
if test -x " $BIN_AWK " ; then
2008-03-11 17:43:49 +01:00
echo $BIN_AWK
else
2008-12-27 08:21:04 +01:00
echo "not found"
2008-03-11 17:43:49 +01:00
echo
2008-12-27 08:21:04 +01:00
echo " You must have 'awk' installed. Please set"
echo " BIN_AWK or add it to your PATH."
2008-03-11 17:43:49 +01:00
echo
DIE = 1
fi
2008-03-03 08:22:58 +01:00
if test " $DIE " -eq 1; then
echo
echo "Please install/upgrade the missing tools and call me again."
echo
exit 1
fi
echo
echo "I am going to run ./configure with the following arguments:"
echo
echo " --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS $@ "
echo
if test -z " $* " ; then
echo "If you wish to pass additional arguments, please specify them "
echo " on the $0 command line or set the AUTOGEN_CONFIGURE_ARGS "
echo "environment variable."
echo
fi
2008-03-12 22:39:44 +01:00
2008-03-22 11:38:02 +01:00
echo "--- Checking for required M4 files ---"
2008-03-03 08:22:58 +01:00
if test -z " $ACLOCAL_FLAGS " ; then
acdir = ` $ACLOCAL --print-ac-dir`
2008-03-22 11:38:02 +01:00
for file in $REQUIRED_M4 ; do
if [ ! -f " $acdir / $file " ] ; then
echo
echo " WARNING: aclocal's directory is $acdir , but... "
echo " no file $acdir / $file "
echo " You may see fatal macro warnings below."
echo " If these files are installed in /some/dir, set the "
echo " ACLOCAL_FLAGS environment variable to \"-I /some/dir\""
echo " or install $acdir / $file . "
echo
2008-03-03 08:22:58 +01:00
fi
done
2008-03-22 11:38:02 +01:00
for file in $REQUIRED_M4_WX ; do
if [ -f " $acdir / $file " ] ; then
FOUND_M4_WX = "yes"
fi
done
if test -z " $FOUND_M4_WX " ; then
echo
echo " WARNING: aclocal's directory is $acdir , but... "
echo " none of: \" $REQUIRED_M4_WX \" were found. "
echo " You may see fatal macro warnings below."
echo " If these files are installed in /some/dir, set the "
echo " ACLOCAL_FLAGS environment variable to \"-I /some/dir\""
echo " or install ONE OF: \" $REQUIRED_M4_WX \" in $acdir . "
echo "NOTE: These are the same files under different names."
echo
fi
2008-03-03 08:22:58 +01:00
fi
2008-03-11 17:43:49 +01:00
2008-12-25 08:20:35 +01:00
echo "--- Converting BMP resource files -> XPM ---"
2008-03-11 21:07:12 +01:00
# BMP -> XPM via src/res.rc
2008-12-30 07:46:28 +01:00
cat ${ srcdir } /aegisub/res.rc | ${ BIN_AWK } -f ${ srcdir } /scripts/unix-gen-xpm.awk BIN_CONVERT = " $BIN_CONVERT " > ${ srcdir } /aegisub/bitmaps/Makefile.bitmaps
2008-03-11 17:43:49 +01:00
cd ${ srcdir } /aegisub/bitmaps
make -f Makefile.bitmaps
cd ${ srcdir }
2008-12-27 08:23:37 +01:00
$BIN_AWK '/BITMAP/ { image[count] = $1; ++count} END { printf("EXTRA_DIST= \\\n wxicon_xpm.xpm"); for (v in image) printf(" \\\n %s_xpm.xpm", image[v])}' \
2008-03-11 17:43:49 +01:00
${ srcdir } /aegisub/res.rc \
> ${ srcdir } /aegisub/bitmaps/Makefile.am
2009-01-04 10:01:49 +01:00
echo "--- Generating libresrc/resrc.cpp, libresrc/resrc.h from res.rc ---"
$BIN_AWK -f scripts/unix-gen-res.awk ${ srcdir } /aegisub/res.rc \
RESRC_CPP = " ${ srcdir } /aegisub/libresrc/resrc.cpp " \
RESRC_H = " ${ srcdir } /aegisub/libresrc/resrc.h "
2008-03-11 17:43:49 +01:00
2008-03-03 08:22:58 +01:00
rm -rf autom4te.cache
2008-03-11 21:07:12 +01:00
echo " --- $ACLOCAL --- "
2008-03-03 08:22:58 +01:00
$ACLOCAL $ACLOCAL_FLAGS
RC = $?
if test $RC -ne 0; then
echo " $ACLOCAL gave errors. Please fix the error conditions and try again. "
exit $RC
fi
2008-03-11 21:07:12 +01:00
echo " --- $LIBTOOLIZE --- "
2008-03-03 08:22:58 +01:00
$LIBTOOLIZE --force || exit $?
2008-03-11 21:07:12 +01:00
echo " --- $AUTOHEADER --- "
$AUTOHEADER || exit $?
2008-03-03 08:22:58 +01:00
2008-03-11 21:07:12 +01:00
echo " --- $AUTOMAKE --- "
2008-03-03 08:22:58 +01:00
$AUTOMAKE --add-missing || exit $?
2008-03-11 21:07:12 +01:00
echo " --- $AUTOCONF --- "
2008-03-03 08:22:58 +01:00
$AUTOCONF || exit $?
2008-12-29 03:37:16 +01:00
echo " --- $GETTEXTIZE --- "
$GETTEXTIZE --force || exit $?
2008-03-03 08:22:58 +01:00
2008-12-29 03:37:16 +01:00
echo " --- $INTTOOLIZE --- "
$INTLTOOLIZE --force --automake || exit $?
2008-03-03 08:22:58 +01:00
cd $ORIGDIR
2008-03-11 21:07:12 +01:00
echo " --- $srcdir /configure --- "
2008-03-11 17:43:49 +01:00
$srcdir /configure --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS " $@ "
RC = $?
2008-03-03 08:22:58 +01:00
2008-03-11 21:07:12 +01:00
echo
echo
echo "***********************************************************************"
echo "*"
2008-03-12 22:51:08 +01:00
echo "* Please do not ask for support when using the SVN verison of aegisub,"
2008-03-11 21:07:12 +01:00
echo "* download an official distfile in order to receive support."
echo "*"
echo "***********************************************************************"
2008-03-11 17:43:49 +01:00
echo
2008-03-11 21:07:12 +01:00
2008-03-22 11:39:32 +01:00
if test $RC -ne 0; then
echo
echo "Configure failed or did not finish!"
exit $RC
fi
2008-12-25 08:20:35 +01:00
echo " Now type 'make' to compile $PROJECT . "