add "share", move "collects" back out of "lib", move "pkgs"
The "share" directory holds platform-independent files, while "lib" holds platform-specific files. In principle, the "collects" directory belongs in "share", as does "doc". Those directories are put into "share" by a Unix-style install, but left at top level for an in-place install. Packages in installation scope are put in "share" instead of "lib", and the top-level Makefile puts development links in "share/devel-pkgs". The `configure' script now supports `--docdir' and `--collectsdir'. Changed the version to 5.90.0.1.
This commit is contained in:
parent
0736e62a49
commit
67a9889ef7
24
Makefile
24
Makefile
|
@ -19,7 +19,9 @@
|
|||
#
|
||||
# installers = `server' plus `client' via $(CONFIG)
|
||||
|
||||
DEFAULT_PKGS = main-distribution plt-services
|
||||
# Packages (separated by spaces) to link in development mode or
|
||||
# to include in a distribution:
|
||||
PKGS = main-distribution plt-services
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# In-place build
|
||||
|
@ -29,6 +31,8 @@ WIN32_PLAIN_RACKET = racket\racket
|
|||
|
||||
MACOSX_CHECK = $(PLAIN_RACKET) -I racket/base -e '(case (system-type) [(macosx) (exit 0)] [else (exit 1)])'
|
||||
|
||||
LINK_MODE = --save
|
||||
|
||||
CPUS =
|
||||
|
||||
in-place:
|
||||
|
@ -95,9 +99,6 @@ racket/src/build/Makefile: racket/src/configure racket/src/Makefile.in
|
|||
# end in "_q" or "_qq", don't use any quote marks on the right-hand
|
||||
# side of its definition.
|
||||
|
||||
# Packages (separated by spaces) to include in a distribution:
|
||||
PKGS = $(DEFAULT_PKGS)
|
||||
|
||||
# Catalog for sources and native packages; use "local" to bootstrap
|
||||
# from package directories (in the same directory as this makefile)
|
||||
# plus the GitHub repository of raw native libraries. Otherwise, it's
|
||||
|
@ -171,11 +172,11 @@ DISTRO_BUILD_PKGS = distro-build
|
|||
DISTBLD = pkgs/distro-build
|
||||
|
||||
# Helper macros:
|
||||
ADDON = build/user
|
||||
RACKET = racket/bin/racket -A "$(ADDON)"
|
||||
RACO = racket/bin/racket -A "$(ADDON)" -N raco -l- raco
|
||||
WIN32_RACKET = racket\racket -A "$(ADDON)"
|
||||
WIN32_RACO = racket\racket -A "$(ADDON)" -N raco -l- raco
|
||||
USER_CONFIG = -G build/user/config -A build/user
|
||||
RACKET = racket/bin/racket $(USER_CONFIG)
|
||||
RACO = racket/bin/racket $(USER_CONFIG) -N raco -l- raco
|
||||
WIN32_RACKET = racket\racket $(USER_CONFIG)
|
||||
WIN32_RACO = racket\racket $(USER_CONFIG) -N raco -l- raco
|
||||
X_AUTO_OPTIONS = --skip-installed --deps search-auto $(JOB_OPTIONS)
|
||||
USER_AUTO_OPTIONS = --scope user $(X_AUTO_OPTIONS)
|
||||
LOCAL_USER_AUTO = --catalog build/local/catalog $(USER_AUTO_OPTIONS)
|
||||
|
@ -189,7 +190,6 @@ BUNDLE_CONFIG = bundle/racket/etc/config.rktd
|
|||
# Linking all packages (development mode; not an installer build)
|
||||
|
||||
LINK_ALL = -U -G build/config racket/src/link-all.rkt ++dir pkgs ++dir build/native-pkgs
|
||||
LINK_MODE = --save
|
||||
|
||||
pkg-links:
|
||||
$(PLAIN_RACKET) $(LINK_ALL) $(LINK_MODE) $(PKGS) $(REQUIRED_PKGS)
|
||||
|
@ -315,12 +315,12 @@ binary-catalog-server:
|
|||
# `distro-buid/drive-clients', which is in turn run by the
|
||||
# `installers' target.
|
||||
#
|
||||
# For a non-Windows machine, if "build/drive" exists, then
|
||||
# For a non-Windows machine, if "build/log" exists, then
|
||||
# keep the "build/user" directory on the grounds that the
|
||||
# client is the same as the server.
|
||||
|
||||
client:
|
||||
if [ ! -d build/drive ] ; then rm -rf build/user ; fi
|
||||
if [ ! -d build/log ] ; then rm -rf build/user ; fi
|
||||
$(MAKE) core
|
||||
$(MAKE) distro-build-from-server
|
||||
$(MAKE) bundle-from-server
|
||||
|
|
|
@ -28,9 +28,10 @@
|
|||
(define ht
|
||||
(hash 'doc-dir (build-path/s "doc")
|
||||
'lib-dir (build-path/s "lib")
|
||||
'share-dir (build-path/s "share")
|
||||
'dll-dir (build-path/s "lib")
|
||||
'links-file (build-path/s "lib" "links.rktd")
|
||||
'pkgs-dir (build-path/s "lib" "pkgs")
|
||||
'links-file (build-path/s "share" "links.rktd")
|
||||
'pkgs-dir (build-path/s "share" "pkgs")
|
||||
'bin-dir (build-path/s "bin")
|
||||
'include-dir (build-path/s "include")
|
||||
'catalogs (map build-path/f catalogs)))
|
||||
|
|
|
@ -212,7 +212,6 @@ Function myTestInstDir
|
|||
IfFileExists "$INSTDIR\Racket.exe" racket_is_installed
|
||||
@(if auto-launch @~a{IfFileExists "$INSTDIR\${RKTLaunchProgram}.exe" racket_is_installed} "")
|
||||
IfFileExists "$INSTDIR\collects" racket_is_installed
|
||||
IfFileExists "$INSTDIR\lib\collects" racket_is_installed
|
||||
Goto racket_is_not_installed
|
||||
racket_is_installed:
|
||||
IfFileExists "${UNINSTEXE}" we_have_uninstall
|
||||
|
@ -320,7 +319,7 @@ Function un.myGUIInit
|
|||
IfFileExists "$INSTDIR\Racket.exe" racket_is_installed_un
|
||||
IfFileExists "$INSTDIR\lib\GRacket.exe" racket_is_installed_un
|
||||
@(if auto-launch @~a{IfFileExists "$INSTDIR\${RKTLaunchProgram}.exe" racket_is_installed_un} "")
|
||||
IfFileExists "$INSTDIR\lib\collects" racket_is_installed_un
|
||||
IfFileExists "$INSTDIR\collects" racket_is_installed_un
|
||||
MessageBox MB_YESNO "It does not appear that Racket is installed in '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" /SD IDYES IDYES racket_is_installed_un
|
||||
Abort "Uninstall aborted by user"
|
||||
racket_is_installed_un:
|
||||
|
@ -336,6 +335,7 @@ Section "Uninstall"
|
|||
Delete "$INSTDIR\README*.*"
|
||||
RMDir /r "$INSTDIR\include"
|
||||
RMDir /r "$INSTDIR\lib"
|
||||
RMDir /r "$INSTDIR\share"
|
||||
RMDir /r "$INSTDIR\etc"
|
||||
RMDir /r "$INSTDIR\doc"
|
||||
;; these exist in Racket-Full installations
|
||||
|
|
|
@ -13,7 +13,5 @@
|
|||
(when (file-exists? tgz-file)
|
||||
(delete-file tgz-file))
|
||||
|
||||
(parameterize ([current-directory (build-path "racket/lib")])
|
||||
(parameterize ([current-directory (build-path "racket")])
|
||||
(tar-gzip tgz-file "collects"))
|
||||
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
also modify Racket; if you distribute a modified version, you must
|
||||
distribute it under the terms of the LGPL, which in particular means
|
||||
that you must release the source code for the modified software. See
|
||||
lib/COPYING_LESSER.txt for more information.})
|
||||
share/COPYING_LESSER.txt for more information.})
|
||||
|
||||
(define macosx-notes
|
||||
@~a{Install by dragging the enclosing Racket folder to your Applications folder
|
||||
|
|
|
@ -164,6 +164,7 @@ set_dirs() {
|
|||
libdir="$1/lib"
|
||||
incrktdir="$1/include/$TARGET"
|
||||
librktdir="$1/lib/$TARGET"
|
||||
sharerktdir="$1/share/$TARGET"
|
||||
configdir="$1/etc/$TARGET"
|
||||
has_share="N"
|
||||
if test -d "$1/share"; then has_share="Y"; fi
|
||||
|
@ -227,8 +228,8 @@ unpack_installation() {
|
|||
| { cd "$INSTDIR"
|
||||
"$tar" xf - || failwith "problems during unpacking of binary archive."
|
||||
}
|
||||
test -d "$INSTDIR/lib/collects" \
|
||||
|| failwith "unpack failed (could not find \"$T/lib/collects\")."
|
||||
test -d "$INSTDIR/collects" \
|
||||
|| failwith "unpack failed (could not find \"$T/collects\")."
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
|
@ -328,6 +329,7 @@ unixstyle_install() {
|
|||
echo "Target Directories:"
|
||||
show_dir_var "[e] Executables " "$bindir"
|
||||
show_dir_var "[o] Libraries " "$librktdir"
|
||||
show_dir_var "[s] Shared files " "$sharerktdir"
|
||||
show_dir_var "[c] Configuration" "$configdir"
|
||||
show_dir_var "[d] Documentation" "$docdir"
|
||||
show_dir_var "[l] C Libraries " "$libdir"
|
||||
|
@ -351,6 +353,7 @@ unixstyle_install() {
|
|||
[lL]* ) read_dir libdir ;;
|
||||
[hH]* ) read_dir incrktdir ;;
|
||||
[oO]* ) read_dir librktdir ;;
|
||||
[sS]* ) read_dir sharerktdir ;;
|
||||
[cC]* ) read_dir configdir ;;
|
||||
[mM]* ) read_dir mandir ;;
|
||||
"" ) if test "$err" = "N"; then done="Y"
|
||||
|
@ -382,9 +385,9 @@ unixstyle_install() {
|
|||
unpack_installation "$tmp"
|
||||
|
||||
cd "$where"
|
||||
"$tmp/bin/racket" "$tmp/lib/collects/setup/unixstyle-install.rkt" \
|
||||
"move" "$tmp" "$bindir" "$librktdir/collects" "$docdir" "$libdir" \
|
||||
"$incrktdir" "$librktdir" "$configdir" "$mandir" \
|
||||
"$tmp/bin/racket" "$tmp/collects/setup/unixstyle-install.rkt" \
|
||||
"move" "$tmp" "$bindir" "$sharerktdir/collects" "$docdir" "$libdir" \
|
||||
"$incrktdir" "$librktdir" "$sharerktdir" "$configdir" "$mandir" \
|
||||
|| failwith "installation failed"
|
||||
|
||||
}
|
||||
|
|
|
@ -22,12 +22,9 @@
|
|||
|
||||
(display-time)
|
||||
|
||||
(define lib-dir (build-path dest-dir "lib"))
|
||||
(make-directory* lib-dir)
|
||||
|
||||
(define collects-dir (build-path lib-dir "collects"))
|
||||
(define collects-dir (build-path dest-dir "collects"))
|
||||
(when (directory-exists? collects-dir)
|
||||
(delete-directory/files collects-dir))
|
||||
|
||||
(untgz (open-input-bytes zip-content)
|
||||
#:dest lib-dir)
|
||||
#:dest dest-dir)
|
||||
|
|
|
@ -10,5 +10,5 @@
|
|||
"sandbox-lib"
|
||||
"racket-doc"))
|
||||
|
||||
;; Make honu.vim easier to find by copying it to the "lib" directory:
|
||||
(define copy-foreign-libs '("contrib/honu.vim"))
|
||||
;; Make honu.vim easier to find by copying it to the "share" directory:
|
||||
(define copy-shared-files '("contrib/honu.vim"))
|
||||
|
|
|
@ -27,12 +27,12 @@ directory:
|
|||
|
||||
@item{@racket['doc-dir] --- a path, string, or byte string for the
|
||||
main documentation directory. The value defaults to a
|
||||
@filepath{doc} sibling directory of the parent of the
|
||||
@filepath{doc} sibling directory of the
|
||||
main collection directory.}
|
||||
|
||||
@item{@racket['lib-dir] --- a path, string, or byte string for the
|
||||
main library directory; it defaults to the parent
|
||||
directory of the main collection directory.}
|
||||
main library directory; it defaults to a @filepath{lib}
|
||||
sibling directory of the main collection directory.}
|
||||
|
||||
@item{@racket['lib-search-dirs] --- a list of paths, strings, byte
|
||||
strings, or @racket[#f] representing the search path for
|
||||
|
@ -42,27 +42,32 @@ directory:
|
|||
directory followed by the main library directory.}
|
||||
|
||||
@item{@racket['dll-dir] --- a path, string, or byte string for a
|
||||
directory containing Unix shared libraries for the main
|
||||
directory containing shared libraries for the main
|
||||
executable; it defaults to the main library directory.}
|
||||
|
||||
@item{@racket['share-dir] --- a path, string, or byte string for the
|
||||
main shared-file directory, which normally includes installed packages;
|
||||
it defaults to a @filepath{share} sibling directory of the main
|
||||
collection directory.}
|
||||
|
||||
@item{@racket['links-file] --- a path, string, or byte string for the
|
||||
@tech[#:doc reference-doc]{collection links file}; it defaults
|
||||
to a @filepath{links.rktd} file in the parent of the main
|
||||
collection directory.}
|
||||
to a @filepath{links.rktd} file in the @filepath{share} sibling
|
||||
of the main collection directory.}
|
||||
|
||||
@item{@racket['links-search-files] --- like @racket['lib-search-dirs],
|
||||
but for @tech[#:doc reference-doc]{collection links file}.}
|
||||
|
||||
@item{@racket['pkgs-dir] --- a path, string, or byte string for
|
||||
packages that have installation scope; it defaults to
|
||||
@filepath{pkgs} in the main library directory.}
|
||||
@filepath{pkgs} in the main shared-file directory.}
|
||||
|
||||
@item{@racket['pkgs-search-dirs] --- like @racket['lib-search-dirs],
|
||||
but for packages in installation scope.}
|
||||
|
||||
@item{@racket['bin-dir] --- a path, string, or byte string for the
|
||||
main directory containing executables; it defaults to a
|
||||
@filepath{bin} sibling directory of the parent of the main collection
|
||||
@filepath{bin} sibling directory of the main collection
|
||||
directory.}
|
||||
|
||||
@item{@racket['doc-search-dirs] --- like @racket['lib-search-dirs],
|
||||
|
@ -70,7 +75,7 @@ directory:
|
|||
|
||||
@item{@racket['include-dir] --- a path, string, or byte string for
|
||||
the main directory containing C header files; it defaults to an
|
||||
@filepath{include} sibling directory of the main library
|
||||
@filepath{include} sibling directory of the main collection
|
||||
directory.}
|
||||
|
||||
@item{@racket['include-search-dirs] --- like
|
||||
|
|
|
@ -534,6 +534,15 @@ Optional @filepath{info.rkt} fields trigger additional actions by
|
|||
but the original file is removed after it is copied (which makes sense
|
||||
for precompiled packages).}
|
||||
|
||||
@item{@indexed-racket[copy-shared-files] : @racket[(listof (and/c
|
||||
path-string? relative-path?))] --- Files to copy into a
|
||||
directory where shared files are found.}
|
||||
|
||||
@item{@indexed-racket[move-shared-files] : @racket[(listof (and/c
|
||||
path-string? relative-path?))] --- Like @racket[copy-shared-files],
|
||||
but the original file is removed after it is copied (which makes sense
|
||||
for precompiled packages).}
|
||||
|
||||
@item{@indexed-racket[copy-man-pages] : @racket[(listof (and/c
|
||||
path-string? relative-path? filename-extension))] --- Files to copy
|
||||
into a @tt{man} directory. The file suffix determines its category;
|
||||
|
@ -1020,6 +1029,19 @@ v
|
|||
libraries and other build information. The result is @racket[#f] if no such
|
||||
directory is available.}
|
||||
|
||||
@defproc[(find-user-lib-dir) path?]{
|
||||
Returns a path to a user-specific @filepath{lib} directory; the directory
|
||||
indicated by the returned path may or may not exist.}
|
||||
|
||||
@defproc[(find-share-dir) (or/c path? #f)]{ Returns a path to the
|
||||
installation's @filepath{share} directory, which contains installed
|
||||
packages and other platform-independent files. The result is
|
||||
@racket[#f] if no such directory is available.}
|
||||
|
||||
@defproc[(find-user-share-dir) path?]{
|
||||
Returns a path to a user-specific @filepath{share} directory; the directory
|
||||
indicated by the returned path may or may not exist.}
|
||||
|
||||
@defproc[(find-dll-dir) (or/c path? #f)]{
|
||||
Returns a path to the directory that contains DLLs for use with the
|
||||
current executable (e.g., @filepath{libmzsch.dll} on Windows).
|
||||
|
@ -1027,12 +1049,8 @@ v
|
|||
specific directory is available (i.e., other than the platform's normal
|
||||
search path).}
|
||||
|
||||
@defproc[(find-user-lib-dir) path?]{
|
||||
Returns a path to a user-specific @filepath{lib} directory; the directory
|
||||
indicated by the returned path may or may not exist.}
|
||||
|
||||
@defproc[(get-lib-search-dirs) (listof path?)]{
|
||||
Returns a list of paths to search for libraries. Unless it is
|
||||
Returns a list of paths to search for foreign libraries. Unless it is
|
||||
configured otherwise, the result includes any non-@racket[#f] result of
|
||||
@racket[(find-lib-dir)], @racket[(find-dll-dir)],
|
||||
and @racket[(find-user-lib-dir)]---but the last is included only if the
|
||||
|
|
|
@ -17,5 +17,5 @@
|
|||
"scribble-lib"))
|
||||
|
||||
;; Make slatex.sty easier to find (for adding to TEXINPUTS)
|
||||
;; by copying it to the "lib" directory. Same for rubber support:
|
||||
(define copy-foreign-libs '("slatex.sty" "slatex.py"))
|
||||
;; by copying it to the "share" directory. Same for rubber support:
|
||||
(define copy-shared-files '("slatex.sty" "slatex.py"))
|
||||
|
|
2
racket/.gitignore
vendored
2
racket/.gitignore
vendored
|
@ -3,6 +3,8 @@
|
|||
/include/
|
||||
/etc/
|
||||
/doc/
|
||||
/lib/
|
||||
/share/
|
||||
|
||||
# Windows and OSX executables
|
||||
/*.app
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user