]> Git Repo - binutils.git/blob - cfg-ml-com.in
* sparc-opc.c (asi): New static local.
[binutils.git] / cfg-ml-com.in
1 # Configure fragment invoked in the common section for subdirs
2 # wanting multilib support.
3 #
4 # The common section was chosen because xiberty clobbers $srcdir in the
5 # common section of its configure.in.
6 #
7 # The intent is to keep as much of this in one place as possible (and out
8 # of each subdirectory, eg: newlib, libio, etc.) until the right way to do
9 # this (ha ha) is decided upon.
10 #
11 # This is where a target selects what multilib directories to build.
12 # It is advisable to support a few --enable/--disable options to let the
13 # user select which libraries s/he really wants.
14 #
15 # FIXME: Multilib is currently disabled by default for everything other than
16 # newlib.  It is up to each target to turn on multilib support for the other
17 # libraries as desired.
18 #
19 # FIXME: It would be better if we could use the --print-multi-lib switch to
20 # gcc to get the list of directories to build, but at this point the compiler
21 # has not been built.
22
23 # Only do this if --enable-multilib.
24 # And only if at the top level, not a multilib subdirectory.
25
26 if [ "${enable_multilib}" = yes -a -z "${with_multisubdir}" ]; then
27
28 # Doing this in the common section means ${target} isn't set yet, so compute
29 # a copy here.  This is a bit kludgey, but again the current (short term) goal
30 # is to be as unobtrusive (sp?) to the rest of the sources as possible.
31
32 if result=`${config_shell} ${configsub} ${target_alias}` ; then
33     true
34 else
35     echo "Unrecognized target system name ${target_alias}." 1>&2
36     exit 1
37 fi
38 target_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
39 target_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
40 target_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
41 target=${target_cpu}-${target_vendor}-${target_os}
42
43 # FIXME: Perhaps we can do something like the following instead.
44 # Fetch from gcc the multilib directories to use if we can.
45 # if [ -f ${srcdir}/../gcc/genmultilib -a -f ../gcc/Makefile ]; then
46 #   options=`grep "^MULTILIB_OPTIONS" ../gcc/Makefile | sed -e 's/^.*=//'`
47 #   multidirs=`${srcdir}/../gcc/genmultilib "$options" | \
48 #       sed -e 's/^#define.*//' -e 's/^[.].*//' -e 's/".*//' -e 's/ .*//'`
49 # else
50 #   multidirs=""
51 # fi
52
53 case "${target}" in
54 # start-sanitize-arc
55 arc-sbp-elf*)
56         if [ x$enable_biendian = xyes ]
57         then
58                 multidirs="be host graphics audio be/host be/graphics be/audio"
59         else
60                 multidirs="host graphics audio"
61         fi
62         ;;
63 arc-*-*)
64         multidirs="be"
65         ;;
66 # end-sanitize-arc
67 hppa*-*-*)
68         multidirs="soft-float"
69         ;;
70 m68*-*-*)
71         multidirs="m68000 m68020 m68881 msoft-float m68000/m68881 m68000/msoft-float m68020/m68881 m68020/msoft-float"
72         ;;
73 i960-*-*)
74         multidirs=float
75         ;;
76 sparclite-*-* | sparclitefrw*-*-*)
77         multidirs="mfpu msoft-float mflat mno-flat mfpu/mflat mfpu/mno-flat msoft-float/mflat msoft-float/mno-flat"
78         ;;
79 sparc-*-* | sparcfrw*-*-*)
80         multidirs="soft v8 soft/v8"
81         ;;
82 z8k-*-coff)
83         multidirs="z8001 std z8001/std"
84         ;;
85 h8300-*-*)
86         multidirs=h8300h
87         ;;
88 h8500-*-*)
89         multidirs="mbig msmall mcompact mmedium"
90         ;;
91 sh-*-*)
92         multidirs="ml"
93         ;;
94 mips*-*-*)
95         # Note that not all of these will be built for a particular
96         # target; what is build depends upon the output gcc
97         # --print-multi-lib.  We configure them all, to make our life
98         # simpler here.  If somebody cares about configuration
99         # efficiency, they will need to switch off on the various
100         # targets to configure just the directories needed for that
101         # target.
102         # 
103         # In the long run, it would be better to configure based on
104         # the output of gcc --print-multi-lib, but, to do that, we
105         # would have to build gcc before configuring newlib.
106         #
107         # Default to including the single-float directories.
108         if [ x$enable_single_float = x ]; then
109           enable_single_float=yes
110         fi
111         if [ x$enable_single_float = xyes ]; then
112           multidirs="soft-float single el eb mips1 mips3 soft-float/el soft-float/eb soft-float/mips1 soft-float/mips3 soft-float/el/mips1 soft-float/el/mips3 soft-float/eb/mips1 soft-float/eb/mips3 single/el single/eb single/mips1 single/mips3 single/el/mips1 single/el/mips3 single/eb/mips1 single/eb/mips3 el/mips1 el/mips3 eb/mips1 eb/mips3"
113         else
114           multidirs="soft-float el eb mips1 mips3 soft-float/el soft-float/eb soft-float/mips1 soft-float/mips3 soft-float/el/mips1 soft-float/el/mips3 soft-float/eb/mips1 soft-float/eb/mips3 el/mips1 el/mips3 eb/mips1 eb/mips3"
115         fi
116         if [ x$enable_biendian = xno ]
117         then
118           old_multidirs="${multidirs}"
119           multidirs=""
120           for x in ${old_multidirs}; do
121             case "$x" in
122               *endian* ) : ;;
123               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
124             esac
125           done
126         fi
127         if [ x$enable_softfloat = xno ]
128         then
129           old_multidirs="${multidirs}"
130           multidirs=""
131           for x in ${old_multidirs}; do
132             case "$x" in
133               *soft-float* ) : ;;
134               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
135             esac
136           done
137         fi
138         if [ x$enable_relocatable = xno ]
139         then
140           old_multidirs="${multidirs}"
141           multidirs=""
142           for x in ${old_multidirs}; do
143             case "$x" in
144               *relocatable* ) : ;;
145               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
146             esac
147           done
148         fi
149         if [ x$enable_sysv = xno ]
150         then
151           old_multidirs="${multidirs}"
152           multidirs=""
153           for x in ${old_multidirs}; do
154             case "$x" in
155               *sysv* ) : ;;
156               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
157             esac
158           done
159         fi
160         ;;
161 powerpc-*-eabiaix*)
162         multidirs="soft-float relocatable little-endian call-sysv little-endian/call-sysv relocatable/little-endian relocatable/call-sysv relocatable/little-endian/call-sysv soft-float/relocatable soft-float/little-endian soft-float/call-sysv soft-float/little-endian/call-sysv soft-float/relocatable/little-endian soft-float/relocatable/call-sysv soft-float/relocatable/little-endian/call-sysv"
163         if [ x$enable_biendian = xno ]
164         then
165           old_multidirs="${multidirs}"
166           multidirs=""
167           for x in ${old_multidirs}; do
168             case "$x" in
169               *endian* ) : ;;
170               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
171             esac
172           done
173         fi
174         if [ x$enable_softfloat = xno ]
175         then
176           old_multidirs="${multidirs}"
177           multidirs=""
178           for x in ${old_multidirs}; do
179             case "$x" in
180               *soft-float* ) : ;;
181               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
182             esac
183           done
184         fi
185         if [ x$enable_relocatable = xno ]
186         then
187           old_multidirs="${multidirs}"
188           multidirs=""
189           for x in ${old_multidirs}; do
190             case "$x" in
191               *relocatable* ) : ;;
192               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
193             esac
194           done
195         fi
196         if [ x$enable_sysv = xno ]
197         then
198           old_multidirs="${multidirs}"
199           multidirs=""
200           for x in ${old_multidirs}; do
201             case "$x" in
202               *sysv* ) : ;;
203               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
204             esac
205           done
206         fi
207         ;;
208 powerpc*-*-eabisim*)
209         multidirs="little-endian big-endian mrelocatable little-endian/mrelocatable big-endian/mrelocatable"
210         if [ x$enable_biendian = xno ]
211         then
212           old_multidirs="${multidirs}"
213           multidirs=""
214           for x in ${old_multidirs}; do
215             case "$x" in
216               *endian* ) : ;;
217               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
218             esac
219           done
220         fi
221         if [ x$enable_relocatable = xno ]
222         then
223           old_multidirs="${multidirs}"
224           multidirs=""
225           for x in ${old_multidirs}; do
226             case "$x" in
227               *relocatable* ) : ;;
228               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
229             esac
230           done
231         fi
232         ;;
233 powerpc-*-eabi* | powerpc-*-elf* | powerpc-*-sysv4*)
234         multidirs="soft-float relocatable little-endian call-aix little-endian/call-aix relocatable/little-endian relocatable/call-aix relocatable/little-endian/call-aix soft-float/relocatable soft-float/little-endian soft-float/call-aix soft-float/little-endian/call-aix soft-float/relocatable/little-endian soft-float/relocatable/call-aix soft-float/relocatable/little-endian/call-aix"
235         if [ x$enable_biendian = xno ]
236         then
237           old_multidirs="${multidirs}"
238           multidirs=""
239           for x in ${old_multidirs}; do
240             case "$x" in
241               *endian* ) : ;;
242               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
243             esac
244           done
245         fi
246         if [ x$enable_softfloat = xno ]
247         then
248           old_multidirs="${multidirs}"
249           multidirs=""
250           for x in ${old_multidirs}; do
251             case "$x" in
252               *soft-float* ) : ;;
253               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
254             esac
255           done
256         fi
257         if [ x$enable_relocatable = xno ]
258         then
259           old_multidirs="${multidirs}"
260           multidirs=""
261           for x in ${old_multidirs}; do
262             case "$x" in
263               *relocatable* ) : ;;
264               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
265             esac
266           done
267         fi
268         if [ x$enable_aix = xno ]
269         then
270           old_multidirs="${multidirs}"
271           multidirs=""
272           for x in ${old_multidirs}; do
273             case "$x" in
274               *aix* ) : ;;
275               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
276             esac
277           done
278         fi
279         ;;
280 powerpcle-*-eabi* | powerpcle-*-elf* | powerpcle-*-sysv4*)
281         multidirs="soft-float relocatable big-endian call-aix big-endian/call-aix relocatable/big-endian relocatable/call-aix relocatable/big-endian/call-aix soft-float/relocatable soft-float/big-endian soft-float/call-aix soft-float/big-endian/call-aix soft-float/relocatable/big-endian soft-float/relocatable/call-aix soft-float/relocatable/big-endian/call-aix"
282         if [ x$enable_biendian = xno ]
283         then
284           old_multidirs="${multidirs}"
285           multidirs=""
286           for x in ${old_multidirs}; do
287             case "$x" in
288               *endian* ) : ;;
289               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
290             esac
291           done
292         fi
293         if [ x$enable_softfloat = xno ]
294         then
295           old_multidirs="${multidirs}"
296           multidirs=""
297           for x in ${old_multidirs}; do
298             case "$x" in
299               *soft-float* ) : ;;
300               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
301             esac
302           done
303         fi
304         if [ x$enable_relocatable = xno ]
305         then
306           old_multidirs="${multidirs}"
307           multidirs=""
308           for x in ${old_multidirs}; do
309             case "$x" in
310               *relocatable* ) : ;;
311               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
312             esac
313           done
314         fi
315         if [ x$enable_aix = xno ]
316         then
317           old_multidirs="${multidirs}"
318           multidirs=""
319           for x in ${old_multidirs}; do
320             case "$x" in
321               *aix* ) : ;;
322               *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
323             esac
324           done
325         fi
326         ;;
327 *)
328         multidirs=
329         ;;
330 esac
331
332 # We must freshly configure each subdirectory.  This bit of code is
333 # actually partially stolen from the main configure script.  FIXME.
334
335 if [ -n "${multidirs}" ] && [ -z "${norecursion}" ]; then
336   for dir in ${multidirs}; do
337
338     if [ -d ${dir} ]; then true; else mkdir ${dir}; fi
339
340     dotdot=../`echo ${dir} | sed -e 's|[^/]||g' -e 's|/|../|g'`
341
342     case ${srcdir} in
343     ".")
344       echo Building symlink tree in `pwd`/${dir}
345       rm -f tmpconfig
346       cat >tmpconfig <<\EOF
347 #!/bin/sh
348 for f in `ls -a $1`; do
349   if [ -d $1$f ]; then
350     found=
351     for i in $2; do
352       if [ "$f" = "$i" ]; then
353         found=yes
354       fi
355     done
356     if [ -z "${found}" ]; then
357       if [ -d $f ]; then true; else mkdir $f; fi
358       (cd $f; ../$0 ../$1$f/ "$2")
359     fi
360   else
361     rm -f $f
362     ln -s $1$f .
363   fi
364 done
365 EOF
366       chmod +x tmpconfig
367       (cd ${dir};
368        ${dotdot}tmpconfig ${dotdot} ". .. CVS tmpconfig ${multidirs}")
369       rm -f tmpconfig
370       srcdiroption=
371       ;;
372     *)
373       case "${srcdir}" in
374       /*) # absolute path
375         newsrcdir=${srcdir}/${configdir}
376         ;;
377       *) # otherwise relative
378         newsrcdir=${dotdot}${srcdir}/${configdir}
379         ;;
380       esac
381       srcdiroption="-srcdir=${newsrcdir}"
382       ;;
383     esac
384
385     case "${progname}" in
386     /*)     recprog=${progname} ;;
387     *)      recprog=${dotdot}${progname} ;;
388     esac
389
390     POPDIR=${PWD=`pwd`}
391     cd ${dir}
392     if eval ${config_shell} ${recprog} ${verbose} \
393         --with-multisubdir=${dir} \
394         ${buildopt} --host=${host_alias} --target=${target_alias} \
395         ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
396         ${srcdiroption} ${program_prefixoption} ${program_suffixoption} \
397         ${program_transform_nameoption} ${site_option} ${withoptions} \
398         ${withoutoptions} ${enableoptions} ${disableoptions} \
399         ${cache_file_option} ${removing} ${other_options} ${redirect} ; then
400       true
401     else
402       exit 1
403     fi
404
405     cd ${POPDIR}
406
407   done
408 fi
409
410 fi # ${enable_multilib = yes -a -z ${with_multisubdir}
This page took 0.045861 seconds and 4 git commands to generate.