Revert the autogen.sh change for now. To be reconsidered after more

testing.


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@11859 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Christian Stimming
2005-11-06 14:34:31 +00:00
parent 33f582de4b
commit 18f39b1606
5 changed files with 331 additions and 35 deletions

View File

@@ -1,3 +1,8 @@
2005-11-06 Christian Stimming <stimming@tuhh.de>
* autogen.sh: Revert autogen.sh simplificatoin for now; to be
reconsidered after more testing.
2005-11-06 Neil Williams <linux@codehelp.co.uk>
* doc/build-osx.txt : Document some OSX-specific

View File

@@ -43,6 +43,7 @@ EXTRA_DIST = ChangeLog.1 \
make-gnucash-potfiles.in \
macros/aqbanking.m4 \
macros/as-scrub-include.m4 \
macros/autogen.sh \
macros/compiler-flags.m4 \
macros/gnome-guile-checks.m4 \
macros/legacy_macros.m4 \

View File

@@ -4,22 +4,22 @@ Miguel de Icaza who adapted them from guidelines written by
Owen Taylor.
+ In order to build GnuCash from SVN, you need to run the autogen.sh
command to generate a configure script and other files. autogen.sh does
NOT accept any options but it may output some options that you should
add to your own ./configure command.
command to generate and execute a configure script. When building
from CVS you should ALWAYS pass your configure options directly to
autogen.sh. For example:
For example:
./autogen.sh --enable-ofx --enable-opt-style-install --prefix=/opt/gnucash
./autogen.sh
./configure --enable-maintainer-mode --enable-error-on-warning \
--enable-compiler-warnings --enable-ofx --enable-opt-style-install \
--prefix=/opt/gnucash
Autogen will automatically generate the configure script but you must
run it WITH SPECIAL ARGUMENTS to make sure that certain files get built.
Autogen will automatically generate the configure script and then
run it WITH SPECIAL ARGUMENTS to make sure certain files get built.
If you run "configure" without these special arguments, it is very likely
that GnuCash will fail to build.
that GnuCash will fail to build. Therefore, do not run configure by
hand.
At the moment it seems that ./configure has to be called with
--enable-maintainer-mode always in order so that certain files get
built. If you run "configure" without this argument, it is very
likely that GnuCash will fail to build.
If in doubt, you can run autogen.sh, run ./configure --help,
then re-run ./configure with your options.

View File

@@ -1,26 +1,18 @@
#!/bin/sh -x
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
# Exit this script if any command fails with non-zero exit status.
set -e
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
# First cache the command names in variables. If you want to
# override the names, simply set the variables before calling this
# script.
PKG_NAME="gnucash"
: ${GLIB_GETTEXTIZE=glib-gettextize}
: ${INTLTOOLIZE=intltoolize}
: ${LIBTOOLIZE=libtoolize}
: ${ACLOCAL=aclocal}
: ${AUTOHEADER=autoheader}
: ${AUTOMAKE=automake}
: ${AUTOCONF=autoconf}
(test -f $srcdir/configure.in \
## put other tests here
) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level $PKG_NAME directory"
exit 1
}
${GLIB_GETTEXTIZE} --force
${INTLTOOLIZE} --force
${LIBTOOLIZE} --force --automake
${ACLOCAL} -I macros ${ACLOCAL_FLAGS}
${AUTOHEADER}
${AUTOMAKE} --add-missing
${AUTOCONF}
echo "Now you can run ./configure --enable-maintainer-mode --enable-error-on-warning --enable-compile-warnings"
USE_GNOME2_MACROS=1
. $srcdir/macros/autogen.sh

298
macros/autogen.sh Normal file
View File

@@ -0,0 +1,298 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
DIE=0
#GETTEXTIZE=${GETTEXTIZE:-gettextize}
INTLTOOLIZE=${INTLTOOLIZE:-intltoolize}
LIBTOOLIZE=${LIBTOOLIZE:-libtoolize}
LIBTOOL=${LIBTOOL:-libtool}
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"
}
find_program "$AUTOCONF" autoconf 2.53
AUTOCONF="$program"
find_program "$AUTOHEADER" autoheader 2.53
AUTOHEADER="$program"
find_program "$AUTOMAKE" automake 1.5 "1.6 1.7"
AUTOMAKE="$program"
find_program "$ACLOCAL" aclocal 1.5 "1.6 1.7"
ACLOCAL="$program"
(${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
}
gettext_version=`gettextize --version 2>&1 | sed -n 's/^.*GNU gettext.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
case $gettext_version in
0.10.*)
;;
*)
INTL="--intl --no-changelog";;
esac
(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && {
(${LIBTOOL} --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`libtool' installed to compile GnuCash."
echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.4.2.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
}
grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && {
grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \
(${GETTEXT} --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`gettext' installed to compile GnuCash."
echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
}
grep "^AM_GNOME_GETTEXT" $srcdir/configure.in >/dev/null && {
grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \
(${GETTEXT} --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`gettext' installed to compile GnuCash."
echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
}
(${AUTOMAKE} --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`automake' installed to compile GnuCash."
echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.4.tar.gz"
echo "(or a newer version if it is available)"
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."
echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.4.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
if test "$DIE" -eq 1; then
exit 1
fi
if test -z "$*"; then
echo "**Warning**: I am going to run \`configure' with no arguments."
echo "If you wish to pass any to it, please specify them on the"
echo \`$0"' command line."
echo
fi
case $CC in
xlc )
am_opt=--include-deps;;
esac
for coin in "$srcdir/configure.in"
do
dr=`dirname $coin`
if test -f $dr/NO-AUTO-GEN; then
echo skipping $dr -- flagged as no auto-gen
else
echo processing $dr
macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin`
( cd $dr
macrodirs="$dr/macros"
for i in $macrodirs; do
if test -f $i/gnome-gettext.m4; then
DELETEFILES="$DELETEFILES $i/gnome-gettext.m4"
fi
done
echo "deletefiles is $DELETEFILES"
aclocalinclude="$ACLOCAL_FLAGS"
for k in $aclocalinclude; do
if test -d $k; then
if [ -f $k/gnome.m4 -a "$GNOME_INTERFACE_VERSION" = "1" ]; then
rm -f $DELETEFILES
fi
fi
done
for k in $macrodirs; do
if test -d $k; then
aclocalinclude="$aclocalinclude -I $k"
if [ -f $k/gnome.m4 -a "$GNOME_INTERFACE_VERSION" = "1" ]; then
rm -f $DELETEFILES
fi
fi
done
if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then
if grep "sed.*POTFILES" configure.in >/dev/null; then
: do nothing -- we still have an old unmodified configure.in
else
echo "Creating $dr/aclocal.m4 ..."
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
echo "(1) Running ${GETTEXTIZE}... Ignore non-fatal messages."
echo "no" | ${GETTEXTIZE} --force --copy $INTL
echo "Making $dr/aclocal.m4 writable ..."
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
fi
grep "intl/Makefile" configure.in > /dev/null ||
( sed -e 's#^AC_OUTPUT(#AC_OUTPUT( intl/Makefile po/Makefile.in#' \
configure.in >configure.in.new && mv configure.in.new configure.in )
fi
if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then
echo "Creating $dr/aclocal.m4 ..."
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
echo "(2) Running ${GETTEXTIZE}... Ignore non-fatal messages."
echo "no" | gettextize --force --copy $INTL
echo "Making $dr/aclocal.m4 writable ..."
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
grep "intl/Makefile" configure.in > /dev/null ||
( sed -e 's#^AC_OUTPUT(#AC_OUTPUT( intl/Makefile po/Makefile.in#' \
configure.in >configure.in.new && mv configure.in.new configure.in )
fi
if grep "^AM_GLIB_GNU_GETTEXT" configure.in >/dev/null; then
echo "Creating $dr/aclocal.m4 ..."
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
echo "(3) Running gettextize... Ignore non-fatal messages."
echo "no" | glib-gettextize --force --copy
echo "Making $dr/aclocal.m4 writable ..."
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
grep "po/Makefile.in" configure.in > /dev/null ||
( sed -e 's#^AC_OUTPUT(#AC_OUTPUT( po/Makefile.in#' \
configure.in >configure.in.new && mv configure.in.new configure.in )
fi
if grep "^AC_PROG_INTLTOOL" configure.in >/dev/null; then
echo "Running intltoolize ..."
intltoolize --force --copy
fi
if grep "^A[CM]_PROG_LIBTOOL" configure.in >/dev/null; then
echo "Running libtoolize..."
libtoolize --force --copy
fi
echo "Running $ACLOCAL $aclocalinclude ..."
$ACLOCAL $aclocalinclude
if grep "^AC_CONFIG_HEADER" configure.in >/dev/null; then
echo "Running ${AUTOHEADER}..."
${AUTOHEADER} || { echo "**Error**: autoheader failed."; exit 1; }
fi
echo "Running $AUTOMAKE --gnu $am_opt ..."
$AUTOMAKE --add-missing --gnu $am_opt
echo "Running autoconf ..."
autoconf
)
fi
done
conf_flags="--enable-maintainer-mode --enable-error-on-warning --enable-compile-warnings" # --enable-iso-c
if test x$NOCONFIGURE = x; then
echo Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
&& echo Now type \`make\' to compile $PKG_NAME || exit 1
else
echo Skipping configure process.
fi