aboutsummaryrefslogtreecommitdiff
path: root/bfd/configure.host
blob: 1657407bbdf1ed9d6e0ea730e21af0bb15fd3a41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# This file is a shell script that overrides some of the tools and
# flags used on a host specific basis.

# Since the "bfd/hosts" directory is shared by the bfd, opcodes, and
# binutils directories (at least), the index to it is also shared.
# This is that index.  Each configure.in file should source this file
# in its per-host part.

# This sets the following shell variables:
#  CC			compiler to use (only if needed and not already set)
#  CFLAGS		override CFLAGS (only if needed and not already set)
#  LDFLAGS		override LDFLAGS (only if needed and not already set)
#  AR			archiver to use (only if needed and not already set)
#  RANLIB		ranlib to use (only if needed and not already set)
#  HDEFINES		host specific compiler options
#  host64		set to true if this is a 64 bit host
#  HOST_64BIT_TYPE	host 64 bit type
#  SHLIB_CC		compiler to use when building shared library
#  SHLIB_CFLAGS		flags to use when building shared library
#  PICFLAG		may be set to flag to use to compile PIC
#  SHLINK		may be set to the name to link the shared library to
#  ALLLIBS		may be set to libraries to build
#  HLDFLAGS		LDFLAGS specific to the host

HDEFINES=
host64=false
HOST_64BIT_TYPE=

case "${host}" in
# WHEN ADDING ENTRIES TO THIS MATRIX:
#  Make sure that the left side always has two dashes.  Otherwise you
#  can get spurious matches.  Even for unambiguous cases, do this as a
#  convention, else the table becomes a real mess to understand and maintain.
#
# Note that these entries cannot be fully alphabetical.  Don't try.
# The order of matching is critical when multiple lines could match.

alpha-*-*)		host64=true; HOST_64BIT_TYPE=long ;;

a29k-*-*)		CC=${CC-u3cc}; AR=${AR-u3ar} ;;

hppa*-*-hpux*)		HDEFINES=-DHOST_HPPAHPUX ;;
hppa*-*-hiux*)		HDEFINES=-DHOST_HPPAHPUX ;;
hppa*-*-bsd*)		HDEFINES=-DHOST_HPPABSD ;;
hppa*-*-osf*)		HDEFINES=-DHOST_HPPAOSF ;;

i[345]86-sequent-bsd*)	HDEFINES=-Dshared=genshared ;;
i[345]86-sequent-sysv4*) ;;
i[345]86-sequent-sysv*)	HDEFINES=-Dshared=genshared ;;
i[345]86-ncr*-sysv4*)	CC=${CC-/usr/ccs/ATT/cc}
			test -z "$CFLAGS" && CFLAGS=" "
			;;
i[345]86-*-go32*)	test -z "$CC" && CC="i386-go32-gcc -fno-omit-frame-pointer -O2 -Wl,-S"
			AR=${AR-i386-go32-ar}
			RANLIB=${RANLIB-i386-go32-ranlib}
			;;
i[345]86-*-win32)	test -z "$CC" && CC="i386-win32-gcc -O2"
			AR=${AR-i386-win32-ar}
			RANLIB=${RANLIB-i386-win32-ranlib}
			;;

mips-dec-netbsd*)	;;
mips-dec-*)		HDEFINES="-G 4"	;;
mips-sgi-irix3*)	HDEFINES="-G 4"
			test -z "$LDFLAGS" && LDFLAGS=-lmalloc
			;;
mips-sgi-irix4*)	HDEFINES="-G 4"
			test -z "$LDFLAGS" && LDFLAGS=-lmalloc
			;;
mips-*-sysv4*)		;;
mips-*-sysv*)		HDEFINES="-G 4" ;;
mips-*-riscos*)		HDEFINES="-G 4" ;;

m68*-apollo*-sysv*)	# sef@cygnus.com says this is how to compile
			# on an apollo in the SysV environment.
			test -z "$CC" && CC="cc -A nansi -A cpu,3000 -A runtype,any -A systype,any -DSHORT_ENUM_BUG -DUSG -U__STDC__ -Dm68000=mc68000"
			;;
m68*-hp-hpux*)		HDEFINES=-DHOST_HP300HPUX ;;

m88*-*-dgux*)		test -z "$CC" && CC="gcc -Wall -ansi -D__using_DGUX"
			;;

romp-*-*)		# hc/pcc just can't cut it
			CC=${CC-gcc}
			;;

rs6000-*-aix4)		HDEFINES=-DHOST_AIX ;;
rs6000-*-*)		HDEFINES=-DHOST_AIX ;;
powerpc-*-aix4*)	HDEFINES=-DHOST_AIX ;;
powerpc-*-aix*)		HDEFINES=-DHOST_AIX ;;

esac

# If we are configuring with --enable-shared, adjust the shared
# library support based on the host.  This support must work for both
# the BFD and the opcodes libraries.
SHLIB_CC='$(CC)'
SHLIB_CFLAGS='-shared'
if [ "${shared}" = "true" ]; then
  case "${host}" in
  hppa*-*-*)		picfrag=../config/mh-papic ;;
  i[3456]86-*-*)	picfrag=../config/mh-x86pic ;;
  *-*-*)		picfrag=../config/mh-${host_cpu}pic ;;
  esac
  if [ -f "${picfrag}" ]; then
    pic=`sed -n -e 's/^PICFLAG[ 	]*=[ 	]*\(.*\)$/\1/p' ${picfrag}`
    if [ -n "${pic}" ]; then
      PICFLAG=${pic}
    fi
  fi

  base_shlib=`echo ${SHLIB} | sed -e 's,^.*/\([^/]*\)$,\1,'`

  case "${host}" in
  *-dec-osf*)
    # -fpic is not needed on the Alpha.
    PICFLAG=
    ;;
  *-*-hpux*)
    # HP/UX uses .sl for shared libraries.
    SHLINK=`echo ${SHLINK} | sed -e 's/so$/sl/'`
    SHLIB_CFLAGS='-shared $(PICFLAG)'
    ;;
  *-*-irix5*)
    # -fpic is not needed on Irix 5.
    PICFLAG=
    SHLIB_CFLAGS="-shared -Wl,-soname,${base_shlib}"
    ;;
  *-*-linux*aout*)
    ;;
  *-*-linux*)
    SHLIB_CFLAGS="-shared -Wl,-soname,${base_shlib}"
    ;;
  *-*-sysv4* | *-*-solaris*)
    SHLIB_CFLAGS="-shared -h ${base_shlib}"
    ;;
  *-*-sunos*)
    ALLLIBS=`echo ${ALLLIBS} | sed -e 's/\$(SHLINK)//'`
    ;;
  esac
fi

# On SunOS, if the linker supports the -rpath option, use it to
# prevent ../bfd and ../opcodes from being included in the run time
# search path.
HLDFLAGS=
case "${host}" in
  *-*-sunos*)
    echo 'main () { }' > conftest.c
    ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
    if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
      :
    elif grep 'No such file' conftest.t >/dev/null 2>&1; then
      :
    else
      HLDFLAGS='-Wl,-rpath='
    fi
    rm -f conftest.t conftest.c conftest
    ;;
esac