HTTPS is now needed to download the pkg-config source.
[metze/wireshark/wip.git] / autogen.sh
index 7a5c1794732e89c2f2abc8aa6068fced97fc2e67..19b4e8516d6e9e438589341bcb3834b6d5a61121 100755 (executable)
@@ -2,32 +2,67 @@
 #
 # Run this to generate all the initial makefiles.
 #
-# $Id: autogen.sh,v 1.12 2000/10/16 23:18:03 guy Exp $
+# Copyright 2014 The Wireshark Authors
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 DIE=true
-PROJECT="Ethereal"
-
-
-# Check for python. There's no "--version" option!
-python -c "print 'Checking for python.'"
-if [ $? != 0 ] ; then
+PROJECT="Wireshark"
+
+# If you are going to use the non-default name for automake becase your OS
+# installaion has multiple versions, you need to call both aclocal and automake
+# with that version number, as they come from the same package.
+#AM_VERSION='-1.8'
+
+ACLOCAL=aclocal$AM_VERSION
+AUTOHEADER=autoheader
+AUTOMAKE=automake$AM_VERSION
+AUTOCONF=autoconf
+PKG_CONFIG=pkg-config
+
+# Check for python. Python did not support --version before version 2.5.
+# Until we require a version > 2.5, we should use -V.
+PYVER=`exec python -V 2>&1 | sed 's/Python *//'`
+# If "python" isn't found, try "python3"
+if test "$PYVER" = "exec: python: not found"
+then
+    PYVER=`exec python3 -V 2>&1 | sed 's/Python *//'`
+fi
+case "$PYVER" in
+2*|3*)
+  ;;
+*)
   cat >&2 <<_EOF_
 
-       You must have Python in order to compiler $PROJECT.
+       You must have Python in order to compile $PROJECT.
        Download the appropriate package for your distribution/OS,
        or get the source tarball at http://www.python.org/
 _EOF_
   DIE="exit 1"
-fi
-
+esac
 
-VER=`autoconf --version | grep '^autoconf' | sed 's/.*)//'`
-case "$VER" in
-0* | 1\.* | 2\.[0-9] | 2\.[0-9][a-z]* | \
-2\.1[0-2] | 2\.1[0-2][a-z]* )
+ACVER=`$AUTOCONF --version | grep '^autoconf' | sed 's/.*) *//'`
+case "$ACVER" in
+'' | 0.* | 1.* | 2.[0-5]* | 2.6[0123]* )
   cat >&2 <<_EOF_
 
-       You must have autoconf 2.13 or later installed to compile $PROJECT.
+       You must have autoconf 2.64 or later installed to compile $PROJECT.
        Download the appropriate package for your distribution/OS,
        or get the source tarball at ftp://ftp.gnu.org/pub/gnu/autoconf/
 _EOF_
@@ -36,13 +71,16 @@ _EOF_
 esac
 
 
-VER=`automake --version | grep '^automake' | sed 's/.*)//'`
-case "$VER" in
-0* | 1\.[0-3] | 1\.[0-3][a-z]* )
+AMVER=`$AUTOMAKE --version | grep '^automake' | sed 's/.*) *//'`
+case "$AMVER" in
+1.9* | 1.[1][0-9]*)
+  ;;
+
+*)
 
   cat >&2 <<_EOF_
 
-       You must have automake 1.4 or later installed to compile $PROJECT.
+       You must have automake 1.9 or later installed to compile $PROJECT.
        Download the appropriate package for your distribution/OS,
        or get the source tarball at ftp://ftp.gnu.org/pub/gnu/automake/
 _EOF_
@@ -51,15 +89,29 @@ _EOF_
 esac
 
 
-VER=`libtool --version | grep ' libtool)' | \
-sed 's/.*) \([0-9][0-9.]*\) .*/\1/' `
-case "$VER" in
-0* | 1\.[0-2] | 1\.[0-2][a-z]* | \
-1\.3\.[0-2] | 1\.3\.[0-2][a-z]* )
+#
+# Apple's Developer Tools have a "libtool" that has nothing to do with
+# the GNU libtool; they call the latter "glibtool".  They also call
+# libtoolize "glibtoolize".
+#
+# Check for "glibtool" first.
+#
+LTVER=`glibtool --version 2>/dev/null | grep ' libtool)' | \
+    sed 's/.*libtool) \([0-9][0-9.]*\)[^ ]* .*/\1/'`
+if test -z "$LTVER"
+then
+       LTVER=`libtool --version | grep ' libtool)' | \
+           sed 's/.*) \([0-9][0-9.]*\)[^ ]* .*/\1/' `
+       LIBTOOLIZE=libtoolize
+else
+       LIBTOOLIZE=glibtoolize
+fi
+case "$LTVER" in
+'' | 0.* | 1.[0-3]* )
 
   cat >&2 <<_EOF_
 
-       You must have libtool 1.3.3 or later installed to compile $PROJECT.
+       You must have libtool 1.4 or later installed to compile $PROJECT.
        Download the appropriate package for your distribution/OS,
        or get the source tarball at ftp://ftp.gnu.org/pub/gnu/libtool/
 _EOF_
@@ -67,33 +119,53 @@ _EOF_
   ;;
 esac
 
-$DIE
-
-libtoolize --copy --force || exit 1
+#
+# XXX - is there some minimum version for which we should be checking?
+#
+PCVER=`pkg-config --version`
+if test -z "$PCVER"; then
+  cat >&2 <<_EOF_
 
-if test -z "$*"; then
-       echo "Running ./configure with no arguments. If you wish to pass any,"
-       echo "please specify them on the $0 command line."
+       You must have pkg-config installed to compile $PROJECT.
+       Download the appropriate package for your distribution/OS,
+       or get the source tarball at http://pkgconfig.freedesktop.org/releases/
+_EOF_
+  DIE="exit 1"
 fi
 
-aclocal_flags="`./aclocal-flags`"
-for dir in . epan wiretap ;  do
-  echo processing $dir
-  (
-    cd $dir
-    aclocalinclude="$ACLOCAL_FLAGS $aclocal_flags"; \
-    echo aclocal $aclocalinclude
-    aclocal $aclocalinclude || exit 1
-    echo autoheader
-    autoheader || exit 1
-    echo automake --add-missing --gnu $am_opt
-    automake --add-missing --gnu $am_opt || exit 1
-    echo autoconf
-    autoconf || exit 1
-  ) || exit 1
-done
-
-./configure "$@" || exit 1
+$DIE
+
+aclocal_flags=`./aclocal-flags`
+aclocalinclude="$ACLOCAL_FLAGS $aclocal_flags";
+echo $ACLOCAL $aclocalinclude
+$ACLOCAL $aclocalinclude || exit 1
+#
+# We do NOT want libtoolize overwriting our versions of config.guess and
+# config.sub, so move them away and then move them back.
+# We don't omit "--force", as we want libtoolize to install other files
+# without whining.
+#
+mv config.guess config.guess.save-libtool
+mv config.sub config.sub.save-libtool
+LTARGS=" --copy --force"
+echo $LIBTOOLIZE $LTARGS
+$LIBTOOLIZE $LTARGS || exit 1
+rm -f config.guess config.sub
+mv config.guess.save-libtool config.guess
+mv config.sub.save-libtool config.sub
+echo $AUTOHEADER
+$AUTOHEADER || exit 1
+echo $AUTOMAKE --add-missing --gnu $am_opt
+$AUTOMAKE --add-missing --gnu $am_opt || exit 1
+echo $AUTOCONF
+$AUTOCONF || exit 1
+
+if [ `uname -s` = Darwin ] ; then
+    echo
+    echo "To configure Wireshark on OS X, you will need to type:"
+    echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/X11/lib/pkgconfig"
+    echo "before you can run configure."
+fi
 
 echo
-echo "Now type 'make' to compile $PROJECT."
+echo "Now type \"./configure [options]\" and \"make\" to compile $PROJECT."