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 | ]) | ||
