autogen.sh 5.11 KB
Newer Older
Josh Coalson's avatar
Josh Coalson committed
1
#!/bin/sh
2 3
# Run this to set up the build system: configure, makefiles, etc.
# (based on the version in enlightenment's cvs)
Josh Coalson's avatar
Josh Coalson committed
4

Josh Coalson's avatar
Josh Coalson committed
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
# Some notes:
#
# You may need to specify -I /SOME_PATH/share/aclocal in ACLOCAL_FLAGS
# if any packages FLAC relies on (autotools, libogg, libiconv) are
# installed in non-standard places.
#
# If you don't have XMMS installed at all, you should comment out
# AM_PATH_XMMS in configure.in.
#
# FLAC uses iconv but not gettext.  iconv requires config.rpath which
# is supplied by gettext, which is copied in by gettextize.  But we
# can't run gettextize since we do not fulfill all it's requirements
# (because we don't use it).  So you may have to:
#
#   cp /usr/share/gettext/config.rpath .
#
# before running autogen.sh
#
Josh Coalson's avatar
Josh Coalson committed
23 24 25 26 27 28 29 30 31
# If you are running on OS X and get errors related to the AM_ICONV
# and/or AM_LANGINFO_CODESET macros, replace those 2 lines in
# configure.in with
#
#   AC_DEFINE([HAVE_ICONV], [], [Whether we have libiconv available]) LIBICONV="-liconv"
#   AC_SUBST(LIBICONV)
#
# See also http://lists.xiph.org/pipermail/flac-dev/2007-September/002384.html
#
Josh Coalson's avatar
Josh Coalson committed
32 33 34 35 36 37
# Also watchout, if you replace ltmain.sh, there is a bug in some
# versions of libtool (or maybe autoconf) on some platforms where the
# configure-generated libtool does not have $SED defined.  See also:
#
#   http://lists.gnu.org/archive/html/libtool/2003-11/msg00131.html

38 39 40 41 42 43 44 45 46
package="flac"

olddir=`pwd`
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.

cd "$srcdir"
DIE=0

Josh Coalson's avatar
Josh Coalson committed
47 48
ACLOCAL_FLAGS="-I m4 $ACLOCAL_FLAGS"

49 50 51 52 53 54 55 56 57
echo "checking for autoconf... "
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
        echo
        echo "You must have autoconf installed to compile $package."
        echo "Download the appropriate package for your distribution,"
        echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
        DIE=1
}

58 59 60
VERSIONGREP="sed -e s/.*[^0-9\.]\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/"
VERSIONMKMAJ="sed -e s/\([0-9][0-9]*\)[^0-9].*/\\1/"
VERSIONMKMIN="sed -e s/.*[0-9][0-9]*\.//"
Josh Coalson's avatar
Josh Coalson committed
61

62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
# do we need automake?
if test -r Makefile.am; then
  AM_OPTIONS=`fgrep AUTOMAKE_OPTIONS Makefile.am`
  AM_NEEDED=`echo $AM_OPTIONS | $VERSIONGREP`
  if test x"$AM_NEEDED" = "x$AM_OPTIONS"; then
    AM_NEEDED=""
  fi
  if test -z $AM_NEEDED; then
    echo -n "checking for automake... "
    AUTOMAKE=automake
    ACLOCAL=aclocal
    if ($AUTOMAKE --version < /dev/null > /dev/null 2>&1); then
      echo "yes"
    else
      echo "no"
      AUTOMAKE=
    fi
  else
    echo -n "checking for automake $AM_NEEDED or later... "
81 82
    majneeded=`echo $AM_NEEDED | $VERSIONMKMAJ`
    minneeded=`echo $AM_NEEDED | $VERSIONMKMIN`
83
    for am in automake-$AM_NEEDED automake$AM_NEEDED \
84
	automake automake-1.7 automake-1.8 automake-1.9 automake-1.10; do
85
      ($am --version < /dev/null > /dev/null 2>&1) || continue
86 87 88 89
      ver=`$am --version < /dev/null | head -n 1 | $VERSIONGREP`
      maj=`echo $ver | $VERSIONMKMAJ`
      min=`echo $ver | $VERSIONMKMIN`
      if test $maj -eq $majneeded -a $min -ge $minneeded; then
90 91 92 93 94 95 96 97
        AUTOMAKE=$am
        echo $AUTOMAKE
        break
      fi
    done
    test -z $AUTOMAKE &&  echo "no"
    echo -n "checking for aclocal $AM_NEEDED or later... "
    for ac in aclocal-$AM_NEEDED aclocal$AM_NEEDED \
98
	aclocal aclocal-1.7 aclocal-1.8 aclocal-1.9 aclocal-1.10; do
99
      ($ac --version < /dev/null > /dev/null 2>&1) || continue
100 101 102 103
      ver=`$ac --version < /dev/null | head -n 1 | $VERSIONGREP`
      maj=`echo $ver | $VERSIONMKMAJ`
      min=`echo $ver | $VERSIONMKMIN`
      if test $maj -eq $majneeded -a $min -ge $minneeded; then
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
        ACLOCAL=$ac
        echo $ACLOCAL
        break
      fi
    done
    test -z $ACLOCAL && echo "no"
  fi
  test -z $AUTOMAKE || test -z $ACLOCAL && {
        echo
        echo "You must have automake installed to compile $package."
        echo "Download the appropriate package for your distribution,"
        echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
        exit 1
  }
fi

echo -n "checking for libtool... "
for LIBTOOLIZE in libtoolize glibtoolize nope; do
  ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 && break
done
if test x$LIBTOOLIZE = xnope; then
  echo "nope."
  LIBTOOLIZE=libtoolize
else
  echo $LIBTOOLIZE
fi
($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || {
	echo
	echo "You must have libtool installed to compile $package."
	echo "Download the appropriate package for your system,"
	echo "or get the source from one of the GNU ftp sites"
	echo "listed in http://www.gnu.org/order/ftp.html"
	DIE=1
}

if test "$DIE" -eq 1; then
        exit 1
fi

if test -z "$*"; then
        echo "I am going to run ./configure with no arguments - if you wish "
        echo "to pass any to it, please specify them on the $0 command line."
fi

148 149 150 151
if test ! -f config.rpath ; then
	touch config.rpath
fi

152 153 154 155 156 157 158 159 160 161 162 163 164 165
echo "Generating configuration files for $package, please wait...."

echo "  $ACLOCAL $ACLOCAL_FLAGS"
$ACLOCAL $ACLOCAL_FLAGS || exit 1
echo "  $LIBTOOLIZE --automake"
$LIBTOOLIZE --automake || exit 1
echo "  autoheader"
autoheader || exit 1
echo "  $AUTOMAKE --add-missing $AUTOMAKE_FLAGS"
$AUTOMAKE --add-missing $AUTOMAKE_FLAGS || exit 1
echo "  autoconf"
autoconf || exit 1

cd $olddir
166
$srcdir/configure "$@" && echo