diff options
Diffstat (limited to 'm4/lib-prefix.m4')
-rw-r--r-- | m4/lib-prefix.m4 | 61 |
1 files changed, 49 insertions, 12 deletions
diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 index b8b79ab9..a8684e17 100644 --- a/m4/lib-prefix.m4 +++ b/m4/lib-prefix.m4 | |||
@@ -1,13 +1,18 @@ | |||
1 | # lib-prefix.m4 serial 1 (gettext-0.11) | 1 | # lib-prefix.m4 serial 5 (gettext-0.15) |
2 | dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. | 2 | dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. |
3 | dnl This file is free software, distributed under the terms of the GNU | 3 | dnl This file is free software; the Free Software Foundation |
4 | dnl General Public License. As a special exception to the GNU General | 4 | dnl gives unlimited permission to copy and/or distribute it, |
5 | dnl Public License, this file may be distributed as part of a program | 5 | dnl with or without modifications, as long as this notice is preserved. |
6 | dnl that contains a configuration script generated by Autoconf, under | ||
7 | dnl the same distribution terms as the rest of that program. | ||
8 | 6 | ||
9 | dnl From Bruno Haible. | 7 | dnl From Bruno Haible. |
10 | 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 | |||
11 | dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed | 16 | dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed |
12 | dnl to access previously installed libraries. The basic assumption is that | 17 | dnl to access previously installed libraries. The basic assumption is that |
13 | dnl a user will want packages to use other packages he previously installed | 18 | dnl a user will want packages to use other packages he previously installed |
@@ -19,6 +24,7 @@ AC_DEFUN([AC_LIB_PREFIX], | |||
19 | AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) | 24 | AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) |
20 | AC_REQUIRE([AC_PROG_CC]) | 25 | AC_REQUIRE([AC_PROG_CC]) |
21 | AC_REQUIRE([AC_CANONICAL_HOST]) | 26 | AC_REQUIRE([AC_CANONICAL_HOST]) |
27 | AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) | ||
22 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) | 28 | AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) |
23 | dnl By default, look in $includedir and $libdir. | 29 | dnl By default, look in $includedir and $libdir. |
24 | use_additional=yes | 30 | use_additional=yes |
@@ -26,7 +32,7 @@ AC_DEFUN([AC_LIB_PREFIX], | |||
26 | eval additional_includedir=\"$includedir\" | 32 | eval additional_includedir=\"$includedir\" |
27 | eval additional_libdir=\"$libdir\" | 33 | eval additional_libdir=\"$libdir\" |
28 | ]) | 34 | ]) |
29 | AC_ARG_WITH([lib-prefix], | 35 | AC_LIB_ARG_WITH([lib-prefix], |
30 | [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib | 36 | [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib |
31 | --without-lib-prefix don't search for libraries in includedir and libdir], | 37 | --without-lib-prefix don't search for libraries in includedir and libdir], |
32 | [ | 38 | [ |
@@ -40,7 +46,7 @@ AC_DEFUN([AC_LIB_PREFIX], | |||
40 | ]) | 46 | ]) |
41 | else | 47 | else |
42 | additional_includedir="$withval/include" | 48 | additional_includedir="$withval/include" |
43 | additional_libdir="$withval/lib" | 49 | additional_libdir="$withval/$acl_libdirstem" |
44 | fi | 50 | fi |
45 | fi | 51 | fi |
46 | ]) | 52 | ]) |
@@ -64,7 +70,7 @@ AC_DEFUN([AC_LIB_PREFIX], | |||
64 | if test "X$additional_includedir" = "X/usr/local/include"; then | 70 | if test "X$additional_includedir" = "X/usr/local/include"; then |
65 | if test -n "$GCC"; then | 71 | if test -n "$GCC"; then |
66 | case $host_os in | 72 | case $host_os in |
67 | linux*) haveit=yes;; | 73 | linux* | gnu* | k*bsd*-gnu) haveit=yes;; |
68 | esac | 74 | esac |
69 | fi | 75 | fi |
70 | fi | 76 | fi |
@@ -82,7 +88,7 @@ AC_DEFUN([AC_LIB_PREFIX], | |||
82 | dnl 2. if it's already present in $LDFLAGS, | 88 | dnl 2. if it's already present in $LDFLAGS, |
83 | dnl 3. if it's /usr/local/lib and we are using GCC on Linux, | 89 | dnl 3. if it's /usr/local/lib and we are using GCC on Linux, |
84 | dnl 4. if it doesn't exist as a directory. | 90 | dnl 4. if it doesn't exist as a directory. |
85 | if test "X$additional_libdir" != "X/usr/lib"; then | 91 | if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then |
86 | haveit= | 92 | haveit= |
87 | for x in $LDFLAGS; do | 93 | for x in $LDFLAGS; do |
88 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) | 94 | AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) |
@@ -92,7 +98,7 @@ AC_DEFUN([AC_LIB_PREFIX], | |||
92 | fi | 98 | fi |
93 | done | 99 | done |
94 | if test -z "$haveit"; then | 100 | if test -z "$haveit"; then |
95 | if test "X$additional_libdir" = "X/usr/local/lib"; then | 101 | if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then |
96 | if test -n "$GCC"; then | 102 | if test -n "$GCC"; then |
97 | case $host_os in | 103 | case $host_os in |
98 | linux*) haveit=yes;; | 104 | linux*) haveit=yes;; |
@@ -146,3 +152,34 @@ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], | |||
146 | exec_prefix="$acl_save_exec_prefix" | 152 | exec_prefix="$acl_save_exec_prefix" |
147 | prefix="$acl_save_prefix" | 153 | prefix="$acl_save_prefix" |
148 | ]) | 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 | ]) | ||