* autogen.sh: Add options to build for coldfire and uClinux.
authorWerner Koch <wk@gnupg.org>
Tue, 8 Apr 2003 09:20:09 +0000 (09:20 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 8 Apr 2003 09:20:09 +0000 (09:20 +0000)
scripts/ChangeLog
scripts/autogen.sh

index aac18c3..a50cc23 100644 (file)
@@ -1,3 +1,7 @@
+2003-04-08  Werner Koch  <wk@gnupg.org>
+
+       * autogen.sh: Add options to build for coldfire and uClinux.
+
 2003-02-22  David Shaw  <dshaw@jabberwocky.com>
 
        * distfiles, gnupg.spec.in: convert-from-106 is in the tools
@@ -319,7 +323,7 @@ Wed Oct 14 09:55:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
        * config.sub: (freebsd): Add to maybe_os
 
 
- Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
  This file is free software; as a special exception the author gives
  unlimited permission to copy and/or distribute it, with or without
index 07ce852..b769355 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Run this to generate all the initial makefiles, etc.
 #
-# Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
 #
 # This file is free software; as a special exception the author gives
 # unlimited permission to copy and/or distribute it, with or without
@@ -22,6 +22,8 @@ AUTOCONF=${AUTOCONF:-autoconf}
 AUTOMAKE=${AUTOMAKE:-automake}
 AUTOHEADER=${AUTOHEADER:-autoheader}
 DIE=no
+
+# Used to cross-compile GnuPG for Windows.
 if test "$1" = "--build-w32"; then
     tmp=`dirname $0`
     tsdir=`cd "$tmp"; cd ..; pwd`
@@ -74,6 +76,119 @@ if test "$1" = "--build-w32"; then
 fi
 
 
+# This is the special case to build on a ColdFire platform under 
+# the uClinux kernel.  Tested on a MCF4249C3 board.
+if test "$1" = "--build-coldfire"; then
+    tmp=`dirname $0`
+    tsdir=`cd "$tmp"; cd ..; pwd`
+    shift
+    if [ $# -lt 1 ]; then
+      echo "usage: autogen.sh --build-coldfire <crossroot>" >&2
+      exit 1
+    fi
+    crossdir="$1"
+    shift
+
+    host=m68k-elf
+    crossprefix=${host}-
+    if [ ! -f $tsdir/scripts/config.guess ]; then
+        echo "$tsdir/scripts/config.guess not found" >&2
+        exit 1
+    fi
+    build=`$tsdir/scripts/config.guess`
+        
+    if [ -f "$tsdir/config.log" ]; then
+        if ! head $tsdir/config.log | grep m68k-elf >/dev/null; then
+            echo "Pease run a 'make distclean' first" >&2
+            exit 1
+        fi
+    fi
+
+    crossbindir=$crossdir/bin
+    CC=${crossbindir}/${crossprefix}gcc
+    CPP=${crossbindir}/cpp
+    AR=${crossbindir}/${crossprefix}ar
+    RANLIB=${crossbindir}/${crossprefix}ranlib
+
+    CFLAGS="-Os -g -fomit-frame-pointer"
+    CFLAGS="$CFLAGS -m5307 -DCONFIG_COLDFIRE"
+    CFLAGS="$CFLAGS -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED"
+    CFLAGS="$CFLAGS -fno-builtin -msep-data"
+    LDFLAGS="-Wl,-elf2flt -Wl,-move-rodata -nostartfiles"
+    LDFLAGS="$LDFLAGS ${crossdir}/m68k-elf/lib/crt0.o"
+    LIBS="-lc"
+
+    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 ColdFire" >&2
+                DIE=yes
+            fi
+        done
+    fi
+    [ $DIE = yes ] && exit 1
+
+    $tsdir/configure --build=${build} --host=${host} \
+                ${disable_foo_tests} \
+                --disable-dynload \
+                --disable-exec \
+                --disable-photo-viewers \
+                --disable-keyserver-helpers \
+                --disable-ldap \
+                --disable-mailto \
+                --disable-largefile \
+                --disable-asm \
+                --disable-nls $* \
+                CC="$CC" CPP="$CPP" AR="$AR" RANLIB="$RANLIB" \
+                CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" LIBS="$LIBS"
+    exit $?
+fi
+
+
+# This is the special case to build on a ColdFire platform under 
+# the uClinux kernel with uClinux-dist.  Tested on a MCF4249C3 board.
+if test "$1" = "--build-uclinux"; then
+    tmp=`dirname $0`
+    tsdir=`cd "$tmp"; cd ..; pwd`
+    shift
+
+    if [ ! -f $tsdir/scripts/config.guess ]; then
+        echo "$tsdir/scripts/config.guess not found" >&2
+        exit 1
+    fi
+    build=`$tsdir/scripts/config.guess`
+    host=m68k-elf
+        
+    if [ -f "$tsdir/config.log" ]; then
+        if ! head $tsdir/config.log | grep m68k-elf >/dev/null; then
+            echo "Please run a 'make distclean' first" >&2
+            exit 1
+        fi
+    fi
+
+    $tsdir/configure --build=${build} --host=${host} \
+                ${disable_foo_tests} \
+                --disable-dynload \
+                --disable-exec \
+                --disable-photo-viewers \
+                --disable-keyserver-helpers \
+                --disable-ldap \
+                --disable-mailto \
+                --disable-largefile \
+                --disable-asm \
+               --disable-nls $* \
+                CC="$CC" CPP="$CPP" AR="$AR" RANLIB="$RANLIB" \
+                CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" LIBS="$LDLIBS"
+    exit $?
+fi
+
+
 
 if ($AUTOCONF --version) < /dev/null > /dev/null 2>&1 ; then
     if ($AUTOCONF --version | awk 'NR==1 { if( $3 >= '$autoconf_vers') \