This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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:
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]