# $Id: Portfile 52801 2009-06-23 12:33:35Z gwright@macports.org $

PortSystem 1.0

name		sbcl
version		1.0.29
revision	1
set subrevision	"-r2"
categories	lang
maintainers	gwright waqar
platforms	darwin
description	The Steel Bank Common Lisp system
long_description	\
		Steel Bank Common Lisp (SBCL) is a Open Source		\
		development system for ANSI Common Lisp. It provides an	\
		interactive environment including an integrated native	\
		compiler, interpreter, and debugger. (And it, and its	\
		generated code, can also play nicely with Unix when	\
		running noninteractively.)

homepage	http://www.sbcl.org
master_sites	sourceforge
use_bzip2	yes

platform powerpc {
		   set bootversion 1.0.22
		   distfiles-append ${name}-${bootversion}-powerpc-darwin-binary${extract.suffix}
		   checksums-append ${name}-${bootversion}-powerpc-darwin-binary${extract.suffix} \
			md5 61179259f7a7cccfa731f652f5edd29c

		   global host_lisp
		   set host_lisp	"\"${workpath}/${name}-${bootversion}-powerpc-darwin/src/runtime/sbcl --core ${workpath}/${name}-${bootversion}-powerpc-darwin/output/sbcl.core --disable-debugger --sysinit /dev/null --userinit /dev/null\" "
}

platform darwin 8 i386     {
		   set bootversion 1.0.10
		   distfiles-append ${name}-${bootversion}-x86-darwin-binary${extract.suffix}
		   checksums-append ${name}-${bootversion}-x86-darwin-binary${extract.suffix} \
			md5 8684c781efd9667280f49b354cc83275

		   global host_lisp
		   set host_lisp	"\"${workpath}/${name}-${bootversion}-x86-darwin/src/runtime/sbcl --core ${workpath}/${name}-${bootversion}-x86-darwin/output/sbcl.core --disable-debugger --sysinit /dev/null --userinit /dev/null\" "
}

platform darwin 9 i386     {
		   set bootversion 1.0.12
		   distfiles-append ${name}-${bootversion}-x86-darwin-binary${extract.suffix}
		   checksums-append ${name}-${bootversion}-x86-darwin-binary${extract.suffix} \
			md5 5c8e50fad3994ab5fb619d76260bd619

		   global host_lisp
		   set host_lisp	"\"${workpath}/${name}-${bootversion}-x86-darwin/src/runtime/sbcl --core ${workpath}/${name}-${bootversion}-x86-darwin/output/sbcl.core --disable-debugger --sysinit /dev/null --userinit /dev/null\" "
}

patchfiles	patch-use-mach-exception-handler.diff

		
distfiles	${name}-${version}-source${subrevision}${extract.suffix}

distname	${name}-${version}-source${subrevision}
worksrcdir	${name}-${version}

checksums	${distname}${extract.suffix}				\
                    md5     0dd65614533972500bbcd341de17182d		\
                    sha1    20105ec4edb370d85e8a5e4852b16ddb151d43fd	\
                    rmd160  54db825840b4e2cd00a9d86fd435df1eacaae61b

post-patch	{
	reinplace "s|/usr/local/lib/${name}|${prefix}/lib/${name}|g" \
                            ${worksrcpath}/src/runtime/runtime.c
	reinplace "s|/usr/local/lib/${name}|${prefix}/lib/${name}|g" \
                            ${worksrcpath}/doc/sbcl.1
}

use_configure	no


build		{
	system "ulimit -s 8192"
	system "unset LD_PREBIND && unset LD_PREBIND_ALLOW_OVERLAP && sh make.sh ${host_lisp}"
}

post-build {
	if {[variant_isset html]} {
		system "cd ${worksrcpath}/doc; INSTALL_ROOT=${destroot}${prefix} sh ${worksrcpath}/doc/make-doc.sh"
	}
}

default_variants	+html

variant html description {Builds the SBCL and ASDF documentation as HTML} {} 

variant threads description {enable threaded runtime} {
	patchfiles-append patch-base-target-features.diff
}

test.run	yes
test.dir	${worksrcpath}/tests
test.cmd	sh
test.target	run-tests.sh

destroot	{ system "cd ${worksrcpath}; INSTALL_ROOT=${destroot}/${prefix} sh ${worksrcpath}/install.sh"
}

