freebsd-ports/lang/Makefile
John Marino c169024680 Add lang/modula3: Critical Mass implementation of Modula-3
This is a huge port.  It probably should be split into several separate
ports, but Modula-3's lack of popularity doesn't justify the large
effort that would require yet.

This port will download a "bootstrap" compiler which builds a fresh
compiler and small set of core components.  The fresh compiler will
then build everything else.  This includes, among other things:

* CM3 Integrated Development Environment (IDE)
* CM3 Code Generator based on gcc 4.3
* CM3 Middle- and back- ends
* CVSup (CM3 is too new to build the CVSUP already in ports)
* M3 GDB (GNU Debugger)
* M3 GUI and networking support
* M3 Quake
* some demos
* many examples
* many CM3 tools
* Oblique
* Caltech Parser toolset
* Full M3 library
* Lots of documentation and man pages

Intentionally left out for now: six (6) games, three (3) webdev progs,
kate (gui), sgml+deepcopy (devlib), pp (m3devtool)

This is the latest release of the Critical Mass Modula-3 (CM3) collection,
version 5.8.6, and it was released in July 2010.  Days were spent
developing this port, but not so much time was developed to quality
assurance.  I added a "recent" patch from upstream for network concurrency
and also modified the getaddrbyname implementation as the original one
raised IPError exceptions due to my VM not having a fully qualified
hostname and external IP address.  My modification makes the exception
look up hostent with 127.0.0.1 first, then raise a new exception on error.
It seems to work, but like I said, it was not heavily tested.

Most of the programs require a running X (Trestle), which I don't have
at the moment, so they stop with an appropriate raised exception.  I only
assume they work, I'll have to check later.

Right now only FreeBSD AMD64 is supported.  I do not expect to attempt
to support FreeBSD i386.  I will probably make an attempt to cross-compile
this on DragonFly x86-64 after appropriate patches are added.  A few
months ago I nearly succeeded in porting CM3 to DragonFly and I expect to
succeed on the next attempt.  If other platforms are desired, somebody
else will have to create bootstraps and any necessary patches.

This was built and poudriere-tested on FreeBSD 9.2.  Only libc, libm, and
libpthread are dynamically loaded so it should build fine on FreeBSD 8.4.
I don't have access to my Redports repository ATM so I can't test FreeBSD
10+, but I will attempt to fix should it fail to build on those platforms.

Hopefully someone will find this port useful.  I was surprised that
apparently the full Modula-3 compiler set has never been ported to
FreeBSD, only the ezm3 version needed to build cvsup.  Modula-3 is a nice
language that probably deserved to be widely used outside of academia.
2014-01-02 02:34:47 +00:00

379 lines
8.4 KiB
Makefile

# $FreeBSD$
#
COMMENT = Programming languages
SUBDIR += Gofer
SUBDIR += STk
SUBDIR += Sather
SUBDIR += abcl
SUBDIR += adacontrol
SUBDIR += afnix
SUBDIR += algol68g
SUBDIR += alisp
SUBDIR += angelscript
SUBDIR += arena
SUBDIR += asis
SUBDIR += asn1c
SUBDIR += atlast
SUBDIR += ats
SUBDIR += awka
SUBDIR += bas2tap
SUBDIR += basic256
SUBDIR += bf2c
SUBDIR += bigloo
SUBDIR += bsh
SUBDIR += bwbasic
SUBDIR += caml-light
SUBDIR += ccl
SUBDIR += cdent
SUBDIR += cduce
SUBDIR += cfortran
SUBDIR += chicken
SUBDIR += cint
SUBDIR += clang-devel
SUBDIR += clang31
SUBDIR += clang32
SUBDIR += clang33
SUBDIR += clang34
SUBDIR += clay
SUBDIR += clisp
SUBDIR += clojure
SUBDIR += clojure-contrib
SUBDIR += clojure-mode.el
SUBDIR += cmucl
SUBDIR += cmucl-extra
SUBDIR += cocor
SUBDIR += cparser
SUBDIR += csharp-mode.el
SUBDIR += cython
SUBDIR += dice
SUBDIR += diveintopython
SUBDIR += dlv
SUBDIR += dmd
SUBDIR += dmd2
SUBDIR += dragonegg-devel46
SUBDIR += dragonegg46-33
SUBDIR += dragonegg47-33
SUBDIR += ecl
SUBDIR += elan
SUBDIR += elk
SUBDIR += emacs-lisp-intro
SUBDIR += embryo
SUBDIR += erlang
SUBDIR += erlang-runtime15
SUBDIR += erlang-runtime16
SUBDIR += execline
SUBDIR += expect
SUBDIR += expect-devel
SUBDIR += ezm3
SUBDIR += f2c
SUBDIR += f77
SUBDIR += fasm
SUBDIR += fbbi
SUBDIR += ferite
SUBDIR += ficl
SUBDIR += fpc
SUBDIR += fpc-base
SUBDIR += fpc-docs
SUBDIR += fpc-lua
SUBDIR += fpc-rexx
SUBDIR += fpc-tcl
SUBDIR += fpc-units
SUBDIR += fpc-utils
SUBDIR += fsharp
SUBDIR += g95
SUBDIR += gambit-c
SUBDIR += gauche
SUBDIR += gawk
SUBDIR += gcc
SUBDIR += gcc-aux
SUBDIR += gcc-ecj45
SUBDIR += gcc34
SUBDIR += gcc44
SUBDIR += gcc46
SUBDIR += gcc47
SUBDIR += gcc48
SUBDIR += gcc49
SUBDIR += gcl
SUBDIR += gforth
SUBDIR += ghc
SUBDIR += gjs
SUBDIR += gnat
SUBDIR += gnat-aux
SUBDIR += gnat_util
SUBDIR += gnatdroid-armv5
SUBDIR += gnatdroid-armv7
SUBDIR += gnatdroid-binutils
SUBDIR += gnatdroid-sysroot
SUBDIR += gnustep-base
SUBDIR += gnustep-guile
SUBDIR += go
SUBDIR += gprolog
SUBDIR += groovy
SUBDIR += gscheme
SUBDIR += guile
SUBDIR += harbour
SUBDIR += haskell-mode.el
SUBDIR += hiphop-php
SUBDIR += hla
SUBDIR += hope
SUBDIR += hs-brainfuck
SUBDIR += hs-epic
SUBDIR += hs-unlambda
SUBDIR += huc
SUBDIR += hugs
SUBDIR += icc
SUBDIR += ici
SUBDIR += icon
SUBDIR += ifc
SUBDIR += ikarus
SUBDIR += intel2gas
SUBDIR += intercal
SUBDIR += io
SUBDIR += ironpython
SUBDIR += itcl
SUBDIR += jakarta-commons-jelly
SUBDIR += jruby
SUBDIR += jython
SUBDIR += kawa
SUBDIR += klone
SUBDIR += kroc
SUBDIR += kturtle
SUBDIR += lafontaine
SUBDIR += libhx
SUBDIR += libjit
SUBDIR += libobjc2
SUBDIR += librep
SUBDIR += libstdc++_stldoc_3.4.0
SUBDIR += libstdc++_stldoc_4.2.2
SUBDIR += linux-f10-libg2c
SUBDIR += linux-f10-tcl85
SUBDIR += linux-j
SUBDIR += logo
SUBDIR += lua
SUBDIR += lua-mode.el
SUBDIR += lua52
SUBDIR += luajit
SUBDIR += lush
SUBDIR += malbolge
SUBDIR += maude
SUBDIR += mawk
SUBDIR += mdk
SUBDIR += metaocaml
SUBDIR += mit-scheme
SUBDIR += mixal
SUBDIR += ml-pnet
SUBDIR += mlton
SUBDIR += mmix
SUBDIR += modula3
SUBDIR += mono
SUBDIR += mono-basic
SUBDIR += moscow_ml
SUBDIR += mosh
SUBDIR += mpd
SUBDIR += mtasc
SUBDIR += munger
SUBDIR += nawk
SUBDIR += nbc
SUBDIR += nbfc
SUBDIR += neko
SUBDIR += nesasm
SUBDIR += newlisp
SUBDIR += newlisp-devel
SUBDIR += nhc98
SUBDIR += nickle
SUBDIR += nimrod
SUBDIR += nml
SUBDIR += nqc
SUBDIR += nwcc
SUBDIR += nx
SUBDIR += ocaml
SUBDIR += ocaml-autoconf
SUBDIR += ocaml-camlidl
SUBDIR += ocaml-doc
SUBDIR += ocaml-examples
SUBDIR += ocaml-mode.el
SUBDIR += ocaml-nox11
SUBDIR += ocs
SUBDIR += ofc
SUBDIR += ohugs
SUBDIR += onyx
SUBDIR += oo2c
SUBDIR += oorexx
SUBDIR += opa
SUBDIR += open-cobol
SUBDIR += opendylan
SUBDIR += otcl
SUBDIR += p2c
SUBDIR += p5-Data-JavaScript
SUBDIR += p5-Error
SUBDIR += p5-Expect
SUBDIR += p5-ExtUtils-F77
SUBDIR += p5-Interpolation
SUBDIR += p5-JSAN
SUBDIR += p5-JavaScript-SpiderMonkey
SUBDIR += p5-JavaScript-Squish
SUBDIR += p5-JavaScript-Value-Escape
SUBDIR += p5-List-MoreUtils
SUBDIR += p5-Marpa
SUBDIR += p5-Marpa-PP
SUBDIR += p5-Marpa-XS
SUBDIR += p5-Modern-Perl
SUBDIR += p5-Parse-Perl
SUBDIR += p5-Perl6-Subs
SUBDIR += p5-Pugs-Compiler-Rule
SUBDIR += p5-Quantum-Superpositions
SUBDIR += p5-Scalar-List-Utils
SUBDIR += p5-Switch
SUBDIR += p5-Tcl
SUBDIR += p5-Test-XPath
SUBDIR += p5-Try-Tiny
SUBDIR += p5-TryCatch
SUBDIR += p5-ePerl
SUBDIR += p5-signatures
SUBDIR += p5-v6
SUBDIR += parrot
SUBDIR += pbasic
SUBDIR += pcc
SUBDIR += pecl-perl
SUBDIR += perl5.12
SUBDIR += perl5.14
SUBDIR += perl5.16
SUBDIR += perl5.18
SUBDIR += petite-chez
SUBDIR += pfe
SUBDIR += phantomjs
SUBDIR += pharo
SUBDIR += phc
SUBDIR += php-mode.el
SUBDIR += php5
SUBDIR += php5-extensions
SUBDIR += php52
SUBDIR += php52-extensions
SUBDIR += php53
SUBDIR += php53-extensions
SUBDIR += php55
SUBDIR += php55-extensions
SUBDIR += php_doc
SUBDIR += picoc
SUBDIR += pike76
SUBDIR += pike78
SUBDIR += pnet
SUBDIR += pnet-base
SUBDIR += pnetlib
SUBDIR += polyml
SUBDIR += ptoc
SUBDIR += pure
SUBDIR += py-mx-base
SUBDIR += py-prolog
SUBDIR += pypy
SUBDIR += pypy-devel
SUBDIR += pypy3-devel
SUBDIR += python
SUBDIR += python2
SUBDIR += python3
SUBDIR += python-doc-html
SUBDIR += python-doc-pdf-a4
SUBDIR += python-doc-pdf-letter
SUBDIR += python-doc-text
SUBDIR += python-mode.el
SUBDIR += python26
SUBDIR += python27
SUBDIR += python31
SUBDIR += python32
SUBDIR += python33
SUBDIR += qore
SUBDIR += qscheme
SUBDIR += racket
SUBDIR += racket-textual
SUBDIR += rakudo
SUBDIR += ratfor
SUBDIR += rexx-imc
SUBDIR += rexx-regina
SUBDIR += rexx-regutil
SUBDIR += rexx-wrapper
SUBDIR += rhino
SUBDIR += rscheme
SUBDIR += rubinius
SUBDIR += ruby-doc-stdlib
SUBDIR += ruby-man
SUBDIR += ruby-programmingruby
SUBDIR += ruby-usersguide
SUBDIR += ruby19
SUBDIR += ruby20
SUBDIR += runawk
SUBDIR += rust
SUBDIR += s9fes
SUBDIR += sather-specification
SUBDIR += sather-tutorial
SUBDIR += sbcl
SUBDIR += scala
SUBDIR += scala-docs
SUBDIR += scheme48
SUBDIR += schemetoc
SUBDIR += scm
SUBDIR += scsh
SUBDIR += sdcc
SUBDIR += sdcc-devel
SUBDIR += see
SUBDIR += see-devel
SUBDIR += seed7
SUBDIR += siod
SUBDIR += sisc
SUBDIR += sketchy
SUBDIR += slib
SUBDIR += slib-guile
SUBDIR += slisp
SUBDIR += smalltalk
SUBDIR += sml-mode.el
SUBDIR += sml-nj
SUBDIR += sml-nj-devel
SUBDIR += snobol4
SUBDIR += spidermonkey17
SUBDIR += spidermonkey170
SUBDIR += spidermonkey185
SUBDIR += spidermonkey24
SUBDIR += spl
SUBDIR += squeak
SUBDIR += squirrel
SUBDIR += sr
SUBDIR += stalin
SUBDIR += starlogo
SUBDIR += stklos
SUBDIR += stldoc
SUBDIR += swi-pl
SUBDIR += sxm
SUBDIR += t3x
SUBDIR += tcc
SUBDIR += tcl-manual
SUBDIR += tcl-wrapper
SUBDIR += tcl84
SUBDIR += tcl85
SUBDIR += tcl86
SUBDIR += tclX
SUBDIR += tcltutor
SUBDIR += tinypy
SUBDIR += tolua
SUBDIR += tolua++
SUBDIR += treecc
SUBDIR += tuareg-mode.el
SUBDIR += twelf
SUBDIR += ucc
SUBDIR += urweb
SUBDIR += v8
SUBDIR += vala
SUBDIR += vala-vapigen
SUBDIR += visualworks
SUBDIR += whitespace
SUBDIR += x10
SUBDIR += xds
SUBDIR += xds-c
SUBDIR += xotcl
SUBDIR += yabasic
SUBDIR += yap
SUBDIR += yap-devel
SUBDIR += yorick
SUBDIR += ypsilon
.include <bsd.port.subdir.mk>