Generate the ChangeLog at bootstrap time, make the ChangeLog Makefile target more...
[synfig.git] / ETL / trunk / bootstrap
index 533c02d..549b442 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 #
 # Extended Template Library Bootstrap Script
-# $Id: bootstrap,v 1.2 2005/01/04 01:54:14 darco Exp $
+# $Id$
 # 
 # This script creates the configure script and Makefile.in files,
 # and also fixes a few things in both to ensure a smooth build
@@ -9,14 +9,20 @@
 #
 
 # Grab the current directory and move to our own
-CURR_DIR=$(pwd)
-cd $(dirname $0)
+CURR_DIR="$(pwd)"
+cd "$(dirname $0)"
 
 # Environment Variables
-BOOTSTRAP_NAME=$(basename $0)
-CONFIG_DIR=$(pwd)/config
+BOOTSTRAP_NAME="$(basename $0)"
 
-. $CONFIG_DIR/build.cfg
+CONFIG_DIR="config"
+
+[ -x /bin/cygpath ] && CONFIG_DIR="`cygpath -m -s "$CONFIG_DIR"`"
+[ -x /bin/cygpath ] && CONFIG_DIR="`cygpath -u "$CONFIG_DIR"`"
+[ -x /bin/cygpath ] && CURR_DIR="`cygpath -m -s "$CURR_DIR"`"
+[ -x /bin/cygpath ] && CURR_DIR="`cygpath -u "$CURR_DIR"`"
+
+. "$CONFIG_DIR/build.cfg"
 
 SED_SCRIPT="
 s/@PACKAGE@/$PACKAGE/g;
@@ -29,6 +35,7 @@ s/@VERSION_MAJ@/$VERSION_MAJ/g;
 s/@VERSION_MIN@/$VERSION_MIN/g;
 s/@VERSION_REV@/$VERSION_REV/g;
 s/@VERSION_REL@/$VERSION_REL/g;
+s'@SVN_REPOSITORY@'$SVN_REPOSITORY'g;
 s/@CFLAGS@//g;
 "
 
@@ -50,11 +57,11 @@ cleanup () {
        rm -fr config.cache autom4te.cache configure.in $TEMPFILE
 }
 
-output Prepairing build environment for $PACKAGE-$VERSION...
+output Preparing build environment for $PACKAGE-$VERSION...
 
 # Look for the CVS directory. If we don't find it, we need to
 # ask the user if they know what they are doing.
-test -d CVS ||
+( test -d CVS || test -d .svn ) ||
 {
        echo "
 $BOOTSTRAP_NAME: warning: This shell script is intended for those
@@ -109,21 +116,25 @@ $BOOTSTRAP_NAME: warning: *** Bootstrap process may fail!"
 
 for FILENAME in doxygen.cfg pkgconfig.pc project.spec ; do {
 output Creating $FILENAME...
-sed "$SED_SCRIPT" < $CONFIG_DIR/$FILENAME.in > $FILENAME;
+sed "$SED_SCRIPT" < "$CONFIG_DIR/$FILENAME.in" > $FILENAME;
 } ; done
 
 output Renaming pkgconfig.pc to $PACKAGE_TARNAME.pc.in...
 mv pkgconfig.pc "$PACKAGE_TARNAME.pc.in"
 
-output Renaming project.spec to $PACKAGE-$VERSION.spec...
-mv project.spec "$PACKAGE-$VERSION.spec"
+output Renaming project.spec to $PACKAGE.spec...
+mv project.spec "$PACKAGE.spec"
 
-output Finishing up $PACKAGE-$VERSION.spec...
-echo %changelog >> "$PACKAGE-$VERSION.spec"
-cat ChangeLog >> "$PACKAGE-$VERSION.spec"
+output Finishing up $PACKAGE.spec...
+echo %changelog >> "$PACKAGE.spec"
+cat NEWS >> "$PACKAGE.spec"
 
 output Creating configure.in from configure.ac...
-sed "$SED_SCRIPT" < $CONFIG_DIR/configure.ac > configure.in;
+sed "$SED_SCRIPT" < "$CONFIG_DIR/configure.ac" > configure.in;
+
+output Generating ChangeLog from SVN
+if test x != "x$VERSION_REL" ; then export REVISION="--revision $VERSION_REL" ; fi
+test -f ChangeLog || svn2cl --include-rev $REVISION $SVN_REPOSITORY/trunk/ || touch ChangeLog
 
 output Setting up build environment...
 
@@ -132,10 +143,10 @@ set -x
 
 # Create all of the build environment files
 (
-       aclocal -I $CONFIG_DIR $ACLOCAL_FLAGS &&
+       aclocal -I "$CONFIG_DIR" $ACLOCAL_FLAGS &&
        autoheader &&
        autoconf -o configure &&
-       automake --foreign --add-missing --copy --include-deps 
+       automake --force-missing --add-missing --include-deps 
 ) ||
 {
        # Something went wrong...
@@ -206,4 +217,4 @@ echo $BOOTSTRAP_NAME: Complete.
 cleanup;
 
 # Move back to the current directory
-cd $CURR_DIR
+cd "$CURR_DIR"