makefile: adjust in-place CGC/3m install to preserve CS install

Also, make an in-place CS install clean old versions in the same way
as a CGC/3m.
This commit is contained in:
Matthew Flatt 2019-01-30 20:10:54 -07:00
parent 5ada142ee9
commit 63fb08905b
6 changed files with 57 additions and 1 deletions

View File

@ -412,6 +412,9 @@ win32-just-cs:
both: both:
$(MAKE) in-place $(MAKE) in-place
$(MAKE) also-cs
also-cs:
$(MAKE) cs CS_SETUP_TARGET=in-place-setup PLT_SETUP_OPTIONS="-D $(PLT_SETUP_OPTIONS)" $(MAKE) cs CS_SETUP_TARGET=in-place-setup PLT_SETUP_OPTIONS="-D $(PLT_SETUP_OPTIONS)"
# ------------------------------------------------------------ # ------------------------------------------------------------

View File

@ -284,6 +284,7 @@ macos-install:
$(MAKE) common-install $(MAKE) common-install
rm -f $(DESTDIR)$(RKTFWDEST)/Racket rm -f $(DESTDIR)$(RKTFWDEST)/Racket
rm -rf $(DESTDIR)$(RKTFWDEST)/Versions/$(FWVERSION)_CS rm -rf $(DESTDIR)$(RKTFWDEST)/Versions/$(FWVERSION)_CS
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then $(RACKET) -cu "$(srcdir)/../../mac/clean-fw.rkt" $(DESTDIR)$(RKTFWDEST) ; fi
mkdir -p $(DESTDIR)"$(RKTFWDEST)/Versions/$(FWVERSION)_CS" mkdir -p $(DESTDIR)"$(RKTFWDEST)/Versions/$(FWVERSION)_CS"
cp $(RKTFW) $(DESTDIR)$(RKTFWDEST)/Versions/$(FWVERSION)_CS/ cp $(RKTFW) $(DESTDIR)$(RKTFWDEST)/Versions/$(FWVERSION)_CS/
mkdir -p $(DESTDIR)"$(RKTFWDEST)/Versions/$(FWVERSION)_CS/boot" mkdir -p $(DESTDIR)"$(RKTFWDEST)/Versions/$(FWVERSION)_CS/boot"

View File

@ -625,6 +625,7 @@ LIBOBJS
CROSS_COMPILE_TARGET_KIND CROSS_COMPILE_TARGET_KIND
CS_COMPILED_SUBDIR CS_COMPILED_SUBDIR
CS_INSTALLED CS_INSTALLED
FRAMEWORK_REL_INSTALL
FRAMEWORK_PREFIX FRAMEWORK_PREFIX
FRAMEWORK_INSTALL_DIR FRAMEWORK_INSTALL_DIR
SCHEME_CONFIG_ARGS SCHEME_CONFIG_ARGS
@ -4668,6 +4669,7 @@ CPPFLAGS="$CPPFLAGS $PREFLAGS"
makefiles="Makefile" makefiles="Makefile"

View File

@ -466,6 +466,7 @@ AC_SUBST(MAKE_BUILD_SCHEME)
AC_SUBST(SCHEME_CONFIG_ARGS) AC_SUBST(SCHEME_CONFIG_ARGS)
AC_SUBST(FRAMEWORK_INSTALL_DIR) AC_SUBST(FRAMEWORK_INSTALL_DIR)
AC_SUBST(FRAMEWORK_PREFIX) AC_SUBST(FRAMEWORK_PREFIX)
AC_SUBST(FRAMEWORK_REL_INSTALL)
AC_SUBST(CS_INSTALLED) AC_SUBST(CS_INSTALLED)
AC_SUBST(CS_COMPILED_SUBDIR) AC_SUBST(CS_COMPILED_SUBDIR)
AC_SUBST(CROSS_COMPILE_TARGET_KIND) AC_SUBST(CROSS_COMPILE_TARGET_KIND)

View File

@ -0,0 +1,49 @@
;; Used by Mac OS install to clear out old frameworks versions,
;; leaving other variants for the current version intact.
;; written in #%kernel because it's loaded with -c (ie, no compiled files)
(module collects-path '#%kernel
(let-values ([(fw-dir) (vector-ref (current-command-line-arguments) 0)])
(let-values ([(versions-dir) (build-path fw-dir "Versions")])
(letrec-values ([(clean-files)
(lambda (l)
(if (null? l)
(void)
(if (starts-this-version? (path->string (car l)))
(clean-files (cdr l))
(begin
(delete-all versions-dir (car l))
(clean-files (cdr l))))))]
[(delete-all)
(lambda (base p)
(let-values ([(p) (build-path base p)])
(if (file-exists? p)
(delete-file p)
(if (directory-exists? p)
(begin
(delete-all* p (directory-list p))
(delete-directory p))
(void)))))]
[(delete-all*)
(lambda (base l)
(if (null? l)
(void)
(begin
(delete-all base (car l))
(delete-all* base (cdr l)))))]
[(starts-this-version?)
(lambda (s)
(let-values ([(len) (string-length (version))]
[(s-len) (string-length s)])
(if (s-len . >= . len)
(if (equal? (version) (substring s 0 len))
(if (= s-len len)
#t
(if (equal? #\_ (string-ref s len))
#t
#f))
#f)
#f)))])
(clean-files (directory-list versions-dir))))))

View File

@ -513,7 +513,7 @@ osx-install:
rm -f $(DESTDIR)$(MZFWDIR)/Racket rm -f $(DESTDIR)$(MZFWDIR)/Racket
rm -rf $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION) rm -rf $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)
rm -rf $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)_3m rm -rf $(DESTDIR)$(MZFWDIR)/Versions/$(FWVERSION)_3m
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then rm -rf $(DESTDIR)$(MZFWDIR) ; fi if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then @RUN_RACKET_CGC@ -cu "$(srcdir)/../mac/clean-fw.rkt" $(DESTDIR)$(MZFWDIR) ; fi
mkdir -p $(DESTDIR)@FRAMEWORK_INSTALL_DIR@ mkdir -p $(DESTDIR)@FRAMEWORK_INSTALL_DIR@
osx-install-cgc: osx-install-cgc: