Add a script, "aclocal-flags", which figures out where
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Wed, 26 Jul 2000 08:03:57 +0000 (08:03 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Wed, 26 Jul 2000 08:03:57 +0000 (08:03 +0000)
1) aclocal expects autoconf/automake macros to be hidden;

2) GTK+ hid its autoconf/automake macros;

and, if both places exist but aren't the same directory, returns a "-I"
flag to tell aclocal to look in GTK+'s directory.

Then have "autogen.sh", and Makefiles in directories with "acinclude.m4"
files, use that script and pass what flag it supplies, if any, to
aclocal.

This should, I hope, avoid problems such as those FreeBSD systems where
GTK+ was installed from a port or package (and thus stuck its macros in
"/usr/X11R6/share/aclocal") but aclocal doesn't look there.

(It doesn't solve the problem of somebody downloading and installing,
say, libtool from source - which means it probably shows up under
"/usr/local", with its macros in "/usr/local/share/aclocal" - on a
system that comes with aclocal (meaning it probably just looks in
"/usr/share/aclocal", but that may be best fixed by, whenever you
download a source tarball for something that's part of your OS,
configuring it to install in the standard system directories and
*overwriting* your OS's version.)

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@2165 f5534014-38df-0310-8fa8-9805f1628bb7

Makefile.am
aclocal-flags [new file with mode: 0755]
autogen.sh
wiretap/Makefile.am

index d5bd9ee0f8f92e79a7a479597d98026c8cc51830..8e9ad06aba96874f26e09f22395044d2a3d74839 100644 (file)
@@ -1,7 +1,7 @@
 # Makefile.am
 # Automake file for Ethereal
 #
-# $Id: Makefile.am,v 1.213 2000/07/26 03:38:26 gerald Exp $
+# $Id: Makefile.am,v 1.214 2000/07/26 08:03:38 guy Exp $
 #
 # Ethereal - Network traffic analyzer
 # By Gerald Combs <gerald@zing.org>
@@ -22,6 +22,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+ACLOCAL_AMFLAGS = `./aclocal-flags`
+
 EXTRA_PROGRAMS = ethereal_static
 bin_PROGRAMS = ethereal editcap tethereal
 
@@ -464,6 +466,7 @@ DISTCLEANFILES =    \
        *~
 
 EXTRA_DIST = \
+       aclocal-flags           \
        config.h.win32          \
        config.nmake            \
        debian/README.debian    \
diff --git a/aclocal-flags b/aclocal-flags
new file mode 100755 (executable)
index 0000000..85ed141
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# This script returns the flags to be fed to "aclocal" to ensure that
+# it finds GTK+'s aclocal macros.
+#
+# aclocal will search, by default, only in a directory in the same
+# tree where it was installed - e.g., if installed in "/usr/bin", it'll
+# search only in "/usr/share/aclocal", and if installed in "/usr/local/bin",
+# it'll search only in "/usr/local/share/aclocal".
+#
+# However, there is no guarantee that GTK+ has been installed there; if
+# it's not, it won't find the GTK+ autoconf macros, and will complain
+# bitterly.
+#
+# So, if the "share/local" directory under the directory reported by
+# "gtk-config --prefix" isn't the same directory as the directory
+# reported by "aclocal --print-ac-dir", we return a "-I" flag with
+# the first of those directories as the argument.
+#
+# (If they *are* the same directory, and we supply that "-I" flag,
+# "aclocal" will look in that directory twice, and get well and truly
+# confused, reporting a ton of duplicate macro definitions.)
+#
+# $Id: aclocal-flags,v 1.1 2000/07/26 08:03:40 guy Exp $
+#
+
+#
+# OK, where will aclocal look by default?
+#
+aclocal_dir=`aclocal --print-ac-dir`
+
+#
+# And where do we want to make sure it looks?
+#
+gtk_aclocal_dir=`gtk-config --prefix`/share/aclocal
+
+#
+# If there's no "aclocal", the former will be empty; if there's no
+# "gtk-config", the latter will be empty.
+#
+# Add the "-I" flag only if neither of those strings are empty, and
+# they're different.
+#
+if [ ! -z "$aclocal_dir" -a ! -z "$gtk_aclocal_dir" \
+    -a "$aclocal_dir" != "$gtk_aclocal_dir" ]
+then
+       echo "-I $gtk_aclocal_dir"
+fi
+exit 0
index 5642f71cd63a1f61bef8abe259b7b9ab29f66ada..cb1ad9a373e00f665b00401931c499b12502fc60 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # Run this to generate all the initial makefiles.
 #
-# $Id: autogen.sh,v 1.9 2000/07/22 20:00:21 guy Exp $
+# $Id: autogen.sh,v 1.10 2000/07/26 08:03:39 guy Exp $
 
 DIE=true
 PROJECT="Ethereal"
@@ -62,11 +62,12 @@ if test -z "$*"; then
        echo "please specify them on the $0 command line."
 fi
 
+aclocal_flags="`./aclocal-flags`"
 for dir in . wiretap ;  do
   echo processing $dir
   (
     cd $dir
-    aclocalinclude="$ACLOCAL_FLAGS"; \
+    aclocalinclude="$ACLOCAL_FLAGS $aclocal_flags"; \
     echo aclocal $aclocalinclude
     aclocal $aclocalinclude || exit 1
     echo autoheader
index 02c3c0c928a0c79c954cdf9c8945106f910147f8..3881206dc1369e214dd73701a440a72b44548c1e 100644 (file)
@@ -1,7 +1,7 @@
 # Makefile.am
 # Automake file for Wiretap
 #
-# $Id: Makefile.am,v 1.28 2000/06/06 16:21:26 gram Exp $
+# $Id: Makefile.am,v 1.29 2000/07/26 08:03:57 guy Exp $
 #
 # Ethereal - Network traffic analyzer
 # By Gerald Combs <gerald@zing.org>
@@ -22,6 +22,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+ACLOCAL_AMFLAGS = `../aclocal-flags`
+
 noinst_LIBRARIES = libwiretap.a
 
 #EXTRA_LIBRARIES = libwiretap.a