From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1394 invoked from network); 2 Jan 1997 14:35:49 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by coral.primenet.com.au with SMTP; 2 Jan 1997 14:35:49 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id JAA01445; Thu, 2 Jan 1997 09:31:55 -0500 (EST) Resent-Date: Thu, 2 Jan 1997 09:31:55 -0500 (EST) From: Zefram Message-Id: <1407.199701021433@stone.dcs.warwick.ac.uk> Subject: merged Makefile fixes To: zsh-workers@math.gatech.edu (Z Shell workers mailing list) Date: Thu, 2 Jan 1997 14:33:03 +0000 (GMT) X-Patch: 178 X-Loop: zefram@dcs.warwick.ac.uk X-Stardate: [-31]8668.03 X-US-Congress: Moronic fuckers Content-Type: text Resent-Message-ID: <"S0E1z1.0.WM.QRyoo"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/2703 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu -----BEGIN PGP SIGNED MESSAGE----- This patch does what my patch 2696 does, but applies on top of Zoltan's patch 2694. Please use this *instead of* patch 2696. This patch also makes sure that the Makefile passes all necessary parameters to the scripts, and avoids relying on #!. -zefram *** Src/Makefile.in Thu Jan 2 13:51:13 1997 --- Src/Makefile.in Thu Jan 2 14:19:57 1997 *************** *** 54,60 **** DLLDFLAGS = @DLLDFLAGS@ EXTRA_LDFLAGS = @EXTRA_LDFLAGS@ ! INCLUDES = -I.. -I. -I$(srcdir) -I$(MODULE_DIR) -IZle -I$(srcdir)/Zle DNCFLAGS = --- 54,60 ---- DLLDFLAGS = @DLLDFLAGS@ EXTRA_LDFLAGS = @EXTRA_LDFLAGS@ ! INCLUDES = -I.. -I. -I$(srcdir) DNCFLAGS = *************** *** 75,80 **** --- 75,82 ---- prefix='$(prefix)' exec_prefix='$(exec_prefix)' bindir='$(bindir)' \ libdir='$(libdir)' infodir='$(infodir)' mandir='$(mandir)' manext='$(manext)' + EXTRA_BUILDACT = : + KNR_OBJ=.o KNROBJ=._foo_ *************** *** 86,96 **** --- 88,100 ---- .c$(ANSI@U@OBJ): $(COMPILE) -o $@ $< + @$(EXTRA_BUILDACT) .c$(KNR@U@OBJ): ./ansi2knr $< > $@.c $(COMPILE) -o $@ $@.c rm -f $@.c + @$(EXTRA_BUILDACT) .c.pro: $(SED) -n -f $(srcdir)/makepro.sed $< > $@ *************** *** 154,160 **** XMODCF = $(srcdir)/xmods.conf MODBINS = modules-bltin ! CFSED = sed -n -f $(srcdir)/conf.sed -e # ========= DEPENDENCIES FOR BUILDING ========== --- 158,164 ---- XMODCF = $(srcdir)/xmods.conf MODBINS = modules-bltin ! CFSED = -f $(srcdir)/conf.sed # ========= DEPENDENCIES FOR BUILDING ========== *************** *** 208,221 **** fi bltinmods.list: $(MODBINS) $(XMODCF) mkbltnmlst.sh ! MODBINS=$(MODBINS) XMODCF=$(XMODCF) $(srcdir)/mkbltnmlst.sh $@ zshxmods.h: $(MODBINS) $(XMODCF) @echo "Creating \`$@'." @( \ binmods=`sed 's/^/ /;s/$$/ /' $(MODBINS)`; \ ! sed='/^[^#:>]*>[^#:>]*$$/{s/>.*//;p;}'; \ ! xmods=`$(CFSED) "$$sed" $(XMODCF)`; \ for mod in $$xmods; do \ case $$binmods in \ *" $$mod "*) \ --- 212,229 ---- fi bltinmods.list: $(MODBINS) $(XMODCF) mkbltnmlst.sh ! srcdir='$(srcdir)'; \ ! CFSED='$(CFSED)'; \ ! MODBINS='$(MODBINS)'; \ ! XMODCF='$(XMODCF)'; \ ! . $(srcdir)/mkbltnmlst.sh $@ zshxmods.h: $(MODBINS) $(XMODCF) @echo "Creating \`$@'." @( \ binmods=`sed 's/^/ /;s/$$/ /' $(MODBINS)`; \ ! sed='/^[^:>]*>[^:>]*$$/{s/>.*//;p;}'; \ ! xmods=`sed -n $(CFSED) -e "$$sed" $(XMODCF)`; \ for mod in $$xmods; do \ case $$binmods in \ *" $$mod "*) \ *************** *** 231,237 **** $(MODBINS): if test @D@ = N; then \ ! $(CFSED) '/^[^#:>]*>[^#:>]*$$/{s/>.*//;p;}' $(XMODCF) > $@; \ else \ echo > $@; \ fi --- 239,245 ---- $(MODBINS): if test @D@ = N; then \ ! sed -n $(CFSED) -e '/^[^:>]*>[^:>]*$$/{s/>.*//;p;}' $(XMODCF) > $@; \ else \ echo > $@; \ fi *************** *** 241,248 **** $(PROTO): makepro.sed $(NSTMP): $(MODBINS) $(MODCF) mkstamp.sh proto FORCE ! @MODBINS=$(MODBINS) MODCF=$(MODCF) MODULE_DIRS="$(MODULE_DIRS)" \ ! MAKE=$(MAKE) MAKEDEFS="$(MAKEDEFS)" $(srcdir)/mkstamp.sh $@ FORCE: --- 249,262 ---- $(PROTO): makepro.sed $(NSTMP): $(MODBINS) $(MODCF) mkstamp.sh proto FORCE ! @srcdir='$(srcdir)'; \ ! CFSED='$(CFSED)'; \ ! MODBINS='$(MODBINS)'; \ ! MODCF='$(MODCF)'; \ ! MODULE_DIRS='$(MODULE_DIRS)'; \ ! MAKE='$(MAKE)'; \ ! MAKEDEFS="$(MAKEDEFS)"; \ ! . $(srcdir)/mkstamp.sh $@ FORCE: *** Src/conf.sed Thu Jan 2 13:51:13 1997 --- Src/conf.sed Thu Jan 2 13:57:43 1997 *************** *** 5,8 **** b1 } s/ / /g ! /^ *$$/d --- 5,9 ---- b1 } s/ / /g ! s/#.*$// ! /^ *$/d *** Src/mkbltnmlst.sh Thu Jan 2 13:51:13 1997 --- Src/mkbltnmlst.sh Thu Jan 2 14:14:17 1997 *************** *** 4,20 **** # # Written by Andrew Main # ! srcdir=`echo $0|sed 's%/[^/][^/]*$%%'` ! test "x$srcdir" = "x$0" && srcdir=. ! CFSED="${CFSED-sed -n -f $srcdir/conf.sed -e}" ! MODBINS="${MODBINS-modules-bltin}" ! XMODCF="${XMODCF-$srcdir/xmods.conf}" binmods=`sed 's/^/ /;s/$/ /' $MODBINS` ! sed='/^[^#:>]*>[^#:>]*$/{ s/>.*// p }' ! xmods=`$CFSED "$sed" $XMODCF` trap "rm -f $1; exit 1" 1 2 15 exec > $1 for mod in $xmods; do --- 4,20 ---- # # Written by Andrew Main # ! srcdir=${srcdir:-`echo $0|sed 's%/[^/][^/]*$%%'`} ! srcdir=${srcdir:-.} ! CFSED=${CFSED-"-f $srcdir/conf.sed"} ! MODBINS=${MODBINS-modules-bltin} ! XMODCF=${XMODCF-$srcdir/xmods.conf} binmods=`sed 's/^/ /;s/$/ /' $MODBINS` ! sed='/^[^:>]*>[^:>]*$/{ s/>.*// p }' ! xmods=`sed -n $CFSED -e "$sed" $XMODCF` trap "rm -f $1; exit 1" 1 2 15 exec > $1 for mod in $xmods; do *************** *** 21,39 **** case $binmods in *" $mod "*) ;; *) echo "/* non-linked-in known module \`$mod' */" ! sed='/^ *'$mod' *>[^#:>]*$/{ s/.*>// p }' ! bins=`$CFSED "$sed" $XMODCF` for bin in $bins; do echo " add_autobin(\"$bin\", \"$mod\");" done ! sed='/^ *'$mod' *:[^#:>]*$/{ s/.*:// p }' ! deps=`$CFSED "$sed" $XMODCF` for dep in $deps; do case $binmods in *" $dep "*) --- 21,39 ---- case $binmods in *" $mod "*) ;; *) echo "/* non-linked-in known module \`$mod' */" ! sed='/^ *'$mod' *>[^:>]*$/{ s/.*>// p }' ! bins=`sed -n $CFSED -e "$sed" $XMODCF` for bin in $bins; do echo " add_autobin(\"$bin\", \"$mod\");" done ! sed='/^ *'$mod' *:[^:>]*$/{ s/.*:// p }' ! deps=`sed -n $CFSED -e "$sed" $XMODCF` for dep in $deps; do case $binmods in *" $dep "*) *************** *** 47,57 **** donemods=" " for mod in $binmods; do echo "/* linked-in module \`$mod' */" ! sed='/^ *'$mod' *:[^#:>]*$/{ s/.*:// p }' ! deps=`$CFSED "$sed" $XMODCF` for dep in $deps; do case $donemods in *" $dep "*) --- 47,57 ---- donemods=" " for mod in $binmods; do echo "/* linked-in module \`$mod' */" ! sed='/^ *'$mod' *:[^:>]*$/{ s/.*:// p }' ! deps=`sed -n $CFSED -e "$sed" $XMODCF` for dep in $deps; do case $donemods in *" $dep "*) *** Src/mkstamp.sh Thu Jan 2 13:51:13 1997 --- Src/mkstamp.sh Thu Jan 2 14:30:07 1997 *************** *** 4,28 **** # # Written by Andrew Main # ! srcdir=`echo $0|sed 's%/[^/][^/]*$%%'` ! test "x$srcdir" = "x$0" && srcdir=. ! CFSED=${CFSED-"sed -n -f $srcdir/conf.sed -e"} MODBINS=${MODBINS-modules-bltin} MODCF=${MODCF-$srcdir/mods.conf} ! MODULE_DIRS=${MODULE_DIRS-'Modules Zle'} MAKE=${MAKE-make} STMP=$1 ! dn=true ! test -f $STMP || dn=false trap "rm -f $STMP.tmp; exit 1" 1 2 15 echo > $STMP.tmp for mod in `cat $MODBINS`; do ! sed='/^ *'$mod' *:[^#:>]*$/{ s/.*:// p }' ! objs=`$CFSED "$sed" $MODCF` if test -z "$objs"; then for dir in $MODULE_DIRS; do if test -f $srcdir/$dir/$mod.c; then --- 4,27 ---- # # Written by Andrew Main # ! srcdir=${srcdir:-`echo $0|sed 's%/[^/][^/]*$%%'`} ! srcdir=${srcdir:-.} ! CFSED=${CFSED-"-f $srcdir/conf.sed"} MODBINS=${MODBINS-modules-bltin} MODCF=${MODCF-$srcdir/mods.conf} ! MODULE_DIRS=${MODULE_DIRS-Modules Zle} MAKE=${MAKE-make} STMP=$1 ! act="rm -f `pwd`/$STMP" trap "rm -f $STMP.tmp; exit 1" 1 2 15 echo > $STMP.tmp for mod in `cat $MODBINS`; do ! sed='/^ *'$mod' *:[^:>]*$/{ s/.*:// p }' ! objs=`sed -n $CFSED -e "$sed" $MODCF` if test -z "$objs"; then for dir in $MODULE_DIRS; do if test -f $srcdir/$dir/$mod.c; then *************** *** 37,54 **** exit 1 fi fi ! eval "$MAKE $MAKEDEFS $objs" || { rm -f $STMP.tmp; exit 1; } ! if test $dn = true; then ! nobjs=`find . -name '*.o' -newer $STMP -print` ! for obj in $objs; do ! case $nobjs in ! *./$obj*) dn=false ;; ! esac ! done ! fi echo $objs >> $STMP.tmp done ! if $dn && cmp -s $STMP.tmp $STMP; then rm -f $STMP.tmp echo "\`$STMP' is up to date." else --- 36,48 ---- exit 1 fi fi ! bdir=`echo $objs | sed 's, .*$,,;s,^,./,;s,/[^/]*$,,'` ! bobjs=`echo '' $objs | sed 's, [^ ]*/, ,g'` ! ( cd $bdir && eval "$MAKE $MAKEDEFS EXTRA_BUILDACT=\"\$act\" \$bobjs" || ! { rm -f $STMP.tmp; exit 1; } ) echo $objs >> $STMP.tmp done ! if cmp -s $STMP.tmp $STMP; then rm -f $STMP.tmp echo "\`$STMP' is up to date." else *** Src/mods.conf Thu Jan 2 13:50:29 1997 --- Src/mods.conf Thu Jan 2 13:58:37 1997 *************** *** 13,20 **** # Each entry has the form: # module_name : Dir/object.o ... # ! # Lines containing `#' *anywhere* are ignored, as are blank lines. Lines may ! # be continued using the usual backslash/newline syntax. # # (This would be rather neater if we could rely on shell functions in sh.) # --- 13,20 ---- # Each entry has the form: # module_name : Dir/object.o ... # ! # `#' starts a comment, and blank lines are ignored. Lines may be continued ! # using the usual backslash/newline syntax. # # (This would be rather neater if we could rely on shell functions in sh.) # *** Src/xmods.conf Thu Jan 2 13:50:29 1997 --- Src/xmods.conf Thu Jan 2 13:58:46 1997 *************** *** 18,25 **** # is linked in, the other modules must also be, and must be listed earlier in # modules-bltin (and, consequently, here). # ! # Lines containing `#' *anywhere* are ignored, as are blank lines. Lines may ! # be continued using the usual backslash/newline syntax. # # (This would be rather neater if we could rely on shell functions in sh.) # --- 18,25 ---- # is linked in, the other modules must also be, and must be listed earlier in # modules-bltin (and, consequently, here). # ! # `#' starts a comment, and blank lines are ignored. Lines may be continued ! # using the usual backslash/newline syntax. # # (This would be rather neater if we could rely on shell functions in sh.) # *** Src/Modules/Makefile.in Thu Jan 2 13:50:27 1997 --- Src/Modules/Makefile.in Thu Jan 2 13:59:34 1997 *************** *** 64,69 **** --- 64,71 ---- SED = sed + EXTRA_BUILDACT = : + KNR_OBJ=.o KNROBJ=._foo_ *************** *** 75,85 **** --- 77,89 ---- .c$(ANSI@U@OBJ): $(COMPILE) -o $@ $< + @$(EXTRA_BUILDACT) .c$(KNR@U@OBJ): ../ansi2knr $< > $@.c $(COMPILE) -o $@ $@.c rm -f $@.c + @$(EXTRA_BUILDACT) .c.$(ANSI@U@OBJ): $(DLCOMPILE) -o $@ $< *** Src/Zle/Makefile.in Thu Jan 2 13:50:27 1997 --- Src/Zle/Makefile.in Thu Jan 2 13:59:54 1997 *************** *** 63,68 **** --- 63,70 ---- SED = sed + EXTRA_BUILDACT = : + KNR_OBJ=.o KNROBJ=._foo_ *************** *** 74,84 **** --- 76,88 ---- .c$(ANSI@U@OBJ): $(COMPILE) -o $@ $< + @$(EXTRA_BUILDACT) .c$(KNR@U@OBJ): ../ansi2knr $< > $@.c $(COMPILE) -o $@ $@.c rm -f $@.c + @$(EXTRA_BUILDACT) .c.$(ANSI@U@OBJ): $(DLCOMPILE) -o $@ $< -----BEGIN PGP SIGNATURE----- Version: 2.6.3i Charset: ascii iQCVAwUBMsvG9nD/+HJTpU/hAQFbswQAjioU5WKQvrvNvlJwbBJ2ftb8KC37q7K0 +isycO4BZ9lNYEBKBjAsRo2Wrw3DzzRI7pMaFAMcMusso354OSuAGX8V6I4fzrEH M8fdjD2kyoB59OwHiHoPFz4JWluPlbct1m0Lw04Ere9/1Y41YElwYNvlLeQ6eccU xaYlWfZZ0Sw= =PqLS -----END PGP SIGNATURE-----