aboutsummaryrefslogtreecommitdiffstats
path: root/lang/modula-3
diff options
context:
space:
mode:
authorjdp <jdp@FreeBSD.org>1996-03-21 06:10:19 +0800
committerjdp <jdp@FreeBSD.org>1996-03-21 06:10:19 +0800
commit7ca6b48b50a5b54eb990a10dbcb4182efb4a6870 (patch)
treeb99d9f15b52122bd8ecfc068314507a6532e0ffd /lang/modula-3
parent8a454d313313fb29b52f872302e1ff19ecb3f2e2 (diff)
downloadfreebsd-ports-graphics-7ca6b48b50a5b54eb990a10dbcb4182efb4a6870.tar.gz
freebsd-ports-graphics-7ca6b48b50a5b54eb990a10dbcb4182efb4a6870.tar.zst
freebsd-ports-graphics-7ca6b48b50a5b54eb990a10dbcb4182efb4a6870.zip
Modula-3 language system from DEC Systems Research Center.
Diffstat (limited to 'lang/modula-3')
-rw-r--r--lang/modula-3/Makefile94
-rw-r--r--lang/modula-3/pkg-comment1
-rw-r--r--lang/modula-3/pkg-descr39
-rw-r--r--lang/modula-3/pkg-plist87
-rw-r--r--lang/modula-3/scripts/configure14
-rw-r--r--lang/modula-3/scripts/fix_pathnames41
6 files changed, 276 insertions, 0 deletions
diff --git a/lang/modula-3/Makefile b/lang/modula-3/Makefile
new file mode 100644
index 00000000000..feb5db6c8b3
--- /dev/null
+++ b/lang/modula-3/Makefile
@@ -0,0 +1,94 @@
+# New ports collection makefile for: modula-3
+# Version required: 3.5.3
+# Date created: 18 Mar 1996
+# Whom: John Polstra <jdp@polstra.com>
+#
+# $Id$
+#
+
+DISTNAME= modula-3-3.5.3
+CATEGORIES+= languages
+MASTER_SITES= ftp://gatekeeper.dec.com/pub/DEC/Modula-3/release-3.5.3/
+DISTFILES= boot-FreeBSD2.tar.gz m3cc.tar.gz m3.tar.gz
+
+MAINTAINER= jdp@polstra.com
+
+NO_WRKSUBDIR= yes
+EXTRACT_BEFORE_ARGS= --exclude "*.orig" -xzf
+
+# The Modula-3 build process insists on installing each individual
+# component immediately after that component is built. To avoid having
+# to do the entire build as root, we arrange for everything to first
+# be "installed" into the following directory, which we own.
+temp_prefix= ${WRKDIR}/installed
+
+# Some parts of the system depend on absolute pathnames into the
+# installed tree. Those parts have to be built after we have moved
+# the tree to its final resting place.
+late_builds= m3configvars llscan
+
+post-extract:
+ cd ${WRKSRC}/boot-FreeBSD2; ln -sf ../m3cc .
+
+do-build:
+ @test -d ${temp_prefix} || mkdir -p ${temp_prefix}
+ @echo "Building bootstrap compiler"
+ @cd ${WRKSRC}/boot-FreeBSD2; ./m3boot
+ @echo "Shipping bootstrap compiler"
+ @cd ${WRKSRC}/boot-FreeBSD2; ./m3ship
+ @echo "Building and shipping the rest of the system"
+ @cd ${WRKSRC}/m3; \
+ LD_LIBRARY_PATH=${temp_prefix}/lib/m3/FreeBSD2:$$LD_LIBRARY_PATH; \
+ export LD_LIBRARY_PATH; \
+ PATH=${temp_prefix}/bin:$$PATH; \
+ export PATH; \
+ m3build
+
+do-install:
+ @test -d ${PREFIX} || mkdir -p ${PREFIX}
+ @echo "Copying files to ${PREFIX}"
+ @cp -R -P -p ${temp_prefix}/* ${PREFIX}
+ @echo "Fixing absolute pathnames in installed files"
+ @/bin/sh scripts/fix_pathnames ${temp_prefix} ${PREFIX}
+ @echo "Rebuilding and shipping m3build with correct pathnames"
+ @cd ${WRKSRC}/m3/m3build; \
+ LD_LIBRARY_PATH=${PREFIX}/lib/m3/FreeBSD2:$$LD_LIBRARY_PATH; \
+ export LD_LIBRARY_PATH; \
+ PATH=${PREFIX}/bin:$$PATH; \
+ export PATH; \
+ m3build -T ${PREFIX}/lib/m3/pkg/m3build/templates \
+ -F ${PREFIX}/lib/m3/pkg/m3build/templates/COMMON.BOOT clean; \
+ m3build -T ${PREFIX}/lib/m3/pkg/m3build/templates \
+ -F ${PREFIX}/lib/m3/pkg/m3build/templates/COMMON.BOOT; \
+ FreeBSD2/m3ship; \
+ rm -rf FreeBSD2
+ @for i in ${late_builds}; do \
+ echo "Building and shipping $${i}"; \
+ cd ${WRKSRC}/m3/$${i}; \
+ LD_LIBRARY_PATH=${PREFIX}/lib/m3/FreeBSD2:$$LD_LIBRARY_PATH; \
+ export LD_LIBRARY_PATH; \
+ PATH=${PREFIX}/bin:$$PATH; \
+ export PATH; \
+ m3build clean; \
+ m3build; \
+ m3ship; \
+ rm -rf FreeBSD2; \
+ done
+ @echo "Stripping executables"
+ @for i in `cat ${FILESDIR}/files.strip`; do \
+ test ! -f ${PREFIX}/$${i} || strip ${PREFIX}/$${i}; \
+ done
+.if !defined(NOMANCOMPRESS)
+ @echo "Compressing manual pages"
+ @for i in `cat ${FILESDIR}/files.compress`; do \
+ test ! -f ${PREFIX}/$${i} || gzip -9nf ${PREFIX}/$${i}; \
+ done
+.endif
+ @echo "Fixing permissions with mtree"
+ @${MTREE_CMD} -e -U -f ${FILESDIR}/mtree.in -p ${PREFIX}
+ @echo "Running ldconfig"
+ @/sbin/ldconfig -m ${PREFIX}/lib/m3/FreeBSD2
+ @echo "Be sure to add ${PREFIX}/lib/m3/FreeBSD2 to"
+ @echo " your ldconfig command in /etc/rc"
+
+.include <bsd.port.mk>
diff --git a/lang/modula-3/pkg-comment b/lang/modula-3/pkg-comment
new file mode 100644
index 00000000000..5a77982b2ac
--- /dev/null
+++ b/lang/modula-3/pkg-comment
@@ -0,0 +1 @@
+Modula-3 compiler and libraries from DEC Systems Research Center.
diff --git a/lang/modula-3/pkg-descr b/lang/modula-3/pkg-descr
new file mode 100644
index 00000000000..b051c314d2b
--- /dev/null
+++ b/lang/modula-3/pkg-descr
@@ -0,0 +1,39 @@
+This is a port of Modula-3 release 3.5.3, from DEC Systems Research
+Center. Modula-3 is a modern compiled programming language designed
+for systems programming as well as large applications. Some notable
+features include:
+
+ * A clean type system with good support for object-oriented
+ programming.
+ * A powerful module system.
+ * Lightweight threads, fully integrated into the language and all of
+ the libraries.
+ * Generics.
+ * Exceptions.
+ * Automatic storage management by a multithreaded, incremental,
+ generational garbage collector.
+ * Guaranteed type safety, plus the ability to confine unsafe code
+ behind safe interfaces.
+ * Elegance and simplicity, even compared with less powerful
+ languages such as C++ and Ada.
+ * Ease of integration with existing C libraries.
+ * A huge collection of runtime libraries, providing:
+ - Text manipulation.
+ - Generic containers (lists, sequences, tables, etc.).
+ - Atoms and symbolic expressions.
+ - An extensible stream I/O system.
+ - Persistent objects.
+ - Operating system interfaces.
+ - Networking.
+ - Very nice object-oriented graphics facilities, and some
+ convenient tools for building GUIs.
+ * A convenient browser.
+
+A wealth of information about Modula-3 can be found at:
+
+ http://www.research.digital.com/SRC/modula-3/html/home.html
+
+This port includes patches for a number of bugs found since the release
+of DEC SRC's version 3.5.3.
+
+-- John Polstra <jdp@polstra.com>
diff --git a/lang/modula-3/pkg-plist b/lang/modula-3/pkg-plist
new file mode 100644
index 00000000000..59f7534ad55
--- /dev/null
+++ b/lang/modula-3/pkg-plist
@@ -0,0 +1,87 @@
+bin/BadBricks
+bin/Calculator
+bin/Cube
+bin/Fours
+bin/Postcard
+bin/RehearseCode
+bin/analyze_coverage
+bin/columns
+bin/fisheye
+bin/formsedit
+bin/llscan
+bin/m3browser
+bin/m3build
+bin/m3bundle
+bin/m3pp
+bin/m3ship
+bin/m3tohtml
+bin/m3totex
+bin/m3where
+bin/m3zume
+bin/mentor
+bin/netobjd
+bin/obliq
+bin/obliq-3D
+bin/obliq-anim
+bin/obliq-min
+bin/obliq-std
+bin/obliq-ui
+bin/obliqsrv
+bin/obliqsrv-std
+bin/obliqsrv-ui
+bin/quake
+bin/recordheap
+bin/replayheap
+bin/showheap
+bin/shownew
+bin/showthread
+bin/solitaire
+bin/stablegen
+bin/stubgen
+bin/tetris
+bin/visobliq
+@comment Specifying the lib/m3 directory rather than its contents works
+@comment around a bug in pkg_add. It causes pkg_delete to complain, though.
+lib/m3
+man/man1/Calculator.1.gz
+man/man1/Cube.1.gz
+man/man1/Fours.1.gz
+man/man1/Postcard.1.gz
+man/man1/RehearseCode.1.gz
+man/man1/analyze_coverage.1.gz
+man/man1/fisheye.1.gz
+man/man1/formsedit.1.gz
+man/man1/llscan.1.gz
+man/man1/m3browser.1.gz
+man/man1/m3build.1.gz
+man/man1/m3bundle.1.gz
+man/man1/m3pp.1.gz
+man/man1/m3ship.1.gz
+man/man1/m3totex.1.gz
+man/man1/m3where.1.gz
+man/man1/m3zume.1.gz
+man/man1/mentor.1.gz
+man/man1/netobjd.1.gz
+man/man1/obliq-anim.1.gz
+man/man1/obliq-min.1.gz
+man/man1/obliq-std.1.gz
+man/man1/obliq-ui.1.gz
+man/man1/obliq.1.gz
+man/man1/obliqsrv-std.1.gz
+man/man1/obliqsrv-ui.1.gz
+man/man1/obliqsrv.1.gz
+man/man1/quake.1.gz
+man/man1/recordheap.1.gz
+man/man1/replayheap.1.gz
+man/man1/showheap.1.gz
+man/man1/shownew.1.gz
+man/man1/showthread.1.gz
+man/man1/stablegen.1.gz
+man/man1/stubgen.1.gz
+man/man6/BadBricks.6.gz
+man/man6/columns.6.gz
+man/man6/solitaire.6.gz
+man/man6/tetris.6.gz
+@exec /sbin/ldconfig -m %D/lib/m3/FreeBSD2
+@exec /bin/echo "Be sure to add %D/lib/m3/FreeBSD2 to"
+@exec /bin/echo " your ldconfig command in /etc/rc"
diff --git a/lang/modula-3/scripts/configure b/lang/modula-3/scripts/configure
new file mode 100644
index 00000000000..fd5670ef8fb
--- /dev/null
+++ b/lang/modula-3/scripts/configure
@@ -0,0 +1,14 @@
+#! /bin/sh
+#
+# $Id$
+
+files_to_patch="\
+ ${WRKSRC}/boot-FreeBSD2/m3build/templates/FreeBSD2 \
+ ${WRKSRC}/m3/m3build/templates/FreeBSD2"
+temp_prefix=${WRKDIR}/installed
+
+for i in ${files_to_patch}; do
+ test -f ${i}.bak || cp -p ${i} ${i}.bak
+ rm -f ${i}
+ sed -e "s+!!PREFIX!!+${temp_prefix}+g" ${i}.bak >${i}
+done
diff --git a/lang/modula-3/scripts/fix_pathnames b/lang/modula-3/scripts/fix_pathnames
new file mode 100644
index 00000000000..21809110033
--- /dev/null
+++ b/lang/modula-3/scripts/fix_pathnames
@@ -0,0 +1,41 @@
+#! /bin/sh
+#
+# $Id$
+
+if [ $# -ne 2 ]; then
+ echo "Usage: $0 oldpath newpath" >&2
+ exit 1
+fi
+
+oldpath=$1
+newpath=$2
+
+pkgdir=lib/m3/pkg
+
+t1=/tmp/fixpaths$$a
+trap "rm -f $t1" 0 1 2 3 15
+touch -f $t1
+chmod 600 $t1
+
+# Fix absolute pathnames in files.
+
+cd ${oldpath}/${pkgdir}
+find . -type f \( -name .M3IMPTAB -o -name FreeBSD2 \) >${t1}
+
+cd ${newpath}/${pkgdir}
+for i in `cat ${t1}`; do
+ test -f ${i}.bak || cp -p ${i} ${i}.bak
+ rm -f ${i}
+ sed -e "s|${oldpath}|${newpath}|g" ${i}.bak >${i} && rm -f ${i}.bak
+done
+
+# Fix absolute symbolic links.
+
+cd ${oldpath}
+find . -type l -ls | \
+ sed -e \
+ "s|^.* \([^ ][^ ]*\) -> ${oldpath}/\([^ ]*\)|ln -sf ${newpath}/\2 \1|" \
+ >${t1}
+
+cd ${newpath}
+. ${t1}