diff --git a/ReadMe.md b/ReadMe.md new file mode 100644 index 00000000..d28b2796 --- /dev/null +++ b/ReadMe.md @@ -0,0 +1,209 @@ +![Build status](http://brownsmeet.com/build-status.svg) + +## Ѵishap Oberon + +[Ѵishap Oberon](http://oberon.vishap.am) is a free and open source (GPLv3) +implementation of the Oberon-2 language and libraries for use on +conventional operating systems such as Linux, BSD, Android, Mac and Windows. + +Vishap's Oberon Compiler (voc) uses a C backend (gcc, clang or msc) to compile +Oberon programs under Unix, Mac or Windows. Vishap Oberon includes +libraries from the Ulm, oo2c and Ofront Oberon compilers, as well as +default libraries complying with the Oakwood Guidelines for Oberon-2 compilers. + +### Installation + +##### Prerequisites + +| Platform | Packages | +| --------- | ------------ | +| Debian/Ubuntu/Mint ... | apt-get install git | +| Fedora/RHEL/CentOS ... | yum install git gcc glibc-static | +| FreeBSD/OpenBSD/NetBSD | pkg install git | +| Cygwin | use setup-x86[_x64] to add packages git, make and gcc-core | +| Darwin | run 'git' at the command line and accept the prompt to install it. | + +More details, including for MingW and MS C, in [Installation](/doc/Installation.md). + +##### Build and install + +1. `git clone https://github.com/vishaps/voc` +2. `cd voc` +3. `[sudo] make full` + +Since 'make full' will install the compiler and libraries, it needs root (unix) or administrator (windows) privileges. + +##### PATH environment variable + +Set your path to the installed compiler binary location as reported +by make full, e.g. + +| System | Set path | +| --------- | -------------------------------------- | +| Linux | `export PATH="/opt/voc/bin:$PATH"` | +| BSD | `export PATH="/usr/local/share/voc/bin:$PATH"` | +| Windows | See [Installation](/doc/Installation.md) | +| Termux | `export PATH="/data/data/com.termux/files/opt/voc/bin:$PATH"` | + +Also see [Installation](/doc/Installation.md). + +### A 'Hello' application + +Anything appended to Oberon.Log is automatically displayed on the console, so the +following conventional Oberon program will display 'Hello.': + + MODULE hello; + IMPORT Oberon, Texts; + VAR W: Texts.Writer; + BEGIN + Texts.OpenWriter(W); + Texts.WriteString(W, "Hello."); Texts.WriteLn(W); + Texts.Append(Oberon.Log, W.buf) + END hello. + +Alternatively the Console may be accessed directly as follows: + + MODULE hello; + IMPORT Console; + BEGIN + Console.String("Hello."); Console.Ln; + END hello. + +Compile as follows: + + voc hello.mod -m + +The -m parameter tells voc that this is a main module, and to generate an +executable binary. + +Execute as usual on Linux ('./hello') or Windows ('hello'). + + +Also see [Compiling](/doc/Compiling.md). + +### Licensing + +Vishap Oberon's frontend and C backend engine is a fork of Josef Templ’s Ofront, which has been released +under the FreeBSD License. Unlike Ofront, Vishap Oberon does not include the Oberon v4 environment. + +The Ulm Oberon Library and the Ooc libraries are distributed under GPL. Proprietry code +using these libraries may not be statically linked. + +Voc tools are distributed under GPLv3. + +Most of the runtime in libVishapOberon is distributed under GPLv3 with runtime exception. + + +### Platform support and porting + +Vishap Oberon supports 32 and 64 bit little-endian architectures including Intel x86 and x64, arm and ppc. + +It compiles under gcc, clang and Microsoft Visual C. + +Installation supports GNU/Linux, MAC OSX, BSD and Windows (native and cygwin). + +A C program (src/tools/make/configure.c) detects the details of the C compiler +and operating system on which it is running. In most cases it will automatically +determine all that is needed for the port to a new platform. and 'make full' +will just work. + +In some cases manual work will be required: + + - If configure.c cannot recognise the operating system on which it is running + a few lines will need to be added to detect and set the make variables + correctly. + - If porting to a system that does not provide a Unix style API, it will be + necessary to implement a new variant of Platform.Mod providing the same + interface as Platformunix.Mod and Platform Windows.Mod. + +For details, see [Porting](/doc/Porting.md). + +### Language support and libraries + +Vishap Oberon supports the Oberon 2 programming language, including type-bound procedures. + +It also supports some features of Oberon-07. + +Vishap Oberon comes with libraries easing the porting of code from the major +Oberon systems: + + - Oberon V4 and S3 compatible library set. + + - ooc (optimizing oberon-2 compiler) library port. + + - Ulm’s Oberon system library port. + +Some other freely redistributable libraries are available as a part of voc distribution. + +See also [Features](/doc/Features.md). + +### History + +See [History](/doc/History.md). + +### Roadmap + +See [Roadmap](/doc/Roadmap.md). + +### Contributors + +Originally developed as a cross platform implementation of the +Oberon system by Joseph Templ. + +Updated for 64 bit support, refactored as a standalone compiler and brought +to new platforms by Norayr Chilingarian. + +Build process simplified for more platform support and bugs fixed by David +C W Brown. + +### Origin of the name "Ѵishap Oberon" + +##### Ѵishap + +Vishaps are dragons inhabiting the Armenian Highlands. +We decided to name the project “Vishap” because ties between compilers and dragons have ancient traditions. + +Also, Vishaps are known in tales, fiction. [This page](http://blog.fogus.me/2015/04/27/six-works-of-computer-science-fiction/) refers to some technologies as “computer science fiction”. Among them to Oberon. This brings another meaning, Oberon is like aliens, ghosts. And Vishaps. + +##### Oberon - System and Programming Language + +Oberon is a programming language, an operating system and a graphical +user interface. Originally designed and implemented by by Niklaus Wirth and +Jürg Gutknecht at ETH Zürich in the late 1980s, it demonstrates that the +fundamentals of a modern OS and GUI can be implemented in clean and simple code +orders of magnitude smaller than found in contemporary systems. + +The Oberon programming language is an evolution of the Pascal and Modula +languages. While it adds garbage collection, extensible types and (in +Oberon-2) type-bound procedures, it is also simplified following the principals +of Einstein and Antoine de Saint-Exupéry: + +> Make it as simple as possible, but not simpler. (Albert Einstein) + +> Perfection is finally attained not when there is no longer anything to add, but +> when there is no longer anything to take away. (Antoine de Saint-Exupéry, +> translated by Lewis Galantière.) + +### References + +###### Oberon + - [The History of Modula-2 and Oberon](http://people.inf.ethz.ch/wirth/Articles/Modula-Oberon-June.pdf) + - [The Programming Language Oberon](https://www.inf.ethz.ch/personal/wirth/Oberon/Oberon.Report.pdf) + - [Project Oberon: The Design of an Operating System and Compiler ](http://www.ethoberon.ethz.ch/WirthPubl/ProjectOberon.pdf) + - [Oberon - the Overlooked Jewel](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90.7173&rep=rep1&type=pdf) + +###### Oberon 2 + - [Differences between Oberon and Oberon-2](http://members.home.nl/jmr272/Oberon/Oberon2.Differences.pdf) + - [The Programming Language Oberon-2](http://www.ssw.uni-linz.ac.at/Research/Papers/Oberon2.pdf) + - [Programming in Oberon. Steps beyond Pascal and Modula](www.ethoberon.ethz.ch/WirthPubl/ProgInOberonWR.pdf) + - [The Oakwood Guidelines for Oberon-2 Compiler Developers](http://www.math.bas.bg/bantchev/place/oberon/oakwood-guidelines.pdf) + +###### Oberon 07 + - [Difference between Oberon-07 and Oberon](https://www.inf.ethz.ch/personal/wirth/Oberon/Oberon07.pdf) + - [The Programming Language Oberon-07](https://www.inf.ethz.ch/personal/wirth/Oberon/Oberon07.Report.pdf) + - [Programming in Oberon - a Tutorial](https://www.inf.ethz.ch/personal/wirth/Oberon/PIO.pdf) + +###### Links + - [Niklaus Wirth's personal page at ETH Zurich](https://www.inf.ethz.ch/personal/wirth/) + - [ETH Zurich's Wirth publications page](http://www.ethoberon.ethz.ch/WirthPubl/) + - [Oberon: Steps beyond Pascal and Modula](http://fruttenboel.verhoeven272.nl/Oberon/) diff --git a/bootstrap/unix-44/Configuration.c b/bootstrap/unix-44/Configuration.c index a1992033..aef0c6c0 100644 --- a/bootstrap/unix-44/Configuration.c +++ b/bootstrap/unix-44/Configuration.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-44/Configuration.h b/bootstrap/unix-44/Configuration.h index e7aed50a..4c931710 100644 --- a/bootstrap/unix-44/Configuration.h +++ b/bootstrap/unix-44/Configuration.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Configuration__h #define Configuration__h diff --git a/bootstrap/unix-44/Console.c b/bootstrap/unix-44/Console.c index 7f8fd8c0..1d3fe81f 100644 --- a/bootstrap/unix-44/Console.c +++ b/bootstrap/unix-44/Console.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Platform.h" diff --git a/bootstrap/unix-44/Console.h b/bootstrap/unix-44/Console.h index 316e7e46..8e12fc26 100644 --- a/bootstrap/unix-44/Console.h +++ b/bootstrap/unix-44/Console.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Console__h #define Console__h diff --git a/bootstrap/unix-44/Files.c b/bootstrap/unix-44/Files.c index f3b9b280..14bf860b 100644 --- a/bootstrap/unix-44/Files.c +++ b/bootstrap/unix-44/Files.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/unix-44/Files.h b/bootstrap/unix-44/Files.h index 002d2dc5..2461434a 100644 --- a/bootstrap/unix-44/Files.h +++ b/bootstrap/unix-44/Files.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef Files__h #define Files__h diff --git a/bootstrap/unix-44/Heap.c b/bootstrap/unix-44/Heap.c index cbb21626..4158550b 100644 --- a/bootstrap/unix-44/Heap.c +++ b/bootstrap/unix-44/Heap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #include "SYSTEM.h" struct Heap__1 { diff --git a/bootstrap/unix-44/Heap.h b/bootstrap/unix-44/Heap.h index d270a455..33b7f49f 100644 --- a/bootstrap/unix-44/Heap.h +++ b/bootstrap/unix-44/Heap.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #ifndef Heap__h #define Heap__h diff --git a/bootstrap/unix-44/Modules.c b/bootstrap/unix-44/Modules.c index 6c0f5e0b..c2c2920a 100644 --- a/bootstrap/unix-44/Modules.c +++ b/bootstrap/unix-44/Modules.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Heap.h" diff --git a/bootstrap/unix-44/Modules.h b/bootstrap/unix-44/Modules.h index 5968d1aa..d3b57a01 100644 --- a/bootstrap/unix-44/Modules.h +++ b/bootstrap/unix-44/Modules.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Modules__h #define Modules__h diff --git a/bootstrap/unix-44/OPB.c b/bootstrap/unix-44/OPB.c index 0c22a7a7..7a1ae82b 100644 --- a/bootstrap/unix-44/OPB.c +++ b/bootstrap/unix-44/OPB.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/unix-44/OPB.h b/bootstrap/unix-44/OPB.h index 8cd47ee6..8e98db79 100644 --- a/bootstrap/unix-44/OPB.h +++ b/bootstrap/unix-44/OPB.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPB__h #define OPB__h diff --git a/bootstrap/unix-44/OPC.c b/bootstrap/unix-44/OPC.c index 32a1496f..1d2d84d1 100644 --- a/bootstrap/unix-44/OPC.c +++ b/bootstrap/unix-44/OPC.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "OPM.h" @@ -1241,7 +1241,7 @@ static void OPC_GenHeaderMsg (void) OPM_WriteString((CHAR*)"/*", (LONGINT)3); OPM_WriteString((CHAR*)" voc ", (LONGINT)6); OPM_Write(' '); - OPM_WriteString((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_WriteString((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_Write(' '); i = 0; while (i <= 31) { diff --git a/bootstrap/unix-44/OPC.h b/bootstrap/unix-44/OPC.h index 713ea3b2..467de9eb 100644 --- a/bootstrap/unix-44/OPC.h +++ b/bootstrap/unix-44/OPC.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPC__h #define OPC__h diff --git a/bootstrap/unix-44/OPM.c b/bootstrap/unix-44/OPM.c index 3d68d2be..3ad30ae3 100644 --- a/bootstrap/unix-44/OPM.c +++ b/bootstrap/unix-44/OPM.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" @@ -198,7 +198,7 @@ BOOLEAN OPM_OpenPar (void) if (Platform_ArgCount == 1) { OPM_LogWLn(); OPM_LogWStr((CHAR*)"Vishap Oberon-2 compiler v", (LONGINT)27); - OPM_LogWStr((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_LogWStr((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_LogW('.'); OPM_LogWLn(); OPM_LogWStr((CHAR*)"Based on Ofront by Software Templ OEG, continued by Norayr Chilingarian and others.", (LONGINT)84); diff --git a/bootstrap/unix-44/OPM.h b/bootstrap/unix-44/OPM.h index 68bf3af0..8f0040f4 100644 --- a/bootstrap/unix-44/OPM.h +++ b/bootstrap/unix-44/OPM.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPM__h #define OPM__h diff --git a/bootstrap/unix-44/OPP.c b/bootstrap/unix-44/OPP.c index f0530bb4..845635b3 100644 --- a/bootstrap/unix-44/OPP.c +++ b/bootstrap/unix-44/OPP.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPB.h" #include "OPM.h" diff --git a/bootstrap/unix-44/OPP.h b/bootstrap/unix-44/OPP.h index 1e0a1809..ddacbb19 100644 --- a/bootstrap/unix-44/OPP.h +++ b/bootstrap/unix-44/OPP.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPP__h #define OPP__h diff --git a/bootstrap/unix-44/OPS.c b/bootstrap/unix-44/OPS.c index 88944148..071a1dc0 100644 --- a/bootstrap/unix-44/OPS.c +++ b/bootstrap/unix-44/OPS.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/unix-44/OPS.h b/bootstrap/unix-44/OPS.h index 87a614f4..afca4213 100644 --- a/bootstrap/unix-44/OPS.h +++ b/bootstrap/unix-44/OPS.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef OPS__h #define OPS__h diff --git a/bootstrap/unix-44/OPT.c b/bootstrap/unix-44/OPT.c index fc80ce02..16157fca 100644 --- a/bootstrap/unix-44/OPT.c +++ b/bootstrap/unix-44/OPT.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/unix-44/OPT.h b/bootstrap/unix-44/OPT.h index 1a22d0df..826b5123 100644 --- a/bootstrap/unix-44/OPT.h +++ b/bootstrap/unix-44/OPT.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPT__h #define OPT__h diff --git a/bootstrap/unix-44/OPV.c b/bootstrap/unix-44/OPV.c index 572285dc..2223918b 100644 --- a/bootstrap/unix-44/OPV.c +++ b/bootstrap/unix-44/OPV.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPC.h" #include "OPM.h" diff --git a/bootstrap/unix-44/OPV.h b/bootstrap/unix-44/OPV.h index 9907a1ef..ecacbf6f 100644 --- a/bootstrap/unix-44/OPV.h +++ b/bootstrap/unix-44/OPV.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPV__h #define OPV__h diff --git a/bootstrap/unix-44/Platform.c b/bootstrap/unix-44/Platform.c index 013e6f9c..864918a3 100644 --- a/bootstrap/unix-44/Platform.c +++ b/bootstrap/unix-44/Platform.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/unix-44/Platform.h b/bootstrap/unix-44/Platform.h index 8b47d1c9..1d2eb565 100644 --- a/bootstrap/unix-44/Platform.h +++ b/bootstrap/unix-44/Platform.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Platform__h #define Platform__h diff --git a/bootstrap/unix-44/Reals.c b/bootstrap/unix-44/Reals.c index 65dad750..3f43d082 100644 --- a/bootstrap/unix-44/Reals.c +++ b/bootstrap/unix-44/Reals.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-44/Reals.h b/bootstrap/unix-44/Reals.h index 166e977b..d6dbab1c 100644 --- a/bootstrap/unix-44/Reals.h +++ b/bootstrap/unix-44/Reals.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Reals__h #define Reals__h diff --git a/bootstrap/unix-44/Strings.c b/bootstrap/unix-44/Strings.c index 5038ca68..02a8124d 100644 --- a/bootstrap/unix-44/Strings.c +++ b/bootstrap/unix-44/Strings.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-44/Strings.h b/bootstrap/unix-44/Strings.h index a8d8d207..809d6efe 100644 --- a/bootstrap/unix-44/Strings.h +++ b/bootstrap/unix-44/Strings.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Strings__h #define Strings__h diff --git a/bootstrap/unix-44/Texts.c b/bootstrap/unix-44/Texts.c index 1e81c3df..569e31bb 100644 --- a/bootstrap/unix-44/Texts.c +++ b/bootstrap/unix-44/Texts.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Files.h" #include "Modules.h" diff --git a/bootstrap/unix-44/Texts.h b/bootstrap/unix-44/Texts.h index 354c7ce7..eee6ba91 100644 --- a/bootstrap/unix-44/Texts.h +++ b/bootstrap/unix-44/Texts.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Texts__h #define Texts__h diff --git a/bootstrap/unix-44/Vishap.c b/bootstrap/unix-44/Vishap.c index 2b9c3901..96510cf9 100644 --- a/bootstrap/unix-44/Vishap.c +++ b/bootstrap/unix-44/Vishap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkamSf */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkamSf */ #include "SYSTEM.h" #include "Configuration.h" #include "Heap.h" diff --git a/bootstrap/unix-44/errors.c b/bootstrap/unix-44/errors.c index 25a074a9..987f1c5e 100644 --- a/bootstrap/unix-44/errors.c +++ b/bootstrap/unix-44/errors.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/unix-44/errors.h b/bootstrap/unix-44/errors.h index c4fe8850..cf182e80 100644 --- a/bootstrap/unix-44/errors.h +++ b/bootstrap/unix-44/errors.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef errors__h #define errors__h diff --git a/bootstrap/unix-44/extTools.c b/bootstrap/unix-44/extTools.c index 6f1a6654..a362ee65 100644 --- a/bootstrap/unix-44/extTools.c +++ b/bootstrap/unix-44/extTools.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/unix-44/extTools.h b/bootstrap/unix-44/extTools.h index 95d07ddd..e064ef01 100644 --- a/bootstrap/unix-44/extTools.h +++ b/bootstrap/unix-44/extTools.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef extTools__h #define extTools__h diff --git a/bootstrap/unix-44/vt100.c b/bootstrap/unix-44/vt100.c index 649ea068..93a59097 100644 --- a/bootstrap/unix-44/vt100.c +++ b/bootstrap/unix-44/vt100.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Strings.h" diff --git a/bootstrap/unix-44/vt100.h b/bootstrap/unix-44/vt100.h index 6d210ec9..db19e2a6 100644 --- a/bootstrap/unix-44/vt100.h +++ b/bootstrap/unix-44/vt100.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef vt100__h #define vt100__h diff --git a/bootstrap/unix-48/Configuration.c b/bootstrap/unix-48/Configuration.c index a1992033..aef0c6c0 100644 --- a/bootstrap/unix-48/Configuration.c +++ b/bootstrap/unix-48/Configuration.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-48/Configuration.h b/bootstrap/unix-48/Configuration.h index e7aed50a..4c931710 100644 --- a/bootstrap/unix-48/Configuration.h +++ b/bootstrap/unix-48/Configuration.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Configuration__h #define Configuration__h diff --git a/bootstrap/unix-48/Console.c b/bootstrap/unix-48/Console.c index 7f8fd8c0..1d3fe81f 100644 --- a/bootstrap/unix-48/Console.c +++ b/bootstrap/unix-48/Console.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Platform.h" diff --git a/bootstrap/unix-48/Console.h b/bootstrap/unix-48/Console.h index 316e7e46..8e12fc26 100644 --- a/bootstrap/unix-48/Console.h +++ b/bootstrap/unix-48/Console.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Console__h #define Console__h diff --git a/bootstrap/unix-48/Files.c b/bootstrap/unix-48/Files.c index f3b9b280..14bf860b 100644 --- a/bootstrap/unix-48/Files.c +++ b/bootstrap/unix-48/Files.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/unix-48/Files.h b/bootstrap/unix-48/Files.h index 002d2dc5..2461434a 100644 --- a/bootstrap/unix-48/Files.h +++ b/bootstrap/unix-48/Files.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef Files__h #define Files__h diff --git a/bootstrap/unix-48/Heap.c b/bootstrap/unix-48/Heap.c index cbb21626..4158550b 100644 --- a/bootstrap/unix-48/Heap.c +++ b/bootstrap/unix-48/Heap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #include "SYSTEM.h" struct Heap__1 { diff --git a/bootstrap/unix-48/Heap.h b/bootstrap/unix-48/Heap.h index d270a455..33b7f49f 100644 --- a/bootstrap/unix-48/Heap.h +++ b/bootstrap/unix-48/Heap.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #ifndef Heap__h #define Heap__h diff --git a/bootstrap/unix-48/Modules.c b/bootstrap/unix-48/Modules.c index 6c0f5e0b..c2c2920a 100644 --- a/bootstrap/unix-48/Modules.c +++ b/bootstrap/unix-48/Modules.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Heap.h" diff --git a/bootstrap/unix-48/Modules.h b/bootstrap/unix-48/Modules.h index 5968d1aa..d3b57a01 100644 --- a/bootstrap/unix-48/Modules.h +++ b/bootstrap/unix-48/Modules.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Modules__h #define Modules__h diff --git a/bootstrap/unix-48/OPB.c b/bootstrap/unix-48/OPB.c index 0c22a7a7..7a1ae82b 100644 --- a/bootstrap/unix-48/OPB.c +++ b/bootstrap/unix-48/OPB.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/unix-48/OPB.h b/bootstrap/unix-48/OPB.h index 8cd47ee6..8e98db79 100644 --- a/bootstrap/unix-48/OPB.h +++ b/bootstrap/unix-48/OPB.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPB__h #define OPB__h diff --git a/bootstrap/unix-48/OPC.c b/bootstrap/unix-48/OPC.c index 32a1496f..1d2d84d1 100644 --- a/bootstrap/unix-48/OPC.c +++ b/bootstrap/unix-48/OPC.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "OPM.h" @@ -1241,7 +1241,7 @@ static void OPC_GenHeaderMsg (void) OPM_WriteString((CHAR*)"/*", (LONGINT)3); OPM_WriteString((CHAR*)" voc ", (LONGINT)6); OPM_Write(' '); - OPM_WriteString((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_WriteString((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_Write(' '); i = 0; while (i <= 31) { diff --git a/bootstrap/unix-48/OPC.h b/bootstrap/unix-48/OPC.h index 713ea3b2..467de9eb 100644 --- a/bootstrap/unix-48/OPC.h +++ b/bootstrap/unix-48/OPC.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPC__h #define OPC__h diff --git a/bootstrap/unix-48/OPM.c b/bootstrap/unix-48/OPM.c index 3d68d2be..3ad30ae3 100644 --- a/bootstrap/unix-48/OPM.c +++ b/bootstrap/unix-48/OPM.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" @@ -198,7 +198,7 @@ BOOLEAN OPM_OpenPar (void) if (Platform_ArgCount == 1) { OPM_LogWLn(); OPM_LogWStr((CHAR*)"Vishap Oberon-2 compiler v", (LONGINT)27); - OPM_LogWStr((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_LogWStr((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_LogW('.'); OPM_LogWLn(); OPM_LogWStr((CHAR*)"Based on Ofront by Software Templ OEG, continued by Norayr Chilingarian and others.", (LONGINT)84); diff --git a/bootstrap/unix-48/OPM.h b/bootstrap/unix-48/OPM.h index 68bf3af0..8f0040f4 100644 --- a/bootstrap/unix-48/OPM.h +++ b/bootstrap/unix-48/OPM.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPM__h #define OPM__h diff --git a/bootstrap/unix-48/OPP.c b/bootstrap/unix-48/OPP.c index f0530bb4..845635b3 100644 --- a/bootstrap/unix-48/OPP.c +++ b/bootstrap/unix-48/OPP.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPB.h" #include "OPM.h" diff --git a/bootstrap/unix-48/OPP.h b/bootstrap/unix-48/OPP.h index 1e0a1809..ddacbb19 100644 --- a/bootstrap/unix-48/OPP.h +++ b/bootstrap/unix-48/OPP.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPP__h #define OPP__h diff --git a/bootstrap/unix-48/OPS.c b/bootstrap/unix-48/OPS.c index 88944148..071a1dc0 100644 --- a/bootstrap/unix-48/OPS.c +++ b/bootstrap/unix-48/OPS.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/unix-48/OPS.h b/bootstrap/unix-48/OPS.h index 87a614f4..afca4213 100644 --- a/bootstrap/unix-48/OPS.h +++ b/bootstrap/unix-48/OPS.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef OPS__h #define OPS__h diff --git a/bootstrap/unix-48/OPT.c b/bootstrap/unix-48/OPT.c index fc80ce02..16157fca 100644 --- a/bootstrap/unix-48/OPT.c +++ b/bootstrap/unix-48/OPT.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/unix-48/OPT.h b/bootstrap/unix-48/OPT.h index 1a22d0df..826b5123 100644 --- a/bootstrap/unix-48/OPT.h +++ b/bootstrap/unix-48/OPT.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPT__h #define OPT__h diff --git a/bootstrap/unix-48/OPV.c b/bootstrap/unix-48/OPV.c index 572285dc..2223918b 100644 --- a/bootstrap/unix-48/OPV.c +++ b/bootstrap/unix-48/OPV.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPC.h" #include "OPM.h" diff --git a/bootstrap/unix-48/OPV.h b/bootstrap/unix-48/OPV.h index 9907a1ef..ecacbf6f 100644 --- a/bootstrap/unix-48/OPV.h +++ b/bootstrap/unix-48/OPV.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPV__h #define OPV__h diff --git a/bootstrap/unix-48/Platform.c b/bootstrap/unix-48/Platform.c index 013e6f9c..864918a3 100644 --- a/bootstrap/unix-48/Platform.c +++ b/bootstrap/unix-48/Platform.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/unix-48/Platform.h b/bootstrap/unix-48/Platform.h index 8b47d1c9..1d2eb565 100644 --- a/bootstrap/unix-48/Platform.h +++ b/bootstrap/unix-48/Platform.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Platform__h #define Platform__h diff --git a/bootstrap/unix-48/Reals.c b/bootstrap/unix-48/Reals.c index 65dad750..3f43d082 100644 --- a/bootstrap/unix-48/Reals.c +++ b/bootstrap/unix-48/Reals.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-48/Reals.h b/bootstrap/unix-48/Reals.h index 166e977b..d6dbab1c 100644 --- a/bootstrap/unix-48/Reals.h +++ b/bootstrap/unix-48/Reals.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Reals__h #define Reals__h diff --git a/bootstrap/unix-48/Strings.c b/bootstrap/unix-48/Strings.c index 5038ca68..02a8124d 100644 --- a/bootstrap/unix-48/Strings.c +++ b/bootstrap/unix-48/Strings.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/unix-48/Strings.h b/bootstrap/unix-48/Strings.h index a8d8d207..809d6efe 100644 --- a/bootstrap/unix-48/Strings.h +++ b/bootstrap/unix-48/Strings.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Strings__h #define Strings__h diff --git a/bootstrap/unix-48/Texts.c b/bootstrap/unix-48/Texts.c index 8c2cc3b2..5888e0b3 100644 --- a/bootstrap/unix-48/Texts.c +++ b/bootstrap/unix-48/Texts.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Files.h" #include "Modules.h" diff --git a/bootstrap/unix-48/Texts.h b/bootstrap/unix-48/Texts.h index 7b66d3ce..a6e717f6 100644 --- a/bootstrap/unix-48/Texts.h +++ b/bootstrap/unix-48/Texts.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Texts__h #define Texts__h diff --git a/bootstrap/unix-48/Vishap.c b/bootstrap/unix-48/Vishap.c index 2b9c3901..96510cf9 100644 --- a/bootstrap/unix-48/Vishap.c +++ b/bootstrap/unix-48/Vishap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkamSf */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkamSf */ #include "SYSTEM.h" #include "Configuration.h" #include "Heap.h" diff --git a/bootstrap/unix-48/errors.c b/bootstrap/unix-48/errors.c index 25a074a9..987f1c5e 100644 --- a/bootstrap/unix-48/errors.c +++ b/bootstrap/unix-48/errors.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/unix-48/errors.h b/bootstrap/unix-48/errors.h index c4fe8850..cf182e80 100644 --- a/bootstrap/unix-48/errors.h +++ b/bootstrap/unix-48/errors.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef errors__h #define errors__h diff --git a/bootstrap/unix-48/extTools.c b/bootstrap/unix-48/extTools.c index 6f1a6654..a362ee65 100644 --- a/bootstrap/unix-48/extTools.c +++ b/bootstrap/unix-48/extTools.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/unix-48/extTools.h b/bootstrap/unix-48/extTools.h index 95d07ddd..e064ef01 100644 --- a/bootstrap/unix-48/extTools.h +++ b/bootstrap/unix-48/extTools.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef extTools__h #define extTools__h diff --git a/bootstrap/unix-48/vt100.c b/bootstrap/unix-48/vt100.c index 649ea068..93a59097 100644 --- a/bootstrap/unix-48/vt100.c +++ b/bootstrap/unix-48/vt100.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Strings.h" diff --git a/bootstrap/unix-48/vt100.h b/bootstrap/unix-48/vt100.h index 6d210ec9..db19e2a6 100644 --- a/bootstrap/unix-48/vt100.h +++ b/bootstrap/unix-48/vt100.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef vt100__h #define vt100__h diff --git a/bootstrap/unix-88/Configuration.c b/bootstrap/unix-88/Configuration.c index c4d62d40..bbdc22b6 100644 --- a/bootstrap/unix-88/Configuration.c +++ b/bootstrap/unix-88/Configuration.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/Configuration.h b/bootstrap/unix-88/Configuration.h index b076eaee..70939b4f 100644 --- a/bootstrap/unix-88/Configuration.h +++ b/bootstrap/unix-88/Configuration.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Configuration__h #define Configuration__h diff --git a/bootstrap/unix-88/Console.c b/bootstrap/unix-88/Console.c index 5946cb5d..8a185970 100644 --- a/bootstrap/unix-88/Console.c +++ b/bootstrap/unix-88/Console.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Platform.h" diff --git a/bootstrap/unix-88/Console.h b/bootstrap/unix-88/Console.h index d8a9b11e..fb5f7f79 100644 --- a/bootstrap/unix-88/Console.h +++ b/bootstrap/unix-88/Console.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Console__h #define Console__h diff --git a/bootstrap/unix-88/Files.c b/bootstrap/unix-88/Files.c index b48620b0..aac48dc7 100644 --- a/bootstrap/unix-88/Files.c +++ b/bootstrap/unix-88/Files.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/unix-88/Files.h b/bootstrap/unix-88/Files.h index 01c37212..4690dbf8 100644 --- a/bootstrap/unix-88/Files.h +++ b/bootstrap/unix-88/Files.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef Files__h #define Files__h diff --git a/bootstrap/unix-88/Heap.c b/bootstrap/unix-88/Heap.c index 929a8283..28826f74 100644 --- a/bootstrap/unix-88/Heap.c +++ b/bootstrap/unix-88/Heap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/Heap.h b/bootstrap/unix-88/Heap.h index 1b23ddb3..5b65ee7d 100644 --- a/bootstrap/unix-88/Heap.h +++ b/bootstrap/unix-88/Heap.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #ifndef Heap__h #define Heap__h diff --git a/bootstrap/unix-88/Modules.c b/bootstrap/unix-88/Modules.c index 77278391..b59eaa3b 100644 --- a/bootstrap/unix-88/Modules.c +++ b/bootstrap/unix-88/Modules.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Console.h" diff --git a/bootstrap/unix-88/Modules.h b/bootstrap/unix-88/Modules.h index 88bb46e1..77f3c9a7 100644 --- a/bootstrap/unix-88/Modules.h +++ b/bootstrap/unix-88/Modules.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Modules__h #define Modules__h diff --git a/bootstrap/unix-88/OPB.c b/bootstrap/unix-88/OPB.c index 428d0881..25c048b7 100644 --- a/bootstrap/unix-88/OPB.c +++ b/bootstrap/unix-88/OPB.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/unix-88/OPB.h b/bootstrap/unix-88/OPB.h index c8165f54..50e1e1f3 100644 --- a/bootstrap/unix-88/OPB.h +++ b/bootstrap/unix-88/OPB.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPB__h #define OPB__h diff --git a/bootstrap/unix-88/OPC.c b/bootstrap/unix-88/OPC.c index 10468b9e..9e4a4560 100644 --- a/bootstrap/unix-88/OPC.c +++ b/bootstrap/unix-88/OPC.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" @@ -1242,7 +1242,7 @@ static void OPC_GenHeaderMsg (void) OPM_WriteString((CHAR*)"/*", (LONGINT)3); OPM_WriteString((CHAR*)" voc ", (LONGINT)6); OPM_Write(' '); - OPM_WriteString((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_WriteString((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_Write(' '); i = 0; while (i <= 63) { diff --git a/bootstrap/unix-88/OPC.h b/bootstrap/unix-88/OPC.h index a91a3810..14f92cf9 100644 --- a/bootstrap/unix-88/OPC.h +++ b/bootstrap/unix-88/OPC.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPC__h #define OPC__h diff --git a/bootstrap/unix-88/OPM.c b/bootstrap/unix-88/OPM.c index 798fb492..05ccbb11 100644 --- a/bootstrap/unix-88/OPM.c +++ b/bootstrap/unix-88/OPM.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" @@ -199,7 +199,7 @@ BOOLEAN OPM_OpenPar (void) if (Platform_ArgCount == 1) { OPM_LogWLn(); OPM_LogWStr((CHAR*)"Vishap Oberon-2 compiler v", (LONGINT)27); - OPM_LogWStr((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_LogWStr((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_LogW('.'); OPM_LogWLn(); OPM_LogWStr((CHAR*)"Based on Ofront by Software Templ OEG, continued by Norayr Chilingarian and others.", (LONGINT)84); diff --git a/bootstrap/unix-88/OPM.h b/bootstrap/unix-88/OPM.h index e09dbf82..72cb3858 100644 --- a/bootstrap/unix-88/OPM.h +++ b/bootstrap/unix-88/OPM.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPM__h #define OPM__h diff --git a/bootstrap/unix-88/OPP.c b/bootstrap/unix-88/OPP.c index 3bc74ce6..5c5c5010 100644 --- a/bootstrap/unix-88/OPP.c +++ b/bootstrap/unix-88/OPP.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPB.h" diff --git a/bootstrap/unix-88/OPP.h b/bootstrap/unix-88/OPP.h index 30cf0643..6c46f388 100644 --- a/bootstrap/unix-88/OPP.h +++ b/bootstrap/unix-88/OPP.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPP__h #define OPP__h diff --git a/bootstrap/unix-88/OPS.c b/bootstrap/unix-88/OPS.c index bb08e1f5..6fbbdde1 100644 --- a/bootstrap/unix-88/OPS.c +++ b/bootstrap/unix-88/OPS.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/unix-88/OPS.h b/bootstrap/unix-88/OPS.h index eab85912..62358186 100644 --- a/bootstrap/unix-88/OPS.h +++ b/bootstrap/unix-88/OPS.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef OPS__h #define OPS__h diff --git a/bootstrap/unix-88/OPT.c b/bootstrap/unix-88/OPT.c index 5f8854a1..9a1045af 100644 --- a/bootstrap/unix-88/OPT.c +++ b/bootstrap/unix-88/OPT.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/unix-88/OPT.h b/bootstrap/unix-88/OPT.h index 4c3442b5..99ba8c8a 100644 --- a/bootstrap/unix-88/OPT.h +++ b/bootstrap/unix-88/OPT.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPT__h #define OPT__h diff --git a/bootstrap/unix-88/OPV.c b/bootstrap/unix-88/OPV.c index 627e325b..2a83cc64 100644 --- a/bootstrap/unix-88/OPV.c +++ b/bootstrap/unix-88/OPV.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPC.h" diff --git a/bootstrap/unix-88/OPV.h b/bootstrap/unix-88/OPV.h index 7f0a5b8a..23d69e2d 100644 --- a/bootstrap/unix-88/OPV.h +++ b/bootstrap/unix-88/OPV.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPV__h #define OPV__h diff --git a/bootstrap/unix-88/Platform.c b/bootstrap/unix-88/Platform.c index 9a892174..52f8d7bf 100644 --- a/bootstrap/unix-88/Platform.c +++ b/bootstrap/unix-88/Platform.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/Platform.h b/bootstrap/unix-88/Platform.h index 7dca4035..88defee9 100644 --- a/bootstrap/unix-88/Platform.h +++ b/bootstrap/unix-88/Platform.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Platform__h #define Platform__h diff --git a/bootstrap/unix-88/Reals.c b/bootstrap/unix-88/Reals.c index edf27d40..152db07b 100644 --- a/bootstrap/unix-88/Reals.c +++ b/bootstrap/unix-88/Reals.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/Reals.h b/bootstrap/unix-88/Reals.h index 5febc0f1..bdc8e2a5 100644 --- a/bootstrap/unix-88/Reals.h +++ b/bootstrap/unix-88/Reals.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Reals__h #define Reals__h diff --git a/bootstrap/unix-88/Strings.c b/bootstrap/unix-88/Strings.c index 98eef9eb..c8d54be5 100644 --- a/bootstrap/unix-88/Strings.c +++ b/bootstrap/unix-88/Strings.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/Strings.h b/bootstrap/unix-88/Strings.h index 05e86973..256941f4 100644 --- a/bootstrap/unix-88/Strings.h +++ b/bootstrap/unix-88/Strings.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Strings__h #define Strings__h diff --git a/bootstrap/unix-88/Texts.c b/bootstrap/unix-88/Texts.c index 307bec01..077da855 100644 --- a/bootstrap/unix-88/Texts.c +++ b/bootstrap/unix-88/Texts.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Files.h" diff --git a/bootstrap/unix-88/Texts.h b/bootstrap/unix-88/Texts.h index d1805878..2d4eb745 100644 --- a/bootstrap/unix-88/Texts.h +++ b/bootstrap/unix-88/Texts.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Texts__h #define Texts__h diff --git a/bootstrap/unix-88/Vishap.c b/bootstrap/unix-88/Vishap.c index d084e34a..ac122892 100644 --- a/bootstrap/unix-88/Vishap.c +++ b/bootstrap/unix-88/Vishap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkamSf */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkamSf */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/unix-88/errors.c b/bootstrap/unix-88/errors.c index 879f5cf7..6a733b09 100644 --- a/bootstrap/unix-88/errors.c +++ b/bootstrap/unix-88/errors.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/unix-88/errors.h b/bootstrap/unix-88/errors.h index 43cd79a9..72bdc98e 100644 --- a/bootstrap/unix-88/errors.h +++ b/bootstrap/unix-88/errors.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef errors__h #define errors__h diff --git a/bootstrap/unix-88/extTools.c b/bootstrap/unix-88/extTools.c index 7d1a2da9..2fd5ccd0 100644 --- a/bootstrap/unix-88/extTools.c +++ b/bootstrap/unix-88/extTools.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/unix-88/extTools.h b/bootstrap/unix-88/extTools.h index 61ca56e4..81db5d3b 100644 --- a/bootstrap/unix-88/extTools.h +++ b/bootstrap/unix-88/extTools.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef extTools__h #define extTools__h diff --git a/bootstrap/unix-88/vt100.c b/bootstrap/unix-88/vt100.c index 88c386a8..c584b083 100644 --- a/bootstrap/unix-88/vt100.c +++ b/bootstrap/unix-88/vt100.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Console.h" diff --git a/bootstrap/unix-88/vt100.h b/bootstrap/unix-88/vt100.h index b124915f..d981ba62 100644 --- a/bootstrap/unix-88/vt100.h +++ b/bootstrap/unix-88/vt100.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef vt100__h #define vt100__h diff --git a/bootstrap/windows-48/Configuration.c b/bootstrap/windows-48/Configuration.c index a1992033..aef0c6c0 100644 --- a/bootstrap/windows-48/Configuration.c +++ b/bootstrap/windows-48/Configuration.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/windows-48/Configuration.h b/bootstrap/windows-48/Configuration.h index e7aed50a..4c931710 100644 --- a/bootstrap/windows-48/Configuration.h +++ b/bootstrap/windows-48/Configuration.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Configuration__h #define Configuration__h diff --git a/bootstrap/windows-48/Console.c b/bootstrap/windows-48/Console.c index 2f8e5f21..ba50baa8 100644 --- a/bootstrap/windows-48/Console.c +++ b/bootstrap/windows-48/Console.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Platform.h" diff --git a/bootstrap/windows-48/Console.h b/bootstrap/windows-48/Console.h index 316e7e46..8e12fc26 100644 --- a/bootstrap/windows-48/Console.h +++ b/bootstrap/windows-48/Console.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Console__h #define Console__h diff --git a/bootstrap/windows-48/Files.c b/bootstrap/windows-48/Files.c index 25fa879e..0e1ffba8 100644 --- a/bootstrap/windows-48/Files.c +++ b/bootstrap/windows-48/Files.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/windows-48/Files.h b/bootstrap/windows-48/Files.h index 226e2815..b6b7879e 100644 --- a/bootstrap/windows-48/Files.h +++ b/bootstrap/windows-48/Files.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef Files__h #define Files__h diff --git a/bootstrap/windows-48/Heap.c b/bootstrap/windows-48/Heap.c index cbb21626..4158550b 100644 --- a/bootstrap/windows-48/Heap.c +++ b/bootstrap/windows-48/Heap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #include "SYSTEM.h" struct Heap__1 { diff --git a/bootstrap/windows-48/Heap.h b/bootstrap/windows-48/Heap.h index d270a455..33b7f49f 100644 --- a/bootstrap/windows-48/Heap.h +++ b/bootstrap/windows-48/Heap.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #ifndef Heap__h #define Heap__h diff --git a/bootstrap/windows-48/Modules.c b/bootstrap/windows-48/Modules.c index 6c0f5e0b..c2c2920a 100644 --- a/bootstrap/windows-48/Modules.c +++ b/bootstrap/windows-48/Modules.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Heap.h" diff --git a/bootstrap/windows-48/Modules.h b/bootstrap/windows-48/Modules.h index 5968d1aa..d3b57a01 100644 --- a/bootstrap/windows-48/Modules.h +++ b/bootstrap/windows-48/Modules.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Modules__h #define Modules__h diff --git a/bootstrap/windows-48/OPB.c b/bootstrap/windows-48/OPB.c index 0c22a7a7..7a1ae82b 100644 --- a/bootstrap/windows-48/OPB.c +++ b/bootstrap/windows-48/OPB.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/windows-48/OPB.h b/bootstrap/windows-48/OPB.h index 8cd47ee6..8e98db79 100644 --- a/bootstrap/windows-48/OPB.h +++ b/bootstrap/windows-48/OPB.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPB__h #define OPB__h diff --git a/bootstrap/windows-48/OPC.c b/bootstrap/windows-48/OPC.c index 32a1496f..1d2d84d1 100644 --- a/bootstrap/windows-48/OPC.c +++ b/bootstrap/windows-48/OPC.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "OPM.h" @@ -1241,7 +1241,7 @@ static void OPC_GenHeaderMsg (void) OPM_WriteString((CHAR*)"/*", (LONGINT)3); OPM_WriteString((CHAR*)" voc ", (LONGINT)6); OPM_Write(' '); - OPM_WriteString((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_WriteString((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_Write(' '); i = 0; while (i <= 31) { diff --git a/bootstrap/windows-48/OPC.h b/bootstrap/windows-48/OPC.h index 713ea3b2..467de9eb 100644 --- a/bootstrap/windows-48/OPC.h +++ b/bootstrap/windows-48/OPC.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPC__h #define OPC__h diff --git a/bootstrap/windows-48/OPM.c b/bootstrap/windows-48/OPM.c index 3d68d2be..3ad30ae3 100644 --- a/bootstrap/windows-48/OPM.c +++ b/bootstrap/windows-48/OPM.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" @@ -198,7 +198,7 @@ BOOLEAN OPM_OpenPar (void) if (Platform_ArgCount == 1) { OPM_LogWLn(); OPM_LogWStr((CHAR*)"Vishap Oberon-2 compiler v", (LONGINT)27); - OPM_LogWStr((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_LogWStr((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_LogW('.'); OPM_LogWLn(); OPM_LogWStr((CHAR*)"Based on Ofront by Software Templ OEG, continued by Norayr Chilingarian and others.", (LONGINT)84); diff --git a/bootstrap/windows-48/OPM.h b/bootstrap/windows-48/OPM.h index 68bf3af0..8f0040f4 100644 --- a/bootstrap/windows-48/OPM.h +++ b/bootstrap/windows-48/OPM.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPM__h #define OPM__h diff --git a/bootstrap/windows-48/OPP.c b/bootstrap/windows-48/OPP.c index f0530bb4..845635b3 100644 --- a/bootstrap/windows-48/OPP.c +++ b/bootstrap/windows-48/OPP.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPB.h" #include "OPM.h" diff --git a/bootstrap/windows-48/OPP.h b/bootstrap/windows-48/OPP.h index 1e0a1809..ddacbb19 100644 --- a/bootstrap/windows-48/OPP.h +++ b/bootstrap/windows-48/OPP.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPP__h #define OPP__h diff --git a/bootstrap/windows-48/OPS.c b/bootstrap/windows-48/OPS.c index 88944148..071a1dc0 100644 --- a/bootstrap/windows-48/OPS.c +++ b/bootstrap/windows-48/OPS.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/windows-48/OPS.h b/bootstrap/windows-48/OPS.h index 87a614f4..afca4213 100644 --- a/bootstrap/windows-48/OPS.h +++ b/bootstrap/windows-48/OPS.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef OPS__h #define OPS__h diff --git a/bootstrap/windows-48/OPT.c b/bootstrap/windows-48/OPT.c index fc80ce02..16157fca 100644 --- a/bootstrap/windows-48/OPT.c +++ b/bootstrap/windows-48/OPT.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPM.h" #include "OPS.h" diff --git a/bootstrap/windows-48/OPT.h b/bootstrap/windows-48/OPT.h index 1a22d0df..826b5123 100644 --- a/bootstrap/windows-48/OPT.h +++ b/bootstrap/windows-48/OPT.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPT__h #define OPT__h diff --git a/bootstrap/windows-48/OPV.c b/bootstrap/windows-48/OPV.c index 572285dc..2223918b 100644 --- a/bootstrap/windows-48/OPV.c +++ b/bootstrap/windows-48/OPV.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "OPC.h" #include "OPM.h" diff --git a/bootstrap/windows-48/OPV.h b/bootstrap/windows-48/OPV.h index 9907a1ef..ecacbf6f 100644 --- a/bootstrap/windows-48/OPV.h +++ b/bootstrap/windows-48/OPV.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPV__h #define OPV__h diff --git a/bootstrap/windows-48/Platform.c b/bootstrap/windows-48/Platform.c index d097f9db..b5310405 100644 --- a/bootstrap/windows-48/Platform.c +++ b/bootstrap/windows-48/Platform.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/windows-48/Platform.h b/bootstrap/windows-48/Platform.h index e912678e..11bd3410 100644 --- a/bootstrap/windows-48/Platform.h +++ b/bootstrap/windows-48/Platform.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Platform__h #define Platform__h diff --git a/bootstrap/windows-48/Reals.c b/bootstrap/windows-48/Reals.c index 65dad750..3f43d082 100644 --- a/bootstrap/windows-48/Reals.c +++ b/bootstrap/windows-48/Reals.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/windows-48/Reals.h b/bootstrap/windows-48/Reals.h index 166e977b..d6dbab1c 100644 --- a/bootstrap/windows-48/Reals.h +++ b/bootstrap/windows-48/Reals.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Reals__h #define Reals__h diff --git a/bootstrap/windows-48/Strings.c b/bootstrap/windows-48/Strings.c index 5038ca68..02a8124d 100644 --- a/bootstrap/windows-48/Strings.c +++ b/bootstrap/windows-48/Strings.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" diff --git a/bootstrap/windows-48/Strings.h b/bootstrap/windows-48/Strings.h index a8d8d207..809d6efe 100644 --- a/bootstrap/windows-48/Strings.h +++ b/bootstrap/windows-48/Strings.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Strings__h #define Strings__h diff --git a/bootstrap/windows-48/Texts.c b/bootstrap/windows-48/Texts.c index 8c2cc3b2..5888e0b3 100644 --- a/bootstrap/windows-48/Texts.c +++ b/bootstrap/windows-48/Texts.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Files.h" #include "Modules.h" diff --git a/bootstrap/windows-48/Texts.h b/bootstrap/windows-48/Texts.h index 7b66d3ce..a6e717f6 100644 --- a/bootstrap/windows-48/Texts.h +++ b/bootstrap/windows-48/Texts.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Texts__h #define Texts__h diff --git a/bootstrap/windows-48/Vishap.c b/bootstrap/windows-48/Vishap.c index 2b9c3901..96510cf9 100644 --- a/bootstrap/windows-48/Vishap.c +++ b/bootstrap/windows-48/Vishap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkamSf */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkamSf */ #include "SYSTEM.h" #include "Configuration.h" #include "Heap.h" diff --git a/bootstrap/windows-48/errors.c b/bootstrap/windows-48/errors.c index 25a074a9..987f1c5e 100644 --- a/bootstrap/windows-48/errors.c +++ b/bootstrap/windows-48/errors.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" typedef diff --git a/bootstrap/windows-48/errors.h b/bootstrap/windows-48/errors.h index c4fe8850..cf182e80 100644 --- a/bootstrap/windows-48/errors.h +++ b/bootstrap/windows-48/errors.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef errors__h #define errors__h diff --git a/bootstrap/windows-48/extTools.c b/bootstrap/windows-48/extTools.c index 6f1a6654..a362ee65 100644 --- a/bootstrap/windows-48/extTools.c +++ b/bootstrap/windows-48/extTools.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Configuration.h" #include "Console.h" diff --git a/bootstrap/windows-48/extTools.h b/bootstrap/windows-48/extTools.h index 95d07ddd..e064ef01 100644 --- a/bootstrap/windows-48/extTools.h +++ b/bootstrap/windows-48/extTools.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef extTools__h #define extTools__h diff --git a/bootstrap/windows-48/vt100.c b/bootstrap/windows-48/vt100.c index 649ea068..93a59097 100644 --- a/bootstrap/windows-48/vt100.c +++ b/bootstrap/windows-48/vt100.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #include "SYSTEM.h" #include "Console.h" #include "Strings.h" diff --git a/bootstrap/windows-48/vt100.h b/bootstrap/windows-48/vt100.h index 6d210ec9..db19e2a6 100644 --- a/bootstrap/windows-48/vt100.h +++ b/bootstrap/windows-48/vt100.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef vt100__h #define vt100__h diff --git a/bootstrap/windows-88/Configuration.c b/bootstrap/windows-88/Configuration.c index c4d62d40..bbdc22b6 100644 --- a/bootstrap/windows-88/Configuration.c +++ b/bootstrap/windows-88/Configuration.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/Configuration.h b/bootstrap/windows-88/Configuration.h index b076eaee..70939b4f 100644 --- a/bootstrap/windows-88/Configuration.h +++ b/bootstrap/windows-88/Configuration.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Configuration__h #define Configuration__h diff --git a/bootstrap/windows-88/Console.c b/bootstrap/windows-88/Console.c index e4c5285c..3c4d2c36 100644 --- a/bootstrap/windows-88/Console.c +++ b/bootstrap/windows-88/Console.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Platform.h" diff --git a/bootstrap/windows-88/Console.h b/bootstrap/windows-88/Console.h index d8a9b11e..fb5f7f79 100644 --- a/bootstrap/windows-88/Console.h +++ b/bootstrap/windows-88/Console.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Console__h #define Console__h diff --git a/bootstrap/windows-88/Files.c b/bootstrap/windows-88/Files.c index f5f4a2aa..38a8e591 100644 --- a/bootstrap/windows-88/Files.c +++ b/bootstrap/windows-88/Files.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/windows-88/Files.h b/bootstrap/windows-88/Files.h index 565ac5ff..dc789b69 100644 --- a/bootstrap/windows-88/Files.h +++ b/bootstrap/windows-88/Files.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef Files__h #define Files__h diff --git a/bootstrap/windows-88/Heap.c b/bootstrap/windows-88/Heap.c index 929a8283..28826f74 100644 --- a/bootstrap/windows-88/Heap.c +++ b/bootstrap/windows-88/Heap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/Heap.h b/bootstrap/windows-88/Heap.h index 1b23ddb3..5b65ee7d 100644 --- a/bootstrap/windows-88/Heap.h +++ b/bootstrap/windows-88/Heap.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tskSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tskSfF */ #ifndef Heap__h #define Heap__h diff --git a/bootstrap/windows-88/Modules.c b/bootstrap/windows-88/Modules.c index 77278391..b59eaa3b 100644 --- a/bootstrap/windows-88/Modules.c +++ b/bootstrap/windows-88/Modules.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Console.h" diff --git a/bootstrap/windows-88/Modules.h b/bootstrap/windows-88/Modules.h index 88bb46e1..77f3c9a7 100644 --- a/bootstrap/windows-88/Modules.h +++ b/bootstrap/windows-88/Modules.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Modules__h #define Modules__h diff --git a/bootstrap/windows-88/OPB.c b/bootstrap/windows-88/OPB.c index 428d0881..25c048b7 100644 --- a/bootstrap/windows-88/OPB.c +++ b/bootstrap/windows-88/OPB.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/windows-88/OPB.h b/bootstrap/windows-88/OPB.h index c8165f54..50e1e1f3 100644 --- a/bootstrap/windows-88/OPB.h +++ b/bootstrap/windows-88/OPB.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPB__h #define OPB__h diff --git a/bootstrap/windows-88/OPC.c b/bootstrap/windows-88/OPC.c index 10468b9e..9e4a4560 100644 --- a/bootstrap/windows-88/OPC.c +++ b/bootstrap/windows-88/OPC.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" @@ -1242,7 +1242,7 @@ static void OPC_GenHeaderMsg (void) OPM_WriteString((CHAR*)"/*", (LONGINT)3); OPM_WriteString((CHAR*)" voc ", (LONGINT)6); OPM_Write(' '); - OPM_WriteString((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_WriteString((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_Write(' '); i = 0; while (i <= 63) { diff --git a/bootstrap/windows-88/OPC.h b/bootstrap/windows-88/OPC.h index a91a3810..14f92cf9 100644 --- a/bootstrap/windows-88/OPC.h +++ b/bootstrap/windows-88/OPC.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPC__h #define OPC__h diff --git a/bootstrap/windows-88/OPM.c b/bootstrap/windows-88/OPM.c index 798fb492..05ccbb11 100644 --- a/bootstrap/windows-88/OPM.c +++ b/bootstrap/windows-88/OPM.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" @@ -199,7 +199,7 @@ BOOLEAN OPM_OpenPar (void) if (Platform_ArgCount == 1) { OPM_LogWLn(); OPM_LogWStr((CHAR*)"Vishap Oberon-2 compiler v", (LONGINT)27); - OPM_LogWStr((CHAR*)"1.2 [2016/06/15] for gcc LP64 on cygwin", (LONGINT)40); + OPM_LogWStr((CHAR*)"1.95 [2016/06/30] for gcc LP64 on cygwin", (LONGINT)41); OPM_LogW('.'); OPM_LogWLn(); OPM_LogWStr((CHAR*)"Based on Ofront by Software Templ OEG, continued by Norayr Chilingarian and others.", (LONGINT)84); diff --git a/bootstrap/windows-88/OPM.h b/bootstrap/windows-88/OPM.h index e09dbf82..72cb3858 100644 --- a/bootstrap/windows-88/OPM.h +++ b/bootstrap/windows-88/OPM.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPM__h #define OPM__h diff --git a/bootstrap/windows-88/OPP.c b/bootstrap/windows-88/OPP.c index 3bc74ce6..5c5c5010 100644 --- a/bootstrap/windows-88/OPP.c +++ b/bootstrap/windows-88/OPP.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPB.h" diff --git a/bootstrap/windows-88/OPP.h b/bootstrap/windows-88/OPP.h index 30cf0643..6c46f388 100644 --- a/bootstrap/windows-88/OPP.h +++ b/bootstrap/windows-88/OPP.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPP__h #define OPP__h diff --git a/bootstrap/windows-88/OPS.c b/bootstrap/windows-88/OPS.c index bb08e1f5..6fbbdde1 100644 --- a/bootstrap/windows-88/OPS.c +++ b/bootstrap/windows-88/OPS.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/windows-88/OPS.h b/bootstrap/windows-88/OPS.h index eab85912..62358186 100644 --- a/bootstrap/windows-88/OPS.h +++ b/bootstrap/windows-88/OPS.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin tspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin tspkaSfF */ #ifndef OPS__h #define OPS__h diff --git a/bootstrap/windows-88/OPT.c b/bootstrap/windows-88/OPT.c index 5f8854a1..9a1045af 100644 --- a/bootstrap/windows-88/OPT.c +++ b/bootstrap/windows-88/OPT.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPM.h" diff --git a/bootstrap/windows-88/OPT.h b/bootstrap/windows-88/OPT.h index 4c3442b5..99ba8c8a 100644 --- a/bootstrap/windows-88/OPT.h +++ b/bootstrap/windows-88/OPT.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPT__h #define OPT__h diff --git a/bootstrap/windows-88/OPV.c b/bootstrap/windows-88/OPV.c index 627e325b..2a83cc64 100644 --- a/bootstrap/windows-88/OPV.c +++ b/bootstrap/windows-88/OPV.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "OPC.h" diff --git a/bootstrap/windows-88/OPV.h b/bootstrap/windows-88/OPV.h index 7f0a5b8a..23d69e2d 100644 --- a/bootstrap/windows-88/OPV.h +++ b/bootstrap/windows-88/OPV.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef OPV__h #define OPV__h diff --git a/bootstrap/windows-88/Platform.c b/bootstrap/windows-88/Platform.c index 78274e99..1079f225 100644 --- a/bootstrap/windows-88/Platform.c +++ b/bootstrap/windows-88/Platform.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/Platform.h b/bootstrap/windows-88/Platform.h index c3b2dd2d..90e32ce3 100644 --- a/bootstrap/windows-88/Platform.h +++ b/bootstrap/windows-88/Platform.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Platform__h #define Platform__h diff --git a/bootstrap/windows-88/Reals.c b/bootstrap/windows-88/Reals.c index edf27d40..152db07b 100644 --- a/bootstrap/windows-88/Reals.c +++ b/bootstrap/windows-88/Reals.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/Reals.h b/bootstrap/windows-88/Reals.h index 5febc0f1..bdc8e2a5 100644 --- a/bootstrap/windows-88/Reals.h +++ b/bootstrap/windows-88/Reals.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Reals__h #define Reals__h diff --git a/bootstrap/windows-88/Strings.c b/bootstrap/windows-88/Strings.c index 98eef9eb..c8d54be5 100644 --- a/bootstrap/windows-88/Strings.c +++ b/bootstrap/windows-88/Strings.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/Strings.h b/bootstrap/windows-88/Strings.h index 05e86973..256941f4 100644 --- a/bootstrap/windows-88/Strings.h +++ b/bootstrap/windows-88/Strings.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Strings__h #define Strings__h diff --git a/bootstrap/windows-88/Texts.c b/bootstrap/windows-88/Texts.c index 307bec01..077da855 100644 --- a/bootstrap/windows-88/Texts.c +++ b/bootstrap/windows-88/Texts.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Files.h" diff --git a/bootstrap/windows-88/Texts.h b/bootstrap/windows-88/Texts.h index d1805878..2d4eb745 100644 --- a/bootstrap/windows-88/Texts.h +++ b/bootstrap/windows-88/Texts.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef Texts__h #define Texts__h diff --git a/bootstrap/windows-88/Vishap.c b/bootstrap/windows-88/Vishap.c index d084e34a..ac122892 100644 --- a/bootstrap/windows-88/Vishap.c +++ b/bootstrap/windows-88/Vishap.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkamSf */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkamSf */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/windows-88/errors.c b/bootstrap/windows-88/errors.c index 879f5cf7..6a733b09 100644 --- a/bootstrap/windows-88/errors.c +++ b/bootstrap/windows-88/errors.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" diff --git a/bootstrap/windows-88/errors.h b/bootstrap/windows-88/errors.h index 43cd79a9..72bdc98e 100644 --- a/bootstrap/windows-88/errors.h +++ b/bootstrap/windows-88/errors.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef errors__h #define errors__h diff --git a/bootstrap/windows-88/extTools.c b/bootstrap/windows-88/extTools.c index 7d1a2da9..2fd5ccd0 100644 --- a/bootstrap/windows-88/extTools.c +++ b/bootstrap/windows-88/extTools.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Configuration.h" diff --git a/bootstrap/windows-88/extTools.h b/bootstrap/windows-88/extTools.h index 61ca56e4..81db5d3b 100644 --- a/bootstrap/windows-88/extTools.h +++ b/bootstrap/windows-88/extTools.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef extTools__h #define extTools__h diff --git a/bootstrap/windows-88/vt100.c b/bootstrap/windows-88/vt100.c index 88c386a8..c584b083 100644 --- a/bootstrap/windows-88/vt100.c +++ b/bootstrap/windows-88/vt100.c @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #define LARGE #include "SYSTEM.h" #include "Console.h" diff --git a/bootstrap/windows-88/vt100.h b/bootstrap/windows-88/vt100.h index b124915f..d981ba62 100644 --- a/bootstrap/windows-88/vt100.h +++ b/bootstrap/windows-88/vt100.h @@ -1,4 +1,4 @@ -/* voc 1.2 [2016/06/15] for gcc LP64 on cygwin xtspkaSfF */ +/* voc 1.95 [2016/06/30] for gcc LP64 on cygwin xtspkaSfF */ #ifndef vt100__h #define vt100__h diff --git a/doc/Features.md b/doc/Features.md new file mode 100644 index 00000000..e7e8a39d --- /dev/null +++ b/doc/Features.md @@ -0,0 +1,25 @@ +#### (Work in progress) + +The following Oberon types are independent of compiler size: + +| Types | Size | +| ----- | -------| +| CHAR, SHORTINT | 8 bit | +| REAL | 32 bit | +| LONGREAL | 64 bit | + +The following type sizes follow the built compiler size: + +| Types | 32 bit builds | 64 bit builds | +| ----- | ------------- | ------------- | +| INTEGER | 16 bit | 32 bit | +| LONGINT, SET | 32 bit | 16 bit | + +HALT/exit code has been simplified. Exit now just calls the system exit API rather than calling the kill API and passing our own process ID. For runtime errors it now displayes the appropriate error message (e.g. Index out of range). + +Compilation errors now include the line number at the start of the displayed source line. The pos (character offset) is still displayed on the error message line. The error handling code was already doing some walking of the source file to find start and end of line - I changed this to walk through the source file from the start identifying line end positions, counting lines and caching the position at the start of the last error line. The resultant code is simpler, and displays the line number without losing the pos. The performance cost of walking the source file is not an issue. + + + - In his latest specs (around 2013) Wirth removed the 'COPY(a, b)' character array copy procedure, replacing it with 'b := a'. I have accordingly enabled 'b := a' in voc as an alternative to 'COPY(a, b)' (COPY is still supported.). + + - Oberon code often writes to Oberon.Log expecting the text to appear on the screen. While voc has an Oberon.DumpLog procedure, I looked into making the behaviour automatic. Interestingly the voc source declares the Text notifier constants replace, insert and delete, but omits implementation of the notifier calls. The implementation turned out to be very little code, and I have used it to echo all text written to Oberon.Log to the console. This has the advantage over DumpLog that text is written immediately rather than only when DumpLog is called, and allows existing program source to work unchanged. diff --git a/doc/History.md b/doc/History.md new file mode 100644 index 00000000..6ff44199 --- /dev/null +++ b/doc/History.md @@ -0,0 +1,113 @@ +#### (Work in progress) + + + +### History + + +#### Changes from 1.2 to 2.0 + +The biggest changes relative to Vishap Oberon 1.2 are in the build system and in the implementation of platform specific support. Where possible platform specific code has removed or replaced by platform agnostic code. + + - The same make commands are used for all platforms, Linux, BSD, Darwin and Windows. In particular 'make full' +builds the compiler, library and tools, installs the compiler and tools, and runs a couple of confidence tests. + + - The C program 'configure.c', a much expanded version of vocparam.c, generates all the platform specific make variables, and the configuration constants compiled into the compiler. Configure.c is compiled and executed at the start of every make command. + + - Both makefiles are platform independent, compatible with both BSD make and GNU make. (For Visual C builds on Windows a separate make.cmd contains the equivalent functionality expressed as a Windows .cmd file.) + + - All duplicate files required to build Linux/BSD/Darwin variants have been removed by refactoring them to be platform independent: + - Rather than accessing Linux structures through Oberon RECORDs intended to match their memory layout, code procedures are used to reference C constants and struct fields directly. (This resolves a number of complexities with structure field order and layout variations across operating systems.) + - Size dependent code is abstracted into simple definitions in SYSTEM.h and referenced from code procedures. + - Files.Mod is extended with a file search path feature removing the need for Files0.Mod, Text0.Mod and Kernel0.Mod. Instead OPM.cmdln.Mod calls the new Files.SetSearchPath. + - Kernel.Mod, Unix.Mod and SYSTEM.Mod are refactored into Heap.Mod and PlatformUnix.Mod. An alternate Platform module implementation PlatformWindows.Mod is used for Microsoft C based builds, using the Win32 API directly. + - All use of the LONGINT type in C source, including in code procedures, now explicitly specify 'LONGINT'. Previously the code often used 'long' instead, assuming it was interchangeable with 'LONGINT', but for some platforms LONGINT is 'long long', not 'long'. + + - The enlistment no longer includes compiled binaries. Instead it includes pre-translated sets of C source covering both platforms and the three C data model variants. (See directory 'bootstrap'.) + + - The bootstrap sources are used on any fresh enlistment or clean build ('make full' is always a clean build). These sources, combined with the platform independence improvements outlined above, have built correctly from a fresh enlistment on all Linux, BSD and cygwin platforms that I have tried, including the raspberry pi under raspbian, and in the termux terminal emulator on android. + +The result is that there is now a single version of earch Oberon source file, with the exceptions only of PlatformUnix.Mod/PlatformWindows.Mod in the compiler, and oocCILP32.Mod/oocCLP64.Mod/oocCLLP64.Mod in the ooc library. + +The full build is now free of warnings: + + - Missing ELSE warnings solved by adding ELSE. + + - C code conversion between integer and pointer of different size solved by casting with with uintptr_t as an intermediate type. + + - C code conversion between signed and unsigned char types solved by explicitly casting 'CHAR's passed to system APIs in code procedures to 'char'. + +The full build now includes a few confidence tests to make sure that the basics work OK. + +HALT/exit code has been simplified. Exit now just calls the system exit API rather than calling the kill API and passing our own process ID. For runtime errors it now displayes the appropriate error message (e.g. Index out of range). + +The jump buffer was not used by any code and has been removed. (It seems from a comment to have been intended for use during some termination code, but the termination code does not use it.) + +Compilation errors now include the line number at the start of the displayed source line. The pos (character offset) is still displayed on the error message line. The error handling code was already doing some walking of the source file to find start and end of line - I changed this to walk through the source file from the start identifying line end positions, counting lines and caching the position at the start of the last error line. The resultant code is simpler, and displays the line number without losing the pos. The performance cost of walking the source file is not an issue. + +##### A few bug fix details: + + - There was a problem with the dynamic array size parameter passed to NEW when expressed as a literal on 64 bit builds. This happens a number of times in the compiler and library. Now in theory it is not necessary to specify the size of numeric literals on parameters to ANSI C functions as the compiler should know the size from the declaration of the called function. (i.e. it shouldn't matter whether one passes '1', '1l', or '1ll'.) +Therefore while OPM.PromoteIntConstToLInt was coded to generate 'l' at the end of long literal parameters on K&R C, it intentionally omitted the 'l' when the compiler was known to be ANSI - and all currently supported compilers are ANSI. +**But** it is not safe to omit the 'l' in literal parameters to C vararg functions: the C compiler cannot get the vararg parameter size from the declaration, and so uses the literal size. Thus only 32 bits are pushed to the stack where 64 bits are required. On a 64 bit Oberon, the implementation of SYSTEM\_NEWARR then reads a full 64 bits. Often the uninitialised 32 bits are zero, and everything works correctly. Rarely they are a very small integer and the system thrashes a while allocating page tables and then continues normally. Other times a segmentation fault or out of memery error is generated. +Removing the test for ANSI and thus always generating the trailing 'l' for LONGINTs is a sufficient fix for the data models supported by the previous versions of Vishap Oberon. +However there is a further complication - this is not sufficient for the LLP64 C data model used by 64 bit Windows. In LLP64, 'long' is only 32 bit. The 64 bit integer type is 'long long' and literal numerics of this type would require an 'll' suffix. +The simple solution was to generate a (LONGINT)(n) typecast, which forces n to the correct size in all cases. + + - SYSTEM.H __VAL(t, x) was defined as (\*(t\*)&(x)) which maps the new type onto the memory of the old. This produces the wrong result if the new type is larger than the old type, because it includes memory that does not belong to the variable into the result. This has been corrected to the simpler ((t)(x)) which will do the appropriate signed or unsigned extension. + + - There was a serious issue with accessing free'd memory in RETURN expressions. Oberon generates code to create local copies of dynamic strings passed by value (so that code is free to change the value parameter without affecting the original string). +The copy is not allocated from the Oberon Heap, but direct from the OS (e.g. via malloc on Linux/Unix). At function return the compiler inserts a call to C's free before the return statement. +The problem comes when the expression on the Oberon RETURN statement references the local string copy. This gets compiled to a C 'return' statement that references the free'd memory. Sometimes the C free will not have modified the string copy, and no error is seen. However all bets are off - the OS or C runtime could have done anything to this memory as part of heap management (e.g. used it for free chain linkage), and with pre-emptive multitasking it may have been reallocated and used for another purpose before the return expression refers to it. This bug hit me occasionally and took a while to find. +The solution I have implemented is to generate declaration of a return value variable at the entry of every function, and to generate code to evaluate the return expression into the variable *before* generating the code to free the local string copy. +In theory the Oberon compiler could inspect the return value for reference to a local copy and only generate the result variable when necessary, however this considerably complicate the Oberon compiler source code for procedure entry and would be of questionalble value, as the C compiler should be able to optimize code with a result variable much the same as code without it. + + - Texts.WriteInt corrected to work with both 4 and 8 byte LONGINTs. Previously values with more than 11 digits caused an index out of range error. + + - Between voc.Translate and extTools.Mod, the main program was being compiled twice by the C compiler. It is now compiled once. + +#### Other changes: + + - In his latest specs (around 2013) Wirth removed the 'COPY(a, b)' character array copy procedure, replacing it with 'b := a'. I have accordingly enabled 'b := a' in voc as an alternative to 'COPY(a, b)' (COPY is still supported.). + + - Oberon code often writes to Oberon.Log expecting the text to appear on the screen. While voc has an Oberon.DumpLog procedure, I looked into making the behaviour automatic. Interestingly the voc source declares the Text notifier constants replace, insert and delete, but omits implementation of the notifier calls. The implementation turned out to be very little code, and I have used it to echo all text written to Oberon.Log to the console. This has the advantage over DumpLog that text is written immediately rather than only when DumpLog is called, and allows existing program source to work unchanged. + + - While working on Vishap Oberon I have been using the name 'olang' rather than 'voc', partly to avoid mixing up binary files, and partly because I had not (re)reached compatability with voc. Since I reckon I'm close to complete, I have now parameterised the code to allow any file name for the compiler and install dir, and switched it back to 'voc' by default. src/tools/make/configure.c line 12 specifies the name that will be built. + + - I experimented with making INTEGER always 32 bit and LONGINT always 64 bit (i.e. even on 32 bit platfroms), but soon found that the libraries assume 16 bit INTEGER and 32 bit LONGINT all over the place. This experimental behaviour is still available by uncommenting the '#define LARGE' in src/tools/make/configure.c line 14. + +#### Norayr/voc issues addressed + +The following issues are taken from https://github.com/norayr/voc/issues. + +##### Issue 7 - 'silence ccomp warnings'. +This has been done. + +##### Issue 9 - 'oberon.par arguments'. +Done for all supported platforms including Ubuntu, FreeBSD, OpenBSD, Raspbian, Darwin, Cygwin and MS C, on a mixture of 32 and 64 bit architectures. + +The vast majority of info in the .par file is redundant. For example the size and alignment of char, unsigned char, int and float is independent of platform. + +A single value is sufficient to specify alignment: above this size this value is the alignment, below this size, the alignment is the same as the type size. (Actually the latter is the type size rounded up to the enclosing power of two, but as all the Oberon type sizes are powers of two this step is unecessary.) + +The only platform differences come around the meaning of 'long' vs 'long long', pointer size and alignment of 64 bit values. These are just 3 possible combinations: + +| Pointer size | Alignment | Used on | Bootstrap directories | +| ------------ | --------- | ---------------- | --------------------- | +| 32 bit | 32 bit | Unix | unix-44 | +| 32 bit | 64 bit | Unix and Windows | unix-48, windows-48 | +| 64 bit | 64 bit | Unix and Windows | unix-88, windows-88 | + +The various C data models are named using common C compiler terminology as follows: + +| Name | 'int' size | 'long' size | 'long long' size | pointer size | +| ----- | ---------- | ----------- | ---------------- | ------------ | +| ILP32 | 32 | 32 | 64 | 32 | +| LLP64 | 32 | 32 | 64 | 64 | +| LP64 | 32 | 64 | 64 | 64 | + +##### Issue 13 - 'prepare Linux/x86asm target'. +Linux is currently compiled using PlatfromUnix.Mod, but the integration of Windows support has made the Platform interface reasonably OS independent, so implementing a PlatformLinux.Mod using Linux kernel calls directly should be straightforward. + +##### Issue 14 - 'separate rtl from SYSTEM?'. +OS specific code is now all in Platformxxx.Mod. Memory management (including the loaded module list) is now in Heap.Mod. SYSTEM.h is platform independent, with minimal ifdefs to allow compiling on all platforms. For example, when SYSTEM.h/SYSTEM.c need to allocate memory, or to halt, they call into Platform.Mod. diff --git a/doc/Installation.md b/doc/Installation.md new file mode 100644 index 00000000..cf073524 --- /dev/null +++ b/doc/Installation.md @@ -0,0 +1,152 @@ +#### (Work in progress) + + +## TODO + - Organise into summary and per-platfrom sections + - with subsections for linux and BSD variants + - Add pre-requisites. E.g. static library support. + +#### Building and installation summary + +1. git clone https://github.com/vishaps/voc +2. cd voc +3. [sudo] make full + +Since 'make full' will install the compiler and libraries, it needs root (unix) or administrator (windows) privileges. + +| System | Install dir | Access required | +| ----------------------- | -------------------------------------- | ------------------------------ | +| Linux | /opt/voc | Needs root except under cygwin | +| BSD | /usr/local/share/voc | Needs root | +| Windows (mingw or Visual C) | %ProgramFiles[(X86)]% | Needs administrator | +| Termux (android) | /data/data/com.termux/files/opt/voc | | + + +#### 32 and 64 bit + +The size of compiler built is determined by the C compiler that runs, which is in turn determined by +the shell or command prompt configuration you are running under. + +The following type sizes follow the built compiler size: + +| Types | 32 bit builds | 64 bit builds | +| ----- | ------------- | ------------- | +| INTEGER | 16 bit | 32 bit | +| LONGINT, SET | 32 bit | 16 bit | + +Note that many library modules have been written with the assumption that INTEGER +is 16 bit and LONGINT 32 bit, therefore they will only work in 32 bit builds. + +#### Which compiler? (gcc vs clang) + +By default make uses the compiler defined in variable CC. This can be overriden by running 'export CC=gcc' or 'export CC=clang' from the command line before running make. + +*Note*: be sure to run 'make clean' any time you change the value of CC. Otherwise directories will be mixed up. + +*Note*: Darwin (MAC OS/X) redirects gcc to clang, so specifying CC=gcc still builds clang binaries under Darwin. + + +#### Building on Windows + +There are three ways to build on Windows: + +| Type | How to build | Compiled binary uses: | +| ----------- | ------- | --------------------- | +| cygwin | Use 'make' from cygwin bash shell. | cygwin.dll | +| mingw under cygwin | Set CC for mingw then use 'make' from cygwin bash shell. | Win32 API | +| Visual C | Use 'make.cmd' from Visual C command prompt. | Win32 API | + +##### mingw on cygwin + +To use mingw, install the correct sized package and export CC= the compiler name: + + - For 32 bit cygwin + + - use setup-x86.exe to add the package mingw64-i686-gcc-core. + - run 'export CC=i686-w64-mingw32-gcc' then 'make full' + + - For 64 bit cygwin + + - use setup-x86\_64.exe to add the package mingw64-x86\_64-gcc-core. + - run 'export CC=x86_64-w64-mingw32-gcc' then 'make full' + +(*Note*: Don't be put off by the name 'mingw64' in the 32 bit package.) + +##### Microsoft Visual C compiler + +Use the free command line Visual C++ compiler. At the time of writing it can be +downloaded here: + + http://landinghub.visualstudio.com/visual-cpp-build-tools + +For example (Windows 10): + +Start an adminstrator command prompt from the start button as follows: + + Start / All apps / Visual C++ Build Tools + +Right click on + + Visual C++ 2015 x86 Native Build Tools Command Prompt + +or + + Visual C++ 2015 x64 Native Build Tools Command Prompt + +And select + + More / Administrative Command Prompt + +#### How make adapts to each platform + +On all platforms other than Visual C on Windows, make runs from a bash shell, +using makefile in the enlistment root, and vishap.make in the src/tools/make +directory. + +For Visual C only, there is a slightly cut down implementation of the same +functionality in the file 'make.cmd' in the enlistment root. + +In all cases src/tools/make/configure.c is executed to determine all +platform dependent parameters: it generates two files: + + - Configuration.Make: a set of environment variables included by the makefile + - Configuration.Mod: An Oberon MODULE containing just configuraton constants. + +The following examples correspond to a 32 bit Ubuntu build using GCC: + +Configuration.Make: + + OLANGDIR=/home/dave/projects/oberon/olang + COMPILER=gcc + OS=ubuntu + VERSION=1.2 + ONAME=voc + DATAMODEL=ILP32 + INTSIZE=2 + ADRSIZE=4 + ALIGNMENT=4 + INSTALLDIR=/opt/voc + PLATFORM=unix + BINEXT= + COMPILE=gcc -fPIC -g + STATICLINK=-static + LDCONFIG=if echo "/opt/voc/lib" >/etc/ld.so.conf.d/libvoc.conf; then ldconfig; fi + +Configuration.Mod: + + MODULE Configuration; + CONST + name* = 'voc'; + versionLong* = '1.2 [2016/06/11] for gcc ILP32 on ubuntu'; + intsize* = 2; + addressSize* = 4; + alignment* = 4; + objext* = '.o'; + objflag* = ' -o '; + linkflags* = ' -L"'; + libspec* = ' -l voc'; + compile* = 'gcc -fPIC -g'; + dataModel* = 'ILP32'; + installdir* = '/opt/voc'; + staticLink* = '-static'; + END Configuration. diff --git a/doc/Porting.md b/doc/Porting.md new file mode 100644 index 00000000..94707e04 --- /dev/null +++ b/doc/Porting.md @@ -0,0 +1,80 @@ +#### (Work in progress) + +### Porting to a new platform + +Porting to a new 32 or 64 bits platform is usually automatically handled +by `make full`: + + - The makefile compiles `src/tools/make/configure.c` with the + platform's default C compiler. + - `configure.c` determines which types to use for 32 and 64 bit + variables, and their alignment. + - `configure.c` uses a number of strategies to determine the + operating system it is running on and what the appropriate + installation directory will be. + - `configure.c` sets makefile variables that are used to select + which of 5 sets of preprepared C source files to build to create + the bootstrap compiler. + +On most systems this will be sufficient for `make full` to build +and install the compiler and libraries. + +`make full` will terminate with a message such as: + +`--- Branch v2docs freebsd gcc LP64 confidence tests passed ---` + +#### Updating configure.c + +It should only be necessary to change `configure.c` if it +cannot determine the correct install directory. + +In this case add code to `src/tools/make/configure.c`'s +function `determineOS()` to set the `os` variable to the name +of the new OS platform. + +The following variables are also set by `determineOS()` to the +followind defaults: + +variable | set to | example +-------- | ------ | ------- +`platform` | Base platform | `"unix"` +`binext` | Binary file extension | `""` +`staticlink` | Static linking option | `"-static"` + +If your new platform does not support static removing, set the +`staticlink` variable to `""`. + +Then modify `determineInstallDirectory()` to select the correct +instalation root based on the changes you have made to `determineOS()`. + +The `platform` variable selects which variety of the Platform +module is compiled. Vishap provides two varieties, one specific +to the Windows API (`Platformwindows.Mod`), and one suitable for +Unix-like systems including Linux, BSD, Android and cygwin +(`Platformunix.Mod`). + + +#### How to add a new compiler option + + - Define it in OPM as a constant before defopt is defined. + - Define a BOOLEAN variable in OPM which will describe if setting is set. + - Add handling of a new option in OPM.ScanOptions + - Set your BOOLEAN value in OPM.OpenPari (or in ScanOptions, after the + CASE) so you can check it later. + - Check your boolean when necessary, (see useParFile in OPM.GetOptions) + - Add it in OPC.GenHeaderMsg function. + +#### Known bugs + +When using SYSTEM.LSH(s, n) where s is SET, +the C compiler generates an error like +`error: duplicate 'unsigned'`, +that's because SET is defined as unsigned in SYSTEM.h, +while LSH is defined in SYSTEM.h as ((t)((unsigned t)(x)<<(n))), +and it makes not possible to make SYSTEM.LSH with type SET. + +I don't want to prohibit it at the parser level +because C backend is only one of possible backends. + +The solution currently is to cast set type to longint before lsh-ing it. +And then casting it back to set if necessary. diff --git a/doc/Roadmap.md b/doc/Roadmap.md new file mode 100644 index 00000000..e99440bd --- /dev/null +++ b/doc/Roadmap.md @@ -0,0 +1,92 @@ + +#### (Work in progress) + +#### Machine size issues + +I don't see any really good solutions to different machine sizes. Existing code, +such as the libraries, assumes that INTEGER is 16 bit and LONGINT is 32 bit and +so is broken on 64 bit builds of voc. + +Could the implementation of INTnn types help? It would not solve (for example) +the need for a type that always matches address size. Nor would it provide +unsigned types. Implementation of low level memory management needs both. + +Wirth's latest spec includes a BYTE type (not SYSTEM.BYTE, just BYTE) that +behaves as an unsigned 8 bit integer, for use in low level code. BYTE thus +avoids the need for SYSTEM.VAL when manipulating 8 bit unsigned numeric values, +making code easier to write and, more importantly, easier to read. A BYTE type +would be useful for microcontroller C support. So I believe it makes sense to +add Wirths's BYTE to voc. + +Linux/Unix specifies many API datatypes and structure fields in terms of named C +numeric types, with the result that they vary in size between implementations. +This is perhaps the strongest driving force for adding support for various +numeric types to voc - but they would better match the C types than be of fixed +size. + +So maybe one could provide Platform.int, Platform.long, Platform.longlong, +Platform.unsignedint, Platform.unsignedlong, Platform.unsignedlonglong and, +importantly for memory management, Platform.uintptr. + +Personally I miss Pascal and Modula's subrange variables. As well as being great +for error detection (assuming value checking code is generated), they can also +be used to imply variables of arbitrary sizes (e.g. 'VAR mybyte = 0..255;'). +With these one could remove the Platform.int* types and replace them with +constants Platform.MaxInt, Platform.MaxLong etc. I think this would be a cleaner +more generalised option - but maybe, probably, it is a step too far. Always +beware of over-generalising. Wirth found that most programmers did not use, or +very rarely used, subrange types. + +#### More thoughts about 64 bit support and what INTEGER and LONGINT mean + +Arguably, because Oberon says LONGINT is big enough for addresses, +it seems that LONGINT has to be 64 bits on a 64 bit system. + +But I'm having second thoughts. + +There's a lot of code out there that assumes the size of INTEGER and LONGINT +and is broken if they are not 16 and 32 bits respectively. Frustratingly a +lot of the broken code doesn't go wrong until it encounters values outside the +16 and 32 bit ranges - like Texts.WriteInt which handles values up 2**32 fine, +and then aborts the program with an index out of range error when the number +is more than 11 characters long. + +I suggest use of LONGINT for addresses is a small subset of use cases of LONGINT. + +Instead I propose we + - keep INTEGER at 16 bits and LONGINT at 32 bits. + - Add LONG64 for 64 bit signed integers, to be available on both 32 and 64 + bit systems, (quite possible as C has an int64_t on both systems). + - add a SYSTEM.ADDRESS type for address manipulation + - an unsigned type that always matches the machine address size (32, 64 or even 16 bit). + - is compatible with SHORTINT, INTEGER, LONGINT and LONG64. + +It means changing the memory management and platform interface code, but it +means client code does not need changing. + +This fixes the current 16 bit hole in the range of INTEGER types on 64 bit systems. + + +#### A feature I'd really like to see + +We should report .Mod file name and line number at fault when exiting abnormally, +e.g. due to index out of range. Followed by a stack trace. + +Wirth's original Pascal (Pascal 6000 on the CDC mainframe at ETHZ) had this at +least by 1975. This could be achieved by including a table of .Mod file line +number vs code address, and having the runtime seach this table for the failure +address. It would be quite a lot of work! + +#### Oberon 07/15 mode + + - Add standard BYTE type being an unsigned integer between 0 and 255. + - Structured value parameters become read-only and get passed the same way as + VAR parameters - i.e. no copying. + - CASE statements only support INTEGER (with low positive values) and CHAR. + - Reject LOOP statements. + - All imported variables are read-only. + +#### To be left out? + +Work on other compatibility layers is in progress. +voc team also works on bindings to existing C/Pascal libraries. diff --git a/makefile b/makefile index 2cc4da4e..1b18dec3 100644 --- a/makefile +++ b/makefile @@ -98,13 +98,14 @@ usage: -# Generate config files Configuration.Make and Configuartion.Mod +# Generate config files Configuration.Make and Configuration.Mod FORCE: configuration: FORCE @$(CC) -I src/system -o a.o src/tools/make/configure.c @./a.o @rm a.o + @echo BRANCH=$$(git rev-parse --abbrev-ref HEAD)>>Configuration.Make @@ -131,13 +132,24 @@ clean: configuration # full: Full build of compiler and libarary. full: configuration + @make -f src/tools/make/vishap.make -s installable @make -f src/tools/make/vishap.make -s clean +# Make bootstrap compiler from source suitable for current data model + @make -f src/tools/make/vishap.make -s compilerfromsavedsource +# Use bootstrap compiler to make compiler binary from latest compiler sources @make -f src/tools/make/vishap.make -s translate @make -f src/tools/make/vishap.make -s assemble +# Use latest compiler to make compiler binary from latest compiler sources + @make -f src/tools/make/vishap.make -s translate + @make -f src/tools/make/vishap.make -s assemble + @printf "\n\n--- Compiler build successfull ---\n\n" @make -f src/tools/make/vishap.make -s browsercmd @make -f src/tools/make/vishap.make -s library + @printf "\n\n--- Library build successfull ---\n\n" + @make -f src/tools/make/vishap.make -s checksum @make -f src/tools/make/vishap.make -s install @make -f src/tools/make/vishap.make -s confidence + @make -f src/tools/make/vishap.make -s showpath @@ -166,9 +178,12 @@ library: configuration # install: Copy built files to install directory install: configuration + @make -f src/tools/make/vishap.make -s installable @make -f src/tools/make/vishap.make -s install + @make -f src/tools/make/vishap.make -s showpath uninstall: configuration + @make -f src/tools/make/vishap.make -s installable @make -f src/tools/make/vishap.make -s uninstall @@ -178,7 +193,12 @@ uninstall: configuration # bootstrap: Rebuild the bootstrap directories +# If the bootstrap directories are broken or only partially +# built then run 'make revertbootstrap' first. bootstrap: configuration + @make -f src/tools/make/vishap.make -s clean + @make -f src/tools/make/vishap.make -s translate + @make -f src/tools/make/vishap.make -s assemble rm -rf bootstrap/* make -f src/tools/make/vishap.make -s translate INTSIZE=2 ADRSIZE=4 ALIGNMENT=4 PLATFORM=unix BUILDDIR=bootstrap/unix-44 && rm bootstrap/unix-44/*.sym make -f src/tools/make/vishap.make -s translate INTSIZE=2 ADRSIZE=4 ALIGNMENT=8 PLATFORM=unix BUILDDIR=bootstrap/unix-48 && rm bootstrap/unix-48/*.sym @@ -237,11 +257,3 @@ autobuild: configuration # autostop: Tell test clients to exit their wait loop. autostop: configuration ./testclient -c "exit" - - - - - - - - diff --git a/src/compiler/OPB.Mod b/src/compiler/OPB.Mod index 8b7468c1..a06b1cfc 100644 --- a/src/compiler/OPB.Mod +++ b/src/compiler/OPB.Mod @@ -409,9 +409,9 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *) END ; z^.typ := OPT.booltyp | adr: (*SYSTEM.ADR*) - IF (z^.class = Nconst) & (f = Char) & (z^.conval^.intval >= 20H) THEN - CharToString(z); f := String - END; + IF (z^.class = Nconst) & (f = Char) & (z^.conval^.intval >= 20H) THEN + CharToString(z); f := String + END; IF (z^.class < Nconst) OR (f = String) THEN z := NewOp(op, typ, z) ELSE err(127) END ; @@ -906,8 +906,8 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *) | lss, leq, gtr, geq: IF (f IN {Undef, Char..LReal(*, Int8..Int64*)}) OR strings(z, y) THEN typ := OPT.booltyp ELSE - OPM.LogWLn; OPM.LogWStr("ELSE in Op()"); OPM.LogWLn; - err(108); typ := OPT.undftyp + OPM.LogWLn; OPM.LogWStr("ELSE in Op()"); OPM.LogWLn; + err(108); typ := OPT.undftyp END ; NewOp(op, typ, z, y) ELSE @@ -977,24 +977,24 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *) Undef, String: (* | Int8: IF (ynode.typ.size > OPM.Int8Size) THEN - IF OPM.Verbose THEN OPM.LogWStr("f of int8"); OPM.LogWLn END; - err(113) - END + IF OPM.Verbose THEN OPM.LogWStr("f of int8"); OPM.LogWLn END; + err(113) + END | Int16: IF (ynode.typ.size > OPM.Int16Size) THEN - IF OPM.Verbose THEN OPM.LogWStr("f of int16"); OPM.LogWLn END; - err(113) - END + IF OPM.Verbose THEN OPM.LogWStr("f of int16"); OPM.LogWLn END; + err(113) + END | Int32: IF (ynode.typ.size > OPM.Int32Size) THEN - IF OPM.Verbose THEN OPM.LogWStr("f of int32"); OPM.LogWLn END; - err(113) - END + IF OPM.Verbose THEN OPM.LogWStr("f of int32"); OPM.LogWLn END; + err(113) + END | Int64: IF ynode.typ.size > OPM.Int64Size THEN - IF OPM.Verbose THEN OPM.LogWStr("f of int64"); OPM.LogWLn END; - err(113) - END*) + IF OPM.Verbose THEN OPM.LogWStr("f of int64"); OPM.LogWLn END; + err(113) + END*) | Byte: IF ~(g IN {Byte, Char, SInt}) THEN err(113) END | Bool, Char, SInt, Set: @@ -1003,10 +1003,10 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *) IF ~(g IN {SInt, Int}) THEN err(113) END | LInt: IF OPM.LIntSize = 4 THEN - IF ~(g IN {SInt, Int, LInt(*, Int8, Int16, Int32*)}) THEN err(113) END - ELSE (* assume OPM.LIntSize = 8 *) + IF ~(g IN {SInt, Int, LInt(*, Int8, Int16, Int32*)}) THEN err(113) END + ELSE (* assume OPM.LIntSize = 8 *) IF ~(g IN {SInt, Int, LInt(*, Int8, Int16, Int32, Int64*)}) THEN err(113) END - END; + END; | Real: IF ~(g IN {SInt..Real}) THEN err(113) END | LReal: @@ -1131,10 +1131,10 @@ avoid unnecessary intermediate variables in voc | SInt: x := NewIntConst(OPM.MinSInt) | Int: x := NewIntConst(OPM.MinInt) | LInt: x := NewIntConst(OPM.MinLInt) - (* | Int8: x := NewIntConst(OPM.MinInt8) - | Int16: x := NewIntConst(OPM.MinInt16) - | Int32: x := NewIntConst(OPM.MinInt32) - | Int64: err(111)(*x := NewIntConst(OPM.MinInt64)*) (* int64 constants not implemented yet *)*) + (* | Int8: x := NewIntConst(OPM.MinInt8) + | Int16: x := NewIntConst(OPM.MinInt16) + | Int32: x := NewIntConst(OPM.MinInt32) + | Int64: err(111)(*x := NewIntConst(OPM.MinInt64)*) (* int64 constants not implemented yet *)*) | Set: x := NewIntConst(0); x^.typ := OPT.inttyp | Real: x := NewRealConst(OPM.MinReal, OPT.realtyp) | LReal: x := NewRealConst(OPM.MinLReal, OPT.lrltyp) @@ -1150,10 +1150,10 @@ avoid unnecessary intermediate variables in voc | SInt: x := NewIntConst(OPM.MaxSInt) | Int: x := NewIntConst(OPM.MaxInt) | LInt: x := NewIntConst(OPM.MaxLInt) - (* | Int8: x := NewIntConst(OPM.MaxInt8) - | Int16: x := NewIntConst(OPM.MaxInt16) - | Int32: x := NewIntConst(OPM.MaxInt32) - | Int64: err(111); (*x := NewIntConst(OPM.MaxInt64)*) (* int64 contstants not implemented yet *)*) + (* | Int8: x := NewIntConst(OPM.MaxInt8) + | Int16: x := NewIntConst(OPM.MaxInt16) + | Int32: x := NewIntConst(OPM.MaxInt32) + | Int64: err(111); (*x := NewIntConst(OPM.MaxInt64)*) (* int64 contstants not implemented yet *)*) | Set: x := NewIntConst(OPM.MaxSet); x^.typ := OPT.inttyp | Real: x := NewRealConst(OPM.MaxReal, OPT.realtyp) | LReal: x := NewRealConst(OPM.MaxLReal, OPT.lrltyp) diff --git a/src/compiler/OPM.cmdln.Mod b/src/compiler/OPM.cmdln.Mod index 6a02cc91..32b95689 100644 --- a/src/compiler/OPM.cmdln.Mod +++ b/src/compiler/OPM.cmdln.Mod @@ -181,7 +181,7 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *) (* Undocumented options used by the build system: - The following two parameter overrides the integer size, pointer size and alignment + The following parameter overrides the integer size, pointer size and alignment settings compiled into the binary. They are used when bootstrapping to generate the C source for a compiler with different sizes to the current compiler. diff --git a/src/system/SYSTEM.h b/src/system/SYSTEM.h index f9e2f930..41ef9995 100644 --- a/src/system/SYSTEM.h +++ b/src/system/SYSTEM.h @@ -49,7 +49,7 @@ #define LONGREAL double #define SYSTEM_PTR void* -// For 32 bit builds, the size of LONGINT depends on a make option: +// For 32 bit builds, the size of LONGINT depends on a make option: #if (__SIZEOF_POINTER__ == 8) || defined(LARGE) || defined(_WIN64) #define INTEGER int // INTEGER is 32 bit. @@ -126,21 +126,21 @@ static int __str_cmp(CHAR *x, CHAR *y){ #define __GET(a, x, t) x= *(t*)(uintptr_t)(a) #define __PUT(a, x, t) *(t*)(uintptr_t)(a)=x + #define __LSHL(x, n, t) ((t)((unsigned t)(x)<<(n))) #define __LSHR(x, n, t) ((t)((unsigned t)(x)>>(n))) #define __LSH(x, n, t) ((n)>=0? __LSHL(x, n, t): __LSHR(x, -(n), t)) -#define __ROTL(x, n, t) ((t)((unsigned t)(x)<<(n)|(unsigned t)(x)>>(8*sizeof(t)-(n)))) -#define __ROTR(x, n, t) ((t)((unsigned t)(x)>>(n)|(unsigned t)(x)<<(8*sizeof(t)-(n)))) -#define __LSHR(x, n, t) ((t)((unsigned t)(x)>>(n))) -#define __LSH(x, n, t) ((n)>=0? __LSHL(x, n, t): __LSHR(x, -(n), t)) -#define __ROTL(x, n, t) ((t)((unsigned t)(x)<<(n)|(unsigned t)(x)>>(8*sizeof(t)-(n)))) -#define __ROTR(x, n, t) ((t)((unsigned t)(x)>>(n)|(unsigned t)(x)<<(8*sizeof(t)-(n)))) -#define __ROT(x, n, t) ((n)>=0? __ROTL(x, n, t): __ROTR(x, -(n), t)) -#define __BIT(x, n) (*(unsigned LONGINT*)(x)>>(n)&1) -#define __MOVE(s, d, n) memcpy((char*)(uintptr_t)(d),(char*)(uintptr_t)(s),n) + #define __ASHL(x, n) ((LONGINT)(x)<<(n)) #define __ASHR(x, n) ((LONGINT)(x)>>(n)) #define __ASH(x, n) ((n)>=0?__ASHL(x,n):__ASHR(x,-(n))) + +#define __ROTL(x, n, t) ((t)((unsigned t)(x)<<(n)|(unsigned t)(x)>>(8*sizeof(t)-(n)))) +#define __ROTR(x, n, t) ((t)((unsigned t)(x)>>(n)|(unsigned t)(x)<<(8*sizeof(t)-(n)))) +#define __ROT(x, n, t) ((n)>=0? __ROTL(x, n, t): __ROTR(x, -(n), t)) + +#define __BIT(x, n) (*(unsigned LONGINT*)(x)>>(n)&1) +#define __MOVE(s, d, n) memcpy((char*)(uintptr_t)(d),(char*)(uintptr_t)(s),n) #define __ASHF(x, n) SYSTEM_ASH((LONGINT)(x), (LONGINT)(n)) #define __SHORT(x, y) ((int)((unsigned LONGINT)(x)+(y)<(y)+(y)?(x):(__HALT(-8),0))) #define __SHORTF(x, y) ((int)(__RF((x)+(y),(y)+(y))-(y))) diff --git a/src/tools/make/buildall.pl b/src/tools/make/buildall.pl new file mode 100755 index 00000000..c290b942 --- /dev/null +++ b/src/tools/make/buildall.pl @@ -0,0 +1,167 @@ +#!perl -w +use strict; +use warnings; +use POSIX "strftime"; +use Cwd; + +my $branch = "v2docs"; + +my %machines = ( + "pi" => ['pi@pie', "sudo", "projects/oberon/vishap/voc"], + "darwin" => ['dave@dcb', "sudo", "projects/oberon/vishap/voc"], + "lub32" => ['dave@lub32', "sudo", "vishap/voc"], + "ob32" => ['root@nas-ob32', "", "vishap/voc"], + "ce64" => ['-p5922 obe@www', "sudo", "vishap/voc"], + "ub64" => ['dave@nas-ub64', "sudo", "vishap/voc"], + "fb64" => ['root@oberon', "", "vishap/voc"] +); + + +sub logged { + my ($cmd, $id) = @_; + my $child = fork; + if (not defined $child) {die "Fork failed.";} + if ($child) { + # parent process + print "Started $id, pid = $child\n"; + } else { + # child process + open(my $log, ">log/$id.log") // die "Could not create log file log/$id.log"; + print $log strftime("%Y/%m/%d %H.%M.%S ", localtime), "$id.log\n"; + print $log strftime("%H.%M.%S", localtime), "> $cmd\n"; + print $id, " ", strftime("%H.%M.%S", localtime), "> $cmd\n"; + open(my $pipe, "$cmd 2>&1 |") // die "Could not open pipe from command $cmd."; + while (<$pipe>) { + my $line = $_; + print $id, " ", strftime("%H.%M.%S", localtime), " ", $line; + print $log strftime("%H.%M.%S", localtime), " ", $line; + } + close($pipe); + close($log); + exit; + } +} + +unlink glob "log/*"; + +for my $machine (sort keys %machines) { + my ($login, $sudo, $dir) = @{$machines{$machine}}; + my $cmd = "ssh $login \"cd $dir && $sudo git checkout $branch && $sudo git pull && $sudo make full\" "; + logged($cmd, $machine); +} + +while ((my $pid = wait) > 0) {print "Child pid $pid completed.\n";} + + +# # All builds have completed. Now scan the logs for pass/fail and build the passing report. + + +my %status = (); + + +sub parselog { + my ($fn) = @_; + #print "Parsing log $fn\n"; + my $date = ""; + my $time = ""; + my $branch = ""; + my $os = ""; + my $compiler = ""; + my $datamodel = ""; + my $compilerok = ""; + my $libraryok = ""; + my $checksum = ""; + my $tests = ""; + open(my $log, $fn) // die "Couldn't open build log $fn."; + while (<$log>) { + if (/^([0-9\/]+) [0-9.]+ [^ ]+\.log$/) {$date = $1;} + if (/^[^ ]+ --- Cleaning branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ---$/) { + ($branch, $os, $compiler, $datamodel) = ($1, $2, $3, $4, $5); + } + if (/^([0-9.]+) --- Compiler build successfull ---$/) {$compilerok = "Built";} + if (/^([0-9.]+) --- Library build successfull ---$/) {$libraryok = "Built";} + if (/^([0-9.]+) --- Confidence tests passed ---$/) {$tests = "Passed";} + if (/^([0-9.]+) --- Object file checksums match ---$/) {$checksum = "Unchanged";} + if (/^([0-9.]+) --- Object file checksum mismatch ---$/) {$checksum = "Changed";} + if (/^([0-9.]+) --- Object files checksummed ---$/) {$checksum = "New";} + } + close($log); + my $key = "$os-$compiler-$datamodel"; + if ($key ne "") { + $status{$key} = [$fn, $date, $time, $os, $compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests]; + } +} + +opendir DIR, "log" // die "Could not open log directory."; +my @logs = readdir DIR; +closedir DIR; + +for my $logname (sort @logs) { + $logname = "log/" . $logname; + #print "Consider $logname\n"; + if (-f $logname) {parselog($logname);} +} + +my $fontheight = 12; +my $lineheight = 15; + +sub svgtext { + my ($f, $x, $y, $colour, $msg) = @_; + print $f ''; + print $f $msg; + print $f "\n"; +} + +my $rows = keys %status; + +my $width = 680; +my $height = ($rows+2) * $lineheight; + +open(my $svg, ">build-status.svg") // die "Could not create build-status.svg."; +print $svg '\n"; +print $svg '', "\n"; + +my $col1 = 20; +my $col2 = 110; +my $col3 = 200; +my $col4 = 310; +my $col5 = 400; +my $col6 = 475; +my $col7 = 580; + +svgtext($svg, $col1, 0, "#e0e0e0", "OS"); +svgtext($svg, $col2, 0, "#e0e0e0", "Compiler"); +svgtext($svg, $col3, 0, "#e0e0e0", "Data model"); +svgtext($svg, $col4, 0, "#e0e0e0", "Compiler"); +svgtext($svg, $col5, 0, "#e0e0e0", "Library"); +svgtext($svg, $col6, 0, "#e0e0e0", "Checksum"); +svgtext($svg, $col7, 0, "#e0e0e0", "Tests"); + +my $i=1; +for my $key (sort keys %status) { + my ($fn, $date, $time, $os, $compiler, $datamodel, $branch, + $compilerok, $libraryok, $checksum, $tests) = @{$status{$key}}; + print $svg ''; + svgtext($svg, $col1, $i, "#c0c0c0", $os); + svgtext($svg, $col2, $i, "#c0c0c0", $compiler); + svgtext($svg, $col3, $i, "#c0c0c0", $datamodel); + svgtext($svg, $col4, $i, "#60ff60", $compilerok); + svgtext($svg, $col5, $i, "#60ff60", $libraryok); + svgtext($svg, $col6, $i, "#60ff60", $checksum); + svgtext($svg, $col7, $i, "#60ff60", $tests); + print $svg ''; + $i++; +} + +print $svg "\n"; + +system 'scp build-status.svg dave@hub:/var/www'; +system 'scp log/* dave@hub:/var/www/log'; diff --git a/src/tools/make/checksumtest.sh b/src/tools/make/checksumtest.sh new file mode 100644 index 00000000..47926771 --- /dev/null +++ b/src/tools/make/checksumtest.sh @@ -0,0 +1,23 @@ +# Checksum tests +# +# Checksums object binaries (*.o) and compares with previous +# checksum for this branch. +# +# Note: OPC.o and OPM.o are omitted as they both have text string constants +# that include the build date. + + +md5=md5 +if which md5sum >/dev/null 2>&1; then md5=md5sum; fi +if [ -f $1 ] +then + $md5 *.o | egrep -v "OP[CM]\\.o" >newsums + if diff -b $1 newsums + then printf "\n--- Object file checksums match ---\n" + else printf "\n--- Object file checksum mismatch ---\n" + fi + rm newsums +else + $md5 *.o | egrep -v "OP[CM]\\.o" >$1 + printf "\n--- Object files checksummed ---\n" +fi diff --git a/src/tools/make/configure.c b/src/tools/make/configure.c index 7eb7123b..1117962f 100644 --- a/src/tools/make/configure.c +++ b/src/tools/make/configure.c @@ -8,7 +8,7 @@ // Derived from vocparam.c originally by J. Templ 23.6.95 -#define O_VER 1.2 // Version number to be reported by compiler. +#define O_VER 1.95 // Version number to be reported by compiler. #define O_NAME voc // Compiler name used for binary, install dir and references in text. // #define LARGE // Define this to get 32 bit INTEGER and 64 bit longints even on 32 bit platforms. diff --git a/src/tools/make/postpush.pl b/src/tools/make/postpush.pl new file mode 100755 index 00000000..8916e0d1 --- /dev/null +++ b/src/tools/make/postpush.pl @@ -0,0 +1,50 @@ +#!/usr/bin/perl -w + + +use strict; +use warnings; +use POSIX "strftime"; + + +use CGI qw(:standard escapeHTML); +use JSON; + + +sub writelog { + my ($msg) = @_; + + open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; + flock(LOG, 2) or die "Could not lock postpush.log"; + print LOG sprintf("%s %s\n", strftime("%Y/%m/%d %H.%M.%S", localtime), $msg); + close(LOG); +} + +my $postdata = from_json(param('POSTDATA')); + +my $url = $postdata->{'repository'}->{'url'}; +my $ref = $postdata->{'ref'}; +my $name = $postdata->{'head_commit'}->{'author'}->{'name'}; + +my $branch = $ref; $branch =~ s'^.*\/''; +my $repo = $url; $repo =~ s'^.*\/''; + +writelog "Post push github web hook for repository $repo, branch $branch, name $name."; + + +my $child = fork; +if (not defined $child) {die "Fork failed.";} +if ($child) { + writelog "Started buildall, pid = $child."; # parent process +} else { + close(STDIN); close(STDOUT); close(STDERR); # child process + unlink "buildall.pl"; + sleep 5; # Leave time for the push to complete. (Yuk!) + system 'wget https://raw.githubusercontent.com/vishaps/voc/v2docs/src/tools/make/buildall.pl'; + exec 'perl buildall.pl >/tmp/buildall.log'; + exit; +} + +print header(), + start_html("Vishap Oberon github post push web hook."), + p("Repository $repo, branch $branch, name $name."), + end_html(); diff --git a/src/tools/make/pt.pl b/src/tools/make/pt.pl new file mode 100755 index 00000000..0c3243c1 --- /dev/null +++ b/src/tools/make/pt.pl @@ -0,0 +1,108 @@ +#!perl -w +use strict; +use warnings; +use POSIX "strftime"; + + + + +my %status = (); + + +sub parselog { + my ($fn) = @_; + #print "Parsing log $fn\n"; + my $date = ""; + my $time = ""; + my $branch = ""; + my $os = ""; + my $compiler = ""; + my $datamodel = ""; + my $compilerok = ""; + my $libraryok = ""; + my $checksum = ""; + my $tests = ""; + open(my $log, $fn) // die "Couldn't open build log $fn."; + while (<$log>) { + if (/^([0-9\/]+) [0-9.]+ [^ ]+\.log$/) {$date = $1;} + if (/^[^ ]+ --- Cleaning branch ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ---$/) { + ($branch, $os, $compiler, $datamodel) = ($1, $2, $3, $4, $5); + } + if (/^([0-9.]+) --- Compiler build successfull ---$/) {$compilerok = "Built";} + if (/^([0-9.]+) --- Library build successfull ---$/) {$libraryok = "Built";} + if (/^([0-9.]+) --- Confidence tests passed ---$/) {$tests = "Passed";} + if (/^([0-9.]+) --- Object file checksums match ---$/) {$checksum = "Match";} + if (/^([0-9.]+) --- Object file checksum mismatch ---$/) {$checksum = "Changed";} + if (/^([0-9.]+) --- Object files checksummed ---$/) {$checksum = "New";} + } + close($log); + my $key = "$os-$compiler-$datamodel"; + if ($key ne "") { + $status{$key} = [$date, $time, $os, $compiler, $datamodel, $branch, $compilerok, $libraryok, $checksum, $tests]; + } +} + +opendir DIR, "log" // die "Could not open log directory."; +my @logs = readdir DIR; +closedir DIR; + +for my $logname (sort @logs) { + $logname = "log/" . $logname; + #print "Consider $logname\n"; + if (-f $logname) {parselog($logname);} +} + +my $emsperline = 1.2; + +sub svgtext { + my ($f, $x, $y, $colour, $msg) = @_; + print $f ''; + print $f $msg; + print $f "\n"; +} + +my $rows = keys %status; + +open(my $svg, ">build-status.svg") // die "Could not create build-status.svg."; +print $svg '', "\n"; +print $svg '', "\n"; + +my $col1 = 20; +my $col2 = 110; +my $col3 = 200; +my $col4 = 310; +my $col5 = 400; +my $col6 = 490; +my $col7 = 580; + +svgtext($svg, $col1, 0, "#e0e0e0", "OS"); +svgtext($svg, $col2, 0, "#e0e0e0", "Compiler"); +svgtext($svg, $col3, 0, "#e0e0e0", "Data model"); +svgtext($svg, $col4, 0, "#e0e0e0", "Compiler"); +svgtext($svg, $col5, 0, "#e0e0e0", "Library"); +svgtext($svg, $col6, 0, "#e0e0e0", "Checksum"); +svgtext($svg, $col7, 0, "#e0e0e0", "Tests"); + +my $i=1; +for my $key (sort keys %status) { + my ($date, $time, $os, $compiler, $datamodel, + $branch, $compilerok, $libraryok, $checksum, $tests) = @{$status{$key}}; + svgtext($svg, $col1, $i, "#c0c0c0", $os); + svgtext($svg, $col2, $i, "#c0c0c0", $compiler); + svgtext($svg, $col3, $i, "#c0c0c0", $datamodel); + svgtext($svg, $col4, $i, "#60ff60", $compilerok); + svgtext($svg, $col5, $i, "#60ff60", $libraryok); + svgtext($svg, $col6, $i, "#60ff60", $checksum); + svgtext($svg, $col7, $i, "#60ff60", $tests); + $i++; +} + +print $svg "\n"; + +system 'scp -p build-status.svg dave@hub:/var/www'; diff --git a/src/tools/make/vishap.make b/src/tools/make/vishap.make index d7fdbe23..4cbbf52e 100644 --- a/src/tools/make/vishap.make +++ b/src/tools/make/vishap.make @@ -28,6 +28,7 @@ usage: clean: + @printf "\n\n--- Cleaning branch $(BRANCH) $(OS) $(COMPILER) $(DATAMODEL) ---\n\n" rm -rf $(BUILDDIR) rm -f $(VISHAP) @@ -150,6 +151,16 @@ testtools: +# installable: Check for access to the installation directory + +installable: + @rm -rf "S(INSTALLDIR)/test-access-qqq" + @if ! mkdir -p "$(INSTALLDIR)/test-access-qqq";then echo "\\n\\n Cannot write to install directory.\\n Please use sudo or run as root/administrator.\\n\\n"; exit 1;fi + @rm -rf "S(INSTALLDIR)/test-access-qqq" + + + + # install: Use only after a successful full build. Installs the compiler # and libraries in /opt/$(ONAME). # May require root access. @@ -163,6 +174,10 @@ install: @-cp $(BUILDDIR)/showdef$(BINEXT) "$(INSTALLDIR)/bin" @cp $(BUILDDIR)/lib$(ONAME).* "$(INSTALLDIR)/lib/" @if which ldconfig >/dev/null 2>&1; then $(LDCONFIG); fi + + +# showpath: Describe how to set the PATH variable +showpath: @printf "\nNow add $(INSTALLDIR)/bin to your path, for example with the command:\n" @printf "export PATH=\"$(INSTALLDIR)/bin:\$$PATH\"\n" @printf "\n" @@ -348,6 +363,12 @@ library: v4 ooc2 ooc ulm pow32 misc s3 librarybinary +checksum: + @cd $(BUILDDIR) && sh $(ROOTDIR)/src/tools/make/checksumtest.sh $(ROOTDIR)/$(BUILDDIR).$(BRANCH).md5 + + + + confidence: @printf "\n\n--- Confidence tests ---\n\n" cd src/test/confidence/hello; ./test.sh "$(INSTALLDIR)" @@ -365,8 +386,3 @@ auto: @make -f src/tools/make/vishap.make -s assemble @make -f src/tools/make/vishap.make -s testtools while cmd=$$(./testclient -w "$(FLAVOUR)"); do $$cmd 2>&1 | ./testclient -s "$(FLAVOUR)"; done - - - - - diff --git a/triage/V2CHANGES.md b/triage/V2CHANGES.md index 652e93b7..65c9de8e 100644 --- a/triage/V2CHANGES.md +++ b/triage/V2CHANGES.md @@ -2,136 +2,6 @@ This is Norayr Chilingarian's Vishap Oberon adapted to build a little more easily on a wider variety of modern platforms, including Linuxes, BSDs, MAC OSx Darwin, Cygwin on Windows, Mingw on Cygwin on Windows, Microsoft Visual C++ and even Android under Termux. See 'Changes relative to Vishap Oberon' below. -#### Building and installation summary - -1. git clone https://github.com/dcwbrown/olang -2. cd olang -3. make full - -Since 'make full' will install the compiler and libraries, it needs root (unix) or administrator (windows) privileges. - -| System | Install dir | Access required | -| ----------------------- | -------------------------------------- | ------------------------------ | -| Linux | /opt/voc | Needs root except under cygwin | -| BSD | /usr/local/share/voc | Needs root | -| Windows (mingw or Visual C) | %ProgramFiles[(X86)]% | Needs administrator | -| Termux (android) | /data/data/com.termux/files/opt/voc | | - - -#### 32 and 64 bit - -The size of compiler built is determined by the C compiler that runs, which is in turn determined by -the shell or command prompt configuration you are running under. - -The following Oberon types are independent of compiler size: - -| Types | Size | -| ----- | -------| -| CHAR, SHORTINT | 8 bit | -| REAL | 32 bit | -| LONGREAL | 64 bit | - -The following type sizes follow the built compiler size: - -| Types | 32 bit builds | 64 bit builds | -| ----- | ------------- | ------------- | -| INTEGER | 16 bit | 32 bit | -| LONGINT, SET | 32 bit | 16 bit | - -Note that many library modules have been written with the assumption that INTEGER -is 16 bit and LONGINT 32 bit, therefore they will only work in 32 bit builds. - -#### Which compiler? (gcc vs clang) - -By default make uses the compiler defined in variable CC. This can be overriden by running 'export CC=gcc' or 'export CC=clang' from the command line before running make. - -*Note*: be sure to run 'make clean' any time you change the value of CC. Otherwise directories will be mixed up. - -*Note*: Darwin (MAC OS/X) redirects gcc to clang, so specifying CC=gcc still builds clang binaries under Darwin. - - -#### Building on Windows - -There are three ways to build on Windows: - -| Type | How to build | Compiled binary uses: | -| ----------- | ------- | --------------------- | -| cygwin | Use 'make' from cygwin bash shell. | cygwin.dll | -| mingw under cygwin | Set CC for mingw then use 'make' from cygwin bash shell. | Win32 API | -| Visual C | Use 'make.cmd' from Visual C command prompt. | Win32 API | - -##### mingw on cygwin - -To use mingw, install the correct sized package and export CC= the compiler name: - - - For 32 bit cygwin - - - use setup-x86.exe to add the package mingw64-i686-gcc-core. - - run 'export CC=i686-w64-mingw32-gcc' then 'make full' - - - For 64 bit cygwin - - - use setup-x86\_64.exe to add the package mingw64-x86\_64-gcc-core. - - run 'export CC=x86_64-w64-mingw32-gcc' then 'make full' - -(*Note*: Don't be put off by the name 'mingw64' in the 32 bit package.) - -##### Microsoft Visual C compiler - -Use the free command line Visual C++ compiler. At the time of writing it can be -downloaded here: - - http://landinghub.visualstudio.com/visual-cpp-build-tools - -For example (Windows 10): - -Start an adminstrator command prompt from the start button as follows: - - Start / All apps / Visual C++ Build Tools - -Right click on - - Visual C++ 2015 x86 Native Build Tools Command Prompt - -or - - Visual C++ 2015 x64 Native Build Tools Command Prompt - -And select - - More / Administrative Command Prompt - -#### A 'Hello' application - -Anything appended to Oberon.Log is automatically displayed on the console, so the -following conventional Oberon program will display 'Hello.': - - MODULE hello; - IMPORT Oberon, Texts; - VAR W: Texts.Writer; - BEGIN - Texts.OpenWriter(W); - Texts.WriteString(W, "Hello."); Texts.WriteLn(W); - Texts.Append(Oberon.Log, W.buf) - END hello. - -Alternatively the Console may be accessed directly as follows: - - MODULE hello; - IMPORT Console; - BEGIN - Console.String("Hello."); Console.Ln; - END hello. - -Compile as follows: - - voc hello.mod -m - -The -m parameter tells voc that this is a main module, and to generate an -executable binary. - -Execute as usual on Linux ('./hello') or Windows ('hello'). - #### How make adapts to each platform On all platforms other than Visual C on Windows, make runs from a bash shell, @@ -313,5 +183,3 @@ Linux is currently compiled using PlatfromUnix.Mod, but the integration of Windo ##### Issue 14 - 'separate rtl from SYSTEM?'. OS specific code is now all in Platformxxx.Mod. Memory management (including the loaded module list) is now in Heap.Mod. SYSTEM.h is platform independent, with minimal ifdefs to allow compiling on all platforms. For example, when SYSTEM.h/SYSTEM.c need to allocate memory, or to halt, they call into Platform.Mod. - - diff --git a/triage/hints b/triage/hints index 29585f90..2722e294 100644 --- a/triage/hints +++ b/triage/hints @@ -27,13 +27,13 @@ add it in OPC.GenHeaderMsg function. ==known bugs== -when using SYSTEM.LSH(s, n) where s is SET, +when using SYSTEM.LSH(s, n) where s is SET, c compiler generates an error like -"error: duplicate 'unsigned'", +"error: duplicate 'unsigned'", that's because SET is defined as unsigned in SYSTEM.h, -while LSH is defined in SYSTEM.h as ((t)((unsigned t)(x)<<(n))), +while LSH is defined in SYSTEM.h as ((t)((unsigned t)(x)<<(n))), and it makes not possible to make SYSTEM.LSH with type SET. -I don't want to prohibit it at the parser level +I don't want to prohibit it at the parser level because C backend is only one of possible backends. The solution currently is to cast set type to longint before lsh-ing it. And then casting it back to set if necessary. diff --git a/triage/makefile.darwin.clang.x86_64 b/triage/makefile.darwin.clang.x86_64 deleted file mode 100644 index 10309ead..00000000 --- a/triage/makefile.darwin.clang.x86_64 +++ /dev/null @@ -1,310 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = darwin -TARCH = x86_64 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = clang -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -#PRF = "/Users/noch/local" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -SHRLIBEXT = dylib -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = libtool -dynamic -lSystem -compatibility_version $(RELEASE) -current_version $(RELEASE) -install_name $(PREFIX)/lib/$(LIBRARY).$(SHRLIBEXT) -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPFS prf.Mod - $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPFS Files0.Mod - $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPFS vt100.Mod - -# build the compiler -stage4: - $(VOCSTATIC0) -sPFS errors.Mod - $(VOCSTATIC0) -sPFS extTools.Mod - $(VOCSTATIC0) -sPFS OPM.cmdln.Mod - $(VOCSTATIC0) -sxPFS OPS.Mod - $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPS voc.Mod - $(VOCSTATIC0) -smPS BrowserCmd.Mod - $(VOCSTATIC0) -smPS OCatCmd.Mod - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(VOCSTATIC) -sPF Kernel.Mod - $(VOCSTATIC) -sPF Files.Mod - $(VOCSTATIC) -sPF Texts.Mod - $(VOCSTATIC) -sPF Printer.Mod - $(VOCSTATIC) -sPF Strings.Mod - $(VOCSTATIC) -sPF Sets.Mod - $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod - - #ooc libs - $(VOCSTATIC) -sPF oocAscii.Mod - $(VOCSTATIC) -sPF oocStrings.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod - $(VOCSTATIC) -sPF oocOakStrings.Mod - $(VOCSTATIC) -sPF oocCharClass.Mod - $(VOCSTATIC) -sPF oocConvTypes.Mod - $(VOCSTATIC) -sPF oocIntConv.Mod - $(VOCSTATIC) -sPF oocIntStr.Mod - $(VOCSTATIC) -sPF oocSysClock.Mod - $(VOCSTATIC) -sPF oocTime.Mod - $(VOCSTATIC) -sPF oocRandomNumbers.Mod -# $(VOCSTATIC) -s oocLongStrings.Mod -# $(CC) oocLongStrings.c -# $(VOCSTATIC) -s oocMsg.Mod -# $(CC) oocMsg.c - - - #ooc2 libs - $(VOCSTATIC) -sPF ooc2Strings.Mod - $(VOCSTATIC) -sPF ooc2Ascii.Mod - $(VOCSTATIC) -sPF ooc2CharClass.Mod - $(VOCSTATIC) -sPF ooc2ConvTypes.Mod - $(VOCSTATIC) -sPF ooc2IntConv.Mod - $(VOCSTATIC) -sPF ooc2IntStr.Mod - $(VOCSTATIC) -sPF ooc2Real0.Mod - #ooc libs - $(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod - $(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod - $(VOCSTATIC) -sPF oocLRealMath.Mod - $(VOCSTATIC) -sPF oocLongInts.Mod - $(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod - $(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod - $(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod - $(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod - $(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod - $(VOCSTATIC) -sPF oocFilenames.Mod - $(VOCSTATIC) -sPF oocwrapperlibc.Mod - $(VOCSTATIC) -sPF oocC.Mod - - #Ulm's Oberon system libs - $(VOCSTATIC) -sPF ulmSys.Mod - $(VOCSTATIC) -sPF ulmSYSTEM.Mod - $(VOCSTATIC) -sPF ulmASCII.Mod - $(VOCSTATIC) -sPF ulmSets.Mod - $(VOCSTATIC) -sPF ulmObjects.Mod - $(VOCSTATIC) -sPF ulmDisciplines.Mod - $(VOCSTATIC) -sPF ulmPriorities.Mod - $(VOCSTATIC) -sPF ulmServices.Mod - $(VOCSTATIC) -sPF ulmEvents.Mod - $(VOCSTATIC) -sPF ulmResources.Mod - $(VOCSTATIC) -sPF ulmForwarders.Mod - $(VOCSTATIC) -sPF ulmRelatedEvents.Mod - $(VOCSTATIC) -sPF ulmIO.Mod - $(VOCSTATIC) -sPF ulmProcess.Mod - $(VOCSTATIC) -sPF ulmTypes.Mod - $(VOCSTATIC) -sPF ulmStreams.Mod - $(VOCSTATIC) -sPF ulmAssertions.Mod - $(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod - $(VOCSTATIC) -sPF ulmStreamDisciplines.Mod - $(VOCSTATIC) -sPF ulmIEEE.Mod - $(VOCSTATIC) -sPF ulmMC68881.Mod - $(VOCSTATIC) -sPF ulmReals.Mod - $(VOCSTATIC) -sPF ulmPrint.Mod - $(VOCSTATIC) -sPF ulmWrite.Mod - $(VOCSTATIC) -sPF ulmTexts.Mod - $(VOCSTATIC) -sPF ulmStrings.Mod - $(VOCSTATIC) -sPF ulmConstStrings.Mod - $(VOCSTATIC) -sPF ulmPlotters.Mod - $(VOCSTATIC) -sPF ulmSysTypes.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmErrors.Mod - $(VOCSTATIC) -sPF ulmSysErrors.Mod - $(VOCSTATIC) -sPF ulmSysIO.Mod - $(VOCSTATIC) -sPF ulmLoader.Mod - $(VOCSTATIC) -sPF ulmNetIO.Mod - $(VOCSTATIC) -sPF ulmPersistentObjects.Mod - $(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod - $(VOCSTATIC) -sPF ulmOperations.Mod - $(VOCSTATIC) -sPF ulmScales.Mod - $(VOCSTATIC) -sPF ulmTimes.Mod - $(VOCSTATIC) -sPF ulmClocks.Mod - $(VOCSTATIC) -sPF ulmTimers.Mod - $(VOCSTATIC) -sPF ulmConditions.Mod - $(VOCSTATIC) -sPF ulmStreamConditions.Mod - $(VOCSTATIC) -sPF ulmTimeConditions.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmSysStat.Mod - $(VOCSTATIC) -sPF ulmCiphers.Mod - $(VOCSTATIC) -sPF ulmCipherOps.Mod - $(VOCSTATIC) -sPF ulmBlockCiphers.Mod - $(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod - $(VOCSTATIC) -sPF ulmConclusions.Mod - $(VOCSTATIC) -sPF ulmRandomGenerators.Mod - $(VOCSTATIC) -sPF ulmTCrypt.Mod - $(VOCSTATIC) -sPF ulmIntOperations.Mod - - #pow32 libs - $(VOCSTATIC) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(VOCSTATIC) -sPF ethBTrees.Mod - $(VOCSTATIC) -sPF ethMD5.Mod - $(VOCSTATIC) -sPF ethSets.Mod - $(VOCSTATIC) -sPF ethZlib.Mod - $(VOCSTATIC) -sPF ethZlibBuffers.Mod - $(VOCSTATIC) -sPF ethZlibInflate.Mod - $(VOCSTATIC) -sPF ethZlibDeflate.Mod - $(VOCSTATIC) -sPF ethZlibReaders.Mod - $(VOCSTATIC) -sPF ethZlibWriters.Mod - $(VOCSTATIC) -sPF ethZip.Mod - $(VOCSTATIC) -sPF ethRandomNumbers.Mod - $(VOCSTATIC) -sPF ethGZReaders.Mod - $(VOCSTATIC) -sPF ethGZWriters.Mod - $(VOCSTATIC) -sPF ethUnicode.Mod - $(VOCSTATIC) -sPF ethDates.Mod - $(VOCSTATIC) -sPF ethReals.Mod - $(VOCSTATIC) -sPF ethStrings.Mod - -# build remaining tools -# $(VOCSTATIC0) -sPFS compatIn.Mod -# $(VOCSTATIC0) -smPS vmake.Mod -# $(CC) compatIn.c -# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - #cp 05vishap.conf /etc/ld.so.conf.d/ - #ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.freebsd.clang.x86_64 b/triage/makefile.freebsd.clang.x86_64 deleted file mode 100644 index 57b44287..00000000 --- a/triage/makefile.freebsd.clang.x86_64 +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = freebsd -TARCH = x86_64 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = clang -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPFS prf.Mod - $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPFS Files0.Mod - $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPFS vt100.Mod - -# build the compiler -stage4: - $(VOCSTATIC0) -sPFS errors.Mod - $(VOCSTATIC0) -sPFS extTools.Mod - $(VOCSTATIC0) -sPFS OPM.cmdln.Mod - $(VOCSTATIC0) -sxPFS OPS.Mod - $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPS voc.Mod - $(VOCSTATIC0) -smPS BrowserCmd.Mod - $(VOCSTATIC0) -smPS OCatCmd.Mod - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(VOCSTATIC) -sPF Kernel.Mod - $(VOCSTATIC) -sPF Files.Mod - $(VOCSTATIC) -sPF Texts.Mod - $(VOCSTATIC) -sPF Printer.Mod - $(VOCSTATIC) -sPF Strings.Mod - $(VOCSTATIC) -sPF Sets.Mod - $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod - - #ooc libs - $(VOCSTATIC) -sPF oocAscii.Mod - $(VOCSTATIC) -sPF oocStrings.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod - $(VOCSTATIC) -sPF oocOakStrings.Mod - $(VOCSTATIC) -sPF oocCharClass.Mod - $(VOCSTATIC) -sPF oocConvTypes.Mod - $(VOCSTATIC) -sPF oocIntConv.Mod - $(VOCSTATIC) -sPF oocIntStr.Mod - $(VOCSTATIC) -sPF oocSysClock.Mod - $(VOCSTATIC) -sPF oocTime.Mod - $(VOCSTATIC) -sPF oocRandomNumbers.Mod -# $(VOCSTATIC) -s oocLongStrings.Mod -# $(CC) oocLongStrings.c -# $(VOCSTATIC) -s oocMsg.Mod -# $(CC) oocMsg.c - - - #ooc2 libs - $(VOCSTATIC) -sPF ooc2Strings.Mod - $(VOCSTATIC) -sPF ooc2Ascii.Mod - $(VOCSTATIC) -sPF ooc2CharClass.Mod - $(VOCSTATIC) -sPF ooc2ConvTypes.Mod - $(VOCSTATIC) -sPF ooc2IntConv.Mod - $(VOCSTATIC) -sPF ooc2IntStr.Mod - $(VOCSTATIC) -sPF ooc2Real0.Mod - #ooc libs - $(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod - $(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod - $(VOCSTATIC) -sPF oocLRealMath.Mod - $(VOCSTATIC) -sPF oocLongInts.Mod - $(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod - $(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod - $(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod - $(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod - $(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod - $(VOCSTATIC) -sPF oocFilenames.Mod - $(VOCSTATIC) -sPF oocwrapperlibc.Mod - $(VOCSTATIC) -sPF oocC.Mod - - #Ulm's Oberon system libs - $(VOCSTATIC) -sPF ulmSys.Mod - $(VOCSTATIC) -sPF ulmSYSTEM.Mod - $(VOCSTATIC) -sPF ulmASCII.Mod - $(VOCSTATIC) -sPF ulmSets.Mod - $(VOCSTATIC) -sPF ulmObjects.Mod - $(VOCSTATIC) -sPF ulmDisciplines.Mod - $(VOCSTATIC) -sPF ulmPriorities.Mod - $(VOCSTATIC) -sPF ulmServices.Mod - $(VOCSTATIC) -sPF ulmEvents.Mod - $(VOCSTATIC) -sPF ulmResources.Mod - $(VOCSTATIC) -sPF ulmForwarders.Mod - $(VOCSTATIC) -sPF ulmRelatedEvents.Mod - $(VOCSTATIC) -sPF ulmIO.Mod - $(VOCSTATIC) -sPF ulmProcess.Mod - $(VOCSTATIC) -sPF ulmTypes.Mod - $(VOCSTATIC) -sPF ulmStreams.Mod - $(VOCSTATIC) -sPF ulmAssertions.Mod - $(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod - $(VOCSTATIC) -sPF ulmStreamDisciplines.Mod - $(VOCSTATIC) -sPF ulmIEEE.Mod - $(VOCSTATIC) -sPF ulmMC68881.Mod - $(VOCSTATIC) -sPF ulmReals.Mod - $(VOCSTATIC) -sPF ulmPrint.Mod - $(VOCSTATIC) -sPF ulmWrite.Mod - $(VOCSTATIC) -sPF ulmTexts.Mod - $(VOCSTATIC) -sPF ulmStrings.Mod - $(VOCSTATIC) -sPF ulmConstStrings.Mod - $(VOCSTATIC) -sPF ulmPlotters.Mod - $(VOCSTATIC) -sPF ulmSysTypes.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmErrors.Mod - $(VOCSTATIC) -sPF ulmSysErrors.Mod - $(VOCSTATIC) -sPF ulmSysIO.Mod - $(VOCSTATIC) -sPF ulmLoader.Mod - $(VOCSTATIC) -sPF ulmNetIO.Mod - $(VOCSTATIC) -sPF ulmPersistentObjects.Mod - $(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod - $(VOCSTATIC) -sPF ulmOperations.Mod - $(VOCSTATIC) -sPF ulmScales.Mod - $(VOCSTATIC) -sPF ulmTimes.Mod - $(VOCSTATIC) -sPF ulmClocks.Mod - $(VOCSTATIC) -sPF ulmTimers.Mod - $(VOCSTATIC) -sPF ulmConditions.Mod - $(VOCSTATIC) -sPF ulmStreamConditions.Mod - $(VOCSTATIC) -sPF ulmTimeConditions.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmSysStat.Mod - $(VOCSTATIC) -sPF ulmCiphers.Mod - $(VOCSTATIC) -sPF ulmCipherOps.Mod - $(VOCSTATIC) -sPF ulmBlockCiphers.Mod - $(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod - $(VOCSTATIC) -sPF ulmConclusions.Mod - $(VOCSTATIC) -sPF ulmRandomGenerators.Mod - $(VOCSTATIC) -sPF ulmTCrypt.Mod - $(VOCSTATIC) -sPF ulmIntOperations.Mod - - #pow32 libs - $(VOCSTATIC) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(VOCSTATIC) -sPF ethBTrees.Mod - $(VOCSTATIC) -sPF ethMD5.Mod - $(VOCSTATIC) -sPF ethSets.Mod - $(VOCSTATIC) -sPF ethZlib.Mod - $(VOCSTATIC) -sPF ethZlibBuffers.Mod - $(VOCSTATIC) -sPF ethZlibInflate.Mod - $(VOCSTATIC) -sPF ethZlibDeflate.Mod - $(VOCSTATIC) -sPF ethZlibReaders.Mod - $(VOCSTATIC) -sPF ethZlibWriters.Mod - $(VOCSTATIC) -sPF ethZip.Mod - $(VOCSTATIC) -sPF ethRandomNumbers.Mod - $(VOCSTATIC) -sPF ethGZReaders.Mod - $(VOCSTATIC) -sPF ethGZWriters.Mod - $(VOCSTATIC) -sPF ethUnicode.Mod - $(VOCSTATIC) -sPF ethDates.Mod - $(VOCSTATIC) -sPF ethReals.Mod - $(VOCSTATIC) -sPF ethStrings.Mod - -# build remaining tools -# $(VOCSTATIC0) -sPFS compatIn.Mod -# $(VOCSTATIC0) -smPS vmake.Mod -# $(CC) compatIn.c -# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - #cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig -m $(PREFIX)/lib - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.clang.powerpc b/triage/makefile.linux.clang.powerpc deleted file mode 100644 index 787e0ca5..00000000 --- a/triage/makefile.linux.clang.powerpc +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = powerpc -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = clang -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPFS prf.Mod - $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPFS Files0.Mod - $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPFS vt100.Mod - -# build the compiler -stage4: - $(VOCSTATIC0) -sPFS errors.Mod - $(VOCSTATIC0) -sPFS extTools.Mod - $(VOCSTATIC0) -sPFS OPM.cmdln.Mod - $(VOCSTATIC0) -sxPFS OPS.Mod - $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPS voc.Mod - $(VOCSTATIC0) -smPS BrowserCmd.Mod - $(VOCSTATIC0) -smPS OCatCmd.Mod - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(VOCSTATIC) -sPF Kernel.Mod - $(VOCSTATIC) -sPF Files.Mod - $(VOCSTATIC) -sPF Texts.Mod - $(VOCSTATIC) -sPF Printer.Mod - $(VOCSTATIC) -sPF Strings.Mod - $(VOCSTATIC) -sPF Sets.Mod - $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod - - #ooc libs - $(VOCSTATIC) -sPF oocAscii.Mod - $(VOCSTATIC) -sPF oocStrings.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod - $(VOCSTATIC) -sPF oocOakStrings.Mod - $(VOCSTATIC) -sPF oocCharClass.Mod - $(VOCSTATIC) -sPF oocConvTypes.Mod - $(VOCSTATIC) -sPF oocIntConv.Mod - $(VOCSTATIC) -sPF oocIntStr.Mod - $(VOCSTATIC) -sPF oocSysClock.Mod - $(VOCSTATIC) -sPF oocTime.Mod - $(VOCSTATIC) -sPF oocRandomNumbers.Mod -# $(VOCSTATIC) -s oocLongStrings.Mod -# $(CC) oocLongStrings.c -# $(VOCSTATIC) -s oocMsg.Mod -# $(CC) oocMsg.c - - - #ooc2 libs - $(VOCSTATIC) -sPF ooc2Strings.Mod - $(VOCSTATIC) -sPF ooc2Ascii.Mod - $(VOCSTATIC) -sPF ooc2CharClass.Mod - $(VOCSTATIC) -sPF ooc2ConvTypes.Mod - $(VOCSTATIC) -sPF ooc2IntConv.Mod - $(VOCSTATIC) -sPF ooc2IntStr.Mod - $(VOCSTATIC) -sPF ooc2Real0.Mod - #ooc libs - $(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod - $(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod - $(VOCSTATIC) -sPF oocLRealMath.Mod - $(VOCSTATIC) -sPF oocLongInts.Mod - $(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod - $(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod - $(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod - $(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod - $(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod - $(VOCSTATIC) -sPF oocFilenames.Mod - $(VOCSTATIC) -sPF oocwrapperlibc.Mod - $(VOCSTATIC) -sPF oocC.Mod - - #Ulm's Oberon system libs - $(VOCSTATIC) -sPF ulmSys.Mod - $(VOCSTATIC) -sPF ulmSYSTEM.Mod - $(VOCSTATIC) -sPF ulmASCII.Mod - $(VOCSTATIC) -sPF ulmSets.Mod - $(VOCSTATIC) -sPF ulmObjects.Mod - $(VOCSTATIC) -sPF ulmDisciplines.Mod - $(VOCSTATIC) -sPF ulmPriorities.Mod - $(VOCSTATIC) -sPF ulmServices.Mod - $(VOCSTATIC) -sPF ulmEvents.Mod - $(VOCSTATIC) -sPF ulmResources.Mod - $(VOCSTATIC) -sPF ulmForwarders.Mod - $(VOCSTATIC) -sPF ulmRelatedEvents.Mod - $(VOCSTATIC) -sPF ulmIO.Mod - $(VOCSTATIC) -sPF ulmProcess.Mod - $(VOCSTATIC) -sPF ulmTypes.Mod - $(VOCSTATIC) -sPF ulmStreams.Mod - $(VOCSTATIC) -sPF ulmAssertions.Mod - $(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod - $(VOCSTATIC) -sPF ulmStreamDisciplines.Mod - $(VOCSTATIC) -sPF ulmIEEE.Mod - $(VOCSTATIC) -sPF ulmMC68881.Mod - $(VOCSTATIC) -sPF ulmReals.Mod - $(VOCSTATIC) -sPF ulmPrint.Mod - $(VOCSTATIC) -sPF ulmWrite.Mod - $(VOCSTATIC) -sPF ulmTexts.Mod - $(VOCSTATIC) -sPF ulmStrings.Mod - $(VOCSTATIC) -sPF ulmConstStrings.Mod - $(VOCSTATIC) -sPF ulmPlotters.Mod - $(VOCSTATIC) -sPF ulmSysTypes.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmErrors.Mod - $(VOCSTATIC) -sPF ulmSysErrors.Mod - $(VOCSTATIC) -sPF ulmSysIO.Mod - $(VOCSTATIC) -sPF ulmLoader.Mod - $(VOCSTATIC) -sPF ulmNetIO.Mod - $(VOCSTATIC) -sPF ulmPersistentObjects.Mod - $(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod - $(VOCSTATIC) -sPF ulmOperations.Mod - $(VOCSTATIC) -sPF ulmScales.Mod - $(VOCSTATIC) -sPF ulmTimes.Mod - $(VOCSTATIC) -sPF ulmClocks.Mod - $(VOCSTATIC) -sPF ulmTimers.Mod - $(VOCSTATIC) -sPF ulmConditions.Mod - $(VOCSTATIC) -sPF ulmStreamConditions.Mod - $(VOCSTATIC) -sPF ulmTimeConditions.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmSysStat.Mod - $(VOCSTATIC) -sPF ulmCiphers.Mod - $(VOCSTATIC) -sPF ulmCipherOps.Mod - $(VOCSTATIC) -sPF ulmBlockCiphers.Mod - $(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod - $(VOCSTATIC) -sPF ulmConclusions.Mod - $(VOCSTATIC) -sPF ulmRandomGenerators.Mod - $(VOCSTATIC) -sPF ulmTCrypt.Mod - $(VOCSTATIC) -sPF ulmIntOperations.Mod - - #pow32 libs - $(VOCSTATIC) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(VOCSTATIC) -sPF ethBTrees.Mod - $(VOCSTATIC) -sPF ethMD5.Mod - $(VOCSTATIC) -sPF ethSets.Mod - $(VOCSTATIC) -sPF ethZlib.Mod - $(VOCSTATIC) -sPF ethZlibBuffers.Mod - $(VOCSTATIC) -sPF ethZlibInflate.Mod - $(VOCSTATIC) -sPF ethZlibDeflate.Mod - $(VOCSTATIC) -sPF ethZlibReaders.Mod - $(VOCSTATIC) -sPF ethZlibWriters.Mod - $(VOCSTATIC) -sPF ethZip.Mod - $(VOCSTATIC) -sPF ethRandomNumbers.Mod - $(VOCSTATIC) -sPF ethGZReaders.Mod - $(VOCSTATIC) -sPF ethGZWriters.Mod - $(VOCSTATIC) -sPF ethUnicode.Mod - $(VOCSTATIC) -sPF ethDates.Mod - $(VOCSTATIC) -sPF ethReals.Mod - $(VOCSTATIC) -sPF ethStrings.Mod - -# build remaining tools -# $(VOCSTATIC0) -sPFS compatIn.Mod -# $(VOCSTATIC0) -smPS vmake.Mod -# $(CC) compatIn.c -# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.clang.x86_64 b/triage/makefile.linux.clang.x86_64 deleted file mode 100644 index 377d7e53..00000000 --- a/triage/makefile.linux.clang.x86_64 +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = x86_64 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = clang -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPFS prf.Mod - $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPFS Files0.Mod - $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPFS vt100.Mod - -# build the compiler -stage4: - $(VOCSTATIC0) -sPFS errors.Mod - $(VOCSTATIC0) -sPFS extTools.Mod - $(VOCSTATIC0) -sPFS OPM.cmdln.Mod - $(VOCSTATIC0) -sxPFS OPS.Mod - $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPS voc.Mod - $(VOCSTATIC0) -smPS BrowserCmd.Mod - $(VOCSTATIC0) -smPS OCatCmd.Mod - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(VOCSTATIC) -sPF Kernel.Mod - $(VOCSTATIC) -sPF Files.Mod - $(VOCSTATIC) -sPF Texts.Mod - $(VOCSTATIC) -sPF Printer.Mod - $(VOCSTATIC) -sPF Strings.Mod - $(VOCSTATIC) -sPF Sets.Mod - $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod - - #ooc libs - $(VOCSTATIC) -sPF oocAscii.Mod - $(VOCSTATIC) -sPF oocStrings.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod - $(VOCSTATIC) -sPF oocOakStrings.Mod - $(VOCSTATIC) -sPF oocCharClass.Mod - $(VOCSTATIC) -sPF oocConvTypes.Mod - $(VOCSTATIC) -sPF oocIntConv.Mod - $(VOCSTATIC) -sPF oocIntStr.Mod - $(VOCSTATIC) -sPF oocSysClock.Mod - $(VOCSTATIC) -sPF oocTime.Mod - $(VOCSTATIC) -sPF oocRandomNumbers.Mod -# $(VOCSTATIC) -s oocLongStrings.Mod -# $(CC) oocLongStrings.c -# $(VOCSTATIC) -s oocMsg.Mod -# $(CC) oocMsg.c - - - #ooc2 libs - $(VOCSTATIC) -sPF ooc2Strings.Mod - $(VOCSTATIC) -sPF ooc2Ascii.Mod - $(VOCSTATIC) -sPF ooc2CharClass.Mod - $(VOCSTATIC) -sPF ooc2ConvTypes.Mod - $(VOCSTATIC) -sPF ooc2IntConv.Mod - $(VOCSTATIC) -sPF ooc2IntStr.Mod - $(VOCSTATIC) -sPF ooc2Real0.Mod - #ooc libs - $(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod - $(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod - $(VOCSTATIC) -sPF oocLRealMath.Mod - $(VOCSTATIC) -sPF oocLongInts.Mod - $(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod - $(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod - $(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod - $(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod - $(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod - $(VOCSTATIC) -sPF oocFilenames.Mod - $(VOCSTATIC) -sPF oocwrapperlibc.Mod - $(VOCSTATIC) -sPF oocC.Mod - - #Ulm's Oberon system libs - $(VOCSTATIC) -sPF ulmSys.Mod - $(VOCSTATIC) -sPF ulmSYSTEM.Mod - $(VOCSTATIC) -sPF ulmASCII.Mod - $(VOCSTATIC) -sPF ulmSets.Mod - $(VOCSTATIC) -sPF ulmObjects.Mod - $(VOCSTATIC) -sPF ulmDisciplines.Mod - $(VOCSTATIC) -sPF ulmPriorities.Mod - $(VOCSTATIC) -sPF ulmServices.Mod - $(VOCSTATIC) -sPF ulmEvents.Mod - $(VOCSTATIC) -sPF ulmResources.Mod - $(VOCSTATIC) -sPF ulmForwarders.Mod - $(VOCSTATIC) -sPF ulmRelatedEvents.Mod - $(VOCSTATIC) -sPF ulmIO.Mod - $(VOCSTATIC) -sPF ulmProcess.Mod - $(VOCSTATIC) -sPF ulmTypes.Mod - $(VOCSTATIC) -sPF ulmStreams.Mod - $(VOCSTATIC) -sPF ulmAssertions.Mod - $(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod - $(VOCSTATIC) -sPF ulmStreamDisciplines.Mod - $(VOCSTATIC) -sPF ulmIEEE.Mod - $(VOCSTATIC) -sPF ulmMC68881.Mod - $(VOCSTATIC) -sPF ulmReals.Mod - $(VOCSTATIC) -sPF ulmPrint.Mod - $(VOCSTATIC) -sPF ulmWrite.Mod - $(VOCSTATIC) -sPF ulmTexts.Mod - $(VOCSTATIC) -sPF ulmStrings.Mod - $(VOCSTATIC) -sPF ulmConstStrings.Mod - $(VOCSTATIC) -sPF ulmPlotters.Mod - $(VOCSTATIC) -sPF ulmSysTypes.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmErrors.Mod - $(VOCSTATIC) -sPF ulmSysErrors.Mod - $(VOCSTATIC) -sPF ulmSysIO.Mod - $(VOCSTATIC) -sPF ulmLoader.Mod - $(VOCSTATIC) -sPF ulmNetIO.Mod - $(VOCSTATIC) -sPF ulmPersistentObjects.Mod - $(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod - $(VOCSTATIC) -sPF ulmOperations.Mod - $(VOCSTATIC) -sPF ulmScales.Mod - $(VOCSTATIC) -sPF ulmTimes.Mod - $(VOCSTATIC) -sPF ulmClocks.Mod - $(VOCSTATIC) -sPF ulmTimers.Mod - $(VOCSTATIC) -sPF ulmConditions.Mod - $(VOCSTATIC) -sPF ulmStreamConditions.Mod - $(VOCSTATIC) -sPF ulmTimeConditions.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmSysStat.Mod - $(VOCSTATIC) -sPF ulmCiphers.Mod - $(VOCSTATIC) -sPF ulmCipherOps.Mod - $(VOCSTATIC) -sPF ulmBlockCiphers.Mod - $(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod - $(VOCSTATIC) -sPF ulmConclusions.Mod - $(VOCSTATIC) -sPF ulmRandomGenerators.Mod - $(VOCSTATIC) -sPF ulmTCrypt.Mod - $(VOCSTATIC) -sPF ulmIntOperations.Mod - - #pow32 libs - $(VOCSTATIC) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(VOCSTATIC) -sPF ethBTrees.Mod - $(VOCSTATIC) -sPF ethMD5.Mod - $(VOCSTATIC) -sPF ethSets.Mod - $(VOCSTATIC) -sPF ethZlib.Mod - $(VOCSTATIC) -sPF ethZlibBuffers.Mod - $(VOCSTATIC) -sPF ethZlibInflate.Mod - $(VOCSTATIC) -sPF ethZlibDeflate.Mod - $(VOCSTATIC) -sPF ethZlibReaders.Mod - $(VOCSTATIC) -sPF ethZlibWriters.Mod - $(VOCSTATIC) -sPF ethZip.Mod - $(VOCSTATIC) -sPF ethRandomNumbers.Mod - $(VOCSTATIC) -sPF ethGZReaders.Mod - $(VOCSTATIC) -sPF ethGZWriters.Mod - $(VOCSTATIC) -sPF ethUnicode.Mod - $(VOCSTATIC) -sPF ethDates.Mod - $(VOCSTATIC) -sPF ethReals.Mod - $(VOCSTATIC) -sPF ethStrings.Mod - -# build remaining tools -# $(VOCSTATIC0) -sPFS compatIn.Mod -# $(VOCSTATIC0) -smPS vmake.Mod -# $(CC) compatIn.c -# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.gcc.armv6j_hardfp b/triage/makefile.linux.gcc.armv6j_hardfp deleted file mode 100644 index 10d6cc29..00000000 --- a/triage/makefile.linux.gcc.armv6j_hardfp +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = armv6j_hardfp -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = gcc -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPFS prf.Mod - $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPFS Files0.Mod - $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPFS vt100.Mod - -# build the compiler -stage4: - $(VOCSTATIC0) -sPFS errors.Mod - $(VOCSTATIC0) -sPFS extTools.Mod - $(VOCSTATIC0) -sPFS OPM.cmdln.Mod - $(VOCSTATIC0) -sxPFS OPS.Mod - $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPS voc.Mod - $(VOCSTATIC0) -smPS BrowserCmd.Mod - $(VOCSTATIC0) -smPS OCatCmd.Mod - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(VOCSTATIC) -sPF Kernel.Mod - $(VOCSTATIC) -sPF Files.Mod - $(VOCSTATIC) -sPF Texts.Mod - $(VOCSTATIC) -sPF Printer.Mod - $(VOCSTATIC) -sPF Strings.Mod - $(VOCSTATIC) -sPF Sets.Mod - $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod - - #ooc libs - $(VOCSTATIC) -sPF oocAscii.Mod - $(VOCSTATIC) -sPF oocStrings.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod - $(VOCSTATIC) -sPF oocOakStrings.Mod - $(VOCSTATIC) -sPF oocCharClass.Mod - $(VOCSTATIC) -sPF oocConvTypes.Mod - $(VOCSTATIC) -sPF oocIntConv.Mod - $(VOCSTATIC) -sPF oocIntStr.Mod - $(VOCSTATIC) -sPF oocSysClock.Mod - $(VOCSTATIC) -sPF oocTime.Mod - $(VOCSTATIC) -sPF oocRandomNumbers.Mod -# $(VOCSTATIC) -s oocLongStrings.Mod -# $(CC) oocLongStrings.c -# $(VOCSTATIC) -s oocMsg.Mod -# $(CC) oocMsg.c - - - #ooc2 libs - $(VOCSTATIC) -sPF ooc2Strings.Mod - $(VOCSTATIC) -sPF ooc2Ascii.Mod - $(VOCSTATIC) -sPF ooc2CharClass.Mod - $(VOCSTATIC) -sPF ooc2ConvTypes.Mod - $(VOCSTATIC) -sPF ooc2IntConv.Mod - $(VOCSTATIC) -sPF ooc2IntStr.Mod - $(VOCSTATIC) -sPF ooc2Real0.Mod - #ooc libs - $(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod - $(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod - $(VOCSTATIC) -sPF oocLRealMath.Mod - $(VOCSTATIC) -sPF oocLongInts.Mod - $(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod - $(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod - $(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod - $(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod - $(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod - $(VOCSTATIC) -sPF oocFilenames.Mod - $(VOCSTATIC) -sPF oocwrapperlibc.Mod - $(VOCSTATIC) -sPF oocC.Mod - - #Ulm's Oberon system libs - $(VOCSTATIC) -sPF ulmSys.Mod - $(VOCSTATIC) -sPF ulmSYSTEM.Mod - $(VOCSTATIC) -sPF ulmASCII.Mod - $(VOCSTATIC) -sPF ulmSets.Mod - $(VOCSTATIC) -sPF ulmObjects.Mod - $(VOCSTATIC) -sPF ulmDisciplines.Mod - $(VOCSTATIC) -sPF ulmPriorities.Mod - $(VOCSTATIC) -sPF ulmServices.Mod - $(VOCSTATIC) -sPF ulmEvents.Mod - $(VOCSTATIC) -sPF ulmResources.Mod - $(VOCSTATIC) -sPF ulmForwarders.Mod - $(VOCSTATIC) -sPF ulmRelatedEvents.Mod - $(VOCSTATIC) -sPF ulmIO.Mod - $(VOCSTATIC) -sPF ulmProcess.Mod - $(VOCSTATIC) -sPF ulmTypes.Mod - $(VOCSTATIC) -sPF ulmStreams.Mod - $(VOCSTATIC) -sPF ulmAssertions.Mod - $(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod - $(VOCSTATIC) -sPF ulmStreamDisciplines.Mod - $(VOCSTATIC) -sPF ulmIEEE.Mod - $(VOCSTATIC) -sPF ulmMC68881.Mod - $(VOCSTATIC) -sPF ulmReals.Mod - $(VOCSTATIC) -sPF ulmPrint.Mod - $(VOCSTATIC) -sPF ulmWrite.Mod - $(VOCSTATIC) -sPF ulmTexts.Mod - $(VOCSTATIC) -sPF ulmStrings.Mod - $(VOCSTATIC) -sPF ulmConstStrings.Mod - $(VOCSTATIC) -sPF ulmPlotters.Mod - $(VOCSTATIC) -sPF ulmSysTypes.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmErrors.Mod - $(VOCSTATIC) -sPF ulmSysErrors.Mod - $(VOCSTATIC) -sPF ulmSysIO.Mod - $(VOCSTATIC) -sPF ulmLoader.Mod - $(VOCSTATIC) -sPF ulmNetIO.Mod - $(VOCSTATIC) -sPF ulmPersistentObjects.Mod - $(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod - $(VOCSTATIC) -sPF ulmOperations.Mod - $(VOCSTATIC) -sPF ulmScales.Mod - $(VOCSTATIC) -sPF ulmTimes.Mod - $(VOCSTATIC) -sPF ulmClocks.Mod - $(VOCSTATIC) -sPF ulmTimers.Mod - $(VOCSTATIC) -sPF ulmConditions.Mod - $(VOCSTATIC) -sPF ulmStreamConditions.Mod - $(VOCSTATIC) -sPF ulmTimeConditions.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmSysStat.Mod - $(VOCSTATIC) -sPF ulmCiphers.Mod - $(VOCSTATIC) -sPF ulmCipherOps.Mod - $(VOCSTATIC) -sPF ulmBlockCiphers.Mod - $(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod - $(VOCSTATIC) -sPF ulmConclusions.Mod - $(VOCSTATIC) -sPF ulmRandomGenerators.Mod - $(VOCSTATIC) -sPF ulmTCrypt.Mod - $(VOCSTATIC) -sPF ulmIntOperations.Mod - - #pow32 libs - $(VOCSTATIC) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(VOCSTATIC) -sPF ethBTrees.Mod - $(VOCSTATIC) -sPF ethMD5.Mod - $(VOCSTATIC) -sPF ethSets.Mod - $(VOCSTATIC) -sPF ethZlib.Mod - $(VOCSTATIC) -sPF ethZlibBuffers.Mod - $(VOCSTATIC) -sPF ethZlibInflate.Mod - $(VOCSTATIC) -sPF ethZlibDeflate.Mod - $(VOCSTATIC) -sPF ethZlibReaders.Mod - $(VOCSTATIC) -sPF ethZlibWriters.Mod - $(VOCSTATIC) -sPF ethZip.Mod - $(VOCSTATIC) -sPF ethRandomNumbers.Mod - $(VOCSTATIC) -sPF ethGZReaders.Mod - $(VOCSTATIC) -sPF ethGZWriters.Mod - $(VOCSTATIC) -sPF ethUnicode.Mod - $(VOCSTATIC) -sPF ethDates.Mod - $(VOCSTATIC) -sPF ethReals.Mod - $(VOCSTATIC) -sPF ethStrings.Mod - -# build remaining tools -# $(VOCSTATIC0) -sPFS compatIn.Mod -# $(VOCSTATIC0) -smPS vmake.Mod -# $(CC) compatIn.c -# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.gcc.powerpc b/triage/makefile.linux.gcc.powerpc deleted file mode 100644 index 547ba913..00000000 --- a/triage/makefile.linux.gcc.powerpc +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = powerpc -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = gcc -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPFS prf.Mod - $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPFS Files0.Mod - $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPFS vt100.Mod - -# build the compiler -stage4: - $(VOCSTATIC0) -sPFS errors.Mod - $(VOCSTATIC0) -sPFS extTools.Mod - $(VOCSTATIC0) -sPFS OPM.cmdln.Mod - $(VOCSTATIC0) -sxPFS OPS.Mod - $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPS voc.Mod - $(VOCSTATIC0) -smPS BrowserCmd.Mod - $(VOCSTATIC0) -smPS OCatCmd.Mod - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(VOCSTATIC) -sPF Kernel.Mod - $(VOCSTATIC) -sPF Files.Mod - $(VOCSTATIC) -sPF Texts.Mod - $(VOCSTATIC) -sPF Printer.Mod - $(VOCSTATIC) -sPF Strings.Mod - $(VOCSTATIC) -sPF Sets.Mod - $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod - - #ooc libs - $(VOCSTATIC) -sPF oocAscii.Mod - $(VOCSTATIC) -sPF oocStrings.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod - $(VOCSTATIC) -sPF oocOakStrings.Mod - $(VOCSTATIC) -sPF oocCharClass.Mod - $(VOCSTATIC) -sPF oocConvTypes.Mod - $(VOCSTATIC) -sPF oocIntConv.Mod - $(VOCSTATIC) -sPF oocIntStr.Mod - $(VOCSTATIC) -sPF oocSysClock.Mod - $(VOCSTATIC) -sPF oocTime.Mod - $(VOCSTATIC) -sPF oocRandomNumbers.Mod -# $(VOCSTATIC) -s oocLongStrings.Mod -# $(CC) oocLongStrings.c -# $(VOCSTATIC) -s oocMsg.Mod -# $(CC) oocMsg.c - - - #ooc2 libs - $(VOCSTATIC) -sPF ooc2Strings.Mod - $(VOCSTATIC) -sPF ooc2Ascii.Mod - $(VOCSTATIC) -sPF ooc2CharClass.Mod - $(VOCSTATIC) -sPF ooc2ConvTypes.Mod - $(VOCSTATIC) -sPF ooc2IntConv.Mod - $(VOCSTATIC) -sPF ooc2IntStr.Mod - $(VOCSTATIC) -sPF ooc2Real0.Mod - #ooc libs - $(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod - $(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod - $(VOCSTATIC) -sPF oocLRealMath.Mod - $(VOCSTATIC) -sPF oocLongInts.Mod - $(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod - $(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod - $(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod - $(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod - $(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod - $(VOCSTATIC) -sPF oocFilenames.Mod - $(VOCSTATIC) -sPF oocwrapperlibc.Mod - $(VOCSTATIC) -sPF oocC.Mod - - #Ulm's Oberon system libs - $(VOCSTATIC) -sPF ulmSys.Mod - $(VOCSTATIC) -sPF ulmSYSTEM.Mod - $(VOCSTATIC) -sPF ulmASCII.Mod - $(VOCSTATIC) -sPF ulmSets.Mod - $(VOCSTATIC) -sPF ulmObjects.Mod - $(VOCSTATIC) -sPF ulmDisciplines.Mod - $(VOCSTATIC) -sPF ulmPriorities.Mod - $(VOCSTATIC) -sPF ulmServices.Mod - $(VOCSTATIC) -sPF ulmEvents.Mod - $(VOCSTATIC) -sPF ulmResources.Mod - $(VOCSTATIC) -sPF ulmForwarders.Mod - $(VOCSTATIC) -sPF ulmRelatedEvents.Mod - $(VOCSTATIC) -sPF ulmIO.Mod - $(VOCSTATIC) -sPF ulmProcess.Mod - $(VOCSTATIC) -sPF ulmTypes.Mod - $(VOCSTATIC) -sPF ulmStreams.Mod - $(VOCSTATIC) -sPF ulmAssertions.Mod - $(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod - $(VOCSTATIC) -sPF ulmStreamDisciplines.Mod - $(VOCSTATIC) -sPF ulmIEEE.Mod - $(VOCSTATIC) -sPF ulmMC68881.Mod - $(VOCSTATIC) -sPF ulmReals.Mod - $(VOCSTATIC) -sPF ulmPrint.Mod - $(VOCSTATIC) -sPF ulmWrite.Mod - $(VOCSTATIC) -sPF ulmTexts.Mod - $(VOCSTATIC) -sPF ulmStrings.Mod - $(VOCSTATIC) -sPF ulmConstStrings.Mod - $(VOCSTATIC) -sPF ulmPlotters.Mod - $(VOCSTATIC) -sPF ulmSysTypes.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmErrors.Mod - $(VOCSTATIC) -sPF ulmSysErrors.Mod - $(VOCSTATIC) -sPF ulmSysIO.Mod - $(VOCSTATIC) -sPF ulmLoader.Mod - $(VOCSTATIC) -sPF ulmNetIO.Mod - $(VOCSTATIC) -sPF ulmPersistentObjects.Mod - $(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod - $(VOCSTATIC) -sPF ulmOperations.Mod - $(VOCSTATIC) -sPF ulmScales.Mod - $(VOCSTATIC) -sPF ulmTimes.Mod - $(VOCSTATIC) -sPF ulmClocks.Mod - $(VOCSTATIC) -sPF ulmTimers.Mod - $(VOCSTATIC) -sPF ulmConditions.Mod - $(VOCSTATIC) -sPF ulmStreamConditions.Mod - $(VOCSTATIC) -sPF ulmTimeConditions.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmSysStat.Mod - $(VOCSTATIC) -sPF ulmCiphers.Mod - $(VOCSTATIC) -sPF ulmCipherOps.Mod - $(VOCSTATIC) -sPF ulmBlockCiphers.Mod - $(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod - $(VOCSTATIC) -sPF ulmConclusions.Mod - $(VOCSTATIC) -sPF ulmRandomGenerators.Mod - $(VOCSTATIC) -sPF ulmTCrypt.Mod - $(VOCSTATIC) -sPF ulmIntOperations.Mod - - #pow32 libs - $(VOCSTATIC) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(VOCSTATIC) -sPF ethBTrees.Mod - $(VOCSTATIC) -sPF ethMD5.Mod - $(VOCSTATIC) -sPF ethSets.Mod - $(VOCSTATIC) -sPF ethZlib.Mod - $(VOCSTATIC) -sPF ethZlibBuffers.Mod - $(VOCSTATIC) -sPF ethZlibInflate.Mod - $(VOCSTATIC) -sPF ethZlibDeflate.Mod - $(VOCSTATIC) -sPF ethZlibReaders.Mod - $(VOCSTATIC) -sPF ethZlibWriters.Mod - $(VOCSTATIC) -sPF ethZip.Mod - $(VOCSTATIC) -sPF ethRandomNumbers.Mod - $(VOCSTATIC) -sPF ethGZReaders.Mod - $(VOCSTATIC) -sPF ethGZWriters.Mod - $(VOCSTATIC) -sPF ethUnicode.Mod - $(VOCSTATIC) -sPF ethDates.Mod - $(VOCSTATIC) -sPF ethReals.Mod - $(VOCSTATIC) -sPF ethStrings.Mod - -# build remaining tools -# $(VOCSTATIC0) -sPFS compatIn.Mod -# $(VOCSTATIC0) -smPS vmake.Mod -# $(CC) compatIn.c -# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.gcc.x86 b/triage/makefile.linux.gcc.x86 deleted file mode 100644 index f283a0dc..00000000 --- a/triage/makefile.linux.gcc.x86 +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = x86 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = gcc -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPFS prf.Mod - $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPFS Files0.Mod - $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPFS vt100.Mod - -# build the compiler -stage4: - $(VOCSTATIC0) -sPFS errors.Mod - $(VOCSTATIC0) -sPFS extTools.Mod - $(VOCSTATIC0) -sPFS OPM.cmdln.Mod - $(VOCSTATIC0) -sxPFS OPS.Mod - $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPS voc.Mod - $(VOCSTATIC0) -smPS BrowserCmd.Mod - $(VOCSTATIC0) -smPS OCatCmd.Mod - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(VOCSTATIC) -sPF Kernel.Mod - $(VOCSTATIC) -sPF Files.Mod - $(VOCSTATIC) -sPF Texts.Mod - $(VOCSTATIC) -sPF Printer.Mod - $(VOCSTATIC) -sPF Strings.Mod - $(VOCSTATIC) -sPF Sets.Mod - $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod - - #ooc libs - $(VOCSTATIC) -sPF oocAscii.Mod - $(VOCSTATIC) -sPF oocStrings.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod - $(VOCSTATIC) -sPF oocOakStrings.Mod - $(VOCSTATIC) -sPF oocCharClass.Mod - $(VOCSTATIC) -sPF oocConvTypes.Mod - $(VOCSTATIC) -sPF oocIntConv.Mod - $(VOCSTATIC) -sPF oocIntStr.Mod - $(VOCSTATIC) -sPF oocSysClock.Mod - $(VOCSTATIC) -sPF oocTime.Mod - $(VOCSTATIC) -sPF oocRandomNumbers.Mod -# $(VOCSTATIC) -s oocLongStrings.Mod -# $(CC) oocLongStrings.c -# $(VOCSTATIC) -s oocMsg.Mod -# $(CC) oocMsg.c - - - #ooc2 libs - $(VOCSTATIC) -sPF ooc2Strings.Mod - $(VOCSTATIC) -sPF ooc2Ascii.Mod - $(VOCSTATIC) -sPF ooc2CharClass.Mod - $(VOCSTATIC) -sPF ooc2ConvTypes.Mod - $(VOCSTATIC) -sPF ooc2IntConv.Mod - $(VOCSTATIC) -sPF ooc2IntStr.Mod - $(VOCSTATIC) -sPF ooc2Real0.Mod - #ooc libs - $(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod - $(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod - $(VOCSTATIC) -sPF oocLRealMath.Mod - $(VOCSTATIC) -sPF oocLongInts.Mod - $(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod - $(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod - $(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod - $(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod - $(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod - $(VOCSTATIC) -sPF oocFilenames.Mod - $(VOCSTATIC) -sPF oocwrapperlibc.Mod - $(VOCSTATIC) -sPF oocC.Mod - - #Ulm's Oberon system libs - $(VOCSTATIC) -sPF ulmSys.Mod - $(VOCSTATIC) -sPF ulmSYSTEM.Mod - $(VOCSTATIC) -sPF ulmASCII.Mod - $(VOCSTATIC) -sPF ulmSets.Mod - $(VOCSTATIC) -sPF ulmObjects.Mod - $(VOCSTATIC) -sPF ulmDisciplines.Mod - $(VOCSTATIC) -sPF ulmPriorities.Mod - $(VOCSTATIC) -sPF ulmServices.Mod - $(VOCSTATIC) -sPF ulmEvents.Mod - $(VOCSTATIC) -sPF ulmResources.Mod - $(VOCSTATIC) -sPF ulmForwarders.Mod - $(VOCSTATIC) -sPF ulmRelatedEvents.Mod - $(VOCSTATIC) -sPF ulmIO.Mod - $(VOCSTATIC) -sPF ulmProcess.Mod - $(VOCSTATIC) -sPF ulmTypes.Mod - $(VOCSTATIC) -sPF ulmStreams.Mod - $(VOCSTATIC) -sPF ulmAssertions.Mod - $(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod - $(VOCSTATIC) -sPF ulmStreamDisciplines.Mod - $(VOCSTATIC) -sPF ulmIEEE.Mod - $(VOCSTATIC) -sPF ulmMC68881.Mod - $(VOCSTATIC) -sPF ulmReals.Mod - $(VOCSTATIC) -sPF ulmPrint.Mod - $(VOCSTATIC) -sPF ulmWrite.Mod - $(VOCSTATIC) -sPF ulmTexts.Mod - $(VOCSTATIC) -sPF ulmStrings.Mod - $(VOCSTATIC) -sPF ulmConstStrings.Mod - $(VOCSTATIC) -sPF ulmPlotters.Mod - $(VOCSTATIC) -sPF ulmSysTypes.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmErrors.Mod - $(VOCSTATIC) -sPF ulmSysErrors.Mod - $(VOCSTATIC) -sPF ulmSysIO.Mod - $(VOCSTATIC) -sPF ulmLoader.Mod - $(VOCSTATIC) -sPF ulmNetIO.Mod - $(VOCSTATIC) -sPF ulmPersistentObjects.Mod - $(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod - $(VOCSTATIC) -sPF ulmOperations.Mod - $(VOCSTATIC) -sPF ulmScales.Mod - $(VOCSTATIC) -sPF ulmTimes.Mod - $(VOCSTATIC) -sPF ulmClocks.Mod - $(VOCSTATIC) -sPF ulmTimers.Mod - $(VOCSTATIC) -sPF ulmConditions.Mod - $(VOCSTATIC) -sPF ulmStreamConditions.Mod - $(VOCSTATIC) -sPF ulmTimeConditions.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmSysStat.Mod - $(VOCSTATIC) -sPF ulmCiphers.Mod - $(VOCSTATIC) -sPF ulmCipherOps.Mod - $(VOCSTATIC) -sPF ulmBlockCiphers.Mod - $(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod - $(VOCSTATIC) -sPF ulmConclusions.Mod - $(VOCSTATIC) -sPF ulmRandomGenerators.Mod - $(VOCSTATIC) -sPF ulmTCrypt.Mod - $(VOCSTATIC) -sPF ulmIntOperations.Mod - - #pow32 libs - $(VOCSTATIC) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(VOCSTATIC) -sPF ethBTrees.Mod - $(VOCSTATIC) -sPF ethMD5.Mod - $(VOCSTATIC) -sPF ethSets.Mod - $(VOCSTATIC) -sPF ethZlib.Mod - $(VOCSTATIC) -sPF ethZlibBuffers.Mod - $(VOCSTATIC) -sPF ethZlibInflate.Mod - $(VOCSTATIC) -sPF ethZlibDeflate.Mod - $(VOCSTATIC) -sPF ethZlibReaders.Mod - $(VOCSTATIC) -sPF ethZlibWriters.Mod - $(VOCSTATIC) -sPF ethZip.Mod - $(VOCSTATIC) -sPF ethRandomNumbers.Mod - $(VOCSTATIC) -sPF ethGZReaders.Mod - $(VOCSTATIC) -sPF ethGZWriters.Mod - $(VOCSTATIC) -sPF ethUnicode.Mod - $(VOCSTATIC) -sPF ethDates.Mod - $(VOCSTATIC) -sPF ethReals.Mod - $(VOCSTATIC) -sPF ethStrings.Mod - -# build remaining tools -# $(VOCSTATIC0) -sPFS compatIn.Mod -# $(VOCSTATIC0) -smPS vmake.Mod -# $(CC) compatIn.c -# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.linux.gcc.x86_64 b/triage/makefile.linux.gcc.x86_64 deleted file mode 100644 index e0513400..00000000 --- a/triage/makefile.linux.gcc.x86_64 +++ /dev/null @@ -1,309 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = linux -TARCH = x86_64 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = gcc -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod - $(VOCSTATIC0) -sPFS prf.Mod - $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPFS Files0.Mod - $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPFS vt100.Mod - -# build the compiler -stage4: - $(VOCSTATIC0) -sPFS errors.Mod - $(VOCSTATIC0) -sPFS extTools.Mod - $(VOCSTATIC0) -sPFS OPM.cmdln.Mod - $(VOCSTATIC0) -sxPFS OPS.Mod - $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPS voc.Mod - $(VOCSTATIC0) -smPS BrowserCmd.Mod - $(VOCSTATIC0) -smPS OCatCmd.Mod - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(VOCSTATIC) -sPF Kernel.Mod - $(VOCSTATIC) -sPF Files.Mod - $(VOCSTATIC) -sPF Texts.Mod - $(VOCSTATIC) -sPF Printer.Mod - $(VOCSTATIC) -sPF Strings.Mod - $(VOCSTATIC) -sPF Sets.Mod - $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod - - #ooc libs - $(VOCSTATIC) -sPF oocAscii.Mod - $(VOCSTATIC) -sPF oocStrings.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod - $(VOCSTATIC) -sPF oocOakStrings.Mod - $(VOCSTATIC) -sPF oocCharClass.Mod - $(VOCSTATIC) -sPF oocConvTypes.Mod - $(VOCSTATIC) -sPF oocIntConv.Mod - $(VOCSTATIC) -sPF oocIntStr.Mod - $(VOCSTATIC) -sPF oocSysClock.Mod - $(VOCSTATIC) -sPF oocTime.Mod - $(VOCSTATIC) -sPF oocRandomNumbers.Mod -# $(VOCSTATIC) -s oocLongStrings.Mod -# $(CC) oocLongStrings.c -# $(VOCSTATIC) -s oocMsg.Mod -# $(CC) oocMsg.c - - - #ooc2 libs - $(VOCSTATIC) -sPF ooc2Strings.Mod - $(VOCSTATIC) -sPF ooc2Ascii.Mod - $(VOCSTATIC) -sPF ooc2CharClass.Mod - $(VOCSTATIC) -sPF ooc2ConvTypes.Mod - $(VOCSTATIC) -sPF ooc2IntConv.Mod - $(VOCSTATIC) -sPF ooc2IntStr.Mod - $(VOCSTATIC) -sPF ooc2Real0.Mod - #ooc libs - $(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod - $(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod - $(VOCSTATIC) -sPF oocLRealMath.Mod - $(VOCSTATIC) -sPF oocLongInts.Mod - $(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod - $(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod - $(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod - $(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod - $(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod - $(VOCSTATIC) -sPF oocFilenames.Mod - $(VOCSTATIC) -sPF oocwrapperlibc.Mod - $(VOCSTATIC) -sPF oocC.Mod - - #Ulm's Oberon system libs - $(VOCSTATIC) -sPF ulmSys.Mod - $(VOCSTATIC) -sPF ulmSYSTEM.Mod - $(VOCSTATIC) -sPF ulmASCII.Mod - $(VOCSTATIC) -sPF ulmSets.Mod - $(VOCSTATIC) -sPF ulmObjects.Mod - $(VOCSTATIC) -sPF ulmDisciplines.Mod - $(VOCSTATIC) -sPF ulmPriorities.Mod - $(VOCSTATIC) -sPF ulmServices.Mod - $(VOCSTATIC) -sPF ulmEvents.Mod - $(VOCSTATIC) -sPF ulmResources.Mod - $(VOCSTATIC) -sPF ulmForwarders.Mod - $(VOCSTATIC) -sPF ulmRelatedEvents.Mod - $(VOCSTATIC) -sPF ulmIO.Mod - $(VOCSTATIC) -sPF ulmProcess.Mod - $(VOCSTATIC) -sPF ulmTypes.Mod - $(VOCSTATIC) -sPF ulmStreams.Mod - $(VOCSTATIC) -sPF ulmAssertions.Mod - $(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod - $(VOCSTATIC) -sPF ulmStreamDisciplines.Mod - $(VOCSTATIC) -sPF ulmIEEE.Mod - $(VOCSTATIC) -sPF ulmMC68881.Mod - $(VOCSTATIC) -sPF ulmReals.Mod - $(VOCSTATIC) -sPF ulmPrint.Mod - $(VOCSTATIC) -sPF ulmWrite.Mod - $(VOCSTATIC) -sPF ulmTexts.Mod - $(VOCSTATIC) -sPF ulmStrings.Mod - $(VOCSTATIC) -sPF ulmConstStrings.Mod - $(VOCSTATIC) -sPF ulmPlotters.Mod - $(VOCSTATIC) -sPF ulmSysTypes.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmErrors.Mod - $(VOCSTATIC) -sPF ulmSysErrors.Mod - $(VOCSTATIC) -sPF ulmSysIO.Mod - $(VOCSTATIC) -sPF ulmLoader.Mod - $(VOCSTATIC) -sPF ulmNetIO.Mod - $(VOCSTATIC) -sPF ulmPersistentObjects.Mod - $(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod - $(VOCSTATIC) -sPF ulmOperations.Mod - $(VOCSTATIC) -sPF ulmScales.Mod - $(VOCSTATIC) -sPF ulmTimes.Mod - $(VOCSTATIC) -sPF ulmClocks.Mod - $(VOCSTATIC) -sPF ulmTimers.Mod - $(VOCSTATIC) -sPF ulmConditions.Mod - $(VOCSTATIC) -sPF ulmStreamConditions.Mod - $(VOCSTATIC) -sPF ulmTimeConditions.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmSysStat.Mod - $(VOCSTATIC) -sPF ulmCiphers.Mod - $(VOCSTATIC) -sPF ulmCipherOps.Mod - $(VOCSTATIC) -sPF ulmBlockCiphers.Mod - $(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod - $(VOCSTATIC) -sPF ulmConclusions.Mod - $(VOCSTATIC) -sPF ulmRandomGenerators.Mod - $(VOCSTATIC) -sPF ulmTCrypt.Mod - $(VOCSTATIC) -sPF ulmIntOperations.Mod - - #pow32 libs - $(VOCSTATIC) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(VOCSTATIC) -sPF ethBTrees.Mod - $(VOCSTATIC) -sPF ethMD5.Mod - $(VOCSTATIC) -sPF ethSets.Mod - $(VOCSTATIC) -sPF ethZlib.Mod - $(VOCSTATIC) -sPF ethZlibBuffers.Mod - $(VOCSTATIC) -sPF ethZlibInflate.Mod - $(VOCSTATIC) -sPF ethZlibDeflate.Mod - $(VOCSTATIC) -sPF ethZlibReaders.Mod - $(VOCSTATIC) -sPF ethZlibWriters.Mod - $(VOCSTATIC) -sPF ethZip.Mod - $(VOCSTATIC) -sPF ethRandomNumbers.Mod - $(VOCSTATIC) -sPF ethGZReaders.Mod - $(VOCSTATIC) -sPF ethGZWriters.Mod - $(VOCSTATIC) -sPF ethUnicode.Mod - $(VOCSTATIC) -sPF ethDates.Mod - $(VOCSTATIC) -sPF ethReals.Mod - $(VOCSTATIC) -sPF ethStrings.Mod - -# build remaining tools -# $(VOCSTATIC0) -sPFS compatIn.Mod -# $(VOCSTATIC0) -smPS vmake.Mod -# $(CC) compatIn.c -# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -a src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN) diff --git a/triage/makefile.openbsd.gcc.x86_64 b/triage/makefile.openbsd.gcc.x86_64 deleted file mode 100644 index 801e1c18..00000000 --- a/triage/makefile.openbsd.gcc.x86_64 +++ /dev/null @@ -1,310 +0,0 @@ -#SHELL := /bin/bash -BUILDID=$(shell date +%Y/%m/%d) -TOS = openbsd -TARCH = x86_64 -#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc -CCOMP = gcc -RELEASE = 1.1 - - -INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH) - -SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat:src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/lib/s3/$(TARCH):src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test - -VOC = voc -VERSION = $(TOS).$(CCOMP).$(TARCH) -VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH) -VOCSTATIC = $(SETPATH) ./voc -VOCPARAM = $(shell ./vocparam > voc.par) -LIBNAME = VishapOberon -LIBRARY = lib$(LIBNAME) - -ifndef PRF -PRF = "/opt" -endif -PREFIX = $(PRF)/voc-$(RELEASE) -PREFIXLN = $(PRF)/voc - -CCOPT = -fPIC $(INCLUDEPATH) -g -SHRLIBEXT = so -CC = $(CCOMP) $(CCOPT) -c -CL = $(CCOMP) $(CCOPT) -LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT) -# s is necessary to create index inside a archive -ARCHIVE = ar rcs $(LIBRARY).a - -#%.c: %.Mod -#%.o: %.c -# $(CC) $(input) - -all: stage2 stage3 stage4 stage5 stage6 stage7 - -# when porting to new platform: -# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1) -# * run make port0 - this will generate C source files for the target architecture -# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1) -port0: stage2 stage3 stage4 - -# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler) -port1: stage5 -# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled - -# this builds binary which generates voc.par -stage0: src/tools/vocparam/vocparam.c - $(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c - -# this creates voc.par for a host architecture. -# comment this out if you need to build a compiler for a different architecture. -stage1: - #rm voc.par - #$(shell "./vocparam > voc.par") - #./vocparam > voc.par - $(VOCPARAM) - -# this copies necessary voc.par to the current directory. -# skip this if you are building compiler for the host architecture. -stage2: - cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par -# cp src/par/voc.par.gnu.x86_64 voc.par -# cp src/par/voc.par.gnu.x86 voc.par -# cp src/par/voc.par.gnu.armv6 voc.par -# cp src/par/voc.par.gnu.armv7 voc.par - cp src/voc/prf.Mod_default src/voc/prf.Mod - -# this prepares modules necessary to build the compiler itself -stage3: - - $(VOCSTATIC0) -siapxPS SYSTEM.Mod - $(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod - sed "s#/opt#$(PRF)#g" src/voc/prf.Mod > tmp.Mod - mv tmp.Mod src/voc/prf.Mod - $(VOCSTATIC0) -sPFS prf.Mod - $(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod - $(VOCSTATIC0) -sxPFS Files0.Mod - $(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod - $(VOCSTATIC0) -sPFS vt100.Mod - -# build the compiler -stage4: - $(VOCSTATIC0) -sPFS errors.Mod - $(VOCSTATIC0) -sPFS extTools.Mod - $(VOCSTATIC0) -sPFS OPM.cmdln.Mod - $(VOCSTATIC0) -sxPFS OPS.Mod - $(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod - $(VOCSTATIC0) -smPS voc.Mod - $(VOCSTATIC0) -smPS BrowserCmd.Mod - $(VOCSTATIC0) -smPS OCatCmd.Mod - -#this is to build the compiler from C sources. -#this is a way to create a bootstrap binary. -stage5: - $(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \ - Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \ - extTools.c \ - OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c - - $(CL) -static voc.c -o voc \ - SYSTEM.o Args.o Console.o Modules.o Unix.o \ - Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - extTools.o \ - OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - $(CL) BrowserCmd.c -o showdef \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.o \ - OPM.o OPS.o OPT.o OPV.o OPC.o errors.o - - $(CL) OCatCmd.c -o ocat \ - SYSTEM.o Args.o Console.o Modules.o Unix.o Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o - -# build all library files -stage6: - #v4 libs - $(VOCSTATIC) -sPF Kernel.Mod - $(VOCSTATIC) -sPF Files.Mod - $(VOCSTATIC) -sPF Texts.Mod - $(VOCSTATIC) -sPF Printer.Mod - $(VOCSTATIC) -sPF Strings.Mod - $(VOCSTATIC) -sPF Sets.Mod - $(VOCSTATIC) -sPF Sets0.Mod - $(VOCSTATIC) -sPF Oberon.Mod - - #ooc libs - $(VOCSTATIC) -sPF oocAscii.Mod - $(VOCSTATIC) -sPF oocStrings.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod - $(VOCSTATIC) -sPF oocOakStrings.Mod - $(VOCSTATIC) -sPF oocCharClass.Mod - $(VOCSTATIC) -sPF oocConvTypes.Mod - $(VOCSTATIC) -sPF oocIntConv.Mod - $(VOCSTATIC) -sPF oocIntStr.Mod - $(VOCSTATIC) -sPF oocSysClock.Mod - $(VOCSTATIC) -sPF oocTime.Mod - $(VOCSTATIC) -sPF oocRandomNumbers.Mod -# $(VOCSTATIC) -s oocLongStrings.Mod -# $(CC) oocLongStrings.c -# $(VOCSTATIC) -s oocMsg.Mod -# $(CC) oocMsg.c - - - #ooc2 libs - $(VOCSTATIC) -sPF ooc2Strings.Mod - $(VOCSTATIC) -sPF ooc2Ascii.Mod - $(VOCSTATIC) -sPF ooc2CharClass.Mod - $(VOCSTATIC) -sPF ooc2ConvTypes.Mod - $(VOCSTATIC) -sPF ooc2IntConv.Mod - $(VOCSTATIC) -sPF ooc2IntStr.Mod - $(VOCSTATIC) -sPF ooc2Real0.Mod - #ooc libs - $(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod - $(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod - $(VOCSTATIC) -sPF oocLRealMath.Mod - $(VOCSTATIC) -sPF oocLongInts.Mod - $(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod - $(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod - $(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod - $(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod - $(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod - $(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod - $(VOCSTATIC) -sPF oocFilenames.Mod - $(VOCSTATIC) -sPF oocwrapperlibc.Mod - $(VOCSTATIC) -sPF oocC.Mod - - #Ulm's Oberon system libs - $(VOCSTATIC) -sPF ulmSys.Mod - $(VOCSTATIC) -sPF ulmSYSTEM.Mod - $(VOCSTATIC) -sPF ulmASCII.Mod - $(VOCSTATIC) -sPF ulmSets.Mod - $(VOCSTATIC) -sPF ulmObjects.Mod - $(VOCSTATIC) -sPF ulmDisciplines.Mod - $(VOCSTATIC) -sPF ulmPriorities.Mod - $(VOCSTATIC) -sPF ulmServices.Mod - $(VOCSTATIC) -sPF ulmEvents.Mod - $(VOCSTATIC) -sPF ulmResources.Mod - $(VOCSTATIC) -sPF ulmForwarders.Mod - $(VOCSTATIC) -sPF ulmRelatedEvents.Mod - $(VOCSTATIC) -sPF ulmIO.Mod - $(VOCSTATIC) -sPF ulmProcess.Mod - $(VOCSTATIC) -sPF ulmTypes.Mod - $(VOCSTATIC) -sPF ulmStreams.Mod - $(VOCSTATIC) -sPF ulmAssertions.Mod - $(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod - $(VOCSTATIC) -sPF ulmStreamDisciplines.Mod - $(VOCSTATIC) -sPF ulmIEEE.Mod - $(VOCSTATIC) -sPF ulmMC68881.Mod - $(VOCSTATIC) -sPF ulmReals.Mod - $(VOCSTATIC) -sPF ulmPrint.Mod - $(VOCSTATIC) -sPF ulmWrite.Mod - $(VOCSTATIC) -sPF ulmTexts.Mod - $(VOCSTATIC) -sPF ulmStrings.Mod - $(VOCSTATIC) -sPF ulmConstStrings.Mod - $(VOCSTATIC) -sPF ulmPlotters.Mod - $(VOCSTATIC) -sPF ulmSysTypes.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmErrors.Mod - $(VOCSTATIC) -sPF ulmSysErrors.Mod - $(VOCSTATIC) -sPF ulmSysIO.Mod - $(VOCSTATIC) -sPF ulmLoader.Mod - $(VOCSTATIC) -sPF ulmNetIO.Mod - $(VOCSTATIC) -sPF ulmPersistentObjects.Mod - $(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod - $(VOCSTATIC) -sPF ulmOperations.Mod - $(VOCSTATIC) -sPF ulmScales.Mod - $(VOCSTATIC) -sPF ulmTimes.Mod - $(VOCSTATIC) -sPF ulmClocks.Mod - $(VOCSTATIC) -sPF ulmTimers.Mod - $(VOCSTATIC) -sPF ulmConditions.Mod - $(VOCSTATIC) -sPF ulmStreamConditions.Mod - $(VOCSTATIC) -sPF ulmTimeConditions.Mod - $(VOCSTATIC) -sPF ulmSysConversions.Mod - $(VOCSTATIC) -sPF ulmSysStat.Mod - $(VOCSTATIC) -sPF ulmCiphers.Mod - $(VOCSTATIC) -sPF ulmCipherOps.Mod - $(VOCSTATIC) -sPF ulmBlockCiphers.Mod - $(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod - $(VOCSTATIC) -sPF ulmConclusions.Mod - $(VOCSTATIC) -sPF ulmRandomGenerators.Mod - $(VOCSTATIC) -sPF ulmTCrypt.Mod - $(VOCSTATIC) -sPF ulmIntOperations.Mod - - #pow32 libs - $(VOCSTATIC) -sPF powStrings.Mod - - #misc libs - $(VOCSTATIC) -sPF MultiArrays.Mod - $(VOCSTATIC) -sPF MultiArrayRiders.Mod - $(VOCSTATIC) -sPF MersenneTwister.Mod - $(VOCSTATIC) -sPF Listen.Mod - - #s3 libs - $(VOCSTATIC) -sPF ethBTrees.Mod - $(VOCSTATIC) -sPF ethMD5.Mod - $(VOCSTATIC) -sPF ethSets.Mod - $(VOCSTATIC) -sPF ethZlib.Mod - $(VOCSTATIC) -sPF ethZlibBuffers.Mod - $(VOCSTATIC) -sPF ethZlibInflate.Mod - $(VOCSTATIC) -sPF ethZlibDeflate.Mod - $(VOCSTATIC) -sPF ethZlibReaders.Mod - $(VOCSTATIC) -sPF ethZlibWriters.Mod - $(VOCSTATIC) -sPF ethZip.Mod - $(VOCSTATIC) -sPF ethRandomNumbers.Mod - $(VOCSTATIC) -sPF ethGZReaders.Mod - $(VOCSTATIC) -sPF ethGZWriters.Mod - $(VOCSTATIC) -sPF ethUnicode.Mod - $(VOCSTATIC) -sPF ethDates.Mod - $(VOCSTATIC) -sPF ethReals.Mod - $(VOCSTATIC) -sPF ethStrings.Mod - -# build remaining tools -# $(VOCSTATIC0) -sPFS compatIn.Mod -# $(VOCSTATIC0) -smPS vmake.Mod -# $(CC) compatIn.c -# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o - - - -stage7: - #remove non library objects - rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o - #objects := $(wildcard *.o) - #$(LD) objects - $(ARCHIVE) *.o - #$(ARCHIVE) objects - $(LD) *.o - echo "$(PREFIX)/lib" > 05vishap.conf - -clean: -# rm_objects := rm $(wildcard *.o) -# objects - rm *.h - rm *.c - rm *.sym - rm *.o - rm *.a - rm *.$(SHRLIBEXT) - -install: - test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin - cp voc $(PREFIX)/bin/ - cp showdef $(PREFIX)/bin/ - cp ocat $(PREFIX)/bin/ - #cp vmake $(PREFIX)/bin/ - cp -RPp src $(PREFIX)/ - - test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc - test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj - test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym - - cp $(LIBRARY).$(SHRLIBEXT) $(PREFIX)/lib - cp $(LIBRARY).a $(PREFIX)/lib - cp *.c $(PREFIX)/lib/voc/obj/ - cp *.h $(PREFIX)/lib/voc/obj/ - cp *.sym $(PREFIX)/lib/voc/sym/ - - #cp 05vishap.conf /etc/ld.so.conf.d/ - ldconfig -m $(PREFIX)/lib - ln -s $(PREFIX) $(PREFIXLN) - -# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/ -uninstall: - rm -rf $(PREFIX) - rm -rf $(PREFIXLN)