Support all of the V.4 relocations
[deliverable/binutils-gdb.git] / cfg-ml-com.in
index 6bc54efb3b5a444080f12c66fbea63c0ad3d4a2a..c683d9a53461857a830c710fb62231d26170b0ef 100644 (file)
 # It is advisable to support a few --enable/--disable options to let the
 # user select which libraries s/he really wants.
 #
+# Subdirectories wishing to use multilib should put the following lines
+# in the initial ("common") section of configure.in:
+#
+#if [ -n "${with_multilib_top}" ]; then
+#      . ${with_multilib_top}/../cfg-ml-com.in
+#else
+#      . ${srcdir}/../cfg-ml-com.in
+#fi
+#
+# `with_multilib_top' exists to handle the case of configuring in the source
+# tree: ${srcdir} is not constant.
+#
+# The following should be added to the "post-target" section of configure.in:
+#
+#if [ -n "${with_multilib_top}" ]; then
+#      . ${with_multilib_top}/../cfg-ml-pos.in
+#else
+#      . ${srcdir}/../cfg-ml-pos.in
+#fi
+
 # FIXME: Multilib is currently disabled by default for everything other than
 # newlib.  It is up to each target to turn on multilib support for the other
 # libraries as desired.
@@ -67,7 +87,7 @@ arc-*-*)
 hppa*-*-*)
        multidirs="soft-float"
        ;;
-m68*-*-*)
+m68*-*-aout* | m68*-*-coff* | m68*-*-elf* | m68*-*-vxworks*)
        multidirs="m68000 m68020 m68881 msoft-float m68000/m68881 m68000/msoft-float m68020/m68881 m68020/msoft-float"
        ;;
 i960-*-*)
@@ -90,6 +110,9 @@ h8500-*-*)
        ;;
 sh-*-*)
        multidirs="ml"
+# start-sanitize-sh3e
+       multidirs="ml m3e"
+# end-sanitize-sh3e
        ;;
 mips*-*-*)
        # Note that not all of these will be built for a particular
@@ -160,6 +183,75 @@ mips*-*-*)
        ;;
 powerpc-*-eabiaix*)
        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"
+       if [ x$enable_biendian = xno ]
+       then
+         old_multidirs="${multidirs}"
+         multidirs=""
+         for x in ${old_multidirs}; do
+           case "$x" in
+             *endian* ) : ;;
+             *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+           esac
+         done
+       fi
+       if [ x$enable_softfloat = xno ]
+       then
+         old_multidirs="${multidirs}"
+         multidirs=""
+         for x in ${old_multidirs}; do
+           case "$x" in
+             *soft-float* ) : ;;
+             *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+           esac
+         done
+       fi
+       if [ x$enable_relocatable = xno ]
+       then
+         old_multidirs="${multidirs}"
+         multidirs=""
+         for x in ${old_multidirs}; do
+           case "$x" in
+             *relocatable* ) : ;;
+             *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+           esac
+         done
+       fi
+       if [ x$enable_sysv = xno ]
+       then
+         old_multidirs="${multidirs}"
+         multidirs=""
+         for x in ${old_multidirs}; do
+           case "$x" in
+             *sysv* ) : ;;
+             *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+           esac
+         done
+       fi
+       ;;
+powerpc*-*-eabisim*)
+       multidirs="little-endian big-endian mrelocatable little-endian/mrelocatable big-endian/mrelocatable"
+       if [ x$enable_biendian = xno ]
+       then
+         old_multidirs="${multidirs}"
+         multidirs=""
+         for x in ${old_multidirs}; do
+           case "$x" in
+             *endian* ) : ;;
+             *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+           esac
+         done
+       fi
+       if [ x$enable_relocatable = xno ]
+       then
+         old_multidirs="${multidirs}"
+         multidirs=""
+         for x in ${old_multidirs}; do
+           case "$x" in
+             *relocatable* ) : ;;
+             *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+           esac
+         done
+       fi
        ;;
 powerpc-*-eabi* | powerpc-*-elf* | powerpc-*-sysv4*)
        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"
@@ -299,6 +391,7 @@ EOF
        ${dotdot}tmpconfig ${dotdot} ". .. CVS tmpconfig ${multidirs}")
       rm -f tmpconfig
       srcdiroption=
+      multilib_top=${dotdot}
       ;;
     *)
       case "${srcdir}" in
@@ -310,6 +403,7 @@ EOF
         ;;
       esac
       srcdiroption="-srcdir=${newsrcdir}"
+      multilib_top=${newsrcdir}
       ;;
     esac
 
@@ -321,7 +415,7 @@ EOF
     POPDIR=${PWD=`pwd`}
     cd ${dir}
     if eval ${config_shell} ${recprog} ${verbose} \
-       --with-multisubdir=${dir} \
+       --with-multisubdir=${dir} --with-multilib-top=${multilib_top} \
        ${buildopt} --host=${host_alias} --target=${target_alias} \
         ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
         ${srcdiroption} ${program_prefixoption} ${program_suffixoption} \
This page took 0.02461 seconds and 4 git commands to generate.