From: eggert@twinsun.COM (Paul Eggert)
Subject: libg++ 2.0 `make realclean' fixes
Organization: GNUs Not Usenet
Distribution: gnu
Date: Thu, 9 Apr 1992 21:41:26 GMT

libg++ 2.0's `make realclean' has problems.  It doesn't always remove files
like Makefile and config.status that are generated automatically.  It doesn't
remove libg++.a.  A few typos cause it to fail during submakes, e.g.
iostream/Makefile does `rm -f Makefile; $(MAKE) ...' which is the wrong order
of doing things.  Here are patches.

===================================================================
RCS file: ./libg++/Makefile.in,v
retrieving revision 2.0
diff -c -r2.0 ./libg++/Makefile.in
*** ./libg++/Makefile.in	1992/03/11 02:48:39	2.0
--- ./libg++/Makefile.in	1992/04/08 03:24:03
***************
*** 274,282 ****
  		echo "cd $$D; $(MAKE) realclean" ; \
  		(cd $$D ; $(MAKE) realclean TRASH_FILES="$(TRASH_FILES)"); \
  	done 
  
  do_realclean: force
! 	-rm -f libg++.info*
  	-rm -rf dyn-src dyn-tests
  #	-rm -fr bin lib		# for test installations in the libg++ dir
  
--- 274,284 ----
  		echo "cd $$D; $(MAKE) realclean" ; \
  		(cd $$D ; $(MAKE) realclean TRASH_FILES="$(TRASH_FILES)"); \
  	done 
+ 	-rm -f `find . '(' -name Makefile -o -name config.status ')' -print \
+ 		| sed '/proto-kit/d'`
  
  do_realclean: force
! 	-rm -f libg++.a libg++.info*
  	-rm -rf dyn-src dyn-tests
  #	-rm -fr bin lib		# for test installations in the libg++ dir
  
===================================================================
RCS file: ./libg++/etc/Makefile.in,v
retrieving revision 2.0
diff -c -r2.0 ./libg++/etc/Makefile.in
*** ./libg++/etc/Makefile.in	1992/03/08 00:04:28	2.0
--- ./libg++/etc/Makefile.in	1992/04/08 02:51:56
***************
*** 115,121 ****
  		(cd $$D ; $(MAKE) realclean TRASH_FILES="$(TRASH_FILES)"); \
  	done 
  
! do_realclean: do_clean
  
  force:
  
--- 115,121 ----
  		(cd $$D ; $(MAKE) realclean TRASH_FILES="$(TRASH_FILES)"); \
  	done 
  
! do_realclean: clean
  
  force:
  
===================================================================
RCS file: ./libg++/iostream/Makefile.in,v
retrieving revision 2.0
diff -c -r2.0 ./libg++/iostream/Makefile.in
*** ./libg++/iostream/Makefile.in	1992/03/11 02:14:11	2.0
--- ./libg++/iostream/Makefile.in	1992/04/08 02:36:08
***************
*** 146,153 ****
  
  .PHONY: distclean
  distclean: clean
- 	rm -f *.o *~ core *.tar.Z *.a config.status Makefile
  	$(MAKE) subdir_do "DODIRS=$(SUBDIRS)" DO=distclean
  
  .PHONY: realclean
  realclean: distclean
--- 146,153 ----
  
  .PHONY: distclean
  distclean: clean
  	$(MAKE) subdir_do "DODIRS=$(SUBDIRS)" DO=distclean
+ 	rm -f *.o *~ core *.tar.Z *.a config.status Makefile
  
  .PHONY: realclean
  realclean: distclean
===================================================================
RCS file: ./libg++/iostream/stdio/Makefile.in,v
retrieving revision 2.0
diff -c -r2.0 ./libg++/iostream/stdio/Makefile.in
*** ./libg++/iostream/stdio/Makefile.in	1992/03/08 00:06:24	2.0
--- ./libg++/iostream/stdio/Makefile.in	1992/04/08 02:44:21
***************
*** 110,115 ****
--- 110,119 ----
  clean:
  	rm -f *.o *.a *~ \#* core
  
+ .PHONY: distclean
+ distclean: clean
+ 	rm -f Makefile config.status
+ 
  force:
  
  # with the gnu make, this is done automatically.

Newsgroups: gnu.g++.lib.bug