aboutsummaryrefslogtreecommitdiff
path: root/ld/configure.in
blob: 4444fcebf789a39476bb4dffdb48a701729345ff (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
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(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:

# Canonicalize the secondary target names.
if test -n "$enable_targets"; then
    for targ in `echo $enable_targets | sed 's/,/ /g'`
    do
	result=`$ac_config_sub $targ 2>/dev/null`
	if test -n "$result"; then
	    canon_targets="$canon_targets $result"
	else
	    # Allow targets that config.sub doesn't recognize, like "all".
	    canon_targets="$canon_targets $targ"
	fi
    done
fi

all_targets=false
EMUL=
all_emuls=

for targ in $target $canon_targets
do
    if test "x$targ" = "xall"; then
        all_targets=true
    else
	. ${srcdir}/configure.tgt

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

	all_emuls="${all_emuls} ${targ_emul} ${targ_extra_emuls}"
    fi
done

AC_SUBST(EMUL)

if test x${all_targets} = xfalse; then
    # uniq the list.
    f=""
    for i in $all_emuls ; do
	case " $f " in
	*" e$i.o "*) ;;
	*) f="$f e$i.o" ;;
	esac
    done

    EMULATION_OFILES="$f"

else	# all_targets is true
    EMULATION_OFILES='$(ALL_EMULATIONS)'
fi	# all_targets is true

AC_SUBST(EMULATION_OFILES)

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