[Gnucash-changes] r12285 - gnucash/trunk - Move code from
macros/autogen.sh to ./autogen.sh to make it more
Christian Stimming
cstim at cvs.gnucash.org
Sat Jan 7 09:51:39 EST 2006
Author: cstim
Date: 2006-01-07 09:51:37 -0500 (Sat, 07 Jan 2006)
New Revision: 12285
Trac: http://svn.gnucash.org/trac/changeset/12285
Removed:
gnucash/trunk/macros/autogen.sh
Modified:
gnucash/trunk/ChangeLog
gnucash/trunk/Makefile.am
gnucash/trunk/autogen.sh
Log:
Move code from macros/autogen.sh to ./autogen.sh to make it more
obvious what happens. Add checks for all programs that are called,
fixes bug#325721. However in principle the code wasn't changed, only
cleaned up.
Modified: gnucash/trunk/ChangeLog
===================================================================
--- gnucash/trunk/ChangeLog 2006-01-07 07:36:47 UTC (rev 12284)
+++ gnucash/trunk/ChangeLog 2006-01-07 14:51:37 UTC (rev 12285)
@@ -1,3 +1,10 @@
+2006-01-07 Christian Stimming <stimming at tuhh.de>
+
+ * autogen.sh: Move code from macros/autogen.sh to here to make it
+ more obvious what happens. Add checks for all programs that are
+ called, fixes bug#325721. However in principle the code wasn't
+ changed, only cleaned up.
+
2006-01-07 David Hampton <hampton at employees.org>
* src/business/business-gnome/dialog-order.c:
Modified: gnucash/trunk/Makefile.am
===================================================================
--- gnucash/trunk/Makefile.am 2006-01-07 07:36:47 UTC (rev 12284)
+++ gnucash/trunk/Makefile.am 2006-01-07 14:51:37 UTC (rev 12285)
@@ -44,7 +44,6 @@
make-gnucash-potfiles.in \
macros/aqbanking.m4 \
macros/as-scrub-include.m4 \
- macros/autogen.sh \
macros/compiler-flags.m4 \
macros/g-wrap.m4 \
macros/gnome-guile-checks.m4 \
Modified: gnucash/trunk/autogen.sh
===================================================================
--- gnucash/trunk/autogen.sh 2006-01-07 07:36:47 UTC (rev 12284)
+++ gnucash/trunk/autogen.sh 2006-01-07 14:51:37 UTC (rev 12285)
@@ -1,18 +1,226 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
+# Set ${srcdir} to .
+: ${srcdir=.}
-PKG_NAME="gnucash"
+DIE=0
-(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
+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
}
-USE_GNOME2_MACROS=1
-. $srcdir/macros/autogen.sh
+# 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.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"
+
+############################################################
+#
+# 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
+}
+
+(${LIBTOOLIZE} --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`libtoolize' 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
+}
+
+(${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.
+
+dr=${srcdir}
+
+echo "Creating $dr/aclocal.m4 ..."
+test -r $dr/aclocal.m4 || touch $dr/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 $dr/aclocal.m4 is writable ..."
+test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
+
+echo "Running ${INTLTOOLIZE} --force --copy ..."
+${INTLTOOLIZE} --force --copy
+
+echo "Running ${LIBTOOLIZE} --force --copy ..."
+${LIBTOOLIZE} --force --copy
+
+aclocalinclude="$ACLOCAL_FLAGS -I macros"
+echo "Running ${ACLOCAL} $aclocalinclude ..."
+${ACLOCAL} $aclocalinclude
+
+echo "Running ${AUTOHEADER}..."
+${AUTOHEADER} || { echo "**Error**: autoheader failed."; exit 1; }
+
+echo "Running ${AUTOMAKE} --add-missing --gnu $am_opt ..."
+${AUTOMAKE} --add-missing --gnu $am_opt
+
+echo "Running ${AUTOCONF} ..."
+${AUTOCONF}
+
+############################################################
+# Done.
+
+conf_flags="--enable-error-on-warning --enable-compile-warnings" # --enable-iso-c
+
+echo You must now run $srcdir/configure $conf_flags "$@" ...
Deleted: gnucash/trunk/macros/autogen.sh
===================================================================
--- gnucash/trunk/macros/autogen.sh 2006-01-07 07:36:47 UTC (rev 12284)
+++ gnucash/trunk/macros/autogen.sh 2006-01-07 14:51:37 UTC (rev 12285)
@@ -1,261 +0,0 @@
-#!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-
-DIE=0
-
-: ${GLIB_GETTEXTIZE=glib-gettextize}
-: ${INTLTOOLIZE=intltoolize}
-: ${LIBTOOLIZE=libtoolize}
-
-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) && {
- (${LIBTOOLIZE} --version) < /dev/null > /dev/null 2>&1 || {
- echo
- echo "**Error**: You must have \`libtoolize' 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
-
-# We don't call configure so we don't need to warn the user here.
-#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
-
- 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
-
- echo "Running ${INTLTOOLIZE} ..."
- ${INTLTOOLIZE} --force --copy
-
- echo "Running ${LIBTOOLIZE}..."
- ${LIBTOOLIZE} --force --copy
-
- echo "Running ${ACLOCAL} $aclocalinclude ..."
- ${ACLOCAL} $aclocalinclude
-
- echo "Running ${AUTOHEADER}..."
- ${AUTOHEADER} || { echo "**Error**: autoheader failed."; exit 1; }
-
- echo "Running ${AUTOMAKE} --gnu $am_opt ..."
- ${AUTOMAKE} --add-missing --gnu $am_opt
-
- echo "Running ${AUTOCONF} ..."
- ${AUTOCONF}
- )
- fi
-done
-
-conf_flags="--enable-error-on-warning --enable-compile-warnings" # --enable-iso-c
-
-echo You must now run $srcdir/configure $conf_flags "$@" ...
More information about the gnucash-changes
mailing list