diff --git a/Makefile b/Makefile index f99631af26..960e209876 100644 --- a/Makefile +++ b/Makefile @@ -52,18 +52,21 @@ LIBSETUP = -N raco -l- raco setup INSTALL_PKGS_ARGS = $(JOB_OPTIONS) \ --skip-installed --scope installation --deps search-auto \ $(REQUIRED_PKGS) $(PKGS) +ALL_PLT_SETUP_OPTIONS = $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS) plain-in-place: $(MAKE) base $(MAKE) pkgs-catalog $(PLAIN_RACO) pkg install --no-setup $(INSTALL_PKGS_ARGS) - $(PLAIN_RACO) setup $(JOB_OPTIONS) + $(PLAIN_RACO) setup --only-foreign-libs $(ALL_PLT_SETUP_OPTIONS) + $(PLAIN_RACO) setup $(ALL_PLT_SETUP_OPTIONS) win32-in-place: $(MAKE) win32-base $(MAKE) win32-pkgs-catalog $(WIN32_PLAIN_RACO) pkg install --no-setup $(INSTALL_PKGS_ARGS) - $(WIN32_PLAIN_RACO) setup $(JOB_OPTIONS) + $(WIN32_PLAIN_RACO) setup --only-foreign-libs $(ALL_PLT_SETUP_OPTIONS) + $(WIN32_PLAIN_RACO) setup $(ALL_PLT_SETUP_OPTIONS) # ------------------------------------------------------------ # Unix-style build (Unix and Mac OS X, only) diff --git a/pkgs/racket-doc/scribblings/raco/setup.scrbl b/pkgs/racket-doc/scribblings/raco/setup.scrbl index 86046c7a5d..4fb96befb3 100644 --- a/pkgs/racket-doc/scribblings/raco/setup.scrbl +++ b/pkgs/racket-doc/scribblings/raco/setup.scrbl @@ -153,6 +153,11 @@ flags: libraries (as specified in @filepath{info.rkt}; see @secref["setup-info"]).} + @item{@DFlag{only-foreign-libs} --- disable actions other than + installing foreign libraries; equivalent to @Flag{nxiIdD}, except + that @DFlag{only-foreign-libs} doesn't reject (redundant) + specification of those individual flags.} + @item{@DFlag{no-install} or @Flag{i} --- refrain from running pre-install actions (as specified in @filepath{info.rkt} files; see @secref["setup-info"]).} @@ -282,7 +287,8 @@ collections during an install: @history[#:changed "6.1" @elem{Added the @DFlag{pkgs}, @DFlag{check-pkg-deps}, and @DFlag{fail-fast} flags.} - #:changed "6.1.1" @elem{Added the @DFlag{force-user-docs} flag.}] + #:changed "6.1.1" @elem{Added the @DFlag{force-user-docs} flag.} + #:changed "6.1.1.6" @elem{Added the @DFlag{only-foreign-libs} flag.}] @; ------------------------------------------------------------------------ diff --git a/racket/collects/setup/setup-cmdline.rkt b/racket/collects/setup/setup-cmdline.rkt index e8675797ff..097a0694c2 100644 --- a/racket/collects/setup/setup-cmdline.rkt +++ b/racket/collects/setup/setup-cmdline.rkt @@ -26,6 +26,16 @@ (set! x-flags (append (reverse l) x-flags))) (define-values (short-name long-name raco?) (get-names)) + + (define disable-action-flags + '((make-zo #f) + (call-install #f) + (call-post-install #f) + (make-launchers #f) + (make-info-domain #f) + (make-docs #f) + (check-dependencies #f) + (make-foreign-libs #f))) ;; Beware of the poor-man's duplicate of this command-line specification ;; in "main.rkt"! @@ -61,15 +71,8 @@ " ------------------------------ tasks ------------------------------ " #:once-each [("-c" "--clean") "Delete existing compiled files; implies -nxiIFDK" - (add-flags '((clean #t) - (make-zo #f) - (call-install #f) - (call-post-install #f) - (make-launchers #f) - (make-info-domain #f) - (make-docs #f) - (check-dependencies #f) - (make-foreign-libs #f)))] + (add-flags (append '((clean #t)) + disable-action-flags))] [("-n" "--no-zo") "Do not create \".zo\" files" (add-flags '((make-zo #f)))] [("--trust-zos") "Trust existing \".zo\"s (use only with prepackaged \".zo\"s)" @@ -78,6 +81,10 @@ (add-flags '((make-launchers #f)))] [("-F" "--no-foreign-libs") "Do not install foreign libraries" (add-flags '((make-foreign-libs #f)))] + [("--only-foreign-libs") "Disable actions except installing foreign libraries" + (add-flags (for/list ([fl (in-list disable-action-flags)] + #:unless (eq? (car fl) 'make-foreign-libs)) + fl))] [("-i" "--no-install") "Do not call collection-specific pre-installers" (add-flags '((call-install #f)))] [("-I" "--no-post-install") "Do not call collection-specific post-installers"