From 8c2d15d17a54ae1bb6a1f693ed21bdbc4746d66f Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Fri, 21 Jul 1995 18:17:42 +0000 Subject: Rename config-{com,pos}.multi to cfg-ml-{com,pos}.in. --- cfg-ml-pos.in | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 cfg-ml-pos.in (limited to 'cfg-ml-pos.in') diff --git a/cfg-ml-pos.in b/cfg-ml-pos.in new file mode 100644 index 0000000..c0798a3 --- /dev/null +++ b/cfg-ml-pos.in @@ -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 < 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 < 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 -- cgit v1.1