a project to simplify installation of open source software
on Mac OS X and Darwin
# $Id: Portfile 22478 2007-03-02 05:16:40Z pipping@macports.org $
PortSystem 1.0
name cm3
version 5.2.6
revision 1
categories lang
platforms darwin
maintainers nomaintainer@macports.org
homepage http://www.elegosoft.com/cm3/
description Critical Mass Modula-3 Compiler
long_description CM3 5.2 is an open source release of Critical Mass Modula-3. \
It is a complete easy-to-use and easy-to-install Modula-3 system \
that contains considerable enhancements over its ancestor DEC SRC Modula-3.
master_sites ${homepage}
distfiles cm3-src-all-${version}.tgz
checksums cm3-src-all-${version}.tgz md5 \
44fd8c9c905707e4f9835eaf6b747127
worksrcdir cm3
extract.dir ${worksrcpath}
pre-extract "file mkdir ${workpath}/${worksrcdir}"
# Add a path entry for the bootstrap cm3 compiler
build.env PATH=$env(PATH):${workpath}/bootstrap/bin
# M3 requires a bootstrap compiler to build
# This port currently supports only Darwin/PPC
variant darwin powerpc {
distfiles-append cm3-min-POSIX-PPC_DARWIN-${version}.tgz
checksums-append cm3-min-POSIX-PPC_DARWIN-${version}.tgz md5 \
6b1421b926731c36c0fc98e86f08c24c
# Apple's cpp-precomp in Jaguar (10.2) incorrectly handles
# gcc 'poisoned' tokens, so we turn it off.
# It only makes the build take longer anyway.
patchfiles patch-fix-cpp-precomp.diff
}
variant freebsd i386 {
distfiles-append cm3-min-POSIX-FreeBSD4-${version}.tgz
checksums-append cm3-min-POSIX-FreeBSD4-${version}.tgz md5 \
162156b414ffebd24c8f0ab9b71ee5e8
}
post-extract {
# Create bootstrap directory and extract the cm3 bootstrap to it
file mkdir ${workpath}/bootstrap
system "tar -C ${workpath}/bootstrap -zxf ${worksrcpath}/system.tgz"
}
configure {
# Configure the bootstrap
file copy -force \
${filespath}/${os.platform}-cm3.cfg ${workpath}/bootstrap/bin/cm3.cfg
reinplace \
s|@USE_ROOT@|\"${workpath}/bootstrap\"|g \
${workpath}/bootstrap/bin/cm3.cfg
reinplace \
s|@INSTALL_ROOT@|\"${destroot}${prefix}/cm3\"|g \
${workpath}/bootstrap/bin/cm3.cfg
reinplace \
s|@PREFIX@|\"${prefix}/cm3\"|g \
${workpath}/bootstrap/bin/cm3.cfg
}
build {
set cm3-buildscript "cd ${worksrcpath}/scripts && env ${build.env}"
# build core distribution
system "${cm3-buildscript} ./do-cm3-core.sh buildship"
# build tcp package
system "${cm3-buildscript} ./do-pkg.sh buildship tcp"
}
destroot {
# create a link to cm3 (m3 compiler) in ${prefix}/cm3/bin
system "cd ${destroot}/${prefix}/cm3/bin/ && ln -s ../pkg/cm3/PPC_DARWIN/cm3"
# copy bootstrap configuration file to destroot
file copy -force \
${filespath}/${os.platform}-cm3.cfg ${destroot}/${prefix}/cm3/bin/cm3.cfg
# update file paths to reflect final installation paths
reinplace \
s|@INSTALL_ROOT@|\"${prefix}/cm3\"|g \
${destroot}/${prefix}/cm3/bin/cm3.cfg
reinplace \
s|@USE_ROOT@|\"${prefix}/cm3\"|g \
${destroot}/${prefix}/cm3/bin/cm3.cfg
reinplace \
s|@PREFIX@|\"${prefix}/cm3\"|g \
${destroot}/${prefix}/cm3/bin/cm3.cfg
}