2002-06-25 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / autogen.sh
index 11b2761..d7da76d 100755 (executable)
@@ -3,27 +3,27 @@
 # It is only needed for the CVS version.
 
 PGM=GPGME
-DIE=no
+lib_config_files=""
+autoconf_vers=2.52
+automake_vers=1.5
+aclocal_vers=1.5
+libtool_vers=1.4
 
-#
-# Use --build-w32 to prepare the cross compiling build for Windoze
-#
+DIE=no
 if test "$1" = "--build-w32"; then
     shift
     target=i386--mingw32
+    if [ ! -f ./config.guess ]; then
+        echo "./config.guess not found" >&2
+        exit 1
+    fi
     host=`./config.guess`
         
-    CC="${target}-gcc"
-    CPP="${target}-gcc -E"
-    RANLIB="${target}-ranlib"
-        
-    cc_version=`$CC --version`
-    if ! echo "$cc_version" | egrep '[0-9]+wk[0-9]+' ; then
-        echo "gcc version $cc_version is not supported" >&2
-        echo "see doc/README.W32 for instructions" >&2
+    if ! mingw32 --version >/dev/null; then
+        echo "We need at least version 0.3 of MingW32/CPD" >&2
         exit 1
     fi
-        
+
     if [ -f config.h ]; then
         if grep HAVE_DOSISH_SYSTEM config.h | grep undef >/dev/null; then
             echo "Pease run a 'make distclean' first" >&2
@@ -31,16 +31,45 @@ if test "$1" = "--build-w32"; then
         fi
     fi
 
-    export CC CPP RANLIB
-    ./configure --host=${host} --target=${target} $*
+    crossinstalldir=`mingw32 --install-dir`
+    crossbindir=`mingw32 --get-bindir 2>/dev/null` \
+               || crossbindir="$crossinstalldir/bin"
+    crossdatadir=`mingw32 --get-datadir 2>/dev/null` \
+               || crossdatadir="$crossinstalldir/share"
+    crosslibdir=`mingw32 --get-libdir 2>/dev/null` \
+               || crosslibdir="$crossinstalldir/i386--mingw32/lib"
+    crossincdir=`mingw32 --get-includedir 2>/dev/null` \
+               || crossincdir="$crossinstalldir/i386--mingw32/include"
+    CC=`mingw32 --get-path gcc`
+    CPP=`mingw32 --get-path cpp`
+    AR=`mingw32 --get-path ar`
+    RANLIB=`mingw32 --get-path ranlib`
+    export CC CPP AR RANLIB 
+
+    disable_foo_tests=""
+    if [ -n "$lib_config_files" ]; then
+        for i in $lib_config_files; do
+            j=`echo $i | tr '[a-z-]' '[A-Z_]'`
+            eval "$j=${crossbindir}/$i"
+            export $j
+            disable_foo_tests="$disable_foo_tests --disable-`echo $i| \
+                           sed 's,-config$,,'`-test"
+            if [ ! -f "${crossbindir}/$i" ]; then                   
+                echo "$i not installed for MingW32" >&2
+                DIE=yes
+            fi
+        done
+    fi
+    [ $DIE = yes ] && exit 1
+
+    ./configure --host=${host} --target=${target}  ${disable_foo_tests} \
+                --bindir=${crossbindir} --libdir=${crosslibdir} \
+                --datadir=${crossdatadir} --includedir=${crossincdir} \
+                --enable-maintainer-mode $*
     exit $?
 fi
 
 
-autoconf_vers=2.13
-automake_vers=1.4
-aclocal_vers=1.4
-libtool_vers=1.3
 
 if (autoconf --version) < /dev/null > /dev/null 2>&1 ; then
     if (autoconf --version | awk 'NR==1 { if( $3 >= '$autoconf_vers') \
@@ -114,19 +143,7 @@ echo "Running aclocal..."
 aclocal
 echo "Running autoheader..."
 autoheader
-echo "Running automake --gnu ..."
-automake --gnu;
+echo "Running automake --gnu -a ..."
+automake --gnu -a
 echo "Running autoconf..."
 autoconf
-
-if test "$*" = ""; then
-    conf_options="--enable-maintainer-mode"
-else
-   conf_options=$*
-fi
-echo "Running ./configure $conf_options"
-./configure $conf_options
-
-
-
-