General improvement on viewing wide and long slog2 files. This added features needed...
[mpe.git] / autogen.sh
1 #! /bin/sh
2 AUTOHEADER=${AUTOHEADER:-autoheader}
3 AUTOCONF=${AUTOCONF:-autoconf}
4 MPE_AUTOHEADER=${MPE_AUTOHEADER:-$AUTOHEADER}
5 MPE_AUTOCONF=${MPE_AUTOCONF:-$AUTOCONF}
6
7 # Check that we have a workable autoconf
8 acWorks=no
9 if test -d .tmp ; then rm -rf .tmp ; fi
10 if test -s .tmp ; then rm -f .tmp ; fi
11 if test ! -d .tmp ; then
12     mkdir .tmp 2>&1 >/dev/null
13 fi
14 rm -f .tmp/configure.in .tmp/configure
15 cat >.tmp/configure.in <<EOF
16 AC_PREREQ(2.52)
17 EOF
18 if (cd .tmp && $MPE_AUTOCONF >/dev/null 2>&1 ) ; then
19     acWorks=yes
20 fi
21 if [ "$acWorks" != yes ] ; then
22     echo "Selected version of autoconf cannot handle version 2.52"
23     echo "Trying to find an autoconf-2.xx..."
24     acver_min=59
25     acver_max=69
26     ver="$acver_max"
27     while [ "$ver" -ge "$acver_min" ] ; do
28         autoconf="autoconf-2.$ver"
29         if (cd .tmp && $autoconf >/dev/null 2>&1 ) ; then
30             MPE_AUTOCONF=$autoconf
31             MPE_AUTOHEADER="autoheader-2.$ver"
32             echo "Found $autoconf"
33             acWorks=yes
34             break
35         fi
36         ver="`expr $ver - 1`"
37     done
38     if [ "$acWorks" != yes ] ; then
39         echo "Unable to find workable autoconf"
40         exit 1
41     fi
42 fi
43 rm -rf .tmp
44
45 # We cannot use "find . -name 'configre.in'" to locate configure.ins
46 # because "." is the working directory not the top-level MPE2 source
47 # directory.  So we use the full-pathname of this script to locate the
48 # MPE2's top-level directory.  'dirname' does not return the full-pathname
49 # and may not be reliable in general, so we cd to the directory and
50 # use pwd to get the full-pathname of the top-level MPE2 source directory.
51 pgmdir="`dirname $0`"
52 master_dir=`(cd $pgmdir && pwd)`
53
54 # Remove all the configure first so we can track if the autoconf has been run.
55 find $master_dir -name 'configure' -exec rm -f {} \;
56
57 # Locate all the autogen.sh and invoke the script accordingly.
58 atgs=`find $master_dir -name 'autogen.sh' -print`
59 for atg in $atgs ; do
60     dir="`dirname $atg`"
61     if [ "$atg" != "$master_dir/autogen.sh" ] ; then
62         echo "Running autogen.sh in $dir/ ..."
63         $atg || exit 1
64     fi
65 done
66
67 # Locate all the configure.in and invoke autoconf if no configure is found.
68 cfgins=`find $master_dir -name 'configure.in' -print`
69 for cfgin in $cfgins ; do
70     dir="`dirname $cfgin`"
71     if [ ! -x "$dir/configure" ] ; then
72         if [ -n "`grep AC_CONFIG_HEADER $cfgin`" ] ; then
73             echo "Running autoheader/autoconf in $dir/ ..."
74             (cd $dir && $MPE_AUTOHEADER && $MPE_AUTOCONF && rm -rf autom4te*.cache) || exit 1
75         else
76             echo "Running autoconf in $dir/ ..."
77             (cd $dir && $MPE_AUTOCONF && rm -rf autom4te*.cache) || exit 1
78         fi
79     fi
80 done