Test was the wrong way around
[metze/wireshark/wip.git] / aclocal-flags
1 #!/bin/sh
2 #
3 # This script returns the flags to be fed to "aclocal" to ensure that
4 # it finds GLib's aclocal macros (we assume GTK+ is installed in the
5 # same place as GLib) and pkg-config's aclocal macros.
6 #
7 # aclocal will search, by default, only in a directory in the same
8 # tree where it was installed - e.g., if installed in "/usr/bin", it'll
9 # search only in "/usr/share/aclocal", and if installed in "/usr/local/bin",
10 # it'll search only in "/usr/local/share/aclocal".
11 #
12 # However, there is no guarantee that GLib, or pkg-config has been installed
13 # there; if either of them hasn't been installed there, aclocal won't find
14 # the autoconf macros for whichever of them wan't, and will complain
15 # bitterly.
16 #
17 # So:
18 #
19 #       if pkg-config is found with a path that ends with "bin/pkg-config",
20 #       and the "share/local" directory under the directory at the path
21 #       that's the part of the pkg-config path preceding "bin/pkg-config"
22 #       isn't the same directory as the directory reported by "aclocal
23 #       --print-ac-dir", we include in our output a "-I" flag with that
24 #       directory as its argument;
25 #
26 #       if the "share/local" directory under the directory reported by
27 #       "pkg-config --variable=prefix glib-2.0" isn't the same directory
28 #       as the directory reported by "aclocal --print-ac-dir", we include
29 #       in our output a "-I" flag with the first of those directories as
30 #       the argument.
31 #
32 # If either of them *is* the same directory as the directory reported by
33 # "aclocal --print-ac-dir", and we supply that "-I" flag, "aclocal" will
34 # look in that directory twice, and get well and truly confused, reporting
35 # a ton of duplicate macro definitions.  This also means that if pkg-config
36 # and Glib are installed with the same prefix, we should only supply one
37 # "-I" flag for both of them.
38 #
39 # $Id$
40 #
41
42 #
43 # OK, where will aclocal look by default?
44 #
45 aclocal_dir=`aclocal --print-ac-dir`
46
47 #
48 # And where do we want to make sure it looks?
49 # Look for pkg-config first.
50 #
51 pkg_config_path=`command -v pkg-config 2>/dev/null`
52 if [ -z "$pkg_config_path" ]
53 then
54         #
55         # Either we don't have "command" (which is required by recent
56         # POSIX) or it didn't find pkg-config.
57         #
58         pkg_config_aclocal_dir=""
59 else
60         #
61         # OK, we found pkg-config; attempt to find the prefix for it, by
62         # stripping off "bin/pkg-config".
63         #
64         pkg_config_prefix=`expr "$pkg_config_path" : '\(.*\)/bin/pkg-config'`
65         if [ -z "$pkg_config_prefix" ]
66         then
67                 #
68                 # Well, we couldn't strip it off, for whatever reason.
69                 #
70                 pkg_config_aclocal_dir=""
71         else
72                 #
73                 # Solaris 11's default pkg-config installation puts
74                 # it in /usr/ccs/bin, but there's no /usr/ccs/share.
75                 # Map /usr/ccs to /usr.
76                 #
77                 # Ubuntu 7.10 has /usr/X11R6/bin as a symbolic link
78                 # to /usr/bin, but there's no /usr/X11R6/share.  If
79                 # /usr/X11R6/bin is a symlink to /usr/bin, map
80                 # /usr/X11R6 to /usr.
81                 #
82                 if [ "$pkg_config_prefix" = /usr/ccs ]
83                 then
84                         pkg_config_prefix=/usr
85                 elif [ "$pkg_config_prefix" = /usr/X11R6 ]
86                 then
87                         if expr "`ls -ld /usr/X11R6/bin`" : '.*/usr/X11R6/bin -> .*/bin$' >/dev/null
88                         then
89                                 pkg_config_prefix=/usr
90                         fi
91                 fi
92
93                 #
94                 # Now get the path of its aclocal directory.
95                 #
96                 pkg_config_aclocal_dir=$pkg_config_prefix/share/aclocal
97         fi
98 fi
99
100 #
101 # Now see where glib is installed.
102 #
103 glib_prefix=`pkg-config --variable=prefix glib-2.0 2>/dev/null`
104
105 #
106 # Now get the path of its aclocal directory.
107 #
108 if [ -z "$glib_prefix" ]
109 then
110         glib_aclocal_dir=""
111 else
112         glib_aclocal_dir=$glib_prefix/share/aclocal
113 fi
114
115 #
116 # Add our aclocal-fallback to the path.
117 # We write out the -I flag for it, and strip off CR and LF, as we may
118 # be writing more -I options, and we want all the options to be on
119 # one line.
120 #
121 ac_missing_dir=`dirname $0`
122 echo "-I $ac_missing_dir/aclocal-fallback" | tr -d '\012' | tr -d '\015'
123
124 #
125 # If there's no aclocal, aclocal_dir, which is the path where aclocal
126 # searches, will be empty; if we didn't find pkg-config,
127 # pkg_config_aclocal_dir, which is the path where it should search
128 # for pkg-config's macros, will be empty.  Add pkg_config_aclocal_dir only
129 # if both it and aclocal_dir are non-empty and different from each other.
130 #
131 if [ ! -z "$aclocal_dir" -a ! -z "$pkg_config_aclocal_dir" \
132     -a "$aclocal_dir" != "$pkg_config_aclocal_dir" ]
133 then
134         echo " -I $pkg_config_aclocal_dir" | tr -d '\012' | tr -d '\015'
135 fi
136
137 #
138 # If pkg-config doesn't know about glib-2.0, glib_aclocal_dir will be
139 # empty.  (Should we just fail in that case?  Does that mean we don't
140 # have GLib installed?)
141 #
142 # Add glib_aclocal_dir only if both it and aclocal_dir are non-empty and
143 # different from each other *and* pkg_config_aclocal_dir is different from
144 # glib_aclocal_dir.  (We don't need to check whether pkg_config_aclocal_dir
145 # is empty; if it is, then either glib_aclocal_dir is also empty, in which
146 # case we'll bail out before even looking at pkg_config_aclocal_dir, or
147 # it's non-empty, in which case it obviously won't be equal to
148 # pkg_config_aclocal_dir.)
149 #
150 if [ ! -z "$aclocal_dir" -a ! -z "$glib_aclocal_dir" \
151     -a "$aclocal_dir" != "$glib_aclocal_dir" \
152     -a "$pkg_config_aclocal_dir" != "$glib_aclocal_dir" ]
153 then
154         echo " -I $glib_aclocal_dir" | tr -d '\012' | tr -d '\015'
155 fi
156
157 #
158 # Put out the final line ending.
159 #
160 echo
161 exit 0