aboutsummaryrefslogtreecommitdiff
path: root/ld/configure.in
blob: a20f72ea51e41047b10ef0d28258648fe9a72dcc (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
dnl Process this file with autoconf to produce a configure script
dnl
AC_PREREG(2.0)
AC_INIT(ldmain.c)

AC_ARG_ENABLE(targets,
[  --enable-targets        alternative target configurations],
[case "${enableval}" in
  yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
            ;;
  no)       enable_targets= ;;
  *)        enable_targets=$enableval ;;
esac])dnl
AC_ARG_ENABLE(shared,
[  --enable-shared         build shared BFD library],
[case "${enableval}" in
  yes) shared=true ;;
  no)  shared=false ;;
  *)   AC_MSG_ERROR([bad value ${enableval} for BFD shared option]) ;;
esac])dnl

AC_CONFIG_HEADER(config.h:config.in)

AC_CONFIG_AUX_DIR(`cd $srcdir/..; pwd`)
AC_CANONICAL_SYSTEM
if test -z "$target" ; then
    AC_MSG_ERROR(Unrecognized target system type; please check config.sub.)
fi
if test -z "$host" ; then
    AC_MSG_ERROR(Unrecognized host system type; please check config.sub.)
fi
AC_ARG_PROGRAM

# host-specific stuff:

. ${srcdir}/configure.host

AC_PROG_CC
AC_SUBST(CFLAGS)
AC_SUBST(HLDFLAGS)
AC_SUBST(RPATH_ENVVAR)
AC_SUBST(HDEFINES)
AC_SUBST(HOSTING_CRT0)
AC_SUBST(HOSTING_LIBS)
AC_SUBST(NATIVE_LIB_DIRS)

# For most hosts we can use a simple definition to pick up the BFD and
# opcodes libraries.  However, if we are building shared libraries, we
# need to handle some hosts specially.
BFDLIB='-L../bfd -lbfd'
if test "${shared}" = "true"; then
  case "${host}" in
  *-*-sunos*)
    # On SunOS, we must link against the name we are going to install,
    # not -lbfd, since SunOS does not support SONAME.
    BFDLIB='-L../bfd -l`echo bfd | sed '"'"'$(program_transform_name)'"'"'`'
    ;;
  esac
fi
AC_SUBST(BFDLIB)

AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h)
AC_CHECK_FUNCS(sbrk)
AC_HEADER_DIRENT

BFD_BINARY_FOPEN

BFD_NEED_DECLARATION(free)

# target-specific stuff:

all_targets=
EMUL=
all_emuls=
TDIRS=

for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
do
  if test "$targ_alias" = "all"; then
    all_targets=true
  else
    # Canonicalize the secondary target names.
    result=`$ac_config_sub $targ_alias 2>/dev/null`
    if test -n "$result"; then
	targ=$result
    else
	targ=$targ_alias
    fi

    . ${srcdir}/configure.tgt

    if test "$targ" = "$target"; then
      EMUL=$targ_emul
    fi

    for i in $targ_emul $targ_extra_emuls; do
	case " $all_emuls " in
	*" e${i}.o "*) ;;
	*)
	  all_emuls="$all_emuls e${i}.o"
	  eval result=\$tdir_$i
	  test -z "$result" && result=$targ_alias
	  TDIRS="$TDIRS\\
tdir_$i=$result"
	  ;;
	esac
    done
  fi
done

AC_SUBST(EMUL)
AC_SUBST(TDIRS)

if test x${all_targets} = xtrue; then
  EMULATION_OFILES='$(ALL_EMULATIONS)'
else
  EMULATION_OFILES=$all_emuls
fi
AC_SUBST(EMULATION_OFILES)

AC_OUTPUT(Makefile,
[case x$CONFIG_HEADERS in xconfig.h:config.in) echo > stamp-h ;; esac])