change Mac default build to put frameworks in plt/lib

svn: r1692
This commit is contained in:
Matthew Flatt 2005-12-26 13:07:35 +00:00
parent 598921d7fa
commit 5ea77942db
12 changed files with 141 additions and 78 deletions

View File

@ -488,7 +488,10 @@ _embedr-sig.ss_ library provides the signature, _compiler:embed^_.
prefix start "@executable_path/" works for a
MzScheme-based application, the corresponding prefix
start for a MrEd-based application is
"@executable_path/../../../"
"@executable_path/../../../"; if #f is supplied, the
executable's framework path is left as-is, otherwise
a relative path to a framework in the installation's "lib"
directory is converted to an absolute path
_'subsystem_ (Windows) - a symbol, either 'console for a console
application or 'windows for a consoleless application;

View File

@ -7,10 +7,11 @@
(lib "port.ss")
(lib "moddep.ss" "syntax")
(lib "plist.ss" "xml")
(lib "process.ss")
(lib "plthome.ss" "setup")
"embed-sig.ss"
"private/winicon.ss"
"private/winsubsys.ss")
"private/winsubsys.ss"
"private/macfw.ss")
(provide compiler:embed@)
@ -46,6 +47,14 @@
(fixup #rx#"[.][aA][pP][pP]$" #".app")
path)]
[else path])))
(define (mac-dest->executable dest mred?)
(if mred?
(let-values ([(base name dir?) (split-path dest)])
(build-path dest
"Contents" "MacOS"
(path-replace-suffix name #"")))
dest))
;; Find executable relative to the "mzlib"
;; collection.
@ -336,7 +345,7 @@
(format "~a~a" prefix name))
mappings)
(unbox codes)))))))))))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (make-module-name-resolver code-l)
@ -512,28 +521,22 @@
(when (file-exists? dest)
(delete-file dest)))
(raise x))])
(let ([m (and (eq? 'macosx (system-type))
(assq 'framework-root aux))])
(when m
(for-each (lambda (p)
(system* "/usr/bin/install_name_tool"
"-change"
(format "~a.framework/Versions/~a/~a" p (version) p)
(format "~a~a.framework/Versions/~a/~a"
(cdr m)
p (version) p)
(let ([dest (if mred?
(let-values ([(base name dir?) (split-path dest)])
(build-path dest
"Contents" "MacOS"
(path-replace-suffix name #"")))
dest)])
(if (path? dest)
(path->string dest)
dest))))
(if mred?
'("PLT_MzScheme" "PLT_MrEd")
'("PLT_MzScheme")))))
(when (eq? 'macosx (system-type))
(let ([m (assq 'framework-root aux)])
(if m
(when (cdr m)
(update-framework-path (cdr m)
(mac-dest->executable dest mred?)
mred?))
;; Check whether we need an absolute path to frameworks:
(let ([dest (mac-dest->executable dest mred?)])
(when (regexp-match #rx"^@executable_path"
(get-current-framework-path dest "PLT_MzScheme"))
(update-framework-path (string-append
(path->string (build-path plthome "lib"))
"/")
dest
mred?))))))
(let ([start (file-size dest-exe)])
(with-output-to-file dest-exe
(lambda ()

View File

@ -0,0 +1,51 @@
(module macfw mzscheme
(require (lib "process.ss"))
(provide update-framework-path
get-current-framework-path)
(define (update-framework-path fw-path dest mred?)
(let ([dest (if (path? dest)
(path->string dest)
dest)])
(for-each (lambda (p)
(system* "/usr/bin/install_name_tool"
"-change"
(or (get-current-framework-path dest p)
(format "~a.framework/Versions/~a/~a" p (version) p))
(format "~a~a.framework/Versions/~a/~a"
fw-path
p (version) p)
dest))
(if mred?
'("PLT_MzScheme" "PLT_MrEd")
'("PLT_MzScheme")))))
(define (get-current-framework-path dest p)
(let-values ([(r w) (make-pipe)])
(parameterize ([current-output-port w])
(system* "/usr/bin/otool"
"-L"
(if (path? dest)
(path->string dest)
dest)))
(close-output-port w)
(let ([m (regexp-match (bytes-append #"[\r\n][ \t]*([^ \t][^\r\n]*"
(string->bytes/utf-8 p)
#"[^\r\n]*)"
#" [(]compatibility version [0-9.]*,"
#" current version [0-9.]*[)][\r\n]")
r)])
(if m
(bytes->string/utf-8 (cadr m))
(begin
(fprintf (current-error-port)
"warning: cannot find existing link for ~a in ~a\n"
p dest)
#f))))))

View File

@ -22,47 +22,21 @@ executables.
The optional `aux' argument is an association list for
platform-specific options (i.e., it is a list of pairs where the
first element of the pair is a key symbol and the second element is
the value for that key). The currently supported keys are as
follows:
the value for that key). See `make-embedding-executable' (from the
"compiler" collection) for a list that applies to Windows launchers
and Mac OS X MrEd launchers; the following additional associations
apply to launchers:
_'icns_ (Mac OS X) - an icon file path (suffix ".icns") to
use for the executable's desktop icon
_'ico_ (Windows) - an icon file path (suffix ".ico") to
use for the executable's desktop icon; the executable
will have 16x16, 32x32, and 48x48 icons at 4-bit,
8-bit, and 32-bit (RBBA) depths; the icons are
copied and generated from any 16x16, 32x32, and 48x48
icons in the ".ico" file
_'independent?_ (Windows) - a boolean; #t creates an old-style
_'independent?_ (Windows) - a boolean; #t creates an old-style
launcher that is independent of the MzScheme or MrEd
binary, like "Setup PLT.exe"
binary, like "Setup PLT.exe"; no other `aux'
associations are used for an old-style launcher
-'exe-name_ (Mac OS X, MrEd 'script[-3m] variant) - provides the
base name for a 'normal variant launcher, which the
script will call ignoring `args'; if this name is not
script will call (ignoring `args'); if this name is not
provided, the script will go through the MrEd executable
_'creator_ (Mac OS X) - provides a 4-character string to use as
the application signature.
_'file-types_ (Mac OS X) - provides a list of association lists,
one for each type of file handled by the application;
each association is a 2-element list, where the first (key)
element is a string recognized by Finder, and the second
element is a plist value (see doc.txt in the "xml" collection);
see plt/collects/drscheme/drscheme.filetypes for an example.
-'resource-files_ (Mac OS X) - extra files to copy into the
"Resources" directory of the generated executable
_'forget-exe?_ (Windows, Mac OS X) - a boolean; #t does not
preserve the original executable name for
`(find-system-path 'exec-file)'; the main consequence is
that library collections will be found relative to the
launcher instead of the original executable
See also `build-aux-from-path' below. The default `aux' is `null'.
For Unix/X, the script created by `make-mred-launcher' detects and

View File

@ -729,10 +729,11 @@
(for-each
(lambda (mzln mzll mzlf)
(let ([p (program-launcher-path mzln)]
[aux (cons `(exe-name . ,mzln)
(build-aux-from-path
(build-path (cc-path cc)
(path-replace-suffix (or mzll mzln) #""))))])
[aux (list* `(exe-name . ,mzln)
'(framework-root . #f)
(build-aux-from-path
(build-path (cc-path cc)
(path-replace-suffix (or mzll mzln) #""))))])
(unless (up-to-date? p aux)
(setup-printf "Installing ~a~a launcher ~a"
kind (if (eq? (current-launcher-variant) 'normal)

View File

@ -34,7 +34,7 @@
(load-relative "pretty.ss")
(load-relative "package.ss")
;; (load-relative "package.ss")
(load-relative "contract-test.ss")

17
src/configure vendored
View File

@ -314,7 +314,7 @@ ac_subdirs_all="$ac_subdirs_all foreign/gcc/libffi"
ac_subdirs_all="$ac_subdirs_all llvm/llvm"
ac_subdirs_all="$ac_subdirs_all wxcommon/jpeg"
ac_subdirs_all="$ac_subdirs_all wxxt/src/x/wbuild"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CXX CXXFLAGS ac_ct_CXX CXXCPP RANLIB ac_ct_RANLIB PERL X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS PREFLAGS COMPFLAGS PROFFLAGS SED AS AR STATIC_AR ARFLAGS WBUILD CC_FOR_BUILD REZ MZLINKER PLAIN_CC DYN_CFLAGS x_includes x_libraries OPTIONS MZOPTIONS CGCOPTIONS GC2OPTIONS MROPTIONS GCDIR MZBINTARGET MZINSTALLTARGET EXTRA_GMP_OBJ OSX NOT_OSX FRAMEWORK_INSTALL_DIR MREDLINKER LIBSFX WXLIBS WXVARIANT ICP MRLIBINSTALL LIBFINISH MAKE_MRED MAKE_MRED3M MAKE_MREDINSTALL MAKE_MREDINSTALL3M MAKE_WBUILD MAKE_COPYTREE MAKE_FINISH WXPRECOMP USE_WXPRECOMP INCLUDEDEP WX_MMD_FLAG JPEG_A JPEG_INC ZLIB_A ZLIB_INC PNG_A OSKHOME EXTRA_OSK_LIBS FOREIGN_OBJSLIB_IF_USED FOREIGN_LIB_IF_USED FOREIGN_OBJSLIB FOREIGN_CONVENIENCE FOREIGNTARGET LIBMZSCHEME_DEP LIBMRED_DEP LLVMTARGET LTO LTA subdirs LIBOBJS LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CXX CXXFLAGS ac_ct_CXX CXXCPP RANLIB ac_ct_RANLIB PERL X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS PREFLAGS COMPFLAGS PROFFLAGS SED AS AR STATIC_AR ARFLAGS WBUILD CC_FOR_BUILD REZ MZLINKER PLAIN_CC DYN_CFLAGS x_includes x_libraries OPTIONS MZOPTIONS CGCOPTIONS GC2OPTIONS MROPTIONS GCDIR MZBINTARGET MZINSTALLTARGET EXTRA_GMP_OBJ OSX NOT_OSX FRAMEWORK_INSTALL_DIR FRAMEWORK_REL_INSTALL MREDLINKER LIBSFX WXLIBS WXVARIANT ICP MRLIBINSTALL LIBFINISH MAKE_MRED MAKE_MRED3M MAKE_MREDINSTALL MAKE_MREDINSTALL3M MAKE_WBUILD MAKE_COPYTREE MAKE_FINISH WXPRECOMP USE_WXPRECOMP INCLUDEDEP WX_MMD_FLAG JPEG_A JPEG_INC ZLIB_A ZLIB_INC PNG_A OSKHOME EXTRA_OSK_LIBS FOREIGN_OBJSLIB_IF_USED FOREIGN_LIB_IF_USED FOREIGN_OBJSLIB FOREIGN_CONVENIENCE FOREIGNTARGET LIBMZSCHEME_DEP LIBMRED_DEP LLVMTARGET LTO LTA subdirs LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@ -890,6 +890,7 @@ Optional Features:
--enable-noopt drop -O C flags
--enable-xonx compile X11 (not Quartz) MrEd for Mac OS X
--enable-libfw install Mac OS X frameworks to /Library/Frameworks
--enable-userfw install Mac OS X frameworks to ~/Library/Frameworks
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@ -1508,6 +1509,11 @@ fi;
if test "${enable_libfw+set}" = set; then
enableval="$enable_libfw"
fi;
# Check whether --enable-libfw or --disable-libfw was given.
if test "${enable_libfw+set}" = set; then
enableval="$enable_libfw"
fi;
###### Get OS Type #######
@ -8622,8 +8628,13 @@ case $OS in
enable_pthread=no
if test "${enable_libfw}" = "yes" ; then
FRAMEWORK_INSTALL_DIR=/Library/Frameworks
else
FRAMEWORK_REL_INSTALL=no
elif test "${enable_userfw}" = "yes" ; then
FRAMEWORK_INSTALL_DIR=~/Library/Frameworks
FRAMEWORK_REL_INSTALL=no
else
FRAMEWORK_INSTALL_DIR='${LIBIDIR}'
FRAMEWORK_REL_INSTALL=yes
fi
else
PREFLAGS="$PREFLAGS -DXONX "
@ -11068,6 +11079,7 @@ LIBS="$LIBS $EXTRALIBS"
mk_needed_dir()
@ -11903,6 +11915,7 @@ s,@EXTRA_GMP_OBJ@,$EXTRA_GMP_OBJ,;t t
s,@OSX@,$OSX,;t t
s,@NOT_OSX@,$NOT_OSX,;t t
s,@FRAMEWORK_INSTALL_DIR@,$FRAMEWORK_INSTALL_DIR,;t t
s,@FRAMEWORK_REL_INSTALL@,$FRAMEWORK_REL_INSTALL,;t t
s,@MREDLINKER@,$MREDLINKER,;t t
s,@LIBSFX@,$LIBSFX,;t t
s,@WXLIBS@,$WXLIBS,;t t

View File

@ -108,10 +108,10 @@ MRFW = PLT_MrEd.framework/Versions/$(FWVERSION)/PLT_MrEd
MRFWRES = PLT_MrEd.framework/Versions/$(FWVERSION)/Resources/PLT_MrEd.rsrc
$(MRFW) : $(MZSCHEME) $(MREDOBJECTS) $(@WXLIBS@) $(MRSTATIC_STUB)
$(MREDLINKER) $(MREDLDFLAGS) -dynamiclib -o $(MRFW) -F../mzscheme -framework PLT_MzScheme $(@WXLIBS@) $(GUILIBS_@WXVARIANT@) @X_EXTRA_LIBS@
$(MREDLINKER) $(MREDLDFLAGS) -dynamiclib -o $(MRFW) -Wl,-headerpad_max_install_names -F../mzscheme -framework PLT_MzScheme $(@WXLIBS@) $(GUILIBS_@WXVARIANT@) @X_EXTRA_LIBS@
MrEd.app/Contents/MacOS/MrEd: $(MRFWRES) $(MRFW) mrmain.@LTO@
$(MREDLINKER) -o MrEd.app/Contents/MacOS/MrEd mrmain.@LTO@ -F. -F../mzscheme -framework PLT_MrEd -framework Carbon -framework PLT_MzScheme @PROFFLAGS@
$(MREDLINKER) -o MrEd.app/Contents/MacOS/MrEd mrmain.@LTO@ -Wl,-headerpad_max_install_names -F. -F../mzscheme -framework PLT_MrEd -framework Carbon -framework PLT_MzScheme @PROFFLAGS@
$(MRFWRES): $(srcdir)/../mac/osx_appl.ss $(srcdir)/../mac/cw/MrEd.r
rm -rf PLT_MrEd.framework/Resources PLT_MrEd.framework/PLT_MrEd
@ -234,6 +234,9 @@ install_wx_xt:
$(MAKE) @MRLIBINSTALL@
cd ..; $(ICP) mred/mred `(cd $(prefix); pwd)`/bin/
LIBIDIR=$(prefix)/lib
BUILDINFO=$(LIBIDIR)/buildinfo
MRFWDIR = @FRAMEWORK_INSTALL_DIR@/PLT_MrEd.framework
install_wx_mac:
@ -241,6 +244,7 @@ install_wx_mac:
rm -rf $(MRFWDIR)/Versions/$(FWVERSION)/Resources
rm -f $(MRFWDIR)/PLT_MrEd
rm -rf $(MRFWDIR)/Resources
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then rm -rf $(MZFWDIR) ; fi
if [ ! -d @FRAMEWORK_INSTALL_DIR@ ] ; then mkdir @FRAMEWORK_INSTALL_DIR@ ; fi
if [ ! -d $(MRFWDIR) ] ; then mkdir $(MRFWDIR) ; fi
if [ ! -d $(MRFWDIR)/Versions ] ; then mkdir $(MRFWDIR)/Versions ; fi
@ -255,9 +259,9 @@ install_wx_mac:
if [ ! -d $(prefix)/collects ] ; then mkdir $(prefix)/collects ; fi
if [ ! -d $(prefix)/collects/launcher ] ; then mkdir $(prefix)/collects/launcher ; fi
cd ..; $(ICP) -r mred/Starter.app $(prefix)/collects/launcher/.
LIBIDIR=$(prefix)/lib
BUILDINFO=$(LIBIDIR)/buildinfo
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then /usr/bin/install_name_tool -change "PLT_MzScheme.framework/Versions/$(FWVERSION)/PLT_MzScheme" "@executable_path/../../../lib/PLT_MzScheme.framework/Versions/$(FWVERSION)/PLT_MzScheme" "$(MRFWDIR)/Versions/$(FWVERSION)/PLT_MrEd" ; fi
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then /usr/bin/install_name_tool -change "PLT_MzScheme.framework/Versions/$(FWVERSION)/PLT_MzScheme" "@executable_path/../../../lib/PLT_MzScheme.framework/Versions/$(FWVERSION)/PLT_MzScheme" "$(prefix)/MrEd.app/Contents/MacOS/MrEd" ; fi
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then /usr/bin/install_name_tool -change "PLT_MrEd.framework/Versions/$(FWVERSION)/PLT_MrEd" "@executable_path/../../../lib/PLT_MrEd.framework/Versions/$(FWVERSION)/PLT_MrEd" "$(prefix)/MrEd.app/Contents/MacOS/MrEd" ; fi
install:
$(MAKE) install_@WXVARIANT@
@ -295,6 +299,9 @@ install-3m_wx_mac:
if [ ! -d $(prefix)/collects ] ; then mkdir $(prefix)/collects ; fi
if [ ! -d $(prefix)/collects/launcher ] ; then mkdir $(prefix)/collects/launcher ; fi
cd ..; $(ICP) -r mred/Starter3m.app $(prefix)/collects/launcher/.
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then /usr/bin/install_name_tool -change "PLT_MzScheme.framework/Versions/$(FWVERSION)_3m/PLT_MzScheme" "@executable_path/../../../lib/PLT_MzScheme.framework/Versions/$(FWVERSION)_3m/PLT_MzScheme" "$(MRFWDIR)/Versions/$(FWVERSION)_3m/PLT_MrEd" ; fi
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then /usr/bin/install_name_tool -change "PLT_MzScheme.framework/Versions/$(FWVERSION)_3m/PLT_MzScheme" "@executable_path/../../../lib/PLT_MzScheme.framework/Versions/$(FWVERSION)_3m/PLT_MzScheme" "$(prefix)/MrEd3m.app/Contents/MacOS/MrEd3m" ; fi
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then /usr/bin/install_name_tool -change "PLT_MrEd.framework/Versions/$(FWVERSION)_3m/PLT_MrEd" "@executable_path/../../../lib/PLT_MrEd.framework/Versions/$(FWVERSION)_3m/PLT_MrEd" "$(prefix)/MrEd3m.app/Contents/MacOS/MrEd3m" ; fi
install-3m:
$(MAKE) install-3m_@WXVARIANT@

View File

@ -1366,13 +1366,13 @@ MRFW = PLT_MrEd.framework/Versions/$(FWVERSION)_3m/PLT_MrEd
MRFWRES = PLT_MrEd.framework/Versions/$(FWVERSION)_3m/Resources/PLT_MrEd.rsrc
../MrEd3m.app/Contents/MacOS/MrEd3m: $(MRFWRES) $(MRFW) mrmain.@LTO@
$(MREDLINKER) -o ../MrEd3m.app/Contents/MacOS/MrEd3m mrmain.@LTO@ -F. -F../../mzscheme/gc2 -framework PLT_MrEd -framework Carbon -framework PLT_MzScheme
$(MREDLINKER) -o ../MrEd3m.app/Contents/MacOS/MrEd3m mrmain.@LTO@ -Wl,-headerpad_max_install_names -F. -F../../mzscheme/gc2 -framework PLT_MrEd -framework Carbon -framework PLT_MzScheme
if [ ! -d ../PLT_MrEd.framework/Versions/$(FWVERSION)_3m ] ; then mkdir ../PLT_MrEd.framework/Versions/$(FWVERSION)_3m ; fi
cp $(MRFW) ../$(MRFW)
cp -r PLT_MrEd.framework/Versions/$(FWVERSION)_3m/Resources ../PLT_MrEd.framework/Versions/$(FWVERSION)_3m/Resources
$(MRFW) : $(XOBJS) $(@WXVARIANT@_PLAIN_OBJS)
$(MREDLINKER) -dynamiclib -o $(MRFW) -F../../mzscheme/gc2 -framework PLT_MzScheme $(XOBJS) $(@WXVARIANT@_PLAIN_OBJS) $(@WXVARIANT@_LIBS)
$(MREDLINKER) -dynamiclib -o $(MRFW) -F../../mzscheme/gc2 -framework PLT_MzScheme -Wl,-headerpad_max_install_names $(XOBJS) $(@WXVARIANT@_PLAIN_OBJS) $(@WXVARIANT@_LIBS)
$(MRFWRES): $(srcdir)/../../mac/osx_appl.ss $(srcdir)/../../mac/cw/MrEd.r
rm -rf PLT_MrEd.framework/Resources PLT_MrEd.framework/PLT_MrEd

View File

@ -149,7 +149,7 @@ $(MZFW): libmzscheme.@LIBSFX@ libmzgc.@LIBSFX@ $(SPECIALIZINGOBJECTS)
ln -s Versions/$(FWVERSION)/PLT_MzScheme PLT_MzScheme.framework/PLT_MzScheme
mzscheme@OSX@: $(MZFW) main.@LTO@
$(CC) -o mzscheme @PROFFLAGS@ main.@LTO@ -F. -framework PLT_MzScheme
$(CC) -o mzscheme @PROFFLAGS@ main.@LTO@ -Wl,-headerpad_max_install_names -F. -framework PLT_MzScheme
# OSKit ----------------------------------------
@ -252,6 +252,7 @@ clean@OSX@:
$(MAKE) clean@NOT_OSX@
LIBIDIR=`(cd $(prefix); pwd)`/lib
BINDIR=`(cd $(prefix); pwd)`/bin
BUILDINFO=$(LIBIDIR)/buildinfo
ICP=@ICP@
@ -276,7 +277,7 @@ unix-install:
cd ..; if [ ! -d $(LIBIDIR) ] ; then mkdir $(LIBIDIR) ; fi
cd ..; $(ICP) mzscheme/libmzgc.@LIBSFX@ $(LIBIDIR)/libmzgc.@LIBSFX@
cd ..; $(ICP) mzscheme/libmzscheme.@LIBSFX@ $(LIBIDIR)/libmzscheme.@LIBSFX@
cd ..; $(ICP) mzscheme/mzscheme `(cd $(prefix); pwd)`/bin/mzscheme
cd ..; $(ICP) mzscheme/mzscheme "$(BINDIR)/mzscheme"
cd ..; echo 'CC=@CC@' > $(BUILDINFO)
cd ..; echo 'CFLAGS=@CFLAGS@ @PREFLAGS@ @COMPFLAGS@' >> $(BUILDINFO)
cd ..; echo 'OPTIONS=@OPTIONS@' >> $(BUILDINFO)
@ -294,12 +295,14 @@ osx-install:
$(MAKE) normal-install
rm -f $(MZFWDIR)/Versions/$(FWVERSION)/PLT_MzScheme
rm -f $(MZFWDIR)/PLT_MzScheme
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then rm -rf $(MZFWDIR) ; fi
if [ ! -d @FRAMEWORK_INSTALL_DIR@ ] ; then mkdir @FRAMEWORK_INSTALL_DIR@ ; fi
if [ ! -d $(MZFWDIR) ] ; then mkdir $(MZFWDIR) ; fi
if [ ! -d $(MZFWDIR)/Versions ] ; then mkdir $(MZFWDIR)/Versions ; fi
if [ ! -d $(MZFWDIR)/Versions/$(FWVERSION) ] ; then mkdir $(MZFWDIR)/Versions/$(FWVERSION) ; fi
cp $(MZFW) $(MZFWDIR)/Versions/$(FWVERSION)/
ln -s Versions/$(FWVERSION)/PLT_MzScheme $(MZFWDIR)/
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then /usr/bin/install_name_tool -change "PLT_MzScheme.framework/Versions/$(FWVERSION)/PLT_MzScheme" "@executable_path/../lib/PLT_MzScheme.framework/Versions/$(FWVERSION)/PLT_MzScheme" "$(BINDIR)/mzscheme" ; fi
MZFWMMM = PLT_MzScheme.framework/Versions/$(FWVERSION)_3m/PLT_MzScheme
@ -308,6 +311,7 @@ install-3m@OSX@:
rm -f $(MZFWDIR)/Versions/$(FWVERSION)_3m/PLT_MzScheme
if [ ! -d $(MZFWDIR)/Versions/$(FWVERSION)_3m ] ; then mkdir $(MZFWDIR)/Versions/$(FWVERSION)_3m ; fi
cp $(MZFWMMM) $(MZFWDIR)/Versions/$(FWVERSION)_3m/
if [ @FRAMEWORK_REL_INSTALL@ = yes ] ; then /usr/bin/install_name_tool -change "PLT_MzScheme.framework/Versions/$(FWVERSION)_3m/PLT_MzScheme" "@executable_path/../lib/PLT_MzScheme.framework/Versions/$(FWVERSION)_3m/PLT_MzScheme" "$(BINDIR)/mzscheme3m" ; fi
WLIBIDIR=`(cd $(prefix); pwd)`/lib
WBUILDINFO=$(WLIBIDIR)/buildinfo

View File

@ -63,6 +63,7 @@ AC_ARG_ENABLE(noopt, [ --enable-noopt drop -O C flags])
AC_ARG_ENABLE(xonx, [ --enable-xonx compile X11 (not Quartz) MrEd for Mac OS X])
AC_ARG_ENABLE(libfw, [ --enable-libfw install Mac OS X frameworks to /Library/Frameworks])
AC_ARG_ENABLE(libfw, [ --enable-userfw install Mac OS X frameworks to ~/Library/Frameworks])
###### Get OS Type #######
@ -494,8 +495,13 @@ case $OS in
enable_pthread=no
if test "${enable_libfw}" = "yes" ; then
FRAMEWORK_INSTALL_DIR=/Library/Frameworks
else
FRAMEWORK_REL_INSTALL=no
elif test "${enable_userfw}" = "yes" ; then
FRAMEWORK_INSTALL_DIR=~/Library/Frameworks
FRAMEWORK_REL_INSTALL=no
else
FRAMEWORK_INSTALL_DIR='${LIBIDIR}'
FRAMEWORK_REL_INSTALL=yes
fi
else
PREFLAGS="$PREFLAGS -DXONX "
@ -1044,6 +1050,7 @@ AC_SUBST(EXTRA_GMP_OBJ)
AC_SUBST(OSX)
AC_SUBST(NOT_OSX)
AC_SUBST(FRAMEWORK_INSTALL_DIR)
AC_SUBST(FRAMEWORK_REL_INSTALL)
AC_SUBST(MREDLINKER)
AC_SUBST(LIBSFX)

View File

@ -305,7 +305,7 @@ $(MZFWMMM): $(OBJS) $(EXTRA_OBJS_T)
ln -s Versions/$(FWVERSION)_3m/PLT_MzScheme PLT_MzScheme.framework/PLT_MzScheme
../mzscheme3m@OSX@: $(MZFWMMM) main.@LTO@
$(CC) -o ../mzscheme3m main.@LTO@ -F. -framework PLT_MzScheme
$(CC) -o ../mzscheme3m main.@LTO@ -Wl,-headerpad_max_install_names -F. -framework PLT_MzScheme
if [ ! -d ../PLT_MzScheme.framework/Versions/$(FWVERSION)_3m ] ; then mkdir ../PLT_MzScheme.framework/Versions/$(FWVERSION)_3m ; fi
cp PLT_MzScheme.framework/Versions/$(FWVERSION)_3m/PLT_MzScheme ../PLT_MzScheme.framework/Versions/$(FWVERSION)_3m/PLT_MzScheme