# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id$ PortSystem 1.0 name squeak version 3.9 revision 1 categories lang license MIT maintainers nomaintainer description Full, portable, Smalltalk-80 system long_description Squeak is a full-featured implementation of the \ Smalltalk programming language and environment \ based on (and largely compatible with) the \ original Smalltalk-80 system. Squeak has very \ powerful 2- and 3-D graphics, sound, video, MIDI, \ animation and other multimedia capabilities -- and \ one of the most impressive development \ environments ever created. It also includes \ a customisable framework for creating dynamic HTTP \ servers and interactively extensible Web sites. \ The entire Squeak system is open source software, \ distributed freely with a liberal license. platforms darwin homepage http://www.squeak.org set squeak_vm_version 3.9-8 set squeak_img_version 3.9 set squeak_short_vrsn 39 set squeak_patch_no 7067 set squeak_vm_src Squeak-${squeak_vm_version}.src.tar set squeak_img_name Squeak${squeak_img_version}-final-${squeak_patch_no} set squeak_img ${squeak_img_name}.image set squeak_img_changes ${squeak_img_name}.changes set squeak_img_src ${squeak_img_name}.zip master_sites http://www.squeakvm.org/unix/release/ \ ftp://ftp.squeak.org/3.8/unix-linux \ ftp://ftp.squeak.org/${squeak_img_version}/ distname Squeak-${squeak_img_version} distfiles ${squeak_vm_src}.gz ${squeak_img_src} checksums ${squeak_vm_src}.gz md5 645ef7e321c61601c9c70d94fa9417e4 \ ${squeak_img_src} md5 30d991c418be1cd9c5d05fb87dea2f19 extract.only ${squeak_vm_src}.gz post-extract { system "cd ${workpath} && mv Squeak-${squeak_vm_version} Squeak-${squeak_img_version}" file mkdir ${worksrcpath}/build # should do that but requires to rerun autoconf, I prefer to just patch inisqueak instead # reinplace "s|imgdir=`eval echo \${libdir}/squeak`|imgdir=`eval echo \${datadir}`|" ${worksrcpath}/platforms/unix/config/configure.ac # reinplace "s|plgdir=`eval echo \${imgdir}/\${VM_VERSION}`|plgdir=`eval echo \${libdir}/squeak/\${VM_VERSION}|" ${worksrcpath}/platforms/unix/config/configure.ac } configure.cmd ../platforms/unix/config/configure configure.dir ${worksrcpath}/build configure.args --libdir=${prefix}/lib \ --mandir=${prefix}/share/man \ --without-quartz --without-x build.dir ${worksrcpath}/build build.type gnu destroot.destdir ROOT=${destroot} post-destroot { set unzip "[binaryInPath "unzip"] -o" set gzip "[binaryInPath "gzip"] -f" set datadir ${prefix}/share/squeak # Have inisqueak look at the right place reinplace "s|MAJOR=3|MAJOR=${squeak_short_vrsn}|" ${worksrcpath}/build/inisqueak reinplace "s|imgdir=${prefix}/lib/squeak|imgdir=${datadir}|" ${worksrcpath}/build/inisqueak # Install inisqueak xinstall -m 755 ${worksrcpath}/build/inisqueak ${destroot}${prefix}/bin/ # fix bad doc install path (should use --docdir or --datarootdir during configure) xinstall -d ${destroot}${datadir} move ${destroot}${prefix}/doc ${destroot}${prefix}/share # Recompress and install the default image system "cd ${worksrcpath} && ${unzip} ${distpath}/${squeak_img_src}" system "cd ${worksrcpath} && ${gzip} ${squeak_img_name}/${squeak_img}" system "cd ${worksrcpath} && ${gzip} ${squeak_img_name}/${squeak_img_changes}" xinstall -d ${destroot}${datadir} xinstall -m 644 ${worksrcpath}/${squeak_img_name}/${squeak_img}.gz \ ${destroot}${datadir} xinstall -m 644 ${worksrcpath}/${squeak_img_name}/${squeak_img_changes}.gz \ ${destroot}${datadir} xinstall -m 644 ${worksrcpath}/${squeak_img_name}/WelcomeSqueak${squeak_short_vrsn} \ ${destroot}${datadir} xinstall -m 644 ${worksrcpath}/${squeak_img_name}/SqueakV${squeak_short_vrsn}.sources \ ${destroot}${datadir} # Link compressed image and changes system "cd ${destroot}${datadir} && ln -s ${squeak_img}.gz squeak.image.gz" system "cd ${destroot}${datadir} && ln -s ${squeak_img_changes}.gz squeak.changes.gz" } # "quartz" support uses NSQuickDrawView if {${os.subplatform} eq "macosx" && ((![variant_isset universal] && ![string match *64 $build_arch]) || ([variant_isset universal] && ![string match *64* $universal_archs])) } then { variant quartz { configure.args-delete --without-quartz configure.args-append --with-quartz } default_variants +quartz } variant x11 { depends_lib-append port:mesa \ port:xorg-libsm configure.args-delete --without-x configure.args-append --with-x }