From 719cd66835293deb90f5cf3d41466f731fb8f0ca Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 1 Aug 2020 07:10:29 -0600 Subject: [PATCH] Chez Scheme makefiles: fix .bootquick when source has boot files --- racket/src/ChezScheme/makefiles/Mf-boot.in | 8 ++----- racket/src/ChezScheme/s/Mf-base | 25 ++++++++++++++++------ racket/src/ChezScheme/workarea | 2 ++ 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/racket/src/ChezScheme/makefiles/Mf-boot.in b/racket/src/ChezScheme/makefiles/Mf-boot.in index 45f67ae987..a79688b8c5 100644 --- a/racket/src/ChezScheme/makefiles/Mf-boot.in +++ b/racket/src/ChezScheme/makefiles/Mf-boot.in @@ -20,12 +20,8 @@ bootfiles=$(addsuffix .boot, $(shell cd ../boot ; echo *)) doit: $(bootfiles) %.boot: + rm -rf ../xc-$* ( cd .. ; "${srcdir}"/workarea $* xc-$* ) ( cd ../xc-$*/s ; $(MAKE) -f Mf-cross base=../../$(workarea) m=$(m) xm=$* ) mkdir -p ../boot/$* - for x in `echo scheme.boot petite.boot scheme.h equates.h gc-oce.inc gc-ocd.inc vfasl.inc` ; do\ - if [ ! -h ../xc-$*/boot/$*/$$x ] ; then \ - mv -f ../xc-$*/boot/$*/$$x ../boot/$*/$$x ;\ - fi ;\ - done - rm -rf ../xc-$* + ( cd ../xc-$*/s ; $(MAKE) keepbootfiles ) diff --git a/racket/src/ChezScheme/s/Mf-base b/racket/src/ChezScheme/s/Mf-base index c06d92feee..7993b53980 100644 --- a/racket/src/ChezScheme/s/Mf-base +++ b/racket/src/ChezScheme/s/Mf-base @@ -106,8 +106,10 @@ endif ProfileDumpSource = source.pd ProfileDumpBlock = block.pd -PetiteBoot = ../boot/$m/petite.boot -SchemeBoot = ../boot/$m/scheme.boot +PetiteBootRel = boot/$m/petite.boot +PetiteBoot = ../${PetiteBootRel} +SchemeBootRel = boot/$m/scheme.boot +SchemeBoot = ../${SchemeBootRel} Cheader = ../boot/$m/scheme.h Cequates = ../boot/$m/equates.h Cgcocd = ../boot/$m/gc-ocd.inc @@ -349,14 +351,25 @@ resetbootlinks: -@echo '(reset-handler abort)'\ '(for-each'\ '(lambda (fn)'\ - '(let ([fn (symbol->string fn)])'\ + '(let ([fn (format "../~a" fn)]'\ + '[bn (format "$upupbootdir/~a" fn)]'\ + '[q (integer->char 34)])'\ '(unless (file-symbolic-link? fn)'\ - '(when (guard (c [else #f]) (#%$$fasl-file-equal? (format "../~a" fn) fn))'\ - '(system (format "ln -sf ../../~a ~a" fn fn))'\ + '(when (guard (c [else #f]) (#%$$fasl-file-equal? bn fn))'\ + '(system (format "ln -sf ~a~a~a ~a" q fn q fn))'\ '(void)))))'\ - '(list (quote ${SchemeBoot}) (quote ${PetiteBoot})))'\ + '(list (quote ${SchemeBootRel}) (quote ${PetiteBootRel})))'\ | ${Scheme} -q +keepbootfiles: + for x in `echo scheme.boot petite.boot scheme.h equates.h gc-oce.inc gc-ocd.inc vfasl.inc` ; do\ + if [ ! -h ../boot/$(m)/$$x ] ; then \ + mv -f ../boot/$(m)/$$x ../../boot/$(m)/$$x ;\ + elif [ "${upupupbootdir}" != "../../.." ] ; then \ + cp ../boot/$(m)/$$x ../../boot/$(m)/$$x ;\ + fi ;\ + done + ${PetiteBoot}: ${macroobj} ${patchfile} ${baseobj} echo '(reset-handler abort)'\ '(generate-covin-files #$c)'\ diff --git a/racket/src/ChezScheme/workarea b/racket/src/ChezScheme/workarea index da11f7e305..a71897a9cf 100755 --- a/racket/src/ChezScheme/workarea +++ b/racket/src/ChezScheme/workarea @@ -153,8 +153,10 @@ case "$srcdir" in esac if [ -f boot/$M/scheme.boot ] ; then + upbootdir=.. upupupbootdir=../../.. else + upbootdir=$upsrcdir upupupbootdir=$upupupsrcdir fi