Rewrote the initialization code so that sequential invocation of targets will succeed.

Fix https://trac.macports.org/ticket/16034 with supplied patch.

Start to address https://trac.macports.org/ticket/16518, but not sure if complete.

git-svn-id: https://svn.macports.org/repository/macports/users/easieste@39964 d073be05-634f-4543-b044-5fe20cf6d1d6
This commit is contained in:
Mark Evenson
2008-09-14 13:09:20 +00:00
parent 26332e5e51
commit 71819a94db
+105 -90
View File
@@ -6,6 +6,7 @@ PortSystem 1.0
name slime
version 20080404
epoch 20080404
revision 1
categories lang
platforms darwin
maintainers evenson@panix.com
@@ -20,9 +21,9 @@ long_description \
`lisp-mode' supports editing Lisp source files, \
`slime-mode' adds support for interacting with a \
running Common Lisp process for compilation,\
debugging, documentation lookup, and so on.
debugging, documentation lookup, and so on.
homepage http://common-lisp.net/project/slime/
homepage http://common-lisp.net/project/slime/
master_sites ${homepage}
fetch.type cvs
cvs.root :pserver:anonymous@common-lisp.net:/project/slime/cvsroot
@@ -33,125 +34,139 @@ worksrcdir slime
use_configure no
depends_lib port:emacs
default_variants +sbcl
variant app description "Build SLIME against editors/emacs-app" {
variant app description "Build SLIME against editors/emacs-app" {
depends_run-append port:emacs-app
depends_run-delete port:emacs
}
default_variants +sbcl
variant sbcl description "Require lang/sbcl for SLIME" {
depends_run-append port:sbcl
}
variant openmcl description "Require lang/openmcl for SLIME" {
variant openmcl description "Require lang/openmcl for SLIME" {
depends_run-append port:openmcl
}
variant clisp description "Require lang/clisp for SLIME" {
variant clisp description "Require lang/clisp for SLIME" {
depends_run-append port:clisp
}
post-patch {
reinplace "s|/usr/local|${prefix}/share|g" \
${worksrcpath}/doc/makefile
}
platform darwin {
global slime_emacs_binary
global slime_site_lisp_dest
global slime_site_lisp_contrib
global slime_byte_compile_p
global slime_site_lisp_dest_contrib
if {[ variant_isset app ]} {
set slime_emacs_binary /Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs
set slime_site_lisp_dest ${destroot}/Applications/MacPorts/Emacs.app/Contents/Resources/site-lisp
set slime_site_lisp_contrib /Applications/MacPorts/Emacs.app/Contents/Resources/site-lisp
} else {
set slime_emacs_binary ${prefix}/bin/emacs
set slime_site_lisp_dest ${destroot}${prefix}/share/emacs/site-lisp/slime
set slime_site_lisp_contrib ${prefix}/share/emacs/site-lisp/contrib
}
set slime_site_lisp_dest_contrib ${slime_site_lisp_dest}/contrib
# kludge if 'emacs+carbon' is installed
if {[regexp carbon [join [registry_installed emacs]]]} {
set slime_emacs_binary /Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs
}
if {! [file executable ${slime_emacs_binary}]} {
set slime_byte_compile_p 0
ui_msg "Couldn't find an executable Emacs image so won't byte compile."
} else {
set slime_byte_compile_p 1
ui_msg "Emacs binary used for byte compilation is ${slime_emacs_binary}."
set slime_emacs_binary [
if { [regexp carbon [join [registry_installed emacs]]] || [ variant_isset app ] } {
list "/Applications/MacPorts/Emacs.app/Contents/MacOS/Emacs"
} else {
list "${prefix}/bin/emacs"
}
}
build {
cd ${worksrcpath}
upvar #0 slime_emacs_binary emacs_bin
if {${slime_byte_compile_p}} {
system "${emacs_bin} \
--batch --directory . --funcall batch-byte-compile \
slime.el \
slime-autoloads.el \
hyperspec.el"
]
ui_msg "slime_emacs_binary is $slime_emacs_binary"
cd ${worksrcpath}/contrib
system "${emacs_bin} \
--batch \
--directory . --directory .. \
--funcall batch-byte-compile \
bridge.el \
inferior-slime.el \
slime-asdf.el \
slime-parse.el \
slime-autodoc.el \
slime-banner.el \
slime-c-p-c.el \
slime-editing-commands.el \
slime-fancy-inspector.el \
slime-fancy.el \
slime-fuzzy.el \
slime-highlight-edits.el \
slime-indentation.el \
slime-motd.el \
slime-parse.el \
slime-presentation-streams.el \
slime-presentations.el \
slime-references.el \
slime-scheme.el \
slime-scratch.el \
slime-tramp.el \
slime-typeout-frame.el \
slime-xref-browser.el"
set slime_site_lisp_dir [
if {[ variant_isset app ]} {
list "${destroot}/Applications/MacPorts/Emacs.app/Contents/Resources/site-lisp/slime"
} else {
list "${destroot}${prefix}/share/emacs/site-lisp/slime"
}
]
set slime_site_lisp_contrib_dir ${slime_site_lisp_dir}/contrib
set slime_byte_compile_p 0
post-patch {
reinplace "s|/usr/local|${prefix}/share|g" \
${worksrcpath}/doc/Makefile
}
configure {
# if {! [file executable ${slime_emacs_binary}]} {
# set slime_byte_compile_p 0
# ui_msg "Couldn't find an executable Emacs image so won't byte compile the Elisp files."
# } else {
# set slime_byte_compile_p 1
# ui_msg "Emacs binary used for byte compilation is ${slime_emacs_binary}."
# }
set slime_byte_compile_p 0
}
build {
cd ${worksrcpath}
if {${slime_byte_compile_p}} {
system "${slime_emacs_binary} \
-batch \
--directory ${worksrcpath} --directory ${worksrcpath}/contrib \
--funcall batch-byte-compile \
contrib/*.el"
system "${slime_emacs_binary} \
-batch \
--directory ${worksrcpath} --directory ${worksrcpath}/contrib \
--funcall batch-byte-compile \
*.el"
# system "${slime_emacs_binary} \
# --batch --directory $pwd --directory contrib \
# --funcall batch-byte-compile \
# *.el"
# system "${slime_emacs_binary} \
# --batch --directory . --funcall batch-byte-compile \
# slime.el \
# slime-autoloads.el \
# hyperspec.el"
# cd ${worksrcpath}/contrib
# system "${slime_emacs_binary} \
# --batch \
# --directory . --directory .. \
# --funcall batch-byte-compile \
# slime.el slime-autoloads.el \
# hyperspec.el \
# bridge.el \
# inferior-slime.el \
# slime-asdf.el \
# slime-parse.el \
# slime-autodoc.el \
# slime-banner.el \
# slime-c-p-c.el \
# slime-editing-commands.el \
# slime-fancy-inspector.el \
# slime-fancy.el \
# slime-fuzzy.el \
# slime-highlight-edits.el \
# slime-indentation.el \
# slime-motd.el \
# slime-parse.el \
# slime-presentation-streams.el \
# slime-presentations.el \
# slime-references.el \
# slime-scheme.el \
# slime-scratch.el \
# slime-tramp.el \
# slime-typeout-frame.el \
# slime-xref-browser.el"
}
cd ${worksrcpath}/doc
system "make slime.info"
}
destroot {
destroot {
cd ${worksrcpath}
xinstall -m 755 -d ${slime_site_lisp_dest}
xinstall -m 755 -d ${slime_site_lisp_dir}
foreach file [glob *.el *.elc *.lisp ChangeLog] {
xinstall -m 644 ${file} ${slime_site_lisp_dest}
xinstall -m 644 ${file} ${slime_site_lisp_dir}
}
cd ${worksrcpath}/contrib
xinstall -m 755 -d ${slime_site_lisp_dest_contrib}
xinstall -m 755 -d ${slime_site_lisp_contrib_dir}
foreach file [glob *.el *.elc *.lisp ChangeLog] {
xinstall -m 644 ${file} ${slime_site_lisp_dest_contrib}
xinstall -m 644 ${file} ${slime_site_lisp_contrib_dir}
}
xinstall -m 644 ${worksrcpath}/doc/slime.info ${destroot}${prefix}/share/info
xinstall -m 644 ${worksrcpath}/doc/slime.info ${destroot}${prefix}/share/info
}
post-activate {
post-activate {
ui_msg "To use SLIME, you need to have a Common Lisp installed with which"
ui_msg "you wish to interact. At the moment, 'openmcl', 'sbcl', and"
ui_msg "'clisp' all work. By default, MacPorts SLIME installs 'sbcl' as a"
@@ -172,7 +187,7 @@ post-activate {
ui_msg "(eval-after-load \"slime\""
ui_msg " \'(slime-setup '(slime-fancy slime-banner)))"
ui_msg ""
ui_msg "Populate the initialization list in SLIME-LISP-IMPLEMENTATIONS"
ui_msg "Populate the initialization list in SLIME-LISP-IMPLEMENTATIONS"
ui_msg "with the correct paths to the Common Lisp exectuables you wish to use."
ui_msg ""
ui_msg "Then, 'M-x slime' from Emacs should connect you to the first"