[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