This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: compilation of libio failing on linux/libc6
On Tue, 27 January 1998, 16:04:54, Manfred.Hollstein@ks.sel.alcatel.de wrote:
[snip]
> The final Makefile then will contain in this order:
>
> 1. srcdir, VPATH, other configure'd macros
> 2. package macros
> 3. target
> 4. host
> 5. site
> 6. package rules
> 7. ...
>
> In 2. package macros we then define the 99% default:
>
> _G_CONFIG_H=_G_config.h
>
> while in 3. linux.mt we'll override that by
>
> _G_CONFIG_H=
>
> and _before_ it's value will be used in any rule, ...
>
> I'll send a patch for this.
The technique:
- We have two package related files to be created by config.shared:
a. ${package_makefile_frag}
b. ${package_makefile_rules_frag}
a. is the old one and 2. in the above list.
b. is new and corresponds to 6. above.
- config.shared simply emits the macros on file descriptor 1 and
uses file descriptor 2 for the generic rules stuff.
- Toplevel configure then places the 5 fragments in the correct order
in the generated Makefile.
This patch is against the egcs-980122 snapshot. Jeff (Law), you should simply
revert my last change to the toplevel configure in the CVS sources, and then
use this one instead. Sorry, I can't send diffs for the current CVS sources
because I'm behind a firewall and hence don't have transparent access to Cygnus's
site :-(
H.J.: can you please change the call to config.shared in your libg++ sources as
well? Thanks.
Here it is:
Tue Jan 27 17:48:40 1998 Manfred Hollstein <manfred@s-direktnet.de>
* configure (package_makefile_rules_frag): New variable, which names
a file with generic rules, ...
Change comment to mention we now have FIVE parts.
* libio/config.shared: Emit everything which needs to be re-definable
via file descriptor 1; the generic stuff is emitted using redirection
onto fd 2.
* libio/configure.in (package_makefile_rules_frag): New variable
which is used in the call to config.shared; redirect file descriptor 2
to ${package_makefile_rules_frag}.
* libstdc++/configure.in: Likewise.
diff -c -p egcs-980122/configure.orig egcs-980122/configure
*** egcs-980122/configure.orig Fri Jan 23 06:30:29 1998
--- egcs-980122/configure Tue Jan 27 17:40:15 1998
*************** moveifchange=
*** 62,67 ****
--- 62,68 ----
norecursion=
other_options=
package_makefile_frag=
+ package_makefile_rules_frag=
prefix=/usr/local
progname=
program_prefix=
*************** EOF
*** 1038,1062 ****
# been somewhat optimized and is perhaps a bit twisty.
# code is order so as to try to sed the smallest input files we know.
! # the four makefile fragments MUST end up in the resulting Makefile in this order:
! # package, target, host, and site. so do these separately because I don't trust the
! # order of sed -e expressions.
if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then
# Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
rm -f ${subdir}/${Makefile}.tem
! case "${package_makefile_frag}" in
"") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
*)
! if [ ! -f ${package_makefile_frag} ] ; then
! package_makefile_frag=${srcdir}/${package_makefile_frag}
fi
! if [ -f ${package_makefile_frag} ] ; then
! sed -e "/^####/ r ${package_makefile_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem
else
! echo '***' Expected package makefile fragment \"${package_makefile_frag}\" 1>&2
echo '***' is missing in ${PWD=`pwd`}. 1>&2
cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
fi
--- 1039,1063 ----
# been somewhat optimized and is perhaps a bit twisty.
# code is order so as to try to sed the smallest input files we know.
+ # so do these separately because I don't trust the order of sed -e expressions.
! # the five makefile fragments MUST end up in the resulting Makefile in this order:
! # package macros, target, host, site, and package rules.
if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then
# Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
rm -f ${subdir}/${Makefile}.tem
! case "${package_makefile_rules_frag}" in
"") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
*)
! if [ ! -f ${package_makefile_rules_frag} ] ; then
! package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag}
fi
! if [ -f ${package_makefile_rules_frag} ] ; then
! sed -e "/^####/ r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem
else
! echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2
echo '***' is missing in ${PWD=`pwd`}. 1>&2
cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
fi
*************** EOF
*** 1115,1124 ****
fi
;;
esac
! # real copy now in ${Makefile}
!
! mv ${Makefile} ${subdir}/Makefile.tem
# real copy now in ${subdir}/Makefile.tem
# prepend warning about editting, and a bunch of variables.
--- 1116,1139 ----
fi
;;
esac
! # working copy now in ${Makefile}
+ # Emit the default values of this package's macros.
+ rm -f ${subdir}/Makefile.tem
+ case "${package_makefile_frag}" in
+ "") mv ${Makefile} ${subdir}/Makefile.tem ;;
+ *)
+ if [ ! -f ${package_makefile_frag} ] ; then
+ package_makefile_frag=${srcdir}/${package_makefile_frag}
+ fi
+ if [ -f ${package_makefile_frag} ] ; then
+ sed -e "/^####/ r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
+ else
+ echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2
+ echo '***' is missing in ${PWD=`pwd`}. 1>&2
+ mv ${Makefile} ${subdir}/Makefile.tem
+ fi
+ esac
# real copy now in ${subdir}/Makefile.tem
# prepend warning about editting, and a bunch of variables.
diff -c -p egcs-980122/libio/config.shared.orig egcs-980122/libio/config.shared
*** egcs-980122/libio/config.shared.orig Fri Jan 16 00:46:28 1998
--- egcs-980122/libio/config.shared Tue Jan 27 17:31:14 1998
***************
*** 1,4 ****
! # Copyright (C) 1993, 1995, 1997 Free Software Foundation
#
# This file is part of the GNU IO Library. This library is free
# software; you can redistribute it and/or modify it under the
--- 1,4 ----
! # Copyright (C) 1993, 1995, 1997, 1998 Free Software Foundation
#
# This file is part of the GNU IO Library. This library is free
# software; you can redistribute it and/or modify it under the
***************
*** 15,20 ****
--- 15,24 ----
# along with GNU CC; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ # File descriptor usage:
+ # 1: All macros which need to be re-definable by any target fragments
+ # 2: All generic rules; especially those which use re-defined macros, e.g. _G_CONFIG_H!
+
# Significant variables:
# Note that TO_TOPDIR does *not* include multilib.
*************** THIS_FILE="${srcdir}/${TOLIBGXX}config.s
*** 33,38 ****
--- 37,44 ----
echo "# Start of package fragment generated by ${THIS_FILE}."
echo ""
+ echo >&2 "# Start of package rules fragment generated by ${THIS_FILE}."
+ echo >&2 ""
# Multilib support.
echo 'MULTISRCTOP ='
*************** fi
*** 175,281 ****
ALL='$(PICDIR)'" ${ALL}"
! echo "all: ${ALL} multi-all"
if [ "${SUBDIRS}" != "" ] ; then
! echo ' @rootme=`pwd`/; export rootme; \'
! echo ' $(MAKE) "DODIRS=$(SUBDIRS)" DO=all $(FLAGS_TO_PASS) subdir_do'
fi
! echo '.PHONY: all'
! echo ''
! echo '.PHONY: multi-all'
! echo 'multi-all:'
! echo ' @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all'
! echo ''
! echo
if [ "${SUBDIRS}" != "" ] ; then
! echo '.PHONY: subdir_do'
! echo 'subdir_do: force'
! echo ' @rootme=`pwd`/; export rootme; \'
! echo ' for i in $(DODIRS); do \'
! echo ' if [ -f ./$$i/Makefile ] ; then \'
! echo ' echo "cd $$i; make $(DO) ..." ; \'
! echo ' (cd $$i ; $(MAKE) $(FLAGS_TO_PASS) $(DO)) || exit 1 ; \'
! echo ' else true ; fi ; \'
! echo ' done'
! echo ''
! echo '# List of variables to pass to sub-makes. This should not be needed'
! echo '# by GNU make or Sun make (both of which pass command-line variable'
! echo '# overrides thouh $(MAKE)) but may be needed by older versions.'
! echo ''
! echo 'FLAGS_TO_PASS= \'
! echo ' "SHELL=$(SHELL)" \'
! echo ' "INSTALL=$(INSTALL)" \'
! echo ' "INSTALL_DATA=$(INSTALL_DATA)" \'
! echo ' "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \'
! echo ' "prefix=$(prefix)" \'
! echo ' "exec_prefix=$(exec_prefix)" \'
! echo ' "tooldir=$(tooldir)" \'
! echo ' "AR=$(AR)" \'
! echo ' "AR_FLAGS=$(AR_FLAGS)" \'
! echo ' "CC=$(CC)" \'
! echo ' "CXX=$(CXX)" \'
! echo ' "CFLAGS=$(CFLAGS)" \'
! echo ' "CXXFLAGS=$(CXXFLAGS)" \'
! echo ' "NM=$(NM)" \'
! echo ' "RANLIB=$(RANLIB)" \'
! echo ' "LIBCFLAGS=$(LIBCFLAGS)" \'
! echo ' "LIBCXXFLAGS=$(LIBCXXFLAGS)" \'
! echo ' "LOADLIBES=$(LOADLIBES)" \'
! echo ' "LDFLAGS=$(LDFLAGS)" \'
! echo ' "MAKEINFO=$(MAKEINFO)" \'
! echo ' "SHLIB=$(SHLIB)" \'
! echo ' "SHCURSES=$(SHCURSES)" \'
! echo ' "PICFLAG=$(PICFLAG)" \'
! echo ' "RUNTESTFLAGS=$(RUNTESTFLAGS)"'
fi
! echo 'NOSTDINC = -nostdinc++'
if test -n "${XCXXINCLUDES}" ; then
! echo "CXXINCLUDES = ${XCXXINCLUDES} "'$(NOSTDINC)'
elif test "${DOING_LIBGXX}" = "true" ; then
! echo 'CXXINCLUDES = $(NOSTDINC) -I. -I'"${TO_TOPDIR}libio"' -I$(srcdir) -I$(srcdir)/'"${TOLIBGXX}"'$(IO_DIR) -I$(srcdir)/'"${TOLIBGXX}"'../libstdc++ -I$(srcdir)/'"${TOLIBGXX}src"' $(WRAP_C_INCLUDES)'
fi
if test -n "${XCINCLUDES}" ; then
! echo "CINCLUDES = ${XCINCLUDES}"
elif test "${DOING_LIBGXX}" = "true" ; then
! echo 'CINCLUDES ='
fi
if [ "${LIBDIR}" = "yes" ]; then
! echo 'XCFLAGS = $(LIBCFLAGS)'
! echo 'XCXXFLAGS = $(LIBCXXFLAGS)'
else
! echo 'XCFLAGS = $(CFLAGS)'
! echo 'XCXXFLAGS = $(CXXFLAGS)'
fi
! echo '.SUFFIXES: .o .C .cc .c'
! echo 'COMPILE.c = $(CC) -c $(XCFLAGS) $(CINCLUDES) $(MT_CFLAGS)'
! echo '.c.o:'
if [ "${LIBDIR}" = "yes" ]; then
! echo ' test -z "$(PICFLAG)" ||\'
! echo ' $(COMPILE.c) $(PICFLAG) $< -o pic/$@'
fi
! echo ' $(COMPILE.c) $<'
! [ "${TOUCH_ON_COMPILE}" = "yes" ] && echo ' @touch stamp'
! echo 'COMPILE.cc = $(CXX) -c $(XCXXFLAGS) $(CXXINCLUDES) $(MT_CFLAGS)'
! echo '.C.o:'
if [ "${LIBDIR}" = "yes" ]; then
! echo ' test -z "$(PICFLAG)" ||\'
! echo ' $(COMPILE.cc) $(PICFLAG) $< -o pic/$@'
fi
! echo ' $(COMPILE.cc) $<'
! [ "${TOUCH_ON_COMPILE}" = "yes" ] && echo ' @touch stamp'
! echo '.cc.o:'
if [ "${LIBDIR}" = "yes" ]; then
! echo ' test -z "$(PICFLAG)" || \'
! echo ' $(COMPILE.cc) $(PICFLAG) $< -o pic/$@'
fi
! echo ' $(COMPILE.cc) $<'
! [ "${TOUCH_ON_COMPILE}" = "yes" ] && echo ' @touch stamp'
! echo ''
if [ -n "${TARGETLIB}" ] ; then
echo TARGETLIB = ${TARGETLIB}
--- 181,287 ----
ALL='$(PICDIR)'" ${ALL}"
! echo >&2 "all: ${ALL} multi-all"
if [ "${SUBDIRS}" != "" ] ; then
! echo >&2 ' @rootme=`pwd`/; export rootme; \'
! echo >&2 ' $(MAKE) "DODIRS=$(SUBDIRS)" DO=all $(FLAGS_TO_PASS) subdir_do'
fi
! echo >&2 '.PHONY: all'
! echo >&2 ''
! echo >&2 '.PHONY: multi-all'
! echo >&2 'multi-all:'
! echo >&2 ' @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all'
! echo >&2 ''
! echo >&2
if [ "${SUBDIRS}" != "" ] ; then
! echo >&2 '.PHONY: subdir_do'
! echo >&2 'subdir_do: force'
! echo >&2 ' @rootme=`pwd`/; export rootme; \'
! echo >&2 ' for i in $(DODIRS); do \'
! echo >&2 ' if [ -f ./$$i/Makefile ] ; then \'
! echo >&2 ' echo "cd $$i; make $(DO) ..." ; \'
! echo >&2 ' (cd $$i ; $(MAKE) $(FLAGS_TO_PASS) $(DO)) || exit 1 ; \'
! echo >&2 ' else true ; fi ; \'
! echo >&2 ' done'
! echo >&2 ''
! echo >&2 '# List of variables to pass to sub-makes. This should not be needed'
! echo >&2 '# by GNU make or Sun make (both of which pass command-line variable'
! echo >&2 '# overrides thouh $(MAKE)) but may be needed by older versions.'
! echo >&2 ''
! echo >&2 'FLAGS_TO_PASS= \'
! echo >&2 ' "SHELL=$(SHELL)" \'
! echo >&2 ' "INSTALL=$(INSTALL)" \'
! echo >&2 ' "INSTALL_DATA=$(INSTALL_DATA)" \'
! echo >&2 ' "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \'
! echo >&2 ' "prefix=$(prefix)" \'
! echo >&2 ' "exec_prefix=$(exec_prefix)" \'
! echo >&2 ' "tooldir=$(tooldir)" \'
! echo >&2 ' "AR=$(AR)" \'
! echo >&2 ' "AR_FLAGS=$(AR_FLAGS)" \'
! echo >&2 ' "CC=$(CC)" \'
! echo >&2 ' "CXX=$(CXX)" \'
! echo >&2 ' "CFLAGS=$(CFLAGS)" \'
! echo >&2 ' "CXXFLAGS=$(CXXFLAGS)" \'
! echo >&2 ' "NM=$(NM)" \'
! echo >&2 ' "RANLIB=$(RANLIB)" \'
! echo >&2 ' "LIBCFLAGS=$(LIBCFLAGS)" \'
! echo >&2 ' "LIBCXXFLAGS=$(LIBCXXFLAGS)" \'
! echo >&2 ' "LOADLIBES=$(LOADLIBES)" \'
! echo >&2 ' "LDFLAGS=$(LDFLAGS)" \'
! echo >&2 ' "MAKEINFO=$(MAKEINFO)" \'
! echo >&2 ' "SHLIB=$(SHLIB)" \'
! echo >&2 ' "SHCURSES=$(SHCURSES)" \'
! echo >&2 ' "PICFLAG=$(PICFLAG)" \'
! echo >&2 ' "RUNTESTFLAGS=$(RUNTESTFLAGS)"'
fi
! echo >&2 'NOSTDINC = -nostdinc++'
if test -n "${XCXXINCLUDES}" ; then
! echo >&2 "CXXINCLUDES = ${XCXXINCLUDES} "'$(NOSTDINC)'
elif test "${DOING_LIBGXX}" = "true" ; then
! echo >&2 'CXXINCLUDES = $(NOSTDINC) -I. -I'"${TO_TOPDIR}libio"' -I$(srcdir) -I$(srcdir)/'"${TOLIBGXX}"'$(IO_DIR) -I$(srcdir)/'"${TOLIBGXX}"'../libstdc++ -I$(srcdir)/'"${TOLIBGXX}src"' $(WRAP_C_INCLUDES)'
fi
if test -n "${XCINCLUDES}" ; then
! echo >&2 "CINCLUDES = ${XCINCLUDES}"
elif test "${DOING_LIBGXX}" = "true" ; then
! echo >&2 'CINCLUDES ='
fi
if [ "${LIBDIR}" = "yes" ]; then
! echo >&2 'XCFLAGS = $(LIBCFLAGS)'
! echo >&2 'XCXXFLAGS = $(LIBCXXFLAGS)'
else
! echo >&2 'XCFLAGS = $(CFLAGS)'
! echo >&2 'XCXXFLAGS = $(CXXFLAGS)'
fi
! echo >&2 '.SUFFIXES: .o .C .cc .c'
! echo >&2 'COMPILE.c = $(CC) -c $(XCFLAGS) $(CINCLUDES) $(MT_CFLAGS)'
! echo >&2 '.c.o:'
if [ "${LIBDIR}" = "yes" ]; then
! echo >&2 ' test -z "$(PICFLAG)" ||\'
! echo >&2 ' $(COMPILE.c) $(PICFLAG) $< -o pic/$@'
fi
! echo >&2 ' $(COMPILE.c) $<'
! [ "${TOUCH_ON_COMPILE}" = "yes" ] && echo >&2 ' @touch stamp'
! echo >&2 'COMPILE.cc = $(CXX) -c $(XCXXFLAGS) $(CXXINCLUDES) $(MT_CFLAGS)'
! echo >&2 '.C.o:'
if [ "${LIBDIR}" = "yes" ]; then
! echo >&2 ' test -z "$(PICFLAG)" ||\'
! echo >&2 ' $(COMPILE.cc) $(PICFLAG) $< -o pic/$@'
fi
! echo >&2 ' $(COMPILE.cc) $<'
! [ "${TOUCH_ON_COMPILE}" = "yes" ] && echo >&2 ' @touch stamp'
! echo >&2 '.cc.o:'
if [ "${LIBDIR}" = "yes" ]; then
! echo >&2 ' test -z "$(PICFLAG)" || \'
! echo >&2 ' $(COMPILE.cc) $(PICFLAG) $< -o pic/$@'
fi
! echo >&2 ' $(COMPILE.cc) $<'
! [ "${TOUCH_ON_COMPILE}" = "yes" ] && echo >&2 ' @touch stamp'
! echo >&2 ''
if [ -n "${TARGETLIB}" ] ; then
echo TARGETLIB = ${TARGETLIB}
*************** if [ -n "${TARGETPROG}" ] ; then
*** 285,395 ****
fi
if [ "${LIBDIR}" = "yes" ]; then
! echo ''
! echo 'stamp-picdir:'
! echo ' if [ -n "$(PICFLAG)" ] && [ ! -d pic ]; then \'
! echo ' mkdir pic; \'
! echo ' else true; fi'
! echo ' touch stamp-picdir'
fi
! echo ''
! echo '.PHONY: install'
! echo 'install:'
! echo '.PHONY: check'
if [ "${CHECK}" != "check" ] ; then
! echo "check: ${ALL} ${CHECK}"
if [ "${CHECK_SUBDIRS}" != "" ] ; then
! echo ' rootme=`pwd`/; export rootme; \'
! echo ' SAVE_LLPATH="$${SAVE_LLPATH-$$LD_LIBRARY_PATH}"; export SAVE_LLPATH; \'
! echo ' LD_LIBRARY_PATH="$${rootme}${TOLIBGXX}../libstdc++:$${rootme}${TOLIBGXX}../libg++:$$SAVE_LLPATH"; \'
! echo ' export LD_LIBRARY_PATH; \'
! echo ' $(MAKE) "DODIRS=$(CHECK_SUBDIRS)" DO=check $(FLAGS_TO_PASS) subdir_do'
fi
fi
# Generate rules for documentation (depending on INFO_FILES and INFO_SUBDIRS).
! echo '.PHONY: info dvi install-info clean-info'
# emit the rule for 'info'
# (Note that the top-level ../Makefile.in greps for '^info:' when making
# a release (in "make taz"), so don't break that!)
if [ -z "${INFO_FILES}" ] ; then
! echo 'info:'
else
! echo info: `for file in ${INFO_FILES} ; do echo $file.info ; done`
fi
if [ "${INFO_SUBDIRS}" != "" ] ; then
! echo ' @rootme=`pwd`/; export rootme; \
$(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=info $(FLAGS_TO_PASS) subdir_do'
fi
# emit the rule for 'dvi'
if [ -z "${INFO_FILES}" ] ; then
! echo 'dvi:'
else
! echo dvi: `for file in ${INFO_FILES} ; do echo $file.dvi ; done`
fi
if [ "${INFO_SUBDIRS}" != "" ] ; then
! echo ' @rootme=`pwd`/; export rootme; \
$(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=dvi $(FLAGS_TO_PASS) subdir_do'
fi
# Emit rules for each *.info and *.dvi file
for file in ${INFO_FILES} ; do
! echo ${file}.info: '$(srcdir)'/${file}.texi
! echo ' $(MAKEINFO) -I$(srcdir) -I$(TEXIDIR) $(srcdir)/'${file}.texi -o ${file}.info
! echo ${file}.dvi: '$(srcdir)'/${file}.texi
! echo ' $(TEXI2DVI) $(srcdir)'/${file}.texi
! echo "${file}.ps: ${file}.dvi"
! echo " dvips ${file} -o"
done
# emit the rule for install-info
! echo 'install-info:'
if [ -n "${INFO_FILES}" ] ; then
! echo ' -parent=`echo $(infodir)|sed -e' "'"'s@/[^/]*$$@@'"'"'`; \'
! echo ' if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi'
! echo ' -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi'
! echo ' for i in *.info* ; do \'
! echo ' $(INSTALL_DATA) $$i $(infodir)/$$i ; \'
! echo ' done'
fi
if [ "${INFO_SUBDIRS}" != "" ] ; then
! echo ' @rootme=`pwd`/; export rootme; \
$(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=install-info $(FLAGS_TO_PASS) subdir_do'
fi
# emit clean-info and clean-dvi rules
! echo '.PHONY: do-clean-info clean-info do-clean-dvi clean-dvi'
! echo do-clean-info:
if [ -n "${INFO_FILES}" ] ; then
! echo ' rm -f *.info*'
fi
! echo 'do-clean-dvi:'
if [ -n "${INFO_FILES}" ] ; then
! echo ' rm -f *.dvi *.aux *.cp *.cps *.fn* *.ky *.log *.pg *.toc *.tp *.vr'
fi
for type in info dvi ; do
! echo clean-${type}: do-clean-${type}
if [ "${INFO_SUBDIRS}" != "" ] ; then
! echo ' @rootme=`pwd`/; export rootme; \
$(MAKE) "DODIRS='${NFO_SUBDIRS}'" DO=clean-'${type} '$(FLAGS_TO_PASS) subdir_do'
fi
done
! echo ''
! echo '.PHONY: boltcc'
! echo 'boltcc:'
! echo ' rootme=`pwd`/ ; export rootme ; $(MAKE) $(FLAGS_TO_PASS)'
! echo ''
# Emit clean rules
! echo ''
! echo '# clean rules'
MOSTLYCLEAN="${MOSTLYCLEAN-*.o pic stamp-picdir core ${EXTRA_MOSTLYCLEAN}} `if test -n "${TOUCH_ON_COMPILE}"; then echo stamp; else true; fi`"
CLEAN="${CLEAN-${TARGETPROG} ${TARGETLIB}}"
--- 291,401 ----
fi
if [ "${LIBDIR}" = "yes" ]; then
! echo >&2 ''
! echo >&2 'stamp-picdir:'
! echo >&2 ' if [ -n "$(PICFLAG)" ] && [ ! -d pic ]; then \'
! echo >&2 ' mkdir pic; \'
! echo >&2 ' else true; fi'
! echo >&2 ' touch stamp-picdir'
fi
! echo >&2 ''
! echo >&2 '.PHONY: install'
! echo >&2 'install:'
! echo >&2 '.PHONY: check'
if [ "${CHECK}" != "check" ] ; then
! echo >&2 "check: ${ALL} ${CHECK}"
if [ "${CHECK_SUBDIRS}" != "" ] ; then
! echo >&2 ' rootme=`pwd`/; export rootme; \'
! echo >&2 ' SAVE_LLPATH="$${SAVE_LLPATH-$$LD_LIBRARY_PATH}"; export SAVE_LLPATH; \'
! echo >&2 ' LD_LIBRARY_PATH="$${rootme}${TOLIBGXX}../libstdc++:$${rootme}${TOLIBGXX}../libg++:$$SAVE_LLPATH"; \'
! echo >&2 ' export LD_LIBRARY_PATH; \'
! echo >&2 ' $(MAKE) "DODIRS=$(CHECK_SUBDIRS)" DO=check $(FLAGS_TO_PASS) subdir_do'
fi
fi
# Generate rules for documentation (depending on INFO_FILES and INFO_SUBDIRS).
! echo >&2 '.PHONY: info dvi install-info clean-info'
# emit the rule for 'info'
# (Note that the top-level ../Makefile.in greps for '^info:' when making
# a release (in "make taz"), so don't break that!)
if [ -z "${INFO_FILES}" ] ; then
! echo >&2 'info:'
else
! echo >&2 info: `for file in ${INFO_FILES} ; do echo $file.info ; done`
fi
if [ "${INFO_SUBDIRS}" != "" ] ; then
! echo >&2 ' @rootme=`pwd`/; export rootme; \
$(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=info $(FLAGS_TO_PASS) subdir_do'
fi
# emit the rule for 'dvi'
if [ -z "${INFO_FILES}" ] ; then
! echo >&2 'dvi:'
else
! echo >&2 dvi: `for file in ${INFO_FILES} ; do echo $file.dvi ; done`
fi
if [ "${INFO_SUBDIRS}" != "" ] ; then
! echo >&2 ' @rootme=`pwd`/; export rootme; \
$(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=dvi $(FLAGS_TO_PASS) subdir_do'
fi
# Emit rules for each *.info and *.dvi file
for file in ${INFO_FILES} ; do
! echo >&2 ${file}.info: '$(srcdir)'/${file}.texi
! echo >&2 ' $(MAKEINFO) -I$(srcdir) -I$(TEXIDIR) $(srcdir)/'${file}.texi -o ${file}.info
! echo >&2 ${file}.dvi: '$(srcdir)'/${file}.texi
! echo >&2 ' $(TEXI2DVI) $(srcdir)'/${file}.texi
! echo >&2 "${file}.ps: ${file}.dvi"
! echo >&2 " dvips ${file} -o"
done
# emit the rule for install-info
! echo >&2 'install-info:'
if [ -n "${INFO_FILES}" ] ; then
! echo >&2 ' -parent=`echo $(infodir)|sed -e' "'"'s@/[^/]*$$@@'"'"'`; \'
! echo >&2 ' if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi'
! echo >&2 ' -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; fi'
! echo >&2 ' for i in *.info* ; do \'
! echo >&2 ' $(INSTALL_DATA) $$i $(infodir)/$$i ; \'
! echo >&2 ' done'
fi
if [ "${INFO_SUBDIRS}" != "" ] ; then
! echo >&2 ' @rootme=`pwd`/; export rootme; \
$(MAKE) "DODIRS='${INFO_SUBDIRS}'" DO=install-info $(FLAGS_TO_PASS) subdir_do'
fi
# emit clean-info and clean-dvi rules
! echo >&2 '.PHONY: do-clean-info clean-info do-clean-dvi clean-dvi'
! echo >&2 do-clean-info:
if [ -n "${INFO_FILES}" ] ; then
! echo >&2 ' rm -f *.info*'
fi
! echo >&2 'do-clean-dvi:'
if [ -n "${INFO_FILES}" ] ; then
! echo >&2 ' rm -f *.dvi *.aux *.cp *.cps *.fn* *.ky *.log *.pg *.toc *.tp *.vr'
fi
for type in info dvi ; do
! echo >&2 clean-${type}: do-clean-${type}
if [ "${INFO_SUBDIRS}" != "" ] ; then
! echo >&2 ' @rootme=`pwd`/; export rootme; \
$(MAKE) "DODIRS='${NFO_SUBDIRS}'" DO=clean-'${type} '$(FLAGS_TO_PASS) subdir_do'
fi
done
! echo >&2 ''
! echo >&2 '.PHONY: boltcc'
! echo >&2 'boltcc:'
! echo >&2 ' rootme=`pwd`/ ; export rootme ; $(MAKE) $(FLAGS_TO_PASS)'
! echo >&2 ''
# Emit clean rules
! echo >&2 ''
! echo >&2 '# clean rules'
MOSTLYCLEAN="${MOSTLYCLEAN-*.o pic stamp-picdir core ${EXTRA_MOSTLYCLEAN}} `if test -n "${TOUCH_ON_COMPILE}"; then echo stamp; else true; fi`"
CLEAN="${CLEAN-${TARGETPROG} ${TARGETLIB}}"
*************** DISTCLEAN="${DISTCLEAN-config.status Mak
*** 397,451 ****
REALCLEAN="${REALCLEAN-depend *.info*}"
! echo '.PHONY: mostlyclean clean distclean maintainer-clean realclean'
if test -z "${SUBDIRS}" ; then
! echo "mostlyclean: clean-dvi"
! echo " rm -rf ${MOSTLYCLEAN}"
! echo ' @$(MULTICLEAN) multi-clean DO=mostlyclean'
! echo "clean: clean-dvi"
! echo " rm -rf ${MOSTLYCLEAN} ${CLEAN}"
! echo ' @$(MULTICLEAN) multi-clean DO=clean'
! echo "distclean: clean"
! echo ' @$(MULTICLEAN) multi-clean DO=distclean'
! echo " rm -rf ${DISTCLEAN}"
! echo "maintainer-clean realclean: clean clean-info"
! echo ' @$(MULTICLEAN) multi-clean DO=maintainer-clean'
! echo " rm -rf ${DISTCLEAN} ${REALCLEAN}"
else
! echo '.PHONY: do-clean subdir_distclean subdir_maintainer_clean'
! echo "mostlyclean: do-clean-dvi"
! echo " rm -rf ${MOSTLYCLEAN}"
! echo ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=mostlyclean subdir_do'
! echo ' @$(MULTICLEAN) multi-clean DO=mostlyclean'
! echo "do-clean: do-clean-dvi"
! echo " rm -rf ${MOSTLYCLEAN} ${CLEAN}"
! echo "clean: do-clean"
! echo ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=clean subdir_do'
! echo ' @$(MULTICLEAN) multi-clean DO=clean'
# distclean and maintainer-clean are tricky because they remove the Makefile.
! echo "subdir_distclean:"
! echo ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=distclean subdir_do'
! echo "distclean: do-clean subdir_distclean"
! echo ' @$(MULTICLEAN) multi-clean DO=distclean'
! echo " rm -rf ${DISTCLEAN}"
! echo "subdir_maintainer_clean:"
! echo ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=maintainer-clean subdir_do'
! echo "maintainer-clean realclean: do-clean subdir_maintainer_clean do-clean-info"
! echo ' @$(MULTICLEAN) multi-clean DO=maintainer-clean'
! echo " rm -rf ${DISTCLEAN} ${REALCLEAN}"
! fi
!
! echo ''
! echo '.PHONY: force'
! echo 'force:'
! echo ''
! echo '# with the gnu make, this is done automatically.'
! echo ''
! echo 'Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)'
! echo ' $(SHELL) ./config.status'
! echo ''
! echo '.NOEXPORT:'
! echo 'MAKEOVERRIDES='
cat <<"EOF"
DEPEND_SOURCES = ${srcdir}/*.cc ${srcdir}/*.c
--- 403,457 ----
REALCLEAN="${REALCLEAN-depend *.info*}"
! echo >&2 '.PHONY: mostlyclean clean distclean maintainer-clean realclean'
if test -z "${SUBDIRS}" ; then
! echo >&2 "mostlyclean: clean-dvi"
! echo >&2 " rm -rf ${MOSTLYCLEAN}"
! echo >&2 ' @$(MULTICLEAN) multi-clean DO=mostlyclean'
! echo >&2 "clean: clean-dvi"
! echo >&2 " rm -rf ${MOSTLYCLEAN} ${CLEAN}"
! echo >&2 ' @$(MULTICLEAN) multi-clean DO=clean'
! echo >&2 "distclean: clean"
! echo >&2 ' @$(MULTICLEAN) multi-clean DO=distclean'
! echo >&2 " rm -rf ${DISTCLEAN}"
! echo >&2 "maintainer-clean realclean: clean clean-info"
! echo >&2 ' @$(MULTICLEAN) multi-clean DO=maintainer-clean'
! echo >&2 " rm -rf ${DISTCLEAN} ${REALCLEAN}"
else
! echo >&2 '.PHONY: do-clean subdir_distclean subdir_maintainer_clean'
! echo >&2 "mostlyclean: do-clean-dvi"
! echo >&2 " rm -rf ${MOSTLYCLEAN}"
! echo >&2 ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=mostlyclean subdir_do'
! echo >&2 ' @$(MULTICLEAN) multi-clean DO=mostlyclean'
! echo >&2 "do-clean: do-clean-dvi"
! echo >&2 " rm -rf ${MOSTLYCLEAN} ${CLEAN}"
! echo >&2 "clean: do-clean"
! echo >&2 ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=clean subdir_do'
! echo >&2 ' @$(MULTICLEAN) multi-clean DO=clean'
# distclean and maintainer-clean are tricky because they remove the Makefile.
! echo >&2 "subdir_distclean:"
! echo >&2 ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=distclean subdir_do'
! echo >&2 "distclean: do-clean subdir_distclean"
! echo >&2 ' @$(MULTICLEAN) multi-clean DO=distclean'
! echo >&2 " rm -rf ${DISTCLEAN}"
! echo >&2 "subdir_maintainer_clean:"
! echo >&2 ' @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=$(SUBDIRS)" DO=maintainer-clean subdir_do'
! echo >&2 "maintainer-clean realclean: do-clean subdir_maintainer_clean do-clean-info"
! echo >&2 ' @$(MULTICLEAN) multi-clean DO=maintainer-clean'
! echo >&2 " rm -rf ${DISTCLEAN} ${REALCLEAN}"
! fi
!
! echo >&2 ''
! echo >&2 '.PHONY: force'
! echo >&2 'force:'
! echo >&2 ''
! echo >&2 '# with the gnu make, this is done automatically.'
! echo >&2 ''
! echo >&2 'Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)'
! echo >&2 ' $(SHELL) ./config.status'
! echo >&2 ''
! echo >&2 '.NOEXPORT:'
! echo >&2 'MAKEOVERRIDES='
cat <<"EOF"
DEPEND_SOURCES = ${srcdir}/*.cc ${srcdir}/*.c
*************** $(srcdir)/depend: depend.new
*** 480,486 ****
EOF
if [ -f ${srcdir}/${subdir}/depend ] ; then
! cat ${srcdir}/${subdir}/depend
fi
echo "# End of package fragment generated by ${THIS_FILE}."
--- 486,493 ----
EOF
if [ -f ${srcdir}/${subdir}/depend ] ; then
! cat ${srcdir}/${subdir}/depend >&2
fi
echo "# End of package fragment generated by ${THIS_FILE}."
+ echo >&2 "# End of package rules fragment generated by ${THIS_FILE}."
diff -c -p egcs-980122/libio/configure.in.orig egcs-980122/libio/configure.in
*** egcs-980122/libio/configure.in.orig Tue Jan 13 21:28:25 1998
--- egcs-980122/libio/configure.in Tue Jan 27 17:31:16 1998
*************** fi
*** 10,15 ****
--- 10,16 ----
srctrigger=libioP.h
srcname="input/output library"
package_makefile_frag=Make.pack
+ package_makefile_rules_frag=Make.pack.r
# per-host:
*************** INFO_FILES=iostream
*** 105,111 ****
if [ -n "${with_cross_host}" -a -d ${srcdir}/../gcc ] ; then
CHECK_SUBDIRS=testsuite
fi
! (. ${srcdir}/config.shared) >${package_makefile_frag}
# post-target:
--- 106,112 ----
if [ -n "${with_cross_host}" -a -d ${srcdir}/../gcc ] ; then
CHECK_SUBDIRS=testsuite
fi
! (. ${srcdir}/config.shared) >${package_makefile_frag} 2>${package_makefile_rules_frag}
# post-target:
diff -c -p egcs-980122/libstdc++/configure.in.orig egcs-980122/libstdc++/configure.in
*** egcs-980122/libstdc++/configure.in.orig Tue Jan 13 21:24:04 1998
--- egcs-980122/libstdc++/configure.in Tue Jan 27 17:41:23 1998
*************** fi
*** 10,15 ****
--- 10,16 ----
srctrigger=sinst.cc
srcname="ANSI C++ library"
package_makefile_frag=Make.pack
+ package_makefile_rules_frag=Make.pack.r
# per-host:
*************** MOSTLYCLEAN='*.o pic stamp-picdir core s
*** 73,79 ****
CLEAN='$(CLEAN_JUNK)'
EXTRA_DISTCLEAN='target-mkfrag'
! (. ${srcdir}/${TO_TOPDIR}libio/config.shared) >${package_makefile_frag}
# post-target:
--- 74,80 ----
CLEAN='$(CLEAN_JUNK)'
EXTRA_DISTCLEAN='target-mkfrag'
! (. ${srcdir}/${TO_TOPDIR}libio/config.shared) >${package_makefile_frag} 2>${package_makefile_rules_frag}
# post-target: