configure.host revision 33965
1# This file is a shell script that overrides some of the tools and
2# flags used on a host specific basis.
3
4# Since the "bfd/hosts" directory is shared by the bfd, opcodes, and
5# binutils directories (at least), the index to it is also shared.
6# This is that index.  Each configure.in file should source this file
7# in its per-host part.
8
9# This sets the following shell variables:
10#  HDEFINES		host specific compiler options
11#  host64		set to true if 64 bit types are as fast as 32 bit
12#  HOST_64BIT_TYPE	host 64 bit type
13#  HOST_U_64BIT_TYPE	unsigned 64 bit type (not needed if 64BIT_TYPE is long)
14#  SHLIB_CC		compiler to use when building shared library
15#  SHLIB_CFLAGS		flags to use when building shared library
16#  SHLIB_LIBS		libraries to use when building shared library
17#  PICFLAG		may be set to flag to use to compile PIC
18#  SHLINK		may be set to the name to link the shared library to
19#  ALLLIBS		may be set to libraries to build
20#  HLDFLAGS		LDFLAGS specific to the host
21#  HLDENV		environment variable to set when linking for the host
22#  RPATH_ENVVAR		environment variable used to find shared libraries
23#  INSTALL_SHLIB	install a shared library
24
25HDEFINES=
26host64=false
27HOST_64BIT_TYPE=
28
29case "${host}" in
30
31alpha-*-*)		host64=true; HOST_64BIT_TYPE=long ;;
32
33hppa*-*-hpux*)		HDEFINES=-DHOST_HPPAHPUX ;;
34hppa*-*-hiux*)		HDEFINES=-DHOST_HPPAHPUX ;;
35hppa*-*-bsd*)		HDEFINES=-DHOST_HPPABSD ;;
36hppa*-*-osf*)		HDEFINES=-DHOST_HPPAOSF ;;
37
38i[3456]86-sequent-bsd*)	HDEFINES=-Dshared=genshared ;;
39i[3456]86-sequent-sysv4*) ;;
40i[3456]86-sequent-sysv*)	HDEFINES=-Dshared=genshared ;;
41
42mips*-dec-netbsd*)	;;
43mips*-*-openbsd*)	;;
44mips*-dec-*)		HDEFINES="-G 4"	;;
45mips*-sgi-irix3*)	HDEFINES="-G 4" ;;
46mips*-sgi-irix4*)	HDEFINES="-G 4" ;;
47mips*-sgi-irix6*)	host64=true
48			HOST_64BIT_TYPE="long long";
49			HOST_U_64BIT_TYPE="unsigned long long";
50			;;
51mips*-*-sysv4*)		;;
52mips*-*-sysv*)		HDEFINES="-G 4" ;;
53mips*-*-riscos*)	HDEFINES="-G 4" ;;
54
55m68*-hp-hpux*)		HDEFINES=-DHOST_HP300HPUX ;;
56
57*-*-solaris*)		HOST_64BIT_TYPE="long long"
58			HOST_U_64BIT_TYPE="unsigned long long"
59			;;
60
61*-*-windows*)
62			HOST_64BIT_TYPE=__int64
63			HOST_U_64BIT_TYPE="unsigned __int64"
64# The following krock is necessary because we can't run the build compiler
65# (MSVC) on the configure host, so we have to explicitly set the values here.
66# Note that this file is never run through autoconf, so we can't use any
67# autoconf macros here.  Because of this, we have to muck with autoconf
68# variables explicitly.
69			ac_cv_func_mmap_fixed_mapped=no
70			ac_cv_header_time=no
71			ac_cv_func_getpagesize=no
72			ac_cv_func_madvise=no
73			ac_cv_func_mprotect=no
74			ac_cv_header_sys_file_h=no
75			ac_cv_header_sys_time_h=no
76			ac_cv_header_unistd_h=no
77			;;
78esac
79
80# If we are configuring with --enable-shared, adjust the shared
81# library support based on the host.  This support must work for both
82# the BFD and the opcodes libraries.
83HLDFLAGS=
84HLDENV=
85RPATH_ENVVAR=LD_LIBRARY_PATH
86SHLIB_CC='$(CC)'
87SHLIB_CFLAGS='-shared'
88SHLIB_LIBS=
89INSTALL_SHLIB='$(INSTALL_PROGRAM) $$f $(libdir)/$$tf;'
90if [ "${shared}" = "true" ]; then
91  case "${host}" in
92  hppa*-*-*)		picfrag=${srcdir}/../config/mh-papic ;;
93  i[34566]86-*-*)	picfrag=${srcdir}/../config/mh-x86pic ;;
94  *-*-*)		picfrag=${srcdir}/../config/mh-${host_cpu}pic ;;
95  esac
96  if [ -f "${picfrag}" ]; then
97    pic=`sed -n -e 's/^PICFLAG[ 	]*=[ 	]*\(.*\)$/\1/p' ${picfrag}`
98    if [ -n "${pic}" ]; then
99      PICFLAG=${pic}
100    fi
101  fi
102
103  case "${host}" in
104  *-dec-osf*)
105    # -fpic is not needed on the Alpha.
106    PICFLAG=
107    HLDFLAGS='-rpath $(libdir)'
108    SHLIB_CFLAGS='-shared -Wl,-soname,$(SONAME)'
109    ;;
110  *-*-hpux*)
111    # HP/UX uses .sl for shared libraries.
112    SHLINK=`echo ${SHLINK} | sed -e 's/so$/sl/'`
113    SHLIB_CFLAGS='-shared $(PICFLAG)'
114    HLDFLAGS='-Wl,+s,+b,$(libdir)'
115    RPATH_ENVVAR=SHLIB_PATH
116    INSTALL_SHLIB='$(INSTALL_PROGRAM) $$f $(libdir)/$$tf; chmod -w $(libdir)/$$tf;'
117    ;;
118  *-*-irix[56]*)
119    # -fpic is not needed on Irix 5 or 6.
120    PICFLAG=
121    SHLIB_CFLAGS='-shared -Wl,-soname,$(SONAME)'
122    HLDFLAGS='-Wl,-rpath,$(libdir)'
123    ;;
124  *-*-linux*aout*)
125    ;;
126  *-*-linux*)
127    SHLIB_CFLAGS='-shared -Wl,-soname,$(SONAME)'
128    case "${libdir}" in
129      /lib | /usr/lib) ;;
130      *) HLDFLAGS='-Wl,-rpath,$(libdir)' ;;
131    esac
132    # On Linux, apparently, linking against -lc lets ldconfig figure
133    # out which version of libc should be used.
134    SHLIB_LIBS=-lc
135    ;;
136  *-*-solaris*)
137    SHLIB_CFLAGS='-shared -h $(SONAME)'
138    HLDFLAGS='-R $(libdir)'
139    ;;
140  *-*-sysv4*)
141    SHLIB_CFLAGS='-shared -h $(SONAME)'
142    HLDENV='if test -z "$${LD_RUN_PATH}"; then LD_RUN_PATH=$(libdir); else LD_RUN_PATH=$${LD_RUN_PATH}:$(libdir); fi; export LD_RUN_PATH;'
143    ;;
144  *-*-sunos*)
145    # Build a libTARGET-bfd.so.VERSION symlink in the object directory.
146    ALLLIBS=`echo ${ALLLIBS} | sed -e 's/\$(SHLINK)/stamp-tshlink/'`
147    ;;
148  esac
149fi
150
151# On SunOS, if the linker supports the -rpath option, use it to
152# prevent ../bfd and ../opcodes from being included in the run time
153# search path.
154case "${host}" in
155  *-*-sunos*)
156    echo 'main () { }' > conftest.c
157    ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
158    if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
159      :
160    elif grep 'No such file' conftest.t >/dev/null 2>&1; then
161      :
162    elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
163      :
164    elif [ "${shared}" = "true" ]; then
165      HLDFLAGS='-Wl,-rpath=$(libdir)'
166    else
167      HLDFLAGS='-Wl,-rpath='
168    fi
169    rm -f conftest.t conftest.c conftest
170    ;;
171esac
172