1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-22 04:17:44 +00:00
freebsd-ports/lang/modula3/Makefile

139 lines
4.1 KiB
Makefile
Raw Normal View History

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
# Created by: marino@FreeBSD.org
# $FreeBSD$
PORTNAME= modula3
PORTVERSION= 5.10.0
PORTREVISION= 2
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
CATEGORIES= lang
MASTER_SITES= http://downloads.dragonlace.net/m3/:boot
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
DISTFILES= ${SRCDISTFILE} ${BOOTDIST}
MAINTAINER= marino@FreeBSD.org
COMMENT= Critical Mass Modula-3 compiler
LICENSE= DECM3
LICENSE_NAME= CM3 License defined by DEC and Critical Mass copyrights
LICENSE_FILE= ${WRKSRC}/COM_LICENSE
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
LIB_DEPENDS= libodbc.so:${PORTSDIR}/databases/unixODBC
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
NEWBOOTDIR= ${WRKDIR}/new-bootstrap/bootstrap
SRCDISTFILE= modula3-cm3-${PORTVERSION}-${GH_TAGNAME}_GH0.tar.gz
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
DST1= m3-bootstrap.AMD64.FREEBSD.92.tar.bz2:boot
DST2= m3-bootstrap.x86_64.DRAGONFLY.36.tar.bz2:boot
ONLY_FOR_ARCHS= amd64
2016-01-07 09:40:49 +00:00
PORTSCOUT= ignore:1
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
USE_GITHUB= yes
GH_ACCOUNT= modula3
GH_PROJECT= cm3
GH_TAGNAME= b2ce705
USES= gmake pgsql python:build
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
USE_XORG= xaw xmu xext xt sm ice x11
USE_GL= gl glu
USE_GCC= yes
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
NO_MTREE= yes
MAKE_ENV= CM3_DEBUG=yes \
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
M3_PORTABLE_RUN_PATH=yes
INTERMED= ${WRKDIR}/intermediate
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
BOOTCM3= CM3="${WRKDIR}/bootstrap/bin/cm3"
PORTDOCS= www license
STRIPPKG= m3staloneback/m3back \
libdump/libdump \
cmpfp/cmpfp \
formsview/formsview \
vorun/vorun \
pkl-fonts/PklFonts \
hack/dummy \
test/test
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
.include <bsd.port.pre.mk>
M3BOOT_ENV= ${MAKE_ENV:C/^LDFLAGS=.*//:C/^CPPFLAGS=.*//} \
${BOOTCM3} STAGE=${INTERMED:Q}
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
# for port maintenance, invoke "make makesum PLUS_BOOTSTRAPS=1"
.if defined(PLUS_BOOTSTRAPS)
DISTFILES= ${SRCDISTFILE} ${DST1} ${DST2}
.else
. if ${OPSYS} == FreeBSD
BOOTDIST= ${DST1}
MARCH= AMD64
. if !exists(/usr/include/xlocale/_ctype.h)
IGNORE= the bootstrap compiler only runs on FreeBSD 9.0 or later
. endif
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
. endif
. if ${OPSYS} == DragonFly
IGNORE= modula-3 has not adapted to DragonFly yet
BOOTDIST= ${DST2}
MARCH= x86_64
. endif
NEWBOOTNAME= m3-bootstrap.${MARCH}.${OPSYS:tu}.${OSREL:S/.//}.tar.bz2
M3TARGET= ${MARCH}_${OPSYS:tu}
PLIST_SUB= T=${M3TARGET} P=cm3/pkg B=cm3/bin L=cm3/lib
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
.endif
post-extract:
@(cd ${WRKSRC} && ${CAT} COPYRIGHT-DEC COPYRIGHT-CMASS > COM_LICENSE)
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
post-patch:
@${REINPLACE_CMD} -i "" -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/m3-sys/cminstall/src/config-no-install/FreeBSD.common
@${REINPLACE_CMD} -i "" \
-e 's|/usr/local|${LOCALBASE}|g' \
-e 's|/usr/X11R6|${LOCALBASE}|g' \
${WRKSRC}/m3-sys/cminstall/src/config-no-install/Unix.common
@${REINPLACE_CMD} -i "" \
-e 's/^SYSTEM_CC = ".* -gs/SYSTEM_CC = "${CC} -gs/' \
-e 's|as -64|${AS} -64|' \
${WRKDIR}/bootstrap/etc/modula3/AMD64_FREEBSD \
${WRKSRC}/m3-sys/cminstall/src/config-no-install/AMD64_FREEBSD
@${REINPLACE_CMD} -e 's|m3cc, bin|bin|' \
${WRKDIR}/bootstrap/etc/modula3/cm3cfg.common
@${GREP} -rl 'bin/env python' ${WRKSRC}/m3-sys ${WRKSRC}/scripts | \
${XARGS} ${REINPLACE_CMD} \
-e 's|/usr/bin/env python|${PYTHON_CMD}|'
do-build:
(cd ${WRKSRC} && ${SETENV} ${M3BOOT_ENV} \
${PYTHON_CMD} scripts/python/make-dist.py)
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
do-install:
${MKDIR} ${STAGEDIR}${DOCSDIR}
${CP} -a ${INTERMED}/all-dist ${STAGEDIR}${PREFIX}/cm3
${MV} ${STAGEDIR}${PREFIX}/cm3/man ${STAGEDIR}${PREFIX}/
${MV} ${STAGEDIR}${PREFIX}/cm3/www ${STAGEDIR}${DOCSDIR}/
${MV} ${STAGEDIR}${PREFIX}/cm3/license ${STAGEDIR}${DOCSDIR}/
${CHMOD} -x ${STAGEDIR}${PREFIX}/cm3/pkg/m3back/src/M3C.i3 \
${STAGEDIR}${PREFIX}/cm3/pkg/m3core/src/C/Common/Csetjmp.i3
(cd ${STAGEDIR}${PREFIX}/cm3/bin && ${FIND} * -type f -perm +111 | \
${SED} -E '/^(obliq|obliqsrv|recordheap)$$/d' | \
${XARGS} ${STRIP_CMD})
${FIND} ${STAGEDIR}${PREFIX}/cm3/lib -type f -perm +111 | \
${XARGS} ${STRIP_CMD}
.for PACKAGE in ${STRIPPKG}
(cd ${STAGEDIR}${PREFIX}/cm3/pkg/${PACKAGE:H}/${M3TARGET} && \
${STRIP_CMD} ${PACKAGE:T} && \
${MV} ${PACKAGE:T} ../../../bin/ && \
${LN} -s ../../../bin/${PACKAGE:T} .)
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
.endfor
(cd ${STAGEDIR}${PREFIX}/cm3/pkg/cm3/${M3TARGET} && \
${RM} cm3 && ${LN} -s ../../../bin/cm3 .)
new-bootstrap:
@${RM} -rf ${NEWBOOTDIR}
@${MKDIR} ${NEWBOOTDIR:H}
${CP} -a ${INTERMED}/min-dist ${NEWBOOTDIR}
@${FIND} ${NEWBOOTDIR} -type f -perm +111 | \
${SED} -E '/Csetjmp.i3$$/d' | ${XARGS} ${STRIP_CMD}
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
(cd ${NEWBOOTDIR}/.. ; tar -cyf ${NEWBOOTNAME} bootstrap)
.include <bsd.port.post.mk>