diff --git a/racket/collects/openssl/libcrypto.rkt b/racket/collects/openssl/libcrypto.rkt index e6b3a2030f..64157b8e03 100644 --- a/racket/collects/openssl/libcrypto.rkt +++ b/racket/collects/openssl/libcrypto.rkt @@ -57,7 +57,7 @@ [(macosx) versions] [else (case (path->string (system-library-subpath #f)) - [("x86_64-darwin" "i386-darwin") versions] + [("x86_64-darwin" "i386-darwin" "aarch64-darwin") versions] [else (cons "" ; versionless (eg from devel pkg) versions)])]))) diff --git a/racket/collects/setup/getinfo.rkt b/racket/collects/setup/getinfo.rkt index bf70aa9cc8..3e76adf6dd 100644 --- a/racket/collects/setup/getinfo.rkt +++ b/racket/collects/setup/getinfo.rkt @@ -227,6 +227,12 @@ 'share 'path->main-share-relative 'main-share-relative->path)) + (define-values (path->main-lib-relative + main-lib-relative->path) + (make-relativize find-lib-dir + 'lib + 'path->main-lib-relative + 'main-lib-relative->path)) (let ([colls (make-hash)]) (for ([f+root-dir (reverse (table-paths t))]) (let ([f (car f+root-dir)] @@ -245,7 +251,7 @@ "bad info-domain cache file: ~a" f)]))]) (match i [(list (and pathbytes (or (? bytes?) - (list (or 'info 'share) (? bytes?) ...) + (list (or 'info 'share 'lib) (? bytes?) ...) (list 'rel (or 'up (? bytes?)) ...))) (list (? symbol? fields) ...) key ;; anything is okay here @@ -265,7 +271,8 @@ (case (car pathbytes) [(rel) (simplify-path (build-path root-dir (decode-relative-path pathbytes)))] [(info) (info-relative->path pathbytes)] - [(lib) (main-share-relative->path pathbytes)])) + [(share) (main-share-relative->path pathbytes)] + [(lib) (main-lib-relative->path pathbytes)])) fields)]) (hash-set! colls key ((table-insert t) root-dir new-item old-items)))] diff --git a/racket/collects/setup/unixstyle-install.rkt b/racket/collects/setup/unixstyle-install.rkt index 80b4d49538..7536d02a00 100644 --- a/racket/collects/setup/unixstyle-install.rkt +++ b/racket/collects/setup/unixstyle-install.rkt @@ -18,10 +18,14 @@ ;; - `make-install-copytree': copies some toplevel directories, skips ".*" ;; subdirs, and rewrites "config.rkt", but no uninstaller ;; (used by `make install') (requires an additional `origtree' argument) +;; - `make-install-libzo-move' : moves "compiled" directories from the +;; "collects" and "pkg" directories under sharerkt to a "compiled" +;; tree under librkt (requires DESTDIR to be set if it's being +;; used for the installation) ;; - `make-install-destdir-fix': fixes paths in binaries, laucnhers, and ;; config.rkt (used by `make install' to fix a DESTDIR) (requires exactly -;; the same args as `make-install-copytree' (prefixed) and requires a -;; DESTDIR setting) +;; the same args as `make-install-copytree' (prefixed) plus one more +;; to indicate libzo mode, and requires a DESTDIR setting) ;; * rktdir: The source racket directory ;; * Path names that should be moved/copied (bin, collects, doc, lib, ...) ;; or a sigle path that is used to automatically build the set of @@ -56,13 +60,14 @@ [(sharerkt) "share"] [(config) "etc"] [(collects) "collects"] + [(pkgs) "share/pkgs"] [(apps) "share/applications"] [else (symbol->string name)]))) (define dirs (map (lambda (name) (list name (if base-destdir (build-dest-arg name) (get-arg)))) - '(bin collects doc lib includerkt librkt sharerkt config apps man #|src|#))) + '(bin collects pkgs doc lib includerkt librkt sharerkt config apps man #|src|#))) (define (dir: name) (cadr (or (assq name dirs) (error 'getdir "unknown dir name: ~e" name)))) @@ -81,6 +86,7 @@ (case dir [(bin) #f] [(collects) 1] + [(pkgs) 1] [(doc) 1] [(include) 1] ;; if shared libraries are used, then these files should be moved @@ -150,6 +156,11 @@ (or (equal? f "share/applications") (skip-filter f))))) +(define (add-pkgs-skip skip-filter) + (lambda (f) + (or (equal? f "share/pkgs") + (skip-filter f)))) + ;; copy a file or a directory (recursively), preserving time stamps ;; (racket's copy-file preservs permission bits) (define (cp src dst #:build-path? [build-path? #f]) @@ -300,6 +311,31 @@ (lambda (o) (map (lambda (s) (displayln s o)) new-ls))))))) +;; change references to "pkgs/..." to refer to `pkgs-dir` +(define (fix-pkg-links share-dir pkgs-dir) + (define links-rktd (build-path share-dir "links.rktd")) + (when (file-exists? links-rktd) + (printf "Fixing package links at: ~a...\n" links-rktd) + (define entries (call-with-input-file links-rktd read)) + (call-with-output-file* + links-rktd + #:exists 'truncate + (lambda (o) + (fprintf o "(\n") + (for ([e (in-list entries)]) + (define p (cadr e)) + (fprintf o " ") + (define m (regexp-match #rx"^pkgs/(.*)$" p)) + (write + (if m + (list* (car e) + (string-append pkgs-dir "/" (cadr m)) + (cddr e)) + e) + o) + (newline o)) + (fprintf o ")\n"))))) + ;; remove and record all empty dirs (define (remove-empty-dirs dir) (let loop ([dir dir] [recurse? #t]) @@ -367,7 +403,8 @@ (define write-config (case-lambda [() (write-config (dir: 'config))] - [(configdir) + [(configdir) (write-config configdir #f)] + [(configdir libzo?) (define (cpath . xs) (apply make-path configdir xs)) (define (ftime file) @@ -389,12 +426,18 @@ (when (eq? 'shared (cross-system-type 'link)) ; never true for now (out! 'dll-dir (dir: 'lib))) (out! 'lib-dir (dir: 'librkt)) + (out! 'pkgs-dir (dir: 'pkgs)) (out! 'share-dir (dir: 'sharerkt)) (out! 'include-dir (dir: 'includerkt)) (out! 'bin-dir (dir: 'bin)) (out! 'apps-dir (dir: 'apps)) (out! 'man-dir (dir: 'man)) (out! 'absolute-installation? #t) + (when libzo? + (out! 'compiled-file-roots + (list 'same + (path->string + (build-path (dir: 'librkt) "compiled"))))) ;; Preserve all other keys: (for ([(key val) (in-hash old)]) (unless (hash-ref handled key #f) @@ -470,6 +513,7 @@ ;; -------------------------------------------------------------------------- +;; Does not support moving "collects" or "pkgs" outside of "share" (define (move/copy-distribution move? bundle?) (define do-tree (move/copy-tree move?)) (current-directory rktdir) @@ -486,12 +530,13 @@ ;; All other platforms use "bin": (do-tree "bin" 'bin)) (do-tree "collects" 'collects) + (do-tree "share/pkgs" 'pkgs) (do-tree "doc" 'doc #:missing 'skip) ; not included in text distros (do-tree "lib" 'librkt) (do-tree "include" 'includerkt) (define appfiles (ls* "share/applications")) (do-tree "share/applications" 'apps #:missing 'skip) ; Unix only - (parameterize ([current-skip-filter (make-apps-skip)]) + (parameterize ([current-skip-filter (add-pkgs-skip (make-apps-skip))]) (do-tree "share" 'sharerkt)) (do-tree "etc" 'config) (unless (eq? 'windows (cross-system-type)) @@ -517,6 +562,9 @@ (current-directory (dirname rktdir)) (delete-directory rktdir))) +(define (equal-path? a b) + (equal? (explode-path a) (explode-path b))) + (define dot-file? ;; skip all dot-names, except ".LOCK..." (lambda (p) (regexp-match? #rx"^[.](?!LOCK)" (basename p)))) @@ -532,36 +580,70 @@ (with-handlers ([exn? (lambda (e) (undo-changes) (raise e))]) (set! yes-to-all? #t) ; non-interactive (copytree "collects" 'collects) - (copytree "share" 'sharerkt #:missing 'skip) + (copytree "share/pkgs" 'pkgs #:missing 'skip) + (parameterize ([current-skip-filter (add-pkgs-skip (current-skip-filter))]) + (copytree "share" 'sharerkt #:missing 'skip)) (copytree "doc" 'doc #:missing 'skip) (copytree "etc" 'config #:missing 'skip) + (unless (equal-path? (dir: 'pkgs) (build-path (dir: 'sharerkt) "pkgs")) + (fix-pkg-links (dir: 'sharerkt) (dir: 'pkgs))) (unless origtree? (write-config)))) +(define (remove-dest destdir p) + (if destdir + (let* ([destdirlen (string-length destdir)] + [pfx (and (< destdirlen (string-length p)) + (substring p 0 destdirlen))]) + (if (equal? pfx destdir) + (regexp-replace #rx"^/*" (substring p destdirlen) "/") + (error (format "expecting a DESTDIR prefix of ~s in ~s" destdir p)))) + p)) + +(define (make-install-libzo-move) + (define destdir (getenv "DESTDIR")) + (define collectsdir (dir: 'collects)) + (define pkgsdir (dir: 'pkgs)) + (define configdir (dir: 'config)) + (define (move dir) + (define dest-rel (regexp-replace #rx"^/*" (remove-dest destdir dir) "")) + (define dest (build-path (dir: 'librkt) "compiled" dest-rel)) + (printf "Moving \"compiled\" in ~a to ~a\n" dir dest) + (let loop ([dir dir] [dest dest]) + (for ([f-path (in-list (directory-list dir))]) + (define f (path->string f-path)) + (define f-abs (build-path dir f)) + (when (directory-exists? f-abs) + (define f-dest (build-path dest f-path)) + (cond + [(equal? f "compiled") + (make-directory* dest) + (rm f-dest) + (rename-file-or-directory f-abs f-dest)] + [else + (loop f-abs f-dest)]))))) + (move collectsdir) + (move pkgsdir) + (write-config configdir #t)) + (define (make-install-destdir-fix) (define destdir (or (getenv "DESTDIR") (error "missing DESTDIR value for make-install-destdir-fix"))) - (define destdirlen (string-length destdir)) (define origtree? (equal? "yes" (get-arg))) + (define libzo? (equal? "libzo" (get-arg))) ;; grab paths before we change them (define bindir (dir: 'bin)) (define librktdir (dir: 'librkt)) (define sharerktdir (dir: 'sharerkt)) (define configdir (dir: 'config)) (define appsdir (dir: 'apps)) - (define (remove-dest p) - (let ([pfx (and (< destdirlen (string-length p)) - (substring p 0 destdirlen))]) - (if (equal? pfx destdir) - (regexp-replace #rx"^/*" (substring p destdirlen) "/") - (error (format "expecting a DESTDIR prefix of ~s in ~s" destdir p))))) - (set! dirs (map (lambda (d) (list (car d) (remove-dest (cadr d)))) dirs)) + (set! dirs (map (lambda (d) (list (car d) (remove-dest destdir (cadr d)))) dirs)) ;; no need to send an explicit binfiles argument -- this function is used ;; only when DESTDIR is present, so we're installing to a directory that ;; has only our binaries (fix-executables bindir librktdir) (fix-desktop-files appsdir bindir sharerktdir) - (unless origtree? (write-config configdir))) + (unless origtree? (write-config configdir libzo?))) (define (post-adjust) (when (regexp-match? #rx"--source" (car adjust-mode)) @@ -666,5 +748,6 @@ (move/copy-distribution #f #t)] [(post-adjust) (post-adjust)] [(make-install-copytree) (make-install-copytree)] + [(make-install-libzo-move) (make-install-libzo-move)] [(make-install-destdir-fix) (make-install-destdir-fix)] [else (error (format "unknown operation: ~e" op))])) diff --git a/racket/src/Makefile.in b/racket/src/Makefile.in index 4c913a480c..9e31388bc5 100644 --- a/racket/src/Makefile.in +++ b/racket/src/Makefile.in @@ -13,6 +13,7 @@ libpltdir = @libpltdir@ sharepltdir = @sharepltdir@ configdir = @etcpltdir@ collectsdir = @collectsdir@ +pkgsdir = @pkgsdir@ appsdir = @appsdir@ mandir = @mandir@ docdir = @docdir@ @@ -22,6 +23,7 @@ NOOP = : ALLDIRINFO = "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(collectsdir)" \ + "$(DESTDIR)$(pkgsdir)" \ "$(DESTDIR)$(docdir)" \ "$(DESTDIR)$(libdir)" \ "$(DESTDIR)$(includepltdir)" \ @@ -132,6 +134,7 @@ install-common-middle: $(MAKE) @MAKE_COPYTREE@-run install-common-last: + $(MAKE) move-compiled-@INSTALL_LIBZO@ $(MAKE) fix-paths $(MAKE) @MAKE_INSTALL_PKGSCOPE@-raco-pkg-default-scope cp $(COPYING) "$(DESTDIR)$(sharepltdir)"/ @@ -157,13 +160,22 @@ preserve-raco-pkg-default-scope: install-no-post-collects: $(NOOP) +move-compiled-no: + $(NOOP) + +move-compiled-libzo: + @RUN_RACKET@ $(SELF_RACKET_FLAGS) -u \ + "$(srcdir)/../collects/setup/unixstyle-install.rkt" \ + make-install-libzo-move "$(srcdir)/.." \ + $(ALLDIRINFO) \ + fix-paths: if [ "$(DESTDIR)" != "" ]; then \ if [ "$(SKIP_DESTDIR_FIX)" = "" ]; then \ @RUN_RACKET@ $(SELF_RACKET_FLAGS) -u \ "$(srcdir)/../collects/setup/unixstyle-install.rkt" \ make-install-destdir-fix "$(srcdir)/.." \ - $(ALLDIRINFO) "@INSTALL_ORIG_TREE@"; \ + $(ALLDIRINFO) "@INSTALL_ORIG_TREE@" "@INSTALL_LIBZO@"; \ fi \ fi diff --git a/racket/src/README.txt b/racket/src/README.txt index d476418ce2..967b5a9275 100644 --- a/racket/src/README.txt +++ b/racket/src/README.txt @@ -232,6 +232,20 @@ Detailed instructions: compiling ".zo" files, creating launchers, or building documentation. + For a `--prefix` build, unless `--enable-sharezo` is specified, + "compiled" directories containin ".zo" files are moved from + "share" to "lib" as the last step of installation. (The + "config.rktd" file is updated so that `current-compile-file-roots` + is initialized to find the relocated ".zo" files.) For Racket BC, + ".zo" files are architecture-independent, and `--enable-sharezo` + was the default installation mode through Racket version 8.0. To + prepare additional packages (i.e., package that are not included + with the source distribution) in installation scope without + `--enable-sharezo`, then it's easiest to first install in-place, + then configure and install again for a `--prefix` build; that way, + the packages installed in-place will get carried along, and their + "compiled" directories will be moved appropriately. + If the installation fails because the target directory cannot be created, or because the target directory is not the one you want, then you can try repeating step 4 after running `configure` again diff --git a/racket/src/ac/asan_arg.m4 b/racket/src/ac/asan_arg.m4 index 556b4d2795..ce71d284f0 100644 --- a/racket/src/ac/asan_arg.m4 +++ b/racket/src/ac/asan_arg.m4 @@ -1 +1 @@ -AC_ARG_ENABLE(asan, [ --enable-asan compile with -fsanitize=address]) +AC_ARG_ENABLE(asan, [ --enable-asan compile with -fsanitize=address]) diff --git a/racket/src/ac/make-configure b/racket/src/ac/make-configure index c1e79bfa34..5d8a3d6d5d 100755 --- a/racket/src/ac/make-configure +++ b/racket/src/ac/make-configure @@ -52,9 +52,10 @@ exit 0 htmldir ;; Note: any arguments converted this way need to be excluded in "rktio_keep.m4" ;; dvidir - converted to "collectsdir" - ;; pdfdir - converted to "appsdir" + ;; pdfdir - converted to "pkgsdir" psdir - localedir))) + ;; localedir - converted to "appsdir" + ))) (let loop () (let ([l (read-line)]) @@ -76,14 +77,24 @@ exit 0 (displayln (regexp-replace* "pdf" (regexp-replace* #rx"dvi" l "collects") "apps"))]) (loop)] [(regexp-match #rx"pdfdir" l) - ;; Hack: take over "pdfdir" for "appsdir": + ;; Hack: take over "pdfdir" for "pkgsdir": (cond [(equal? l "pdfdir='${docdir}'") - (displayln "appsdir='${exec_prefix}/share/applications'")] + (displayln "pkgsdir='${datarootdir}/${PACKAGE}/pkgs'")] [(equal? l " --pdfdir=DIR pdf documentation [DOCDIR]") + (displayln " --pkgsdir=DIR installed pkgs [EPREFIX/share/PACKAGE/pkgs]")] + [else + (displayln (regexp-replace* #rx"pdf" l "pkgs"))]) + (loop)] + [(regexp-match #rx"localedir" l) + ;; Hack: take over "localedir" for "appsdir": + (cond + [(equal? l "localedir='${datarootdir}/locale'") + (displayln "appsdir='${exec_prefix}/share/applications'")] + [(equal? l " --localedir=DIR locale-dependent data [DATAROOTDIR/locale]") (displayln " --appsdir=DIR .desktop files [EPREFIX/share/applications]")] [else - (displayln (regexp-replace* #rx"pdf" l "apps"))]) + (displayln (regexp-replace* #rx"locale" l "apps"))]) (loop)] [else ;; Copy diff --git a/racket/src/ac/path.m4 b/racket/src/ac/path.m4 index 1f85d1b14a..8a702b51a1 100644 --- a/racket/src/ac/path.m4 +++ b/racket/src/ac/path.m4 @@ -43,6 +43,9 @@ if test "${enable_origtree}" != "yes" -a "${enable_useprefix}" != "no" ; then if test "${collectsdir}" != '${exec_prefix}/share/${PACKAGE}/collects' ; then unixstyle=yes fi + if test "${pkgsdir}" != '${datarootdir}/${PACKAGE}/pkgs' ; then + unixstyle=yes + fi if test "${appsdir}" != '${exec_prefix}/share/applications' ; then unixstyle=yes fi @@ -65,12 +68,17 @@ if test "${unixstyle}" = "no" ; then docdir='${prefix}/doc' mandir='${prefix}/man' collectsdir='${prefix}/collects' + pkgsdir='${prefix}/share/pkgs' appsdir='${prefix}/share/applications' COLLECTS_PATH="../collects" CONFIG_PATH="../etc" GR_APP_COLLECTS_PATH="../../../../collects" GR_APP_CONFIG_PATH="../../../../etc" INSTALL_ORIG_TREE=yes + if test "${enable_sharezo}" = "yes" ; then + enable_sharezo=no + echo WARNING: --enable-sharezo is ignored for an origtree installation + fi else if test "${prefix}" = "NONE" ; then # Set prefix explicitly so we can use it during configure @@ -97,6 +105,12 @@ fi GUI_COLLECTS_PATH="${COLLECTS_PATH}" GUI_CONFIG_PATH="${CONFIG_PATH}" +if test "${enable_sharezo}" = "yes" ; then + INSTALL_LIBZO=no +else + INSTALL_LIBZO=yes +fi + ######################################## AC_SUBST(collectsdir) @@ -107,6 +121,7 @@ AC_SUBST(sharepltdir) AC_SUBST(etcpltdir) AC_SUBST(includepltdir) AC_SUBST(docdir) +AC_SUBST(pkgsdir) AC_SUBST(COLLECTS_PATH) AC_SUBST(GUI_COLLECTS_PATH) @@ -119,6 +134,7 @@ AC_SUBST(MAKE_COPYTREE) AC_SUBST(MAKE_GRACKET) AC_SUBST(LIBFINISH) AC_SUBST(INSTALL_ORIG_TREE) +AC_SUBST(INSTALL_LIBZO) AC_SUBST(MMM) AC_SUBST(MMM_INSTALLED) @@ -157,6 +173,7 @@ show_path_results() echo " platform libraries : ${libpltdir}/..." echo " common libraries : ${sharepltdir}/..." echo " base collections : ${collectsdir}/..." + echo " installed pkgs : ${pkgsdir}/..." echo " configuration : ${etcpltdir}/..." echo " .desktop files : ${appsdir}/..." echo " man pages : ${mandir}/..." diff --git a/racket/src/ac/path_arg.m4 b/racket/src/ac/path_arg.m4 index 5e14ece838..1ef6670eff 100644 --- a/racket/src/ac/path_arg.m4 +++ b/racket/src/ac/path_arg.m4 @@ -1,5 +1,6 @@ AC_ARG_ENABLE(origtree, [ --enable-origtree install with original directory structure]) +AC_ARG_ENABLE(sharezo, [ --enable-sharezo install ".zo"s to "share", not "lib"]) AC_ARG_ENABLE(useprefix, [ --disable-useprefix ignore any --prefix setting]) AC_ARG_ENABLE(pkgscope, [ --enable-pkgscope= set `raco pkg' default: installation, user, or shared]) diff --git a/racket/src/ac/path_show.m4 b/racket/src/ac/path_show.m4 new file mode 100644 index 0000000000..1ef1621238 --- /dev/null +++ b/racket/src/ac/path_show.m4 @@ -0,0 +1 @@ +show_explicitly_enabled "${enable_libzo}" 'Compiled ".zo" files moved to lib' diff --git a/racket/src/ac/rktio_keep.m4 b/racket/src/ac/rktio_keep.m4 index f5f6488281..1d5a99fd36 100644 --- a/racket/src/ac/rktio_keep.m4 +++ b/racket/src/ac/rktio_keep.m4 @@ -7,7 +7,9 @@ for fixup_arg do case $fixup_arg in # Strip away all feature choices - -enable* | --enable* | -disable* | --disable* | -collects* | --collects* | -apps* | --apps*) + -enable* | --enable* | -disable* | --disable*) + ;; + -collects* | --collects* | -apps* | --apps* | -pkgs* | --pkgs*) ;; *) case $fixup_arg in diff --git a/racket/src/bc/configure b/racket/src/bc/configure index 7c1c18efa1..d1856d4dc7 100755 --- a/racket/src/bc/configure +++ b/racket/src/bc/configure @@ -731,6 +731,7 @@ CGC MMM_CAP_INSTALLED MMM_INSTALLED MMM +INSTALL_LIBZO INSTALL_ORIG_TREE LIBFINISH MAKE_GRACKET @@ -741,6 +742,7 @@ CONFIG_PATH GR_APP_COLLECTS_PATH GUI_COLLECTS_PATH COLLECTS_PATH +pkgsdir includepltdir etcpltdir sharepltdir @@ -770,10 +772,10 @@ ECHO_N ECHO_C DEFS mandir -localedir +appsdir libdir psdir -appsdir +pkgsdir collectsdir htmldir infodir @@ -812,6 +814,7 @@ enable_floatinstead enable_extflonum enable_racket enable_origtree +enable_sharezo enable_useprefix enable_pkgscope enable_docs @@ -902,10 +905,10 @@ docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' collectsdir='${exec_prefix}/share/${PACKAGE}/collects' -appsdir='${exec_prefix}/share/applications' +pkgsdir='${datarootdir}/${PACKAGE}/pkgs' psdir='${docdir}' libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' +appsdir='${exec_prefix}/share/applications' mandir='${datarootdir}/man' ac_prev= @@ -1060,10 +1063,10 @@ do | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; + -appsdir | --appsdir | --appsdi | --appsd | --apps) + ac_prev=appsdir ;; + -appsdir=* | --appsdir=* | --appsdi=* | --appsd=* | --apps=*) + appsdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) @@ -1134,10 +1137,10 @@ do | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; - -appsdir | --appsdir | --appsdi | --appsd | --apps | --pd) - ac_prev=appsdir ;; - -appsdir=* | --appsdir=* | --appsdi=* | --appsd=* | --apps=* | --pd=*) - appsdir=$ac_optarg ;; + -pkgsdir | --pkgsdir | --pkgsdi | --pkgsd | --pkgs | --pd) + ac_prev=pkgsdir ;; + -pkgsdir=* | --pkgsdir=* | --pkgsdi=* | --pkgsd=* | --pkgs=* | --pd=*) + pkgsdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; @@ -1285,7 +1288,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir collectsdir appsdir psdir \ - libdir localedir mandir + libdir appsdir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1438,10 +1441,11 @@ Fine tuning of the installation directories: --includedir=DIR C header files [PREFIX/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --appsdir=DIR .desktop files [EPREFIX/share/applications] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --collectsdir=DIR base collections [EPREFIX/share/PACKAGE/collects] - --appsdir=DIR .desktop files [EPREFIX/share/applications] + --pkgsdir=DIR installed pkgs [EPREFIX/share/PACKAGE/pkgs] _ACEOF cat <<\_ACEOF @@ -1471,6 +1475,7 @@ Optional Features: --enable-extflonum support extflonums (enabled by default, if available) --enable-racket= use as Racket to build; or "auto" to create --enable-origtree install with original directory structure + --enable-sharezo install ".zo"s to "share", not "lib" --disable-useprefix ignore any --prefix setting --enable-pkgscope= set `raco pkg' default: installation, user, or shared --enable-docs build docs on install (enabled by default) @@ -2683,6 +2688,11 @@ if test "${enable_origtree+set}" = set; then : enableval=$enable_origtree; fi +# Check whether --enable-sharezo was given. +if test "${enable_sharezo+set}" = set; then : + enableval=$enable_sharezo; +fi + # Check whether --enable-useprefix was given. if test "${enable_useprefix+set}" = set; then : enableval=$enable_useprefix; @@ -3079,6 +3089,9 @@ if test "${enable_origtree}" != "yes" -a "${enable_useprefix}" != "no" ; then if test "${collectsdir}" != '${exec_prefix}/share/${PACKAGE}/collects' ; then unixstyle=yes fi + if test "${pkgsdir}" != '${datarootdir}/${PACKAGE}/pkgs' ; then + unixstyle=yes + fi if test "${appsdir}" != '${exec_prefix}/share/applications' ; then unixstyle=yes fi @@ -3101,12 +3114,17 @@ if test "${unixstyle}" = "no" ; then docdir='${prefix}/doc' mandir='${prefix}/man' collectsdir='${prefix}/collects' + pkgsdir='${prefix}/share/pkgs' appsdir='${prefix}/share/applications' COLLECTS_PATH="../collects" CONFIG_PATH="../etc" GR_APP_COLLECTS_PATH="../../../../collects" GR_APP_CONFIG_PATH="../../../../etc" INSTALL_ORIG_TREE=yes + if test "${enable_sharezo}" = "yes" ; then + enable_sharezo=no + echo WARNING: --enable-sharezo is ignored for an origtree installation + fi else if test "${prefix}" = "NONE" ; then # Set prefix explicitly so we can use it during configure @@ -3133,6 +3151,12 @@ fi GUI_COLLECTS_PATH="${COLLECTS_PATH}" GUI_CONFIG_PATH="${CONFIG_PATH}" +if test "${enable_sharezo}" = "yes" ; then + INSTALL_LIBZO=no +else + INSTALL_LIBZO=yes +fi + ######################################## @@ -3164,6 +3188,8 @@ GUI_CONFIG_PATH="${CONFIG_PATH}" + + @@ -3193,6 +3219,7 @@ show_path_results() echo " platform libraries : ${libpltdir}/..." echo " common libraries : ${sharepltdir}/..." echo " base collections : ${collectsdir}/..." + echo " installed pkgs : ${pkgsdir}/..." echo " configuration : ${etcpltdir}/..." echo " .desktop files : ${appsdir}/..." echo " man pages : ${mandir}/..." @@ -3296,6 +3323,8 @@ show_explicitly_enabled "${enable_natipkg}" "Adding \"-natipkg\" suffix to libra show_explicitly_enabled "${enable_xonx}" "Unix style" +show_explicitly_enabled "${enable_libzo}" 'Compiled ".zo" files moved to lib' + show_explicitly_enabled "${enable_shared}" "Shared libraries" show_explicitly_disabled "${enable_gracket}" GRacket @@ -7283,7 +7312,9 @@ for fixup_arg do case $fixup_arg in # Strip away all feature choices - -enable* | --enable* | -disable* | --disable* | -collects* | --collects* | -apps* | --apps*) + -enable* | --enable* | -disable* | --disable*) + ;; + -collects* | --collects* | -apps* | --apps* | -pkgs* | --pkgs*) ;; *) case $fixup_arg in @@ -8454,11 +8485,11 @@ ac_sed_dataroot=' /@datadir@/p /@docdir@/p /@infodir@/p -/@localedir@/p +/@appsdir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) +*@datadir@*|*@docdir@*|*@infodir@*|*@appsdir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF @@ -8467,7 +8498,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g - s&@localedir@&$localedir&g + s&@appsdir@&$appsdir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac diff --git a/racket/src/bc/configure.ac b/racket/src/bc/configure.ac index 0879f3183d..c16622773c 100644 --- a/racket/src/bc/configure.ac +++ b/racket/src/bc/configure.ac @@ -174,6 +174,7 @@ show_explicitly_enabled "${enable_usersetup}" "User-specific setup on install" m4_include(../ac/natipkg_show.m4) show_explicitly_enabled "${enable_xonx}" "Unix style" +m4_include(../ac/path_show.m4) show_explicitly_enabled "${enable_shared}" "Shared libraries" show_explicitly_disabled "${enable_gracket}" GRacket diff --git a/racket/src/cfg-bc b/racket/src/cfg-bc index 8cad106f70..b114bfcb03 100755 --- a/racket/src/cfg-bc +++ b/racket/src/cfg-bc @@ -600,6 +600,7 @@ CGC MMM_CAP_INSTALLED MMM_INSTALLED MMM +INSTALL_LIBZO INSTALL_ORIG_TREE LIBFINISH MAKE_GRACKET @@ -610,6 +611,7 @@ CONFIG_PATH GR_APP_COLLECTS_PATH GUI_COLLECTS_PATH COLLECTS_PATH +pkgsdir includepltdir etcpltdir sharepltdir @@ -641,10 +643,10 @@ ECHO_N ECHO_C DEFS mandir -localedir +appsdir libdir psdir -appsdir +pkgsdir collectsdir htmldir infodir @@ -674,6 +676,7 @@ ac_subst_files='' ac_user_opts=' enable_option_checking enable_origtree +enable_sharezo enable_useprefix enable_pkgscope enable_docs @@ -737,10 +740,10 @@ docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' collectsdir='${exec_prefix}/share/${PACKAGE}/collects' -appsdir='${exec_prefix}/share/applications' +pkgsdir='${datarootdir}/${PACKAGE}/pkgs' psdir='${docdir}' libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' +appsdir='${exec_prefix}/share/applications' mandir='${datarootdir}/man' ac_prev= @@ -895,10 +898,10 @@ do | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; + -appsdir | --appsdir | --appsdi | --appsd | --apps) + ac_prev=appsdir ;; + -appsdir=* | --appsdir=* | --appsdi=* | --appsd=* | --apps=*) + appsdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) @@ -969,10 +972,10 @@ do | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; - -appsdir | --appsdir | --appsdi | --appsd | --apps | --pd) - ac_prev=appsdir ;; - -appsdir=* | --appsdir=* | --appsdi=* | --appsd=* | --apps=* | --pd=*) - appsdir=$ac_optarg ;; + -pkgsdir | --pkgsdir | --pkgsdi | --pkgsd | --pkgs | --pd) + ac_prev=pkgsdir ;; + -pkgsdir=* | --pkgsdir=* | --pkgsdi=* | --pkgsd=* | --pkgs=* | --pd=*) + pkgsdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; @@ -1120,7 +1123,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir collectsdir appsdir psdir \ - libdir localedir mandir + libdir appsdir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1273,10 +1276,11 @@ Fine tuning of the installation directories: --includedir=DIR C header files [PREFIX/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --appsdir=DIR .desktop files [EPREFIX/share/applications] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --collectsdir=DIR base collections [EPREFIX/share/PACKAGE/collects] - --appsdir=DIR .desktop files [EPREFIX/share/applications] + --pkgsdir=DIR installed pkgs [EPREFIX/share/PACKAGE/pkgs] _ACEOF cat <<\_ACEOF @@ -1297,6 +1301,7 @@ Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-origtree install with original directory structure + --enable-sharezo install ".zo"s to "share", not "lib" --disable-useprefix ignore any --prefix setting --enable-pkgscope= set `raco pkg' default: installation, user, or shared --enable-docs build docs on install (enabled by default) @@ -1898,6 +1903,11 @@ if test "${enable_origtree+set}" = set; then : enableval=$enable_origtree; fi +# Check whether --enable-sharezo was given. +if test "${enable_sharezo+set}" = set; then : + enableval=$enable_sharezo; +fi + # Check whether --enable-useprefix was given. if test "${enable_useprefix+set}" = set; then : enableval=$enable_useprefix; @@ -2129,6 +2139,9 @@ if test "${enable_origtree}" != "yes" -a "${enable_useprefix}" != "no" ; then if test "${collectsdir}" != '${exec_prefix}/share/${PACKAGE}/collects' ; then unixstyle=yes fi + if test "${pkgsdir}" != '${datarootdir}/${PACKAGE}/pkgs' ; then + unixstyle=yes + fi if test "${appsdir}" != '${exec_prefix}/share/applications' ; then unixstyle=yes fi @@ -2151,12 +2164,17 @@ if test "${unixstyle}" = "no" ; then docdir='${prefix}/doc' mandir='${prefix}/man' collectsdir='${prefix}/collects' + pkgsdir='${prefix}/share/pkgs' appsdir='${prefix}/share/applications' COLLECTS_PATH="../collects" CONFIG_PATH="../etc" GR_APP_COLLECTS_PATH="../../../../collects" GR_APP_CONFIG_PATH="../../../../etc" INSTALL_ORIG_TREE=yes + if test "${enable_sharezo}" = "yes" ; then + enable_sharezo=no + echo WARNING: --enable-sharezo is ignored for an origtree installation + fi else if test "${prefix}" = "NONE" ; then # Set prefix explicitly so we can use it during configure @@ -2183,6 +2201,12 @@ fi GUI_COLLECTS_PATH="${COLLECTS_PATH}" GUI_CONFIG_PATH="${CONFIG_PATH}" +if test "${enable_sharezo}" = "yes" ; then + INSTALL_LIBZO=no +else + INSTALL_LIBZO=yes +fi + ######################################## @@ -2214,6 +2238,8 @@ GUI_CONFIG_PATH="${CONFIG_PATH}" + + @@ -2243,6 +2269,7 @@ show_path_results() echo " platform libraries : ${libpltdir}/..." echo " common libraries : ${sharepltdir}/..." echo " base collections : ${collectsdir}/..." + echo " installed pkgs : ${pkgsdir}/..." echo " configuration : ${etcpltdir}/..." echo " .desktop files : ${appsdir}/..." echo " man pages : ${mandir}/..." @@ -3414,11 +3441,11 @@ ac_sed_dataroot=' /@datadir@/p /@docdir@/p /@infodir@/p -/@localedir@/p +/@appsdir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) +*@datadir@*|*@docdir@*|*@infodir@*|*@appsdir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF @@ -3427,7 +3454,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g - s&@localedir@&$localedir&g + s&@appsdir@&$appsdir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac diff --git a/racket/src/cfg-cs b/racket/src/cfg-cs index 5f3df3b675..657969c887 100755 --- a/racket/src/cfg-cs +++ b/racket/src/cfg-cs @@ -600,6 +600,7 @@ CGC MMM_CAP_INSTALLED MMM_INSTALLED MMM +INSTALL_LIBZO INSTALL_ORIG_TREE LIBFINISH MAKE_GRACKET @@ -610,6 +611,7 @@ CONFIG_PATH GR_APP_COLLECTS_PATH GUI_COLLECTS_PATH COLLECTS_PATH +pkgsdir includepltdir etcpltdir sharepltdir @@ -641,10 +643,10 @@ ECHO_N ECHO_C DEFS mandir -localedir +appsdir libdir psdir -appsdir +pkgsdir collectsdir htmldir infodir @@ -674,6 +676,7 @@ ac_subst_files='' ac_user_opts=' enable_option_checking enable_origtree +enable_sharezo enable_useprefix enable_pkgscope enable_docs @@ -734,10 +737,10 @@ docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' collectsdir='${exec_prefix}/share/${PACKAGE}/collects' -appsdir='${exec_prefix}/share/applications' +pkgsdir='${datarootdir}/${PACKAGE}/pkgs' psdir='${docdir}' libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' +appsdir='${exec_prefix}/share/applications' mandir='${datarootdir}/man' ac_prev= @@ -892,10 +895,10 @@ do | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; + -appsdir | --appsdir | --appsdi | --appsd | --apps) + ac_prev=appsdir ;; + -appsdir=* | --appsdir=* | --appsdi=* | --appsd=* | --apps=*) + appsdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) @@ -966,10 +969,10 @@ do | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; - -appsdir | --appsdir | --appsdi | --appsd | --apps | --pd) - ac_prev=appsdir ;; - -appsdir=* | --appsdir=* | --appsdi=* | --appsd=* | --apps=* | --pd=*) - appsdir=$ac_optarg ;; + -pkgsdir | --pkgsdir | --pkgsdi | --pkgsd | --pkgs | --pd) + ac_prev=pkgsdir ;; + -pkgsdir=* | --pkgsdir=* | --pkgsdi=* | --pkgsd=* | --pkgs=* | --pd=*) + pkgsdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; @@ -1117,7 +1120,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir collectsdir appsdir psdir \ - libdir localedir mandir + libdir appsdir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1270,10 +1273,11 @@ Fine tuning of the installation directories: --includedir=DIR C header files [PREFIX/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --appsdir=DIR .desktop files [EPREFIX/share/applications] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --collectsdir=DIR base collections [EPREFIX/share/PACKAGE/collects] - --appsdir=DIR .desktop files [EPREFIX/share/applications] + --pkgsdir=DIR installed pkgs [EPREFIX/share/PACKAGE/pkgs] _ACEOF cat <<\_ACEOF @@ -1294,6 +1298,7 @@ Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-origtree install with original directory structure + --enable-sharezo install ".zo"s to "share", not "lib" --disable-useprefix ignore any --prefix setting --enable-pkgscope= set `raco pkg' default: installation, user, or shared --enable-docs build docs on install (enabled by default) @@ -1891,6 +1896,11 @@ if test "${enable_origtree+set}" = set; then : enableval=$enable_origtree; fi +# Check whether --enable-sharezo was given. +if test "${enable_sharezo+set}" = set; then : + enableval=$enable_sharezo; +fi + # Check whether --enable-useprefix was given. if test "${enable_useprefix+set}" = set; then : enableval=$enable_useprefix; @@ -2092,6 +2102,9 @@ if test "${enable_origtree}" != "yes" -a "${enable_useprefix}" != "no" ; then if test "${collectsdir}" != '${exec_prefix}/share/${PACKAGE}/collects' ; then unixstyle=yes fi + if test "${pkgsdir}" != '${datarootdir}/${PACKAGE}/pkgs' ; then + unixstyle=yes + fi if test "${appsdir}" != '${exec_prefix}/share/applications' ; then unixstyle=yes fi @@ -2114,12 +2127,17 @@ if test "${unixstyle}" = "no" ; then docdir='${prefix}/doc' mandir='${prefix}/man' collectsdir='${prefix}/collects' + pkgsdir='${prefix}/share/pkgs' appsdir='${prefix}/share/applications' COLLECTS_PATH="../collects" CONFIG_PATH="../etc" GR_APP_COLLECTS_PATH="../../../../collects" GR_APP_CONFIG_PATH="../../../../etc" INSTALL_ORIG_TREE=yes + if test "${enable_sharezo}" = "yes" ; then + enable_sharezo=no + echo WARNING: --enable-sharezo is ignored for an origtree installation + fi else if test "${prefix}" = "NONE" ; then # Set prefix explicitly so we can use it during configure @@ -2146,6 +2164,12 @@ fi GUI_COLLECTS_PATH="${COLLECTS_PATH}" GUI_CONFIG_PATH="${CONFIG_PATH}" +if test "${enable_sharezo}" = "yes" ; then + INSTALL_LIBZO=no +else + INSTALL_LIBZO=yes +fi + ######################################## @@ -2177,6 +2201,8 @@ GUI_CONFIG_PATH="${CONFIG_PATH}" + + @@ -2206,6 +2232,7 @@ show_path_results() echo " platform libraries : ${libpltdir}/..." echo " common libraries : ${sharepltdir}/..." echo " base collections : ${collectsdir}/..." + echo " installed pkgs : ${pkgsdir}/..." echo " configuration : ${etcpltdir}/..." echo " .desktop files : ${appsdir}/..." echo " man pages : ${mandir}/..." @@ -3317,11 +3344,11 @@ ac_sed_dataroot=' /@datadir@/p /@docdir@/p /@infodir@/p -/@localedir@/p +/@appsdir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) +*@datadir@*|*@docdir@*|*@infodir@*|*@appsdir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF @@ -3330,7 +3357,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g - s&@localedir@&$localedir&g + s&@appsdir@&$appsdir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac diff --git a/racket/src/cs/c/Makefile.in b/racket/src/cs/c/Makefile.in index 6bdd797ec6..9c5548d3c7 100644 --- a/racket/src/cs/c/Makefile.in +++ b/racket/src/cs/c/Makefile.in @@ -207,10 +207,12 @@ EMBED_DEPS = $(srcdir)/embed-boot.rkt racketcs@NOT_OSX@@NOT_MINGW@: raw_racketcs petite-v.boot scheme-v.boot racket-v.boot $(EMBED_DEPS) $(BOOTSTRAP_RACKET) $(srcdir)/embed-boot.rkt @ELF_COMP@ --target $(TARGET_MACH) @BOOT_COMPRESS_COMP@ raw_racketcs racketcs petite-v.boot scheme-v.boot racket-v.boot @POST_LINKER@ racketcs + $(RESTORE_SIGNATURE) racketcs gracketcs@NOT_OSX@@NOT_MINGW@: raw_gracketcs petite-v.boot scheme-v.boot racket-v.boot $(EMBED_DEPS) $(BOOTSTRAP_RACKET) $(srcdir)/embed-boot.rkt @ELF_COMP@ --target $(TARGET_MACH) @BOOT_COMPRESS_COMP@ raw_gracketcs gracketcs petite-v.boot scheme-v.boot racket-v.boot @POST_LINKER@ gracketcs + $(RESTORE_SIGNATURE) gracketcs OWN_Z_LIB = $(SCHEME_TARGET_INC)/../../zlib/libz.a OWN_LZ4_LIB = $(SCHEME_TARGET_INC)/../../lz4/lib/liblz4.a diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure index 221d1806e5..92e5f8b9c7 100755 --- a/racket/src/cs/c/configure +++ b/racket/src/cs/c/configure @@ -702,6 +702,7 @@ CGC MMM_CAP_INSTALLED MMM_INSTALLED MMM +INSTALL_LIBZO INSTALL_ORIG_TREE LIBFINISH MAKE_GRACKET @@ -712,6 +713,7 @@ CONFIG_PATH GR_APP_COLLECTS_PATH GUI_COLLECTS_PATH COLLECTS_PATH +pkgsdir includepltdir etcpltdir sharepltdir @@ -743,10 +745,10 @@ ECHO_N ECHO_C DEFS mandir -localedir +appsdir libdir psdir -appsdir +pkgsdir collectsdir htmldir infodir @@ -783,6 +785,7 @@ enable_wpo enable_compress enable_compressboot enable_origtree +enable_sharezo enable_useprefix enable_pkgscope enable_docs @@ -863,10 +866,10 @@ docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' collectsdir='${exec_prefix}/share/${PACKAGE}/collects' -appsdir='${exec_prefix}/share/applications' +pkgsdir='${datarootdir}/${PACKAGE}/pkgs' psdir='${docdir}' libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' +appsdir='${exec_prefix}/share/applications' mandir='${datarootdir}/man' ac_prev= @@ -1021,10 +1024,10 @@ do | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; + -appsdir | --appsdir | --appsdi | --appsd | --apps) + ac_prev=appsdir ;; + -appsdir=* | --appsdir=* | --appsdi=* | --appsd=* | --apps=*) + appsdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) @@ -1095,10 +1098,10 @@ do | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; - -appsdir | --appsdir | --appsdi | --appsd | --apps | --pd) - ac_prev=appsdir ;; - -appsdir=* | --appsdir=* | --appsdi=* | --appsd=* | --apps=* | --pd=*) - appsdir=$ac_optarg ;; + -pkgsdir | --pkgsdir | --pkgsdi | --pkgsd | --pkgs | --pd) + ac_prev=pkgsdir ;; + -pkgsdir=* | --pkgsdir=* | --pkgsdi=* | --pkgsd=* | --pkgs=* | --pd=*) + pkgsdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; @@ -1246,7 +1249,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir collectsdir appsdir psdir \ - libdir localedir mandir + libdir appsdir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1399,10 +1402,11 @@ Fine tuning of the installation directories: --includedir=DIR C header files [PREFIX/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --appsdir=DIR .desktop files [EPREFIX/share/applications] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --collectsdir=DIR base collections [EPREFIX/share/PACKAGE/collects] - --appsdir=DIR .desktop files [EPREFIX/share/applications] + --pkgsdir=DIR installed pkgs [EPREFIX/share/PACKAGE/pkgs] _ACEOF cat <<\_ACEOF @@ -1430,6 +1434,7 @@ Optional Features: --enable-compress compress compiled code (enabled by default) --enable-compressboot compress boot files --enable-origtree install with original directory structure + --enable-sharezo install ".zo"s to "share", not "lib" --disable-useprefix ignore any --prefix setting --enable-pkgscope= set `raco pkg' default: installation, user, or shared --enable-docs build docs on install (enabled by default) @@ -1454,7 +1459,7 @@ Optional Features: --enable-libs install static libraries (enabled by default for Unix) --enable-strip strip debug on install (usually enabled by default) --enable-ubsan compile with -fsanitize=undefined - --enable-asan compile with -fsanitize=address + --enable-asan compile with -fsanitize=address --enable-bcdefault install BC without suffix --enable-bconly BC default, and skip CS build --enable-csdefault install CS without suffix @@ -2556,6 +2561,11 @@ if test "${enable_origtree+set}" = set; then : enableval=$enable_origtree; fi +# Check whether --enable-sharezo was given. +if test "${enable_sharezo+set}" = set; then : + enableval=$enable_sharezo; +fi + # Check whether --enable-useprefix was given. if test "${enable_useprefix+set}" = set; then : enableval=$enable_useprefix; @@ -2813,6 +2823,8 @@ show_explicitly_disabled "${enable_pthread}" "pthreads" show_explicitly_disabled "${enable_compress}" "Compressed code" show_explicitly_enabled "${enable_compressboot}" "Compressed boot files" show_explicitly_enabled "${enable_xonx}" "Unix style" +show_explicitly_enabled "${enable_libzo}" 'Compiled ".zo" files moved to lib' + show_explicitly_set "${enable_racket}" "Racket" show_explicitly_set "${enable_scheme}" "Chez Scheme build directory" show_explicitly_set "${enable_mach}" "machine type" @@ -3042,6 +3054,9 @@ if test "${enable_origtree}" != "yes" -a "${enable_useprefix}" != "no" ; then if test "${collectsdir}" != '${exec_prefix}/share/${PACKAGE}/collects' ; then unixstyle=yes fi + if test "${pkgsdir}" != '${datarootdir}/${PACKAGE}/pkgs' ; then + unixstyle=yes + fi if test "${appsdir}" != '${exec_prefix}/share/applications' ; then unixstyle=yes fi @@ -3064,12 +3079,17 @@ if test "${unixstyle}" = "no" ; then docdir='${prefix}/doc' mandir='${prefix}/man' collectsdir='${prefix}/collects' + pkgsdir='${prefix}/share/pkgs' appsdir='${prefix}/share/applications' COLLECTS_PATH="../collects" CONFIG_PATH="../etc" GR_APP_COLLECTS_PATH="../../../../collects" GR_APP_CONFIG_PATH="../../../../etc" INSTALL_ORIG_TREE=yes + if test "${enable_sharezo}" = "yes" ; then + enable_sharezo=no + echo WARNING: --enable-sharezo is ignored for an origtree installation + fi else if test "${prefix}" = "NONE" ; then # Set prefix explicitly so we can use it during configure @@ -3096,6 +3116,12 @@ fi GUI_COLLECTS_PATH="${COLLECTS_PATH}" GUI_CONFIG_PATH="${CONFIG_PATH}" +if test "${enable_sharezo}" = "yes" ; then + INSTALL_LIBZO=no +else + INSTALL_LIBZO=yes +fi + ######################################## @@ -3127,6 +3153,8 @@ GUI_CONFIG_PATH="${CONFIG_PATH}" + + @@ -3156,6 +3184,7 @@ show_path_results() echo " platform libraries : ${libpltdir}/..." echo " common libraries : ${sharepltdir}/..." echo " base collections : ${collectsdir}/..." + echo " installed pkgs : ${pkgsdir}/..." echo " configuration : ${etcpltdir}/..." echo " .desktop files : ${appsdir}/..." echo " man pages : ${mandir}/..." @@ -5643,7 +5672,9 @@ for fixup_arg do case $fixup_arg in # Strip away all feature choices - -enable* | --enable* | -disable* | --disable* | -collects* | --collects* | -apps* | --apps*) + -enable* | --enable* | -disable* | --disable*) + ;; + -collects* | --collects* | -apps* | --apps* | -pkgs* | --pkgs*) ;; *) case $fixup_arg in @@ -6874,11 +6905,11 @@ ac_sed_dataroot=' /@datadir@/p /@docdir@/p /@infodir@/p -/@localedir@/p +/@appsdir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) +*@datadir@*|*@docdir@*|*@infodir@*|*@appsdir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF @@ -6887,7 +6918,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g - s&@localedir@&$localedir&g + s&@appsdir@&$appsdir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac index 56262a27cc..cce93252e6 100644 --- a/racket/src/cs/c/configure.ac +++ b/racket/src/cs/c/configure.ac @@ -74,6 +74,7 @@ show_explicitly_disabled "${enable_pthread}" "pthreads" show_explicitly_disabled "${enable_compress}" "Compressed code" show_explicitly_enabled "${enable_compressboot}" "Compressed boot files" show_explicitly_enabled "${enable_xonx}" "Unix style" +m4_include(../ac/path_show.m4) show_explicitly_set "${enable_racket}" "Racket" show_explicitly_set "${enable_scheme}" "Chez Scheme build directory" show_explicitly_set "${enable_mach}" "machine type" diff --git a/racket/src/cs/c/embed-boot.rkt b/racket/src/cs/c/embed-boot.rkt index 5ad55884f9..e6c8d71e4d 100644 --- a/racket/src/cs/c/embed-boot.rkt +++ b/racket/src/cs/c/embed-boot.rkt @@ -53,10 +53,12 @@ bstr3 terminator)) (define pos (case (or target (path->string (system-library-subpath #f))) - [("x86_64-darwin" "i386-darwin" "aarch64-darwin" + [("ta6osx" "ti3osx" "tarm64osx" + "x86_64-darwin" "i386-darwin" "aarch64-darwin" "x86_64-macosx" "i386-macosx" "aarch64-macosx") ;; Mach-O (copy-file use-src-file dest-file #t) + (remove-signature dest-file) (add-plt-segment dest-file data #:name #"__RKTBOOT") ;; Find segment at run time: 0]