* config-com.multi: New file.
* config-pos.multi: New file.
This commit is contained in:
parent
2d86d216f2
commit
9eb59e0bdf
@ -109,6 +109,8 @@ ChangeLog
|
||||
Makefile.in
|
||||
README
|
||||
config
|
||||
config-com.multi
|
||||
config-pos.multi
|
||||
config.guess
|
||||
config.sub
|
||||
configure
|
||||
|
18
ChangeLog
18
ChangeLog
@ -1,3 +1,21 @@
|
||||
Fri Jul 21 10:41:12 1995 Doug Evans <dje@canuck.cygnus.com>
|
||||
|
||||
* config-com.multi: New file.
|
||||
* config-pos.multi: New file.
|
||||
|
||||
Wed Jul 19 00:37:27 1995 Jeffrey A. Law <law@rtl.cygnus.com>
|
||||
|
||||
* COPYING.NEWLIB: Add HP free copyright to list.
|
||||
|
||||
Tue Jul 18 10:58:51 1995 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||
|
||||
* config.sub: Recognize -eabi* for the system, not just -eabi.
|
||||
|
||||
Mon Jul 3 13:44:51 1995 Steve Chamberlain <sac@slash.cygnus.com>
|
||||
|
||||
* Makfile.in (DLLTOOL_FOR_TARGET): New name, pass it down.
|
||||
* config.sub, configure.in (win32): New target and host.
|
||||
|
||||
Wed Jun 28 23:57:08 1995 Steve Chamberlain <sac@slash.cygnus.com>
|
||||
|
||||
* configure.in: Add i386-pe configuration.
|
||||
|
209
config-com.multi
Normal file
209
config-com.multi
Normal file
@ -0,0 +1,209 @@
|
||||
# Configure fragment invoked in the common section for subdirs
|
||||
# wanting multilib support.
|
||||
#
|
||||
# The common section was chosen because xiberty clobbers $srcdir in the
|
||||
# common section of its configure.in.
|
||||
#
|
||||
# The intent is to keep as much of this in one place as possible (and out
|
||||
# of each subdirectory, eg: newlib, libio, etc.) until the right way to do
|
||||
# this (ha ha) is decided upon.
|
||||
#
|
||||
# This is where a target selects what multilib directories to build.
|
||||
# It is advisable to support a few --enable/--disable options to let the
|
||||
# user select which libraries s/he really wants.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# FIXME: It would be better if we could use the --print-multi-lib switch to
|
||||
# gcc to get the list of directories to build, but at this point the compiler
|
||||
# has not been built.
|
||||
|
||||
# Only do this if --enable-multilib.
|
||||
# And only if at the top level, not a multilib subdirectory.
|
||||
|
||||
if [ "${enable_multilib}" = yes -a -z "${with_multisubdir}" ]; then
|
||||
|
||||
# Doing this in the common section means ${target} isn't set yet, so compute
|
||||
# a copy here. This is a bit kludgey, but again the current (short term) goal
|
||||
# is to be as unobtrusive (sp?) to the rest of the sources as possible.
|
||||
|
||||
if result=`${config_shell} ${configsub} ${target_alias}` ; then
|
||||
true
|
||||
else
|
||||
echo "Unrecognized target system name ${target_alias}." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
target_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
|
||||
target_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
|
||||
target_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
|
||||
target=${target_cpu}-${target_vendor}-${target_os}
|
||||
|
||||
# FIXME: Perhaps we can do something like the following instead.
|
||||
# Fetch from gcc the multilib directories to use if we can.
|
||||
# if [ -f ${srcdir}/../gcc/genmultilib -a -f ../gcc/Makefile ]; then
|
||||
# options=`grep "^MULTILIB_OPTIONS" ../gcc/Makefile | sed -e 's/^.*=//'`
|
||||
# multidirs=`${srcdir}/../gcc/genmultilib "$options" | \
|
||||
# sed -e 's/^#define.*//' -e 's/^[.].*//' -e 's/".*//' -e 's/ .*//'`
|
||||
# else
|
||||
# multidirs=""
|
||||
# fi
|
||||
|
||||
case "${target}" in
|
||||
# start-sanitize-arc
|
||||
arc-sbp-elf*)
|
||||
if [ x$enable_biendian = xyes ]
|
||||
then
|
||||
multidirs="be host graphics audio be/host be/graphics be/audio"
|
||||
else
|
||||
multidirs="host graphics audio"
|
||||
fi
|
||||
;;
|
||||
arc-*-*)
|
||||
multidirs="be"
|
||||
;;
|
||||
# end-sanitize-arc
|
||||
hppa*-*-*)
|
||||
multidirs="soft-float"
|
||||
;;
|
||||
m68*-*-*)
|
||||
multidirs="m68000 m68020 m68881 msoft-float m68000/m68881 m68000/msoft-float m68020/m68881 m68020/msoft-float"
|
||||
;;
|
||||
i960-*-*)
|
||||
multidirs=float
|
||||
;;
|
||||
sparclite-*-* | sparclitefrw*-*-*)
|
||||
multidirs="mfpu msoft-float mflat mno-flat mfpu/mflat mfpu/mno-flat msoft-float/mflat msoft-float/mno-flat"
|
||||
;;
|
||||
sparc-*-* | sparcfrw*-*-*)
|
||||
multidirs="soft v8 soft/v8"
|
||||
;;
|
||||
z8k-*-*)
|
||||
multidirs="z8001"
|
||||
;;
|
||||
h8300-*-*)
|
||||
multidirs=h8300h
|
||||
;;
|
||||
h8500-*-*)
|
||||
multidirs="mbig msmall mcompact mmedium"
|
||||
;;
|
||||
sh-*-*)
|
||||
multidirs="ml"
|
||||
;;
|
||||
mips*-*-*)
|
||||
# Note that not all of these will be built for a particular
|
||||
# target; what is build depends upon the output gcc
|
||||
# --print-multi-lib. We configure them all, to make our life
|
||||
# simpler here. If somebody cares about configuration
|
||||
# efficiency, they will need to switch off on the various
|
||||
# targets to configure just the directories needed for that
|
||||
# target.
|
||||
#
|
||||
# In the long run, it would be better to configure based on
|
||||
# the output of gcc --print-multi-lib, but, to do that, we
|
||||
# would have to build gcc before configuring newlib.
|
||||
#
|
||||
# Default to including the single-float directories.
|
||||
if [ x$enable_single_float = x ]; then
|
||||
enable_single_float=yes
|
||||
fi
|
||||
if [ x$enable_single_float = xyes ]; then
|
||||
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"
|
||||
else
|
||||
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"
|
||||
fi
|
||||
;;
|
||||
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";;
|
||||
;;
|
||||
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";;
|
||||
;;
|
||||
powerpcle-*-eabi* | powerpcle-*-elf* | powerpcle-*-sysv4*)
|
||||
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";;
|
||||
;;
|
||||
*)
|
||||
multidirs=
|
||||
;;
|
||||
esac
|
||||
|
||||
# We must freshly configure each subdirectory. This bit of code is
|
||||
# actually partially stolen from the main configure script. FIXME.
|
||||
|
||||
if [ -n "${multidirs}" ] && [ -z "${norecursion}" ]; then
|
||||
for dir in ${multidirs}; do
|
||||
|
||||
if [ -d ${dir} ]; then true; else mkdir ${dir}; fi
|
||||
|
||||
dotdot=../`echo ${dir} | sed -e 's|[^/]||g' -e 's|/|../|g'`
|
||||
|
||||
case ${srcdir} in
|
||||
".")
|
||||
echo Building symlink tree in `pwd`/${dir}
|
||||
rm -f tmpconfig
|
||||
cat >tmpconfig <<\EOF
|
||||
#!/bin/sh
|
||||
for f in `ls -a $1`; do
|
||||
if [ -d $1$f ]; then
|
||||
found=
|
||||
for i in $2; do
|
||||
if [ "$f" = "$i" ]; then
|
||||
found=yes
|
||||
fi
|
||||
done
|
||||
if [ -z "${found}" ]; then
|
||||
if [ -d $f ]; then true; else mkdir $f; fi
|
||||
(cd $f; ../$0 ../$1$f/ "$2")
|
||||
fi
|
||||
else
|
||||
rm -f $f
|
||||
ln -s $1$f .
|
||||
fi
|
||||
done
|
||||
EOF
|
||||
chmod +x tmpconfig
|
||||
(cd ${dir};
|
||||
${dotdot}tmpconfig ${dotdot} ". .. CVS tmpconfig ${multidirs}")
|
||||
rm -f tmpconfig
|
||||
srcdiroption=
|
||||
;;
|
||||
*)
|
||||
case "${srcdir}" in
|
||||
/*) # absolute path
|
||||
newsrcdir=${srcdir}/${configdir}
|
||||
;;
|
||||
*) # otherwise relative
|
||||
newsrcdir=${dotdot}${srcdir}/${configdir}
|
||||
;;
|
||||
esac
|
||||
srcdiroption="-srcdir=${newsrcdir}"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "${progname}" in
|
||||
/*) recprog=${progname} ;;
|
||||
*) recprog=${dotdot}${progname} ;;
|
||||
esac
|
||||
|
||||
POPDIR=${PWD=`pwd`}
|
||||
cd ${dir}
|
||||
if eval ${config_shell} ${recprog} ${verbose} \
|
||||
--with-multisubdir=${dir} \
|
||||
${buildopt} --host=${host_alias} --target=${target_alias} \
|
||||
${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
|
||||
${srcdiroption} ${program_prefixoption} ${program_suffixoption} \
|
||||
${program_transform_nameoption} ${site_option} ${withoptions} \
|
||||
${withoutoptions} ${enableoptions} ${disableoptions} \
|
||||
${cache_file_option} ${removing} ${other_options} ${redirect} ; then
|
||||
true
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd ${POPDIR}
|
||||
|
||||
done
|
||||
fi
|
||||
|
||||
fi # ${enable_multilib = yes -a -z ${with_multisubdir}
|
113
config-pos.multi
Normal file
113
config-pos.multi
Normal file
@ -0,0 +1,113 @@
|
||||
# Configure fragment invoked in the post-target section for subdirs
|
||||
# wanting multilib support.
|
||||
# The intent is to keep as much of this in one place as possible (and out
|
||||
# of each subdirectory, eg: newlib, libio, etc.) until the right way to do
|
||||
# this (ha ha) is decided upon.
|
||||
|
||||
# Only do this if --enable-multilib.
|
||||
|
||||
if [ "${enable_multilib}" = yes ]; then
|
||||
|
||||
if [ -z "${with_multisubdir}" ]; then
|
||||
multisubdir=
|
||||
else
|
||||
multisubdir="/${with_multisubdir}"
|
||||
# FIXME: following line needs testing in multilevel dir (eg: m68k).
|
||||
dotdot=`echo ${multisubdir} | sed -e 's:/[^/]*:../:g'`
|
||||
sed -e "s:^TOP[ ]*=[ ]*\([./]*\)[ ]*$:TOP = ${dotdot}\1:" \
|
||||
-e "s:^MULTITOP[ ]*=[ ]*\([./]*\)[ ]*$:MULTITOP = ${dotdot}\1:" \
|
||||
${Makefile} > Makefile.tem
|
||||
rm -f ${Makefile}
|
||||
mv Makefile.tem ${Makefile}
|
||||
fi
|
||||
|
||||
# MULTIDIRS is non-empty for the cpu top level Makefile (eg: newlib/Makefile)
|
||||
# and lists the subdirectories to recurse into. MULTISUBDIR is non-empty in
|
||||
# each cpu subdirectory's Makefile (eg: newlib/h8300h/Makefile) and is the
|
||||
# installed subdirectory name with a trailing '/'.
|
||||
# XXX_MULTI is a set of helpers for all, install, etc.
|
||||
# Makefile.in is free to override them since these are prepended to the top.
|
||||
|
||||
cat > Multi.tem <<EOF
|
||||
MULTIDIRS = ${multidirs}
|
||||
MULTISUBDIR = ${multisubdir}
|
||||
EOF
|
||||
cat Multi.tem ${Makefile} > Makefile.tem
|
||||
rm -f Multi.tem ${Makefile}
|
||||
mv Makefile.tem ${Makefile}
|
||||
|
||||
# Add default definitions for all, install, clean, etc.
|
||||
# if the Makefile uses them.
|
||||
|
||||
if grep ALL_MULTI ${Makefile} >/dev/null 2>/dev/null
|
||||
then
|
||||
cat > Multi.tem <<EOF
|
||||
ALL_MULTI = all-multi
|
||||
INSTALL_MULTI = install-multi
|
||||
MOSTLYCLEAN_MULTI = mostlyclean-multi
|
||||
CLEAN_MULTI = clean-multi
|
||||
DISTCLEAN_MULTI = distclean-multi
|
||||
EOF
|
||||
|
||||
cat Multi.tem ${Makefile} > Makefile.tem
|
||||
rm -f Multi.tem ${Makefile}
|
||||
mv Makefile.tem ${Makefile}
|
||||
|
||||
cat > Multi.tem <<\EOF
|
||||
|
||||
# FIXME: We use --print-multi-lib but the others don't. Standardize.
|
||||
all-multi:
|
||||
if [ -z "$(MULTIDIRS)" ]; then \
|
||||
true; \
|
||||
else \
|
||||
rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
compiler="$(CC)"; \
|
||||
for i in `$${compiler} --print-multi-lib 2>/dev/null`; do \
|
||||
dir=`echo $$i | sed -e 's/;.*$$//'`; \
|
||||
if [ "$${dir}" = "." ]; then \
|
||||
true; \
|
||||
else \
|
||||
if [ -d $${dir} ]; then \
|
||||
flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
|
||||
if (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) \
|
||||
CFLAGS="$(CFLAGS) $${flags}" \
|
||||
CXXFLAGS="$(CXXFLAGS) $${flags}" \
|
||||
LIBCFLAGS="$(LIBCFLAGS) $${flags}" \
|
||||
LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \
|
||||
all); then \
|
||||
true; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi; \
|
||||
else true; \
|
||||
fi; \
|
||||
fi; \
|
||||
done; \
|
||||
fi
|
||||
|
||||
install-multi mostlyclean-multi clean-multi distclean-multi realclean-multi:
|
||||
if [ -n "$(MULTIDIRS)" ]; then \
|
||||
rootpre=`pwd`/; export rootpre; \
|
||||
srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
|
||||
$(MAKE) DO=`echo $@ | sed -e 's/-multi$$//'` DODIRS="$(MULTIDIRS)" $(FLAGS_TO_PASS) multi_subdir_do; \
|
||||
else true; fi
|
||||
|
||||
multi_subdir_do:
|
||||
for i in $(DODIRS); do \
|
||||
if [ -f ./$$i/Makefile ] ; then \
|
||||
if (cd ./$$i; $(MAKE) $(FLAGS_TO_PASS) $(DO)) ; \
|
||||
then true ; \
|
||||
else exit 1 ; \
|
||||
fi ; \
|
||||
else true; \
|
||||
fi ; \
|
||||
done
|
||||
EOF
|
||||
|
||||
cat ${Makefile} Multi.tem > Makefile.tem
|
||||
rm -f ${Makefile} Multi.tem
|
||||
mv Makefile.tem ${Makefile}
|
||||
fi
|
||||
|
||||
fi # "${enable_multilib}" = yes
|
Loading…
Reference in New Issue
Block a user