1 |
siliconforks |
174 |
# lib-prefix.m4 serial 5 (gettext-0.15) |
2 |
|
|
dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. |
3 |
|
|
dnl This file is free software; the Free Software Foundation |
4 |
|
|
dnl gives unlimited permission to copy and/or distribute it, |
5 |
|
|
dnl with or without modifications, as long as this notice is preserved. |
6 |
|
|
|
7 |
|
|
dnl From Bruno Haible. |
8 |
|
|
|
9 |
|
|
dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and |
10 |
|
|
dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't |
11 |
|
|
dnl require excessive bracketing. |
12 |
|
|
ifdef([AC_HELP_STRING], |
13 |
|
|
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], |
14 |
|
|
[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) |
15 |
|
|
|
16 |
|
|
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed |
17 |
|
|
dnl to access previously installed libraries. The basic assumption is that |
18 |
|
|
dnl a user will want packages to use other packages he previously installed |
19 |
|
|
dnl with the same --prefix option. |
20 |
|
|
dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate |
21 |
|
|
dnl libraries, but is otherwise very convenient. |
22 |
|
|
AC_DEFUN([AC_LIB_PREFIX], |
23 |
|
|
[ |
24 |
|
|
AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) |
25 |
|
|
AC_REQUIRE([AC_PROG_CC]) |
26 |
|
|
AC_REQUIRE([AC_CANONICAL_HOST]) |
27 |
|
|
AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) |
28 |
|
|
AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) |
29 |
|
|
dnl By default, look in $includedir and $libdir. |
30 |
|
|
use_additional=yes |
31 |
|
|
AC_LIB_WITH_FINAL_PREFIX([ |
32 |
|
|
eval additional_includedir=\"$includedir\" |
33 |
|
|
eval additional_libdir=\"$libdir\" |
34 |
|
|
]) |
35 |
|
|
AC_LIB_ARG_WITH([lib-prefix], |
36 |
|
|
[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib |
37 |
|
|
--without-lib-prefix don't search for libraries in includedir and libdir], |
38 |
|
|
[ |
39 |
|
|
if test "X$withval" = "Xno"; then |
40 |
|
|
use_additional=no |
41 |
|
|
else |
42 |
|
|
if test "X$withval" = "X"; then |
43 |
|
|
AC_LIB_WITH_FINAL_PREFIX([ |
44 |
|
|
eval additional_includedir=\"$includedir\" |
45 |
|
|
eval additional_libdir=\"$libdir\" |
46 |
|
|
]) |
47 |
|
|
else |
48 |
|
|
additional_includedir="$withval/include" |
49 |
|
|
additional_libdir="$withval/$acl_libdirstem" |
50 |
|
|
fi |
51 |
|
|
fi |
52 |
|
|
]) |
53 |
|
|
if test $use_additional = yes; then |
54 |
|
|
dnl Potentially add $additional_includedir to $CPPFLAGS. |
55 |
|
|
dnl But don't add it |
56 |
|
|
dnl 1. if it's the standard /usr/include, |
57 |
|
|
dnl 2. if it's already present in $CPPFLAGS, |
58 |
|
|
dnl 3. if it's /usr/local/include and we are using GCC on Linux, |
59 |
|
|
dnl 4. if it doesn't exist as a directory. |
60 |
|
|
if test "X$additional_includedir" != "X/usr/include"; then |
61 |
|
|
haveit= |
62 |
|
|
for x in $CPPFLAGS; do |
63 |
|
|
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
64 |
|
|
if test "X$x" = "X-I$additional_includedir"; then |
65 |
|
|
haveit=yes |
66 |
|
|
break |
67 |
|
|
fi |
68 |
|
|
done |
69 |
|
|
if test -z "$haveit"; then |
70 |
|
|
if test "X$additional_includedir" = "X/usr/local/include"; then |
71 |
|
|
if test -n "$GCC"; then |
72 |
|
|
case $host_os in |
73 |
|
|
linux* | gnu* | k*bsd*-gnu) haveit=yes;; |
74 |
|
|
esac |
75 |
|
|
fi |
76 |
|
|
fi |
77 |
|
|
if test -z "$haveit"; then |
78 |
|
|
if test -d "$additional_includedir"; then |
79 |
|
|
dnl Really add $additional_includedir to $CPPFLAGS. |
80 |
|
|
CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" |
81 |
|
|
fi |
82 |
|
|
fi |
83 |
|
|
fi |
84 |
|
|
fi |
85 |
|
|
dnl Potentially add $additional_libdir to $LDFLAGS. |
86 |
|
|
dnl But don't add it |
87 |
|
|
dnl 1. if it's the standard /usr/lib, |
88 |
|
|
dnl 2. if it's already present in $LDFLAGS, |
89 |
|
|
dnl 3. if it's /usr/local/lib and we are using GCC on Linux, |
90 |
|
|
dnl 4. if it doesn't exist as a directory. |
91 |
|
|
if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then |
92 |
|
|
haveit= |
93 |
|
|
for x in $LDFLAGS; do |
94 |
|
|
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
95 |
|
|
if test "X$x" = "X-L$additional_libdir"; then |
96 |
|
|
haveit=yes |
97 |
|
|
break |
98 |
|
|
fi |
99 |
|
|
done |
100 |
|
|
if test -z "$haveit"; then |
101 |
|
|
if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then |
102 |
|
|
if test -n "$GCC"; then |
103 |
|
|
case $host_os in |
104 |
|
|
linux*) haveit=yes;; |
105 |
|
|
esac |
106 |
|
|
fi |
107 |
|
|
fi |
108 |
|
|
if test -z "$haveit"; then |
109 |
|
|
if test -d "$additional_libdir"; then |
110 |
|
|
dnl Really add $additional_libdir to $LDFLAGS. |
111 |
|
|
LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" |
112 |
|
|
fi |
113 |
|
|
fi |
114 |
|
|
fi |
115 |
|
|
fi |
116 |
|
|
fi |
117 |
|
|
]) |
118 |
|
|
|
119 |
|
|
dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, |
120 |
|
|
dnl acl_final_exec_prefix, containing the values to which $prefix and |
121 |
|
|
dnl $exec_prefix will expand at the end of the configure script. |
122 |
|
|
AC_DEFUN([AC_LIB_PREPARE_PREFIX], |
123 |
|
|
[ |
124 |
|
|
dnl Unfortunately, prefix and exec_prefix get only finally determined |
125 |
|
|
dnl at the end of configure. |
126 |
|
|
if test "X$prefix" = "XNONE"; then |
127 |
|
|
acl_final_prefix="$ac_default_prefix" |
128 |
|
|
else |
129 |
|
|
acl_final_prefix="$prefix" |
130 |
|
|
fi |
131 |
|
|
if test "X$exec_prefix" = "XNONE"; then |
132 |
|
|
acl_final_exec_prefix='${prefix}' |
133 |
|
|
else |
134 |
|
|
acl_final_exec_prefix="$exec_prefix" |
135 |
|
|
fi |
136 |
|
|
acl_save_prefix="$prefix" |
137 |
|
|
prefix="$acl_final_prefix" |
138 |
|
|
eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" |
139 |
|
|
prefix="$acl_save_prefix" |
140 |
|
|
]) |
141 |
|
|
|
142 |
|
|
dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the |
143 |
|
|
dnl variables prefix and exec_prefix bound to the values they will have |
144 |
|
|
dnl at the end of the configure script. |
145 |
|
|
AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], |
146 |
|
|
[ |
147 |
|
|
acl_save_prefix="$prefix" |
148 |
|
|
prefix="$acl_final_prefix" |
149 |
|
|
acl_save_exec_prefix="$exec_prefix" |
150 |
|
|
exec_prefix="$acl_final_exec_prefix" |
151 |
|
|
$1 |
152 |
|
|
exec_prefix="$acl_save_exec_prefix" |
153 |
|
|
prefix="$acl_save_prefix" |
154 |
|
|
]) |
155 |
|
|
|
156 |
|
|
dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing |
157 |
|
|
dnl the basename of the libdir, either "lib" or "lib64". |
158 |
|
|
AC_DEFUN([AC_LIB_PREPARE_MULTILIB], |
159 |
|
|
[ |
160 |
|
|
dnl There is no formal standard regarding lib and lib64. The current |
161 |
|
|
dnl practice is that on a system supporting 32-bit and 64-bit instruction |
162 |
|
|
dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit |
163 |
|
|
dnl libraries go under $prefix/lib. We determine the compiler's default |
164 |
|
|
dnl mode by looking at the compiler's library search path. If at least |
165 |
|
|
dnl of its elements ends in /lib64 or points to a directory whose absolute |
166 |
|
|
dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the |
167 |
|
|
dnl default, namely "lib". |
168 |
|
|
acl_libdirstem=lib |
169 |
|
|
searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` |
170 |
|
|
if test -n "$searchpath"; then |
171 |
|
|
acl_save_IFS="${IFS= }"; IFS=":" |
172 |
|
|
for searchdir in $searchpath; do |
173 |
|
|
if test -d "$searchdir"; then |
174 |
|
|
case "$searchdir" in |
175 |
|
|
*/lib64/ | */lib64 ) acl_libdirstem=lib64 ;; |
176 |
|
|
*) searchdir=`cd "$searchdir" && pwd` |
177 |
|
|
case "$searchdir" in |
178 |
|
|
*/lib64 ) acl_libdirstem=lib64 ;; |
179 |
|
|
esac ;; |
180 |
|
|
esac |
181 |
|
|
fi |
182 |
|
|
done |
183 |
|
|
IFS="$acl_save_IFS" |
184 |
|
|
fi |
185 |
|
|
]) |