OS X: support Unix-style install
Support "Unix-style" (as opposed to "in-place") installation for OS X, which is mostly a matter of putting ".app" files in the right place and correcting relative references. Intended to fix #1180
This commit is contained in:
parent
7a11d09134
commit
4e7bb3071a
|
@ -1486,8 +1486,11 @@
|
|||
(mac-dest->executable dest mred?)
|
||||
mred?)
|
||||
(when mred?
|
||||
;; adjust relative path (since GRacket is off by one):
|
||||
(update-framework-path "@executable_path/../../../lib/"
|
||||
;; adjust relative path (since GRacket is normally off by one):
|
||||
(define rel (find-relative-path (find-gui-bin-dir)
|
||||
(find-lib-dir)))
|
||||
(update-framework-path (format "@executable_path/../../../~a"
|
||||
(path->directory-path rel))
|
||||
(mac-dest->executable dest mred?)
|
||||
#t)))
|
||||
;; Check whether we need an absolute path to frameworks:
|
||||
|
|
|
@ -399,7 +399,14 @@
|
|||
(find-lib-dir)
|
||||
(let ([p (path-only dest)])
|
||||
(if (eq? 'macosx (cross-system-type))
|
||||
(build-path p 'up)
|
||||
(let* ([cdir (find-console-bin-dir)]
|
||||
[gdir (find-gui-bin-dir)]
|
||||
[rel (find-relative-path cdir gdir)])
|
||||
(cond
|
||||
[(relative-path? rel)
|
||||
(build-path p rel)]
|
||||
[(equal? cdir gdir) p]
|
||||
[else rel]))
|
||||
p))))
|
||||
(find-console-bin-dir))])
|
||||
(if (let ([a (assq 'relative? aux)])
|
||||
|
|
|
@ -133,8 +133,10 @@
|
|||
(let loop ([dir (cdr dir)]
|
||||
[file (cdr file)])
|
||||
(cond [(null? dir) (if (null? file) filename (apply build-path file))]
|
||||
[(null? file) (apply build-path/convention-type
|
||||
(path-convention-type filename)
|
||||
[(null? file) (apply build-path/convention-type
|
||||
(if (string? filename)
|
||||
(system-path-convention-type)
|
||||
(path-convention-type filename))
|
||||
(map (lambda (x) 'up) dir))]
|
||||
[(equal? (car dir) (car file))
|
||||
(loop (cdr dir) (cdr file))]
|
||||
|
|
29
racket/src/configure
vendored
29
racket/src/configure
vendored
|
@ -639,13 +639,16 @@ CGC
|
|||
MMM_CAP_INSTALLED
|
||||
MMM_INSTALLED
|
||||
MMM
|
||||
GR_APP_CONFIG_PATH
|
||||
GUI_CONFIG_PATH
|
||||
CONFIG_PATH
|
||||
GR_APP_COLLECTS_PATH
|
||||
GUI_COLLECTS_PATH
|
||||
COLLECTS_PATH
|
||||
includepltdir
|
||||
etcpltdir
|
||||
sharepltdir
|
||||
libpltdir_rel
|
||||
libpltdir
|
||||
appsdir
|
||||
collectsdir
|
||||
|
@ -2872,7 +2875,9 @@ else
|
|||
case "$host_os" in
|
||||
darwin*)
|
||||
enable_quartz=yes
|
||||
enable_origtree=yes
|
||||
if test "${enable_origtree}" != "no" ; then
|
||||
enable_origtree=yes
|
||||
fi
|
||||
if test "${prefix}" != "NONE" ; then
|
||||
if test "${enable_macprefix}" != "yes" ; then
|
||||
echo "ERROR: --prefix not allowed for a Mac OS X build, unless either"
|
||||
|
@ -2952,6 +2957,7 @@ if test "${unixstyle}" = "no" ; then
|
|||
fi
|
||||
bindir='${prefix}/bin'
|
||||
libpltdir='${prefix}/lib'
|
||||
libpltdir_rel='lib'
|
||||
sharepltdir='${prefix}/share'
|
||||
etcpltdir='${prefix}/etc'
|
||||
includepltdir='${prefix}/include'
|
||||
|
@ -2961,6 +2967,8 @@ if test "${unixstyle}" = "no" ; then
|
|||
appsdir='${prefix}/share/applications'
|
||||
COLLECTS_PATH="../collects"
|
||||
CONFIG_PATH="../etc"
|
||||
GR_APP_COLLECTS_PATH="../../../../collects"
|
||||
GR_APP_CONFIG_PATH="../../../../etc"
|
||||
INSTALL_ORIG_TREE=yes
|
||||
else
|
||||
if test "${prefix}" = "NONE" ; then
|
||||
|
@ -2968,12 +2976,20 @@ else
|
|||
prefix="${ac_default_prefix}"
|
||||
fi
|
||||
libpltdir="${libdir}/"'${PACKAGE}'
|
||||
libpltdir_rel=""
|
||||
if test "${libpltdir}" = '${exec_prefix}/lib/${PACKAGE}' ; then
|
||||
if test "${bindir}" = '${exec_prefix}/bin' ; then
|
||||
libpltdir_rel="lib/"'${PACKAGE}'
|
||||
fi
|
||||
fi
|
||||
sharepltdir="${datadir}/"'${PACKAGE}'
|
||||
etcpltdir="${sysconfdir}/"'${PACKAGE}'
|
||||
includepltdir="${includedir}/"'${PACKAGE}'
|
||||
MAKE_COPYTREE=copytree
|
||||
COLLECTS_PATH='${collectsdir}'
|
||||
CONFIG_PATH='${etcpltdir}'
|
||||
GR_APP_COLLECTS_PATH="${COLLECTS_PATH}"
|
||||
GR_APP_CONFIG_PATH="${CONFIG_PATH}"
|
||||
INSTALL_ORIG_TREE=no
|
||||
fi
|
||||
|
||||
|
@ -4847,9 +4863,13 @@ fi
|
|||
FRAMEWORK_REL_INSTALL=no
|
||||
FRAMEWORK_PREFIX=''
|
||||
else
|
||||
FRAMEWORK_INSTALL_DIR='${libdir}'
|
||||
FRAMEWORK_INSTALL_DIR='${libpltdir}'
|
||||
FRAMEWORK_REL_INSTALL=yes
|
||||
FRAMEWORK_PREFIX='$(FRAMEWORK_REL_PREFIX)'
|
||||
if test "${libpltdir_rel}" = "" ; then
|
||||
FRAMEWORK_PREFIX='$(FRAMEWORK_ABS_PREFIX)'
|
||||
else
|
||||
FRAMEWORK_PREFIX='$(FRAMEWORK_REL_PREFIX)'
|
||||
fi
|
||||
fi
|
||||
else
|
||||
PREFLAGS="$PREFLAGS -DXONX "
|
||||
|
@ -6995,6 +7015,9 @@ LIBS="$LIBS $EXTRALIBS"
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ datarootdir = @datarootdir@
|
|||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
libpltdir = @libpltdir@
|
||||
libpltdir_rel = @libpltdir_rel@
|
||||
etcpltdir = @etcpltdir@
|
||||
sharepltdir = @sharepltdir@
|
||||
collectsdir = @collectsdir@
|
||||
|
@ -235,6 +236,7 @@ install-wx_xt-post-collects:
|
|||
# Mac OS X ----------------------------------------
|
||||
|
||||
FRAMEWORK_REL_PREFIX="@executable_path/../../../"
|
||||
FRAMEWORK_ABS_PREFIX = "$(libpltdir)/"
|
||||
|
||||
install-wx_mac:
|
||||
$(MAKE) install-common
|
||||
|
@ -242,28 +244,28 @@ install-wx_mac:
|
|||
cd ..; rm -rf $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app"
|
||||
|
||||
install-wx_mac-cgc:
|
||||
cd ..; $(ICP) -r gracket/GRacket@CGC@.app $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app"
|
||||
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -cqu "$(srcdir)/../mac/rename-app.rkt" $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app" "GRacket@CGC@" "GRacket@CGC_CAP_INSTALLED@"
|
||||
/usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)/Racket" $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@"
|
||||
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" ../../../../collects ../../../../etc
|
||||
@STRIP_DEBUG@ $(DESTDIR)"$(prefix)/lib/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@"
|
||||
cd ..; $(ICP) -r gracket/GRacket@CGC@.app $(DESTDIR)"$(libpltdir)/GRacket@CGC_CAP_INSTALLED@.app"
|
||||
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -cqu "$(srcdir)/../mac/rename-app.rkt" $(DESTDIR)"$(libpltdir)/GRacket@CGC_CAP_INSTALLED@.app" "GRacket@CGC@" "GRacket@CGC_CAP_INSTALLED@"
|
||||
/usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)/Racket" $(DESTDIR)"$(libpltdir)/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@"
|
||||
@RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" $(DESTDIR)"$(libpltdir)/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@" @GR_APP_COLLECTS_PATH@ @GR_APP_CONFIG_PATH@
|
||||
@STRIP_DEBUG@ $(DESTDIR)"$(libpltdir)/GRacket@CGC_CAP_INSTALLED@.app/Contents/MacOS/GRacket@CGC_CAP_INSTALLED@"
|
||||
|
||||
install-wx_mac-cgc-final:
|
||||
$(NOOP)
|
||||
|
||||
install-wx_mac-3m:
|
||||
cd ..; $(ICP) -r "gracket/GRacket@MMM@.app" $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app"
|
||||
@RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) -cqu "$(srcdir)/../mac/rename-app.rkt" $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app" "GRacket@MMM@" "GRacket@MMM_CAP_INSTALLED@"
|
||||
/usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)_3m/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)_3m/Racket" $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@"
|
||||
@RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" "../../../../collects" ../../../../etc
|
||||
@STRIP_DEBUG@ $(DESTDIR)"$(prefix)/lib/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@"
|
||||
cd ..; $(ICP) -r "gracket/GRacket@MMM@.app" $(DESTDIR)"$(libpltdir)/GRacket@MMM_CAP_INSTALLED@.app"
|
||||
@RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) -cqu "$(srcdir)/../mac/rename-app.rkt" $(DESTDIR)"$(libpltdir)/GRacket@MMM_CAP_INSTALLED@.app" "GRacket@MMM@" "GRacket@MMM_CAP_INSTALLED@"
|
||||
/usr/bin/install_name_tool -change "@executable_path/../../../../racket/Racket.framework/Versions/$(FWVERSION)_3m/Racket" "@FRAMEWORK_PREFIX@Racket.framework/Versions/$(FWVERSION)_3m/Racket" $(DESTDIR)"$(libpltdir)/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@"
|
||||
@RUN_RACKET_MMM@ $(SELF_RACKET_FLAGS) -cu "$(srcdir)/../racket/collects-path.rkt" $(DESTDIR)"$(libpltdir)/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@" @GR_APP_COLLECTS_PATH@ @GR_APP_CONFIG_PATH@
|
||||
@STRIP_DEBUG@ $(DESTDIR)"$(libpltdir)/GRacket@MMM_CAP_INSTALLED@.app/Contents/MacOS/GRacket@MMM_CAP_INSTALLED@"
|
||||
|
||||
install-wx_mac-3m-final:
|
||||
$(NOOP)
|
||||
|
||||
install-wx_mac-post-collects:
|
||||
cd ..; rm -rf $(DESTDIR)$(prefix)/lib/Starter.app
|
||||
cd ..; $(ICP) -r gracket/Starter.app $(DESTDIR)$(prefix)/lib/.
|
||||
cd ..; rm -rf $(DESTDIR)$(libpltdir)/Starter.app
|
||||
cd ..; $(ICP) -r gracket/Starter.app $(DESTDIR)$(libpltdir)/.
|
||||
|
||||
|
||||
@INCLUDEDEP@ grmain.d
|
||||
|
|
|
@ -12,6 +12,7 @@ bindir = @bindir@
|
|||
libdir = @libdir@
|
||||
includepltdir = @includepltdir@
|
||||
libpltdir = @libpltdir@
|
||||
libpltdir_rel = @libpltdir_rel@
|
||||
etcpltdir = @etcpltdir@
|
||||
sharepltdir = @sharepltdir@
|
||||
collectsdir = @collectsdir@
|
||||
|
@ -494,7 +495,8 @@ mingw-install-3m-final:
|
|||
|
||||
MZFWDIR = @FRAMEWORK_INSTALL_DIR@/Racket.framework
|
||||
MZFWMMM = Racket.framework/Versions/$(FWVERSION)_3m/Racket
|
||||
FRAMEWORK_REL_PREFIX = "@executable_path/../lib/"
|
||||
FRAMEWORK_REL_PREFIX = "@executable_path/../$(libpltdir_rel)/"
|
||||
FRAMEWORK_ABS_PREFIX = "$(libpltdir)/"
|
||||
|
||||
osx-install:
|
||||
$(MAKE) unix-install
|
||||
|
|
|
@ -143,7 +143,9 @@ else
|
|||
case "$host_os" in
|
||||
darwin*)
|
||||
enable_quartz=yes
|
||||
enable_origtree=yes
|
||||
if test "${enable_origtree}" != "no" ; then
|
||||
enable_origtree=yes
|
||||
fi
|
||||
if test "${prefix}" != "NONE" ; then
|
||||
if test "${enable_macprefix}" != "yes" ; then
|
||||
echo "ERROR: --prefix not allowed for a Mac OS X build, unless either"
|
||||
|
@ -223,6 +225,7 @@ if test "${unixstyle}" = "no" ; then
|
|||
fi
|
||||
bindir='${prefix}/bin'
|
||||
libpltdir='${prefix}/lib'
|
||||
libpltdir_rel='lib'
|
||||
sharepltdir='${prefix}/share'
|
||||
etcpltdir='${prefix}/etc'
|
||||
includepltdir='${prefix}/include'
|
||||
|
@ -232,6 +235,8 @@ if test "${unixstyle}" = "no" ; then
|
|||
appsdir='${prefix}/share/applications'
|
||||
COLLECTS_PATH="../collects"
|
||||
CONFIG_PATH="../etc"
|
||||
GR_APP_COLLECTS_PATH="../../../../collects"
|
||||
GR_APP_CONFIG_PATH="../../../../etc"
|
||||
INSTALL_ORIG_TREE=yes
|
||||
else
|
||||
if test "${prefix}" = "NONE" ; then
|
||||
|
@ -239,12 +244,20 @@ else
|
|||
prefix="${ac_default_prefix}"
|
||||
fi
|
||||
libpltdir="${libdir}/"'${PACKAGE}'
|
||||
libpltdir_rel=""
|
||||
if test "${libpltdir}" = '${exec_prefix}/lib/${PACKAGE}' ; then
|
||||
if test "${bindir}" = '${exec_prefix}/bin' ; then
|
||||
libpltdir_rel="lib/"'${PACKAGE}'
|
||||
fi
|
||||
fi
|
||||
sharepltdir="${datadir}/"'${PACKAGE}'
|
||||
etcpltdir="${sysconfdir}/"'${PACKAGE}'
|
||||
includepltdir="${includedir}/"'${PACKAGE}'
|
||||
MAKE_COPYTREE=copytree
|
||||
COLLECTS_PATH='${collectsdir}'
|
||||
CONFIG_PATH='${etcpltdir}'
|
||||
GR_APP_COLLECTS_PATH="${COLLECTS_PATH}"
|
||||
GR_APP_CONFIG_PATH="${CONFIG_PATH}"
|
||||
INSTALL_ORIG_TREE=no
|
||||
fi
|
||||
|
||||
|
@ -928,9 +941,13 @@ case "$host_os" in
|
|||
FRAMEWORK_REL_INSTALL=no
|
||||
FRAMEWORK_PREFIX=''
|
||||
else
|
||||
FRAMEWORK_INSTALL_DIR='${libdir}'
|
||||
FRAMEWORK_INSTALL_DIR='${libpltdir}'
|
||||
FRAMEWORK_REL_INSTALL=yes
|
||||
FRAMEWORK_PREFIX='$(FRAMEWORK_REL_PREFIX)'
|
||||
if test "${libpltdir_rel}" = "" ; then
|
||||
FRAMEWORK_PREFIX='$(FRAMEWORK_ABS_PREFIX)'
|
||||
else
|
||||
FRAMEWORK_PREFIX='$(FRAMEWORK_REL_PREFIX)'
|
||||
fi
|
||||
fi
|
||||
else
|
||||
PREFLAGS="$PREFLAGS -DXONX "
|
||||
|
@ -1817,14 +1834,17 @@ AC_SUBST(LTA)
|
|||
AC_SUBST(collectsdir)
|
||||
AC_SUBST(appsdir)
|
||||
AC_SUBST(libpltdir)
|
||||
AC_SUBST(libpltdir_rel)
|
||||
AC_SUBST(sharepltdir)
|
||||
AC_SUBST(etcpltdir)
|
||||
AC_SUBST(includepltdir)
|
||||
AC_SUBST(docdir)
|
||||
AC_SUBST(COLLECTS_PATH)
|
||||
AC_SUBST(GUI_COLLECTS_PATH)
|
||||
AC_SUBST(GR_APP_COLLECTS_PATH)
|
||||
AC_SUBST(CONFIG_PATH)
|
||||
AC_SUBST(GUI_CONFIG_PATH)
|
||||
AC_SUBST(GR_APP_CONFIG_PATH)
|
||||
|
||||
AC_SUBST(MMM)
|
||||
AC_SUBST(MMM_INSTALLED)
|
||||
|
|
Loading…
Reference in New Issue
Block a user