From 5b5e76a843b382bc856da4b7a4812cf9ebd16928 Mon Sep 17 00:00:00 2001 From: "slamm%netscape.com" Date: Sat, 9 Oct 1999 00:31:17 +0000 Subject: [PATCH] Use temporary file name without process number for checkout. I was getting the name wrong because I refered to it in a new process (still using the 17606 variable. Hopefully this will be the final checking for bug #15750. r=waterson. I updated some comments too. --- client.mk | 51 +++++++++++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/client.mk b/client.mk index 6f35d0a094b..fe64bf07d25 100644 --- a/client.mk +++ b/client.mk @@ -26,10 +26,10 @@ # 3. gmake -f client.mk # # Other targets (gmake -f client.mk [targets...]), -# checkout -# build -# realclean (also clobber_all) -# clean (also clobber) +# checkout (or pull_all) +# build (or build_all) +# realclean (or clobber_all) +# clean (or clobber) # # See http://www.mozilla.org/build/unix.html for more information. # @@ -41,6 +41,7 @@ # MOZ_CVS_FLAGS - Flags to pass cvs (default: -q -z3) # MOZ_CO_FLAGS - Flags to pass after 'cvs co' (default: -P) # MOZ_MAKE_FLAGS - Flags to pass to $(MAKE) +# CWD := $(shell pwd) ifeq (mozilla, $(notdir $(CWD))) @@ -158,35 +159,33 @@ everything: checkout clobber_all build #################################### # CVS checkout # -# The code for checkout is a little ugly because the cvs command needs -# to pipe to "tee" and be able to return a cvs error. The tee -# command saves the output to a file and also prints it to stdout. -# Without the little magic below, the pipe would swallow up the error. -# -# Here is the psedo-code, -# -# { cvs || touch error-file } | tee log-file -# if error-file exists then remove it and exit with an error. -# (Next, look for checkout conflicts). -# - checkout: - @if test -f $(CVSCO_LOGFILE) ; then \ + @: Backup the last checkout log. \ + ; \ + if test -f $(CVSCO_LOGFILE) ; then \ mv $(CVSCO_LOGFILE) $(CVSCO_LOGFILE).old; \ else true; \ fi - @date | tee $(CVSCO_LOGFILE) - @echo cd $(ROOTDIR)\; $(CVSCO) $(MOZ_CO_MODULE) - @cd $(ROOTDIR) && \ - ( $(CVSCO) $(MOZ_CO_MODULE) || touch cvs-failed.tmp$$$$ ) 2>&1 \ - | tee -a $(CVSCO_LOGFILE) - @if [ -f cvs-failed.tmp$$$$ ]; then \ - rm cvs-failed.tmp$$$$; \ + @: Start the checkout. Pipe the output to the tty and a log file. \ + : If it fails, touch an error file because the pipe hides the \ + : error. If the file is created, remove it and return an error. \ + ; \ + echo "checkout start: "`date` | tee $(CVSCO_LOGFILE); \ + echo "cd $(ROOTDIR); $(CVSCO) $(MOZ_CO_MODULE)"; \ + cd $(ROOTDIR); \ + rm -f cvs-failed.tmp*; \ + ( $(CVSCO) $(MOZ_CO_MODULE) || touch cvs-failed.tmp ) 2>&1 \ + | tee -a $(CVSCO_LOGFILE); \ + if test -f cvs-failed.tmp ; then \ + rm cvs-failed.tmp; \ false; \ else true; \ fi - @date | tee -a $(CVSCO_LOGFILE) - @conflicts=`egrep "^C " $(CVSCO_LOGFILE)` ;\ + @echo "checkout finish: "`date` | tee -a $(CVSCO_LOGFILE) \ + : \ + : Check the log for conflicts. \ + ; \ + conflicts=`egrep "^C " $(CVSCO_LOGFILE)` ;\ if test "$$conflicts" ; then \ echo "$(MAKE): *** Conflicts during checkout." ;\ echo "$$conflicts" ;\