diff options
author | jdp <jdp@FreeBSD.org> | 1996-03-21 06:10:19 +0800 |
---|---|---|
committer | jdp <jdp@FreeBSD.org> | 1996-03-21 06:10:19 +0800 |
commit | 7ca6b48b50a5b54eb990a10dbcb4182efb4a6870 (patch) | |
tree | b99d9f15b52122bd8ecfc068314507a6532e0ffd | |
parent | 8a454d313313fb29b52f872302e1ff19ecb3f2e2 (diff) | |
download | freebsd-ports-gnome-7ca6b48b50a5b54eb990a10dbcb4182efb4a6870.tar.gz freebsd-ports-gnome-7ca6b48b50a5b54eb990a10dbcb4182efb4a6870.tar.zst freebsd-ports-gnome-7ca6b48b50a5b54eb990a10dbcb4182efb4a6870.zip |
Modula-3 language system from DEC Systems Research Center.
-rw-r--r-- | lang/modula-3/Makefile | 94 | ||||
-rw-r--r-- | lang/modula-3/pkg-comment | 1 | ||||
-rw-r--r-- | lang/modula-3/pkg-descr | 39 | ||||
-rw-r--r-- | lang/modula-3/pkg-plist | 87 | ||||
-rw-r--r-- | lang/modula-3/scripts/configure | 14 | ||||
-rw-r--r-- | lang/modula-3/scripts/fix_pathnames | 41 |
6 files changed, 276 insertions, 0 deletions
diff --git a/lang/modula-3/Makefile b/lang/modula-3/Makefile new file mode 100644 index 000000000000..feb5db6c8b3f --- /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 000000000000..5a77982b2ac5 --- /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 000000000000..b051c314d2b8 --- /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 000000000000..59f7534ad55a --- /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 000000000000..fd5670ef8fb5 --- /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 000000000000..218091100336 --- /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} |