Imported Upstream version 3.2.2
[debian/gnuradio] / config / gr_lib64.m4
1 dnl
2 dnl Copyright 2005,2008 Free Software Foundation, Inc.
3 dnl 
4 dnl This file is part of GNU Radio
5 dnl 
6 dnl GNU Radio is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 3, or (at your option)
9 dnl any later version.
10 dnl 
11 dnl GNU Radio is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 dnl GNU General Public License for more details.
15 dnl 
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with GNU Radio; see the file COPYING.  If not, write to
18 dnl the Free Software Foundation, Inc., 51 Franklin Street,
19 dnl Boston, MA 02110-1301, USA.
20 dnl 
21
22 dnl GR_LIB64()
23 dnl
24 dnl Checks to see if we're on a x86_64 or powerpc64 machine, and if so, determine
25 dnl if libdir should end in "64" or not.
26 dnl
27 dnl Sets gr_libdir_suffix to "" or "64" and calls AC_SUBST(gr_libdir_suffix)
28 dnl May append "64" to libdir.
29 dnl
30 dnl The current heuristic is:
31 dnl   if the host_cpu isn't x86_64 or powerpc64, then ""
32 dnl   if the host_os isn't linux, then ""
33 dnl   if we're cross-compiling, ask the linker, by way of the selected compiler
34 dnl   if we're x86_64 and there's a /lib64 and it's not a symlink, then "64", else ""
35 dnl   else ask the compiler
36 dnl
37 AC_DEFUN([GR_LIB64],[
38   AC_REQUIRE([AC_CANONICAL_HOST])
39   AC_REQUIRE([AC_PROG_CXX])
40
41   AC_MSG_CHECKING([gr_libdir_suffix])
42   gr_libdir_suffix=""
43   AC_SUBST(gr_libdir_suffix)
44
45   case "$host_os" in
46     linux*) is_linux=yes ;;
47     *)      is_linux=no  ;;
48   esac
49
50   if test "$is_linux" = no || test "$host_cpu" != "x86_64" && test "$host_cpu" != "powerpc64"; then
51     gr_libdir_suffix=""
52   elif test "$cross_compiling" = yes; then
53     _GR_LIB64_ASK_COMPILER
54   elif test "$host_cpu" = "x86_64"; then
55     if test -d /lib64 && test ! -L /lib64; then
56       gr_libdir_suffix=64
57     fi
58   else
59     _GR_LIB64_ASK_COMPILER  
60   fi
61   AC_MSG_RESULT([$gr_libdir_suffix])
62
63
64   AC_MSG_CHECKING([whether to append 64 to libdir])
65   t=${libdir##*/lib}
66   if test "$t" != 64 && test "$gr_libdir_suffix" = "64"; then
67     libdir=${libdir}64
68     AC_MSG_RESULT([yes. Setting libdir to $libdir])
69   else
70     AC_MSG_RESULT([no])
71   fi
72 ])
73
74 dnl If we're using g++, extract the first SEARCH_DIR("...") entry from the linker script
75 dnl and see if it contains a suffix after the final .../lib part of the path.
76 dnl (This works because the linker script varies depending on whether we're generating
77 dnl 32-bit or 64-bit executables)
78 dnl
79 AC_DEFUN([_GR_LIB64_ASK_COMPILER],[
80   if test "$ac_cv_cxx_compiler_gnu" = "yes";
81   then
82     gr_libdir_suffix=`$CXX -Wl,--verbose 2>/dev/null | sed -n -e '/SEARCH_DIR/{s/;.*$//; s,^.*/,,; s/".*$//; s/^lib//; p}'`
83   fi
84 ])
85