Blame m4/lib-prefix.m4

Packit Service 7203c3
# lib-prefix.m4 serial 5 (gettext-0.15)
Packit Service 7203c3
dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
Packit Service 7203c3
dnl This file is free software; the Free Software Foundation
Packit Service 7203c3
dnl gives unlimited permission to copy and/or distribute it,
Packit Service 7203c3
dnl with or without modifications, as long as this notice is preserved.
Packit Service 7203c3
Packit Service 7203c3
dnl From Bruno Haible.
Packit Service 7203c3
Packit Service 7203c3
dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
Packit Service 7203c3
dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
Packit Service 7203c3
dnl require excessive bracketing.
Packit Service 7203c3
ifdef([AC_HELP_STRING],
Packit Service 7203c3
[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
Packit Service 7203c3
[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
Packit Service 7203c3
Packit Service 7203c3
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
Packit Service 7203c3
dnl to access previously installed libraries. The basic assumption is that
Packit Service 7203c3
dnl a user will want packages to use other packages he previously installed
Packit Service 7203c3
dnl with the same --prefix option.
Packit Service 7203c3
dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
Packit Service 7203c3
dnl libraries, but is otherwise very convenient.
Packit Service 7203c3
AC_DEFUN([AC_LIB_PREFIX],
Packit Service 7203c3
[
Packit Service 7203c3
  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
Packit Service 7203c3
  AC_REQUIRE([AC_PROG_CC])
Packit Service 7203c3
  AC_REQUIRE([AC_CANONICAL_HOST])
Packit Service 7203c3
  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
Packit Service 7203c3
  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
Packit Service 7203c3
  dnl By default, look in $includedir and $libdir.
Packit Service 7203c3
  use_additional=yes
Packit Service 7203c3
  AC_LIB_WITH_FINAL_PREFIX([
Packit Service 7203c3
    eval additional_includedir=\"$includedir\"
Packit Service 7203c3
    eval additional_libdir=\"$libdir\"
Packit Service 7203c3
  ])
Packit Service 7203c3
  AC_LIB_ARG_WITH([lib-prefix],
Packit Service 7203c3
[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
Packit Service 7203c3
  --without-lib-prefix    don't search for libraries in includedir and libdir],
Packit Service 7203c3
[
Packit Service 7203c3
    if test "X$withval" = "Xno"; then
Packit Service 7203c3
      use_additional=no
Packit Service 7203c3
    else
Packit Service 7203c3
      if test "X$withval" = "X"; then
Packit Service 7203c3
        AC_LIB_WITH_FINAL_PREFIX([
Packit Service 7203c3
          eval additional_includedir=\"$includedir\"
Packit Service 7203c3
          eval additional_libdir=\"$libdir\"
Packit Service 7203c3
        ])
Packit Service 7203c3
      else
Packit Service 7203c3
        additional_includedir="$withval/include"
Packit Service 7203c3
        additional_libdir="$withval/$acl_libdirstem"
Packit Service 7203c3
      fi
Packit Service 7203c3
    fi
Packit Service 7203c3
])
Packit Service 7203c3
  if test $use_additional = yes; then
Packit Service 7203c3
    dnl Potentially add $additional_includedir to $CPPFLAGS.
Packit Service 7203c3
    dnl But don't add it
Packit Service 7203c3
    dnl   1. if it's the standard /usr/include,
Packit Service 7203c3
    dnl   2. if it's already present in $CPPFLAGS,
Packit Service 7203c3
    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
Packit Service 7203c3
    dnl   4. if it doesn't exist as a directory.
Packit Service 7203c3
    if test "X$additional_includedir" != "X/usr/include"; then
Packit Service 7203c3
      haveit=
Packit Service 7203c3
      for x in $CPPFLAGS; do
Packit Service 7203c3
        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
Packit Service 7203c3
        if test "X$x" = "X-I$additional_includedir"; then
Packit Service 7203c3
          haveit=yes
Packit Service 7203c3
          break
Packit Service 7203c3
        fi
Packit Service 7203c3
      done
Packit Service 7203c3
      if test -z "$haveit"; then
Packit Service 7203c3
        if test "X$additional_includedir" = "X/usr/local/include"; then
Packit Service 7203c3
          if test -n "$GCC"; then
Packit Service 7203c3
            case $host_os in
Packit Service 7203c3
              linux* | gnu* | k*bsd*-gnu) haveit=yes;;
Packit Service 7203c3
            esac
Packit Service 7203c3
          fi
Packit Service 7203c3
        fi
Packit Service 7203c3
        if test -z "$haveit"; then
Packit Service 7203c3
          if test -d "$additional_includedir"; then
Packit Service 7203c3
            dnl Really add $additional_includedir to $CPPFLAGS.
Packit Service 7203c3
            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
Packit Service 7203c3
          fi
Packit Service 7203c3
        fi
Packit Service 7203c3
      fi
Packit Service 7203c3
    fi
Packit Service 7203c3
    dnl Potentially add $additional_libdir to $LDFLAGS.
Packit Service 7203c3
    dnl But don't add it
Packit Service 7203c3
    dnl   1. if it's the standard /usr/lib,
Packit Service 7203c3
    dnl   2. if it's already present in $LDFLAGS,
Packit Service 7203c3
    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
Packit Service 7203c3
    dnl   4. if it doesn't exist as a directory.
Packit Service 7203c3
    if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
Packit Service 7203c3
      haveit=
Packit Service 7203c3
      for x in $LDFLAGS; do
Packit Service 7203c3
        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
Packit Service 7203c3
        if test "X$x" = "X-L$additional_libdir"; then
Packit Service 7203c3
          haveit=yes
Packit Service 7203c3
          break
Packit Service 7203c3
        fi
Packit Service 7203c3
      done
Packit Service 7203c3
      if test -z "$haveit"; then
Packit Service 7203c3
        if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
Packit Service 7203c3
          if test -n "$GCC"; then
Packit Service 7203c3
            case $host_os in
Packit Service 7203c3
              linux*) haveit=yes;;
Packit Service 7203c3
            esac
Packit Service 7203c3
          fi
Packit Service 7203c3
        fi
Packit Service 7203c3
        if test -z "$haveit"; then
Packit Service 7203c3
          if test -d "$additional_libdir"; then
Packit Service 7203c3
            dnl Really add $additional_libdir to $LDFLAGS.
Packit Service 7203c3
            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
Packit Service 7203c3
          fi
Packit Service 7203c3
        fi
Packit Service 7203c3
      fi
Packit Service 7203c3
    fi
Packit Service 7203c3
  fi
Packit Service 7203c3
])
Packit Service 7203c3
Packit Service 7203c3
dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
Packit Service 7203c3
dnl acl_final_exec_prefix, containing the values to which $prefix and
Packit Service 7203c3
dnl $exec_prefix will expand at the end of the configure script.
Packit Service 7203c3
AC_DEFUN([AC_LIB_PREPARE_PREFIX],
Packit Service 7203c3
[
Packit Service 7203c3
  dnl Unfortunately, prefix and exec_prefix get only finally determined
Packit Service 7203c3
  dnl at the end of configure.
Packit Service 7203c3
  if test "X$prefix" = "XNONE"; then
Packit Service 7203c3
    acl_final_prefix="$ac_default_prefix"
Packit Service 7203c3
  else
Packit Service 7203c3
    acl_final_prefix="$prefix"
Packit Service 7203c3
  fi
Packit Service 7203c3
  if test "X$exec_prefix" = "XNONE"; then
Packit Service 7203c3
    acl_final_exec_prefix='${prefix}'
Packit Service 7203c3
  else
Packit Service 7203c3
    acl_final_exec_prefix="$exec_prefix"
Packit Service 7203c3
  fi
Packit Service 7203c3
  acl_save_prefix="$prefix"
Packit Service 7203c3
  prefix="$acl_final_prefix"
Packit Service 7203c3
  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
Packit Service 7203c3
  prefix="$acl_save_prefix"
Packit Service 7203c3
])
Packit Service 7203c3
Packit Service 7203c3
dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
Packit Service 7203c3
dnl variables prefix and exec_prefix bound to the values they will have
Packit Service 7203c3
dnl at the end of the configure script.
Packit Service 7203c3
AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
Packit Service 7203c3
[
Packit Service 7203c3
  acl_save_prefix="$prefix"
Packit Service 7203c3
  prefix="$acl_final_prefix"
Packit Service 7203c3
  acl_save_exec_prefix="$exec_prefix"
Packit Service 7203c3
  exec_prefix="$acl_final_exec_prefix"
Packit Service 7203c3
  $1
Packit Service 7203c3
  exec_prefix="$acl_save_exec_prefix"
Packit Service 7203c3
  prefix="$acl_save_prefix"
Packit Service 7203c3
])
Packit Service 7203c3
Packit Service 7203c3
dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing
Packit Service 7203c3
dnl the basename of the libdir, either "lib" or "lib64".
Packit Service 7203c3
AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
Packit Service 7203c3
[
Packit Service 7203c3
  dnl There is no formal standard regarding lib and lib64. The current
Packit Service 7203c3
  dnl practice is that on a system supporting 32-bit and 64-bit instruction
Packit Service 7203c3
  dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit
Packit Service 7203c3
  dnl libraries go under $prefix/lib. We determine the compiler's default
Packit Service 7203c3
  dnl mode by looking at the compiler's library search path. If at least
Packit Service 7203c3
  dnl of its elements ends in /lib64 or points to a directory whose absolute
Packit Service 7203c3
  dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the
Packit Service 7203c3
  dnl default, namely "lib".
Packit Service 7203c3
  acl_libdirstem=lib
Packit Service 7203c3
  searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
Packit Service 7203c3
  if test -n "$searchpath"; then
Packit Service 7203c3
    acl_save_IFS="${IFS= 	}"; IFS=":"
Packit Service 7203c3
    for searchdir in $searchpath; do
Packit Service 7203c3
      if test -d "$searchdir"; then
Packit Service 7203c3
        case "$searchdir" in
Packit Service 7203c3
          */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
Packit Service 7203c3
          *) searchdir=`cd "$searchdir" && pwd`
Packit Service 7203c3
             case "$searchdir" in
Packit Service 7203c3
               */lib64 ) acl_libdirstem=lib64 ;;
Packit Service 7203c3
             esac ;;
Packit Service 7203c3
        esac
Packit Service 7203c3
      fi
Packit Service 7203c3
    done
Packit Service 7203c3
    IFS="$acl_save_IFS"
Packit Service 7203c3
  fi
Packit Service 7203c3
])