mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-21 16:38:06 -06:00
9e4c76ece4
see https://www.gnu.org/software/automake/manual/html_node/Obsolete-Macros.html and http://lists.gnucash.org/logs/2013/10/2013-10-27.html#T16:03:07 git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23341 57a11ea4-9604-0410-9ed3-97b8803252fd
247 lines
7.3 KiB
Bash
Executable File
247 lines
7.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# Run this to generate all the initial makefiles, etc.
|
|
|
|
if test -z "$srcdir" ; then srcdir=`dirname $0` ; fi
|
|
if test -z "$srcdir" ; then srcdir=. ; fi
|
|
cd $srcdir
|
|
|
|
DIE=0
|
|
|
|
if [ -n "${GNOME2_PATH}" ]; then
|
|
for dir in `echo ${GNOME2_PATH} | sed 's/:/ /g'`; do
|
|
if test -d "${dir}/share/aclocal"; then
|
|
ACLOCAL_FLAGS="${ACLOCAL_FLAGS} -I ${dir}/share/aclocal"
|
|
fi;
|
|
if test -d "${dir}/bin"; then
|
|
PATH="${PATH}:${dir}/bin"
|
|
fi;
|
|
done;
|
|
export PATH
|
|
fi
|
|
|
|
# usage: test_version program version
|
|
# returns 0 if program >= version; returns 1 if not.
|
|
test_version()
|
|
{
|
|
this_prog="$1"
|
|
want_vers="$2"
|
|
|
|
testv=`"$this_prog" --version 2>/dev/null | head -n 1 | awk '{print $NF}'`
|
|
if test -z "$testv" ; then return 1 ; fi
|
|
|
|
testv_major=`echo "$testv" | sed 's/\([0-9]*\).\([0-9]*\).*$/\1/'`
|
|
testv_minor=`echo "$testv" | sed 's/\([0-9]*\).\([0-9]*\).*$/\2/'`
|
|
|
|
vers_major=`echo "$want_vers" | sed 's/\([0-9]*\).\([0-9]*\).*$/\1/'`
|
|
vers_minor=`echo "$want_vers" | sed 's/\([0-9]*\).\([0-9]*\).*$/\2/'`
|
|
|
|
# if wanted_major > found_major, this isn't good enough
|
|
if test $vers_major -gt $testv_major ; then
|
|
return 1
|
|
# if wanted_major < found_major, then this is fine
|
|
elif test $vers_major -lt $testv_major ; then
|
|
return 0
|
|
# if we get here, then the majors are equal, so test the minor version
|
|
# we want found_minor >= want_minor.
|
|
# So, if want_minor > found_minor, this is bad.
|
|
elif test $vers_minor -gt $testv_minor ; then
|
|
return 1
|
|
# this is it.
|
|
else
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
# usage: find_program preset program version "<other versions>"
|
|
# sets "program" to the name of the program to use.
|
|
# if preset is set, then use that regardless,
|
|
# otherwise check if "program" is of a good enough version and use that,
|
|
# otherwise check if "program-version" is of a good enough version and use that.
|
|
# otherwise return an error.
|
|
find_program()
|
|
{
|
|
find="$1"
|
|
prog="$2"
|
|
vers="$3"
|
|
extravers="$4"
|
|
|
|
if test -n "$find" ; then
|
|
test_version "$find" "$vers"
|
|
status="$?"
|
|
if test "$status" = 0 ; then
|
|
program="$find"
|
|
return 0
|
|
fi
|
|
echo "**Error**: cannot use $find"
|
|
else
|
|
|
|
test_version "$prog" "$vers"
|
|
status=$?
|
|
if test "$status" = 0 ; then
|
|
program="$prog"
|
|
return 0
|
|
fi
|
|
|
|
for test_vers in $vers $extravers ; do
|
|
test_version "$prog-$test_vers" "$vers"
|
|
status=$?
|
|
if test "$status" = 0 ; then
|
|
program="$prog-$test_vers"
|
|
return 0
|
|
fi
|
|
done
|
|
fi
|
|
|
|
echo
|
|
echo "**Warning**: Could not find a $prog that identifies itself >= $vers."
|
|
echo
|
|
program="$prog"
|
|
}
|
|
|
|
############################################################
|
|
#
|
|
# Store all required programs in variables. All of these variables
|
|
# could have been set by the developer beforehand, if he/she needs to
|
|
# override the defaults of here.
|
|
|
|
: ${GLIB_GETTEXTIZE=glib-gettextize}
|
|
: ${INTLTOOLIZE=intltoolize}
|
|
: ${LIBTOOLIZE=libtoolize}
|
|
|
|
find_program "$AUTOCONF" autoconf 2.59
|
|
AUTOCONF="$program"
|
|
find_program "$AUTOHEADER" autoheader 2.59
|
|
AUTOHEADER="$program"
|
|
find_program "$AUTOMAKE" automake 1.11
|
|
AUTOMAKE="$program"
|
|
find_program "$ACLOCAL" aclocal 1.9
|
|
ACLOCAL="$program"
|
|
|
|
############################################################
|
|
#
|
|
# All variables are set. Now check whether these programs are really
|
|
# available.
|
|
|
|
(${GLIB_GETTEXTIZE} --version) < /dev/null > /dev/null 2>&1 || {
|
|
echo
|
|
echo "**Error**: You must have \`glib-gettextize' installed to compile GnuCash."
|
|
echo "Get the development packages of the glib-2.x library from your distribution."
|
|
DIE=1
|
|
}
|
|
|
|
(${INTLTOOLIZE} --version) < /dev/null > /dev/null 2>&1 || {
|
|
echo
|
|
echo "**Error**: You must have \`intltoolize' installed to compile GnuCash."
|
|
echo "Get the package 'intltool' of your distribution."
|
|
DIE=1
|
|
}
|
|
|
|
# On MacOS, libtoolize is installed as glibtoolize, so handle that here.
|
|
(${LIBTOOLIZE} --version) < /dev/null > /dev/null 2>&1 || {
|
|
LIBTOOLIZE=glibtoolize
|
|
(${LIBTOOLIZE} --version) < /dev/null > /dev/null 2>&1 || {
|
|
echo
|
|
echo "**Error**: You must have \`libtoolize' installed to compile GnuCash."
|
|
echo "Could not find either \`libtoolize' or \'glibtoolize'."
|
|
echo "Download the appropriate package for your distribution,"
|
|
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
|
DIE=1
|
|
}
|
|
}
|
|
|
|
(${AUTOMAKE} --version) < /dev/null > /dev/null 2>&1 || {
|
|
echo
|
|
echo "**Error**: You must have \`automake' installed to compile GnuCash."
|
|
echo "Download the appropriate package for your distribution,"
|
|
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
|
DIE=1
|
|
NO_AUTOMAKE=yes
|
|
}
|
|
|
|
|
|
# if no automake, don't bother testing for aclocal
|
|
test -n "$NO_AUTOMAKE" || (${ACLOCAL} --version) < /dev/null > /dev/null 2>&1 || {
|
|
echo
|
|
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
|
|
echo "installed doesn't appear recent enough (older than automake-1.4)."
|
|
echo "Download the appropriate package for your distribution,"
|
|
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
|
DIE=1
|
|
}
|
|
|
|
(${AUTOCONF} --version) < /dev/null > /dev/null 2>&1 || {
|
|
echo
|
|
echo "**Error**: You must have \`autoconf' installed to compile GnuCash."
|
|
echo "Download the appropriate package for your distribution,"
|
|
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
|
DIE=1
|
|
}
|
|
|
|
if test "$DIE" -eq 1; then
|
|
exit 1
|
|
fi
|
|
|
|
case $CC in
|
|
xlc )
|
|
am_opt=--include-deps;;
|
|
esac
|
|
|
|
############################################################
|
|
#
|
|
# All programs are available. So now actually call them in the
|
|
# required order.
|
|
|
|
echo "Creating po/POTFILES.in ..."
|
|
test -r po/POTFILES.in || touch po/POTFILES.in
|
|
|
|
echo "Creating aclocal.m4 ..."
|
|
test -r aclocal.m4 || touch aclocal.m4
|
|
|
|
echo "Running ${GLIB_GETTEXTIZE} --force --copy ... "
|
|
echo "GnuCash note: Please ignore the output of ${GLIB_GETTEXTIZE} below!"
|
|
echo "no" | ${GLIB_GETTEXTIZE} --force --copy
|
|
echo "GnuCash note: Please ignore the output of ${GLIB_GETTEXTIZE} above!"
|
|
echo
|
|
|
|
echo "Ensure aclocal.m4 is writable ..."
|
|
test -r aclocal.m4 && chmod u+w aclocal.m4
|
|
|
|
echo "Ensure po/POTFILES.in is writable ..."
|
|
test -r po/POTFILES.in && chmod u+w po/POTFILES.in
|
|
|
|
echo "Running ${INTLTOOLIZE} --force --copy ..."
|
|
${INTLTOOLIZE} --force --copy || \
|
|
{ echo "**Error**: ${INTLTOOLIZE} failed."; exit 1; }
|
|
|
|
echo "Running ${LIBTOOLIZE} --force --copy ..."
|
|
${LIBTOOLIZE} --force --copy || \
|
|
{ echo "**Error**: ${LIBTOOLIZE} failed."; exit 1; }
|
|
|
|
aclocalinclude="$ACLOCAL_FLAGS -I macros"
|
|
echo "Running ${ACLOCAL} $aclocalinclude ..."
|
|
${ACLOCAL} $aclocalinclude || \
|
|
{ echo "**Error**: ${ACLOCAL} failed."; exit 1; }
|
|
|
|
echo "Running ${AUTOHEADER}..."
|
|
${AUTOHEADER} || { echo "**Error**: ${AUTOHEADER} failed."; exit 1; }
|
|
|
|
echo "Running ${AUTOMAKE} --add-missing --gnu --warnings=no-portability $am_opt ..."
|
|
${AUTOMAKE} --add-missing --gnu --warnings=no-portability $am_opt || \
|
|
{ echo "**Error**: ${AUTOMAKE} failed."; exit 1; }
|
|
|
|
echo "Running ${AUTOCONF} ..."
|
|
${AUTOCONF} || \
|
|
{ echo "**Error**: ${AUTOCONF} failed."; exit 1; }
|
|
|
|
############################################################
|
|
# Done.
|
|
|
|
conf_flags="--enable-compile-warnings" # --enable-iso-c --enable-error-on-warning
|
|
|
|
echo ""
|
|
echo "NOTE: Just run configure. Even if something told you to run"
|
|
echo " aclocal, automake, or anything else above, IGNORE IT."
|
|
echo " Everything has been run properly. Just run configure..."
|
|
echo ""
|
|
echo You must now run $srcdir/configure $conf_flags "$@" ...
|