mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 04:02:25 +00:00
Separate install subdirs for diff size models. Lots of tidying and renaming.
This commit is contained in:
parent
8ab4057a10
commit
41bf2c037d
208 changed files with 1559 additions and 2556 deletions
|
|
@ -1,4 +1,4 @@
|
|||
MODULE Vishap; (* J. Templ 3.2.95 *)
|
||||
MODULE Compiler; (* J. Templ 3.2.95 *)
|
||||
|
||||
IMPORT
|
||||
SYSTEM, Heap, Platform, Configuration,
|
||||
|
|
@ -12,7 +12,7 @@ MODULE Vishap; (* J. Templ 3.2.95 *)
|
|||
PROCEDURE Module*(VAR done: BOOLEAN);
|
||||
VAR ext, new: BOOLEAN; p: OPT.Node;
|
||||
BEGIN
|
||||
OPP.Module(p, OPM.opt);
|
||||
OPP.Module(p, OPM.Options);
|
||||
IF OPM.noerr THEN
|
||||
OPV.Init;
|
||||
OPT.InitRecno;
|
||||
|
|
@ -23,16 +23,16 @@ MODULE Vishap; (* J. Templ 3.2.95 *)
|
|||
OPC.Init;
|
||||
OPV.Module(p);
|
||||
IF OPM.noerr THEN
|
||||
IF (OPM.mainprog IN OPM.opt) & (OPM.modName # "SYSTEM") THEN
|
||||
IF (OPM.mainprog IN OPM.Options) & (OPM.modName # "SYSTEM") THEN
|
||||
OPM.DeleteNewSym;
|
||||
IF ~(OPM.notcoloroutput IN OPM.opt) THEN vt100.SetAttr(vt100.Green) END;
|
||||
IF ~(OPM.notcoloroutput IN OPM.Options) THEN vt100.SetAttr(vt100.Green) END;
|
||||
OPM.LogWStr(" Main program.");
|
||||
IF ~(OPM.notcoloroutput IN OPM.opt) THEN vt100.SetAttr(vt100.ResetAll) END;
|
||||
IF ~(OPM.notcoloroutput IN OPM.Options) THEN vt100.SetAttr(vt100.ResetAll) END;
|
||||
ELSE
|
||||
IF new THEN
|
||||
IF ~(OPM.notcoloroutput IN OPM.opt) THEN vt100.SetAttr(vt100.Green) END;
|
||||
IF ~(OPM.notcoloroutput IN OPM.Options) THEN vt100.SetAttr(vt100.Green) END;
|
||||
OPM.LogWStr(" New symbol file.");
|
||||
IF ~(OPM.notcoloroutput IN OPM.opt) THEN vt100.SetAttr(vt100.ResetAll) END;
|
||||
IF ~(OPM.notcoloroutput IN OPM.Options) THEN vt100.SetAttr(vt100.ResetAll) END;
|
||||
OPM.RegisterNewSym
|
||||
ELSIF ext THEN
|
||||
OPM.LogWStr(" Extended symbol file.");
|
||||
|
|
@ -95,12 +95,12 @@ MODULE Vishap; (* J. Templ 3.2.95 *)
|
|||
END;
|
||||
|
||||
(* 'assemble' (i.e. c compile) .c to object or executable. *)
|
||||
IF ~(OPM.dontasm IN OPM.opt) THEN
|
||||
IF OPM.dontlink IN OPM.opt THEN
|
||||
IF ~(OPM.dontasm IN OPM.Options) THEN
|
||||
IF OPM.dontlink IN OPM.Options THEN
|
||||
(* If not linking, just assemble each module. *)
|
||||
extTools.Assemble(OPM.modName)
|
||||
ELSE
|
||||
IF ~(OPM.mainprog IN OPM.opt) THEN
|
||||
IF ~(OPM.mainprog IN OPM.Options) THEN
|
||||
(* Assemble non main program and add object name to link list *)
|
||||
extTools.Assemble(OPM.modName);
|
||||
Strings.Append(" ", modulesobj);
|
||||
|
|
@ -108,7 +108,7 @@ MODULE Vishap; (* J. Templ 3.2.95 *)
|
|||
Strings.Append(Configuration.objext, modulesobj)
|
||||
ELSE
|
||||
(* Assemble and link main program *)
|
||||
extTools.LinkMain(OPM.modName, OPM.mainlinkstat IN OPM.opt, modulesobj)
|
||||
extTools.LinkMain(OPM.modName, OPM.mainlinkstat IN OPM.Options, modulesobj)
|
||||
END
|
||||
END
|
||||
END
|
||||
|
|
@ -123,7 +123,7 @@ MODULE Vishap; (* J. Templ 3.2.95 *)
|
|||
Platform.Exit(0)
|
||||
ELSE
|
||||
IF (sig = 4) & (Platform.HaltCode = -15) THEN
|
||||
OPM.LogWStr(" --- Vishap Oberon: internal error");
|
||||
OPM.LogWStr(" --- Oberon compiler internal error");
|
||||
OPM.LogWLn
|
||||
END ;
|
||||
Platform.Exit(2)
|
||||
|
|
@ -135,4 +135,4 @@ BEGIN
|
|||
Platform.SetQuitHandler(Trap);
|
||||
Platform.SetBadInstructionHandler(Trap);
|
||||
Translate
|
||||
END Vishap.
|
||||
END Compiler.
|
||||
|
|
@ -829,16 +829,18 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *)
|
|||
g: INTEGER; (* expression (source) form *)
|
||||
p, q: OPT.Struct;
|
||||
BEGIN
|
||||
IF OPM.verbose IN OPM.opt THEN
|
||||
y := ynode^.typ; f := x^.form; g := y^.form;
|
||||
(*
|
||||
IF OPM.verbose IN OPM.Options THEN
|
||||
OPM.LogWLn; OPM.LogWStr("PROCEDURE CheckAssign"); OPM.LogWLn;
|
||||
END;
|
||||
y := ynode^.typ; f := x^.form; g := y^.form;
|
||||
IF OPM.verbose IN OPM.opt THEN
|
||||
IF OPM.verbose IN OPM.Options THEN
|
||||
OPM.LogWStr("y.form = "); OPM.LogWNum(y.form, 0); OPM.LogWLn;
|
||||
OPM.LogWStr("f = "); OPM.LogWNum(f, 0); OPM.LogWLn;
|
||||
OPM.LogWStr("g = "); OPM.LogWNum(g, 0); OPM.LogWLn;
|
||||
OPM.LogWStr("ynode.typ.syze = "); OPM.LogWNum(ynode.typ.size, 0); OPM.LogWLn;
|
||||
END;
|
||||
*)
|
||||
IF (ynode^.class = OPT.Ntype) OR (ynode^.class = OPT.Nproc) & (f # OPT.ProcTyp) THEN err(126) END ;
|
||||
CASE f OF
|
||||
OPT.Undef,
|
||||
|
|
@ -1328,7 +1330,7 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *)
|
|||
f := atyp^.comp; ftyp := ftyp^.BaseTyp; atyp := atyp^.BaseTyp;
|
||||
IF fvarpar & (ftyp = OPT.bytetyp) THEN (* ok, but ... *)
|
||||
IF ~(f IN {OPT.Array, OPT.DynArr}) OR ~((atyp.form IN {OPT.Byte..OPT.Char, OPT.Int}) & (atyp.size = 1)) THEN
|
||||
IF OPM.verbose IN OPM.opt THEN err(-301) END
|
||||
IF OPM.verbose IN OPM.Options THEN err(-301) END
|
||||
END
|
||||
ELSIF f IN {OPT.Array, OPT.DynArr} THEN
|
||||
IF ftyp^.comp = OPT.DynArr THEN DynArrParCheck(ftyp, atyp, fvarpar)
|
||||
|
|
|
|||
|
|
@ -660,7 +660,7 @@ MODULE OPC; (* copyright (c) J. Templ 12.7.95 / 3.7.96 *)
|
|||
EndStat; BegStat;
|
||||
OPM.WriteString("address *"); Ident(obj); OPM.WriteString(TagExt);
|
||||
base := NIL
|
||||
ELSIF (OPM.ptrinit IN OPM.opt) & (vis = 0) & (obj^.mnolev > 0) & (obj^.typ^.form = OPT.Pointer) THEN
|
||||
ELSIF (OPM.ptrinit IN OPM.Options) & (vis = 0) & (obj^.mnolev > 0) & (obj^.typ^.form = OPT.Pointer) THEN
|
||||
OPM.WriteString(" = NIL")
|
||||
END
|
||||
END ;
|
||||
|
|
@ -779,7 +779,7 @@ MODULE OPC; (* copyright (c) J. Templ 12.7.95 / 3.7.96 *)
|
|||
OPM.WriteString("/* "); OPM.WriteString(Configuration.name);
|
||||
OPM.Write(" "); OPM.WriteString(Configuration.versionLong); OPM.Write (" "); (* noch *)
|
||||
FOR i := 0 TO MAX(SET) DO
|
||||
IF i IN OPM.glbopt THEN
|
||||
IF i IN OPM.Options THEN
|
||||
CASE i OF (* c.f. ScanOptions in OPM *)
|
||||
| OPM.inxchk: OPM.Write("x")
|
||||
| OPM.ranchk: OPM.Write("r")
|
||||
|
|
@ -902,22 +902,22 @@ MODULE OPC; (* copyright (c) J. Templ 12.7.95 / 3.7.96 *)
|
|||
PROCEDURE EnterBody*;
|
||||
BEGIN
|
||||
OPM.WriteLn; OPM.WriteString(Export);
|
||||
IF OPM.mainprog IN OPM.opt THEN
|
||||
IF OPM.mainprog IN OPM.Options THEN
|
||||
OPM.WriteString("int main(int argc, char **argv)"); OPM.WriteLn;
|
||||
ELSE
|
||||
OPM.WriteString("void *");
|
||||
OPM.WriteString(OPM.modName); OPM.WriteString(BodyNameExt); OPM.WriteLn;
|
||||
END ;
|
||||
BegBlk; BegStat;
|
||||
IF OPM.mainprog IN OPM.opt THEN OPM.WriteString("__INIT(argc, argv)") ELSE OPM.WriteString("__DEFMOD") END ;
|
||||
IF OPM.mainprog IN OPM.Options THEN OPM.WriteString("__INIT(argc, argv)") ELSE OPM.WriteString("__DEFMOD") END ;
|
||||
EndStat;
|
||||
IF (OPM.mainprog IN OPM.opt) & demoVersion THEN BegStat;
|
||||
IF (OPM.mainprog IN OPM.Options) & demoVersion THEN BegStat;
|
||||
OPM.WriteString('/*don`t do it!*/ printf("DEMO VERSION: DO NOT USE THIS PROGRAM FOR ANY COMMERCIAL PURPOSE\n")');
|
||||
EndStat
|
||||
END ;
|
||||
InitImports(OPT.topScope^.right);
|
||||
BegStat;
|
||||
IF OPM.mainprog IN OPM.opt THEN OPM.WriteString('__REGMAIN("') ELSE OPM.WriteString('__REGMOD("') END ;
|
||||
IF OPM.mainprog IN OPM.Options THEN OPM.WriteString('__REGMAIN("') ELSE OPM.WriteString('__REGMOD("') END ;
|
||||
OPM.WriteString(OPM.modName);
|
||||
IF GlbPtrs THEN OPM.WriteString('", EnumPtrs)') ELSE OPM.WriteString('", 0)') END ;
|
||||
EndStat;
|
||||
|
|
@ -927,7 +927,7 @@ MODULE OPC; (* copyright (c) J. Templ 12.7.95 / 3.7.96 *)
|
|||
PROCEDURE ExitBody*;
|
||||
BEGIN
|
||||
BegStat;
|
||||
IF OPM.mainprog IN OPM.opt THEN OPM.WriteString("__FINI;") ELSE OPM.WriteString("__ENDMOD;") END ;
|
||||
IF OPM.mainprog IN OPM.Options THEN OPM.WriteString("__FINI;") ELSE OPM.WriteString("__ENDMOD;") END ;
|
||||
OPM.WriteLn; EndBlk
|
||||
END ExitBody;
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
notcoloroutput* = 16; (* turn off color output *)
|
||||
forcenewsym* = 17; (* force new symbol file *)
|
||||
verbose* = 18; (* verbose *)
|
||||
defopt* = {inxchk, typchk, ptrinit, assert}; (* default options *)
|
||||
|
||||
nilval* = 0;
|
||||
|
||||
|
|
@ -87,10 +86,12 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
VAR
|
||||
SourceFileName : ARRAY 256 OF CHAR;
|
||||
|
||||
(* Parameter selectable sizes *)
|
||||
AddressSize*, Alignment*,
|
||||
SetSize*,
|
||||
ShortintSize*, IntegerSize*, LongintSize*: INTEGER;
|
||||
GlobalModel, Model*: CHAR; (* 2: S8/I16/L32, C: S16/I32/L64, V:S8/I32/L64 *)
|
||||
GlobalAddressSize, AddressSize*: INTEGER;
|
||||
GlobalAlignment, Alignment*: INTEGER;
|
||||
GlobalOptions*, Options*: SET;
|
||||
|
||||
ShortintSize*, IntegerSize*, LongintSize*, SetSize*: INTEGER;
|
||||
|
||||
MaxSet*: INTEGER;
|
||||
MaxIndex*: SYSTEM.INT64;
|
||||
|
|
@ -105,7 +106,6 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
pc*, entno*: INTEGER; (* entry number *)
|
||||
modName*: ARRAY 32 OF CHAR;
|
||||
objname*: ARRAY 64 OF CHAR;
|
||||
opt*, glbopt*: SET;
|
||||
|
||||
ErrorLineStartPos, ErrorLineLimitPos, ErrorLineNumber: LONGINT; (* Limit = start of next line *)
|
||||
|
||||
|
|
@ -120,8 +120,7 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
|
||||
S: INTEGER;
|
||||
|
||||
OBERON: ARRAY 1024 OF CHAR;
|
||||
MODULES: ARRAY 1024 OF CHAR;
|
||||
ResourceDir*: ARRAY 1024 OF CHAR;
|
||||
|
||||
|
||||
(* ------------------------- Log Output ------------------------- *)
|
||||
|
|
@ -134,12 +133,32 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
|
||||
|
||||
|
||||
(* Integer size support *)
|
||||
|
||||
PROCEDURE SignedMaximum*(bytecount: LONGINT): SYSTEM.INT64;
|
||||
VAR result: SYSTEM.INT64;
|
||||
BEGIN
|
||||
result := 1;
|
||||
result := SYSTEM.LSH(result, bytecount*8-1);
|
||||
RETURN result - 1;
|
||||
END SignedMaximum;
|
||||
|
||||
PROCEDURE SignedMinimum*(bytecount: LONGINT): SYSTEM.INT64;
|
||||
BEGIN RETURN -SignedMaximum(bytecount) - 1
|
||||
END SignedMinimum;
|
||||
|
||||
|
||||
(* Unchecked conversion of any size integer to INTEGER or LONGINT *)
|
||||
|
||||
PROCEDURE Longint* (n: SYSTEM.INT64): LONGINT; BEGIN RETURN SYSTEM.VAL(LONGINT, n) END Longint;
|
||||
PROCEDURE Integer* (n: SYSTEM.INT64): INTEGER; BEGIN RETURN SYSTEM.VAL(INTEGER, n) END Integer;
|
||||
|
||||
(* ------------------------- parameter handling -------------------------*)
|
||||
|
||||
PROCEDURE ScanOptions(s: ARRAY OF CHAR; VAR opt: SET);
|
||||
|
||||
|
||||
(* --------------- Initialisation and parameter handling ---------------*)
|
||||
|
||||
PROCEDURE ScanOptions(s: ARRAY OF CHAR);
|
||||
VAR i: INTEGER;
|
||||
BEGIN
|
||||
i := 1; (* skip - *)
|
||||
|
|
@ -147,34 +166,32 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
CASE s[i] OF
|
||||
|
||||
(* Run time safety *)
|
||||
| "p": opt := opt / {ptrinit} (* Initialise pointers to NIL. *)
|
||||
| "a": opt := opt / {assert} (* Halt on assertion failures. *)
|
||||
| "r": opt := opt / {ranchk} (* Halt on range check failures. *)
|
||||
| "t": opt := opt / {typchk} (* Halt on type guad failure. *)
|
||||
| "x": opt := opt / {inxchk} (* Halt on index out of range. *)
|
||||
| "p": Options := Options / {ptrinit} (* Initialise pointers to NIL. *)
|
||||
| "a": Options := Options / {assert} (* Halt on assertion failures. *)
|
||||
| "r": Options := Options / {ranchk} (* Halt on range check failures. *)
|
||||
| "t": Options := Options / {typchk} (* Halt on type guad failure. *)
|
||||
| "x": Options := Options / {inxchk} (* Halt on index out of range. *)
|
||||
|
||||
(* Symbol file management *)
|
||||
| "e": opt := opt / {extsf} (* Allow extension of old symbol file. *)
|
||||
| "s": opt := opt / {newsf} (* Allow generation of new symbol file. *)
|
||||
| "F": opt := opt / {forcenewsym} (* Force generation of new symbol file. *)
|
||||
| "e": Options := Options / {extsf} (* Allow extension of old symbol file. *)
|
||||
| "s": Options := Options / {newsf} (* Allow generation of new symbol file. *)
|
||||
| "F": Options := Options / {forcenewsym} (* Force generation of new symbol file. *)
|
||||
|
||||
(* C compiler and linker control *)
|
||||
| "m": opt := opt / {mainprog} (* This module is main. Link dynamically. *)
|
||||
| "M": opt := opt / {mainlinkstat} (* This module is main. Link statically. *)
|
||||
| "S": opt := opt / {dontasm} (* Don't call C compiler *)
|
||||
| "c": opt := opt / {dontlink} (* Don't link. *)
|
||||
| "m": Options := Options / {mainprog} (* This module is main. Link dynamically. *)
|
||||
| "M": Options := Options / {mainlinkstat} (* This module is main. Link statically. *)
|
||||
| "S": Options := Options / {dontasm} (* Don't call C compiler *)
|
||||
| "c": Options := Options / {dontlink} (* Don't link. *)
|
||||
|
||||
(* Miscellaneous *)
|
||||
| "f": opt := opt / {notcoloroutput} (* Disable vt100 control characters in status output. *)
|
||||
| "V": opt := opt / {verbose}
|
||||
| "f": Options := Options / {notcoloroutput} (* Disable vt100 control characters in status output. *)
|
||||
| "V": Options := Options / {verbose}
|
||||
|
||||
(* Elementary type size model *)
|
||||
| "O": IF i+1 >= Strings.Length(s) THEN LogWStr("-O option requires following size model character."); LogWLn ELSE
|
||||
CASE s[i+1] OF
|
||||
|'2': ShortintSize := 1; IntegerSize := 2; LongintSize := 4; SetSize := 4 (* Original Oberon / Oberon 2 *)
|
||||
|'V': ShortintSize := 1; IntegerSize := 4; LongintSize := 8; SetSize := 8 (* Vishap 64 bit *)
|
||||
|'C': ShortintSize := 2; IntegerSize := 4; LongintSize := 8; SetSize := 8 (* Component Pascal *)
|
||||
ELSE LogWStr("Unrecognised size model character following -O."); LogWLn
|
||||
Model := s[i+1];
|
||||
IF (Model # '2') & (Model # 'C') & (Model # 'V') THEN
|
||||
LogWStr("Unrecognised size model character following -O."); LogWLn
|
||||
END;
|
||||
INC(i)
|
||||
END
|
||||
|
|
@ -212,26 +229,7 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
END ScanOptions;
|
||||
|
||||
|
||||
PROCEDURE ^GetProperties;
|
||||
|
||||
|
||||
(* Undocumented options used by the build system:
|
||||
|
||||
Todo - this is obsoleted by the -A and -O options. Remove when the build system
|
||||
has been updated.
|
||||
|
||||
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.
|
||||
|
||||
-Bnnn Where each n is a single digit specifying the integer size, pointer size
|
||||
and alignment in bytes.
|
||||
|
||||
An alignment of n means that types smaller than n align to their
|
||||
own size, types larger than n align to n bytes.
|
||||
|
||||
LONGINT size will be set to twice the integer size.
|
||||
*)
|
||||
PROCEDURE -GetAlignment(VAR a: INTEGER) "struct {char c; long long l;} _s; *a = (char*)&_s.l - (char*)&_s";
|
||||
|
||||
PROCEDURE OpenPar*(): BOOLEAN; (* prepare for a sequence of translations *)
|
||||
VAR s: ARRAY 256 OF CHAR;
|
||||
|
|
@ -286,43 +284,82 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
LogWStr("Repeating an option toggles its value."); LogWLn;
|
||||
RETURN FALSE
|
||||
ELSE
|
||||
(* Set options to initial defaults *)
|
||||
AddressSize := SIZE(SYSTEM.ADDRESS); (* This compilers address size *)
|
||||
GetAlignment(Alignment); (* This compilers alignment *)
|
||||
Model := '2'; (* Size model of common Oberon-2 implementations: S8/I16/L32 *)
|
||||
Options := {inxchk, typchk, ptrinit, assert}; (* Default options *)
|
||||
|
||||
(* Pick up global option changes from start of command line *)
|
||||
S:=1; s:=""; Platform.GetArg(S, s);
|
||||
|
||||
glbopt := defopt;
|
||||
|
||||
WHILE s[0] = OptionChar DO
|
||||
ScanOptions(s, glbopt);
|
||||
ScanOptions(s);
|
||||
INC(S); s:=""; Platform.GetArg(S, s)
|
||||
END;
|
||||
|
||||
(* Record global option settings for this command line *)
|
||||
GlobalAddressSize := AddressSize;
|
||||
GlobalAlignment := Alignment;
|
||||
GlobalModel := Model;
|
||||
GlobalOptions := Options;
|
||||
|
||||
RETURN TRUE
|
||||
END;
|
||||
END OpenPar;
|
||||
|
||||
|
||||
PROCEDURE InitOptions*; (* get the options for one translation *)
|
||||
VAR s: ARRAY 256 OF CHAR;
|
||||
PROCEDURE VerboseListSizes;
|
||||
BEGIN
|
||||
opt := glbopt;
|
||||
LogWLn;
|
||||
LogWStr("Type Size"); LogWLn;
|
||||
LogWStr("SHORTINT "); LogWNum(ShortintSize, 4); (* LogWNum(SIntAlign, 5); *) LogWLn;
|
||||
LogWStr("INTEGER "); LogWNum(IntegerSize, 4); (* LogWNum(IntAlign, 5); *) LogWLn;
|
||||
LogWStr("LONGINT "); LogWNum(LongintSize, 4); (* LogWNum(LIntAlign, 5); *) LogWLn;
|
||||
LogWStr("SET "); LogWNum(SetSize, 4); (* LogWNum(SetAlign, 5); *) LogWLn;
|
||||
LogWStr("ADDRESS "); LogWNum(AddressSize, 4); (* LogWNum(PointerAlign, 5); *) LogWLn;
|
||||
LogWLn;
|
||||
LogWStr("Alignment: "); LogWNum(Alignment, 4); LogWLn;
|
||||
END VerboseListSizes;
|
||||
|
||||
|
||||
PROCEDURE InitOptions*; (* get the options for one translation *)
|
||||
VAR s: ARRAY 256 OF CHAR; searchpath, modules: ARRAY 1024 OF CHAR;
|
||||
MODULES: ARRAY 1024 OF CHAR;
|
||||
|
||||
BEGIN
|
||||
Options := GlobalOptions; Model:=GlobalModel; Alignment := GlobalAlignment; AddressSize := GlobalAddressSize;
|
||||
|
||||
s:=""; Platform.GetArg(S, s);
|
||||
WHILE s[0] = OptionChar DO
|
||||
ScanOptions(s, opt);
|
||||
ScanOptions(s);
|
||||
INC(S); s:=""; Platform.GetArg(S, s)
|
||||
END;
|
||||
|
||||
(*
|
||||
dontAsm := dontasm IN opt;
|
||||
dontLink := dontlink IN opt;
|
||||
mainProg := mainprog IN opt;
|
||||
mainLinkStat := mainlinkstat IN opt;
|
||||
notColorOutput := notcoloroutput IN opt;
|
||||
forceNewSym := forcenewsym IN opt;
|
||||
Verbose := verbose IN opt;
|
||||
*)
|
||||
IF mainlinkstat IN Options THEN INCL(Options, mainprog) END;
|
||||
|
||||
IF mainlinkstat IN opt THEN INCL(glbopt, mainprog); INCL(opt, mainprog) END;
|
||||
MaxIndex := SignedMaximum(AddressSize);
|
||||
CASE Model OF
|
||||
|'2': ShortintSize := 1; IntegerSize := 2; LongintSize := 4; SetSize := 4
|
||||
|'C': ShortintSize := 2; IntegerSize := 4; LongintSize := 8; SetSize := 8
|
||||
|'V': ShortintSize := 1; IntegerSize := 4; LongintSize := 8; SetSize := 8
|
||||
ELSE ShortintSize := 1; IntegerSize := 2; LongintSize := 4; SetSize := 4
|
||||
END;
|
||||
MaxSet := SetSize * 8 - 1;
|
||||
|
||||
GetProperties;
|
||||
IF verbose IN Options THEN VerboseListSizes END;
|
||||
|
||||
ResourceDir := Configuration.installdir;
|
||||
Strings.Append("/ ", ResourceDir);
|
||||
ResourceDir[Strings.Length(ResourceDir)-1] := Model;
|
||||
|
||||
modules := ""; Platform.GetEnv("MODULES", modules);
|
||||
searchpath := "."; Platform.GetEnv("OBERON", searchpath);
|
||||
Strings.Append(";.;", searchpath);
|
||||
Strings.Append(modules, searchpath);
|
||||
Strings.Append(";", searchpath);
|
||||
Strings.Append(ResourceDir, searchpath);
|
||||
Strings.Append("/sym;", searchpath);
|
||||
Files.SetSearchPath(searchpath);
|
||||
END InitOptions;
|
||||
|
||||
|
||||
|
|
@ -391,13 +428,13 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
buf: ARRAY 1024 OF CHAR;
|
||||
BEGIN
|
||||
IF n >= 0 THEN
|
||||
IF ~(notcoloroutput IN opt) THEN vt100.SetAttr(vt100.Red) END;
|
||||
IF ~(notcoloroutput IN Options) THEN vt100.SetAttr(vt100.Red) END;
|
||||
LogWStr(" err ");
|
||||
IF ~(notcoloroutput IN opt) THEN vt100.SetAttr(vt100.ResetAll) END;
|
||||
IF ~(notcoloroutput IN Options) THEN vt100.SetAttr(vt100.ResetAll) END;
|
||||
ELSE
|
||||
IF ~(notcoloroutput IN opt) THEN vt100.SetAttr(vt100.Magenta) END;
|
||||
IF ~(notcoloroutput IN Options) THEN vt100.SetAttr(vt100.Magenta) END;
|
||||
LogWStr(" warning "); n := -n;
|
||||
IF ~(notcoloroutput IN opt) THEN vt100.SetAttr(vt100.ResetAll) END;
|
||||
IF ~(notcoloroutput IN Options) THEN vt100.SetAttr(vt100.ResetAll) END;
|
||||
END ;
|
||||
LogWNum(n, 1);
|
||||
LogWStr(" ");
|
||||
|
|
@ -470,9 +507,9 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
i := SHORT(Longint(pos - ErrorLineStartPos));
|
||||
WHILE i > 0 DO LogW(" "); DEC(i) END;
|
||||
|
||||
IF ~(notcoloroutput IN opt) THEN vt100.SetAttr(vt100.Green) END;
|
||||
IF ~(notcoloroutput IN Options) THEN vt100.SetAttr(vt100.Green) END;
|
||||
LogW("^");
|
||||
IF ~(notcoloroutput IN opt) THEN vt100.SetAttr(vt100.ResetAll) END;
|
||||
IF ~(notcoloroutput IN Options) THEN vt100.SetAttr(vt100.ResetAll) END;
|
||||
|
||||
Files.Close(f);
|
||||
END ShowLine;
|
||||
|
|
@ -548,93 +585,6 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
|
||||
|
||||
|
||||
(* ------------------------- initialization ------------------------- *)
|
||||
|
||||
PROCEDURE GetProperty(VAR S: Texts.Scanner; name: ARRAY OF CHAR; VAR size, align: INTEGER);
|
||||
BEGIN
|
||||
IF (S.class = Texts.Name) & (S.s = name) THEN Texts.Scan(S);
|
||||
IF S.class = Texts.Int THEN size := SHORT(S.i); Texts.Scan(S) ELSE Mark(-157, -1) END ;
|
||||
IF S.class = Texts.Int THEN align := SHORT(S.i); Texts.Scan(S) ELSE Mark(-157, -1) END
|
||||
ELSE Mark(-157, -1)
|
||||
END
|
||||
END GetProperty;
|
||||
|
||||
|
||||
PROCEDURE minusop(i: LONGINT): LONGINT;
|
||||
BEGIN
|
||||
RETURN -i;
|
||||
END minusop;
|
||||
|
||||
|
||||
PROCEDURE power0(i, j : LONGINT) : LONGINT; (* we would like to calculate exact Min Max values in GetProperties, not hardcode em, noch *)
|
||||
VAR k : LONGINT;
|
||||
p : LONGINT;
|
||||
BEGIN
|
||||
k := 1;
|
||||
p := i;
|
||||
REPEAT
|
||||
p := p * i;
|
||||
INC(k);
|
||||
UNTIL k=j;
|
||||
RETURN p;
|
||||
END power0;
|
||||
|
||||
|
||||
PROCEDURE VerboseListSizes;
|
||||
BEGIN
|
||||
LogWLn;
|
||||
LogWStr("Type Size"); LogWLn;
|
||||
LogWStr("SHORTINT "); LogWNum(ShortintSize, 4); (* LogWNum(SIntAlign, 5); *) LogWLn;
|
||||
LogWStr("INTEGER "); LogWNum(IntegerSize, 4); (* LogWNum(IntAlign, 5); *) LogWLn;
|
||||
LogWStr("LONGINT "); LogWNum(LongintSize, 4); (* LogWNum(LIntAlign, 5); *) LogWLn;
|
||||
LogWStr("SET "); LogWNum(SetSize, 4); (* LogWNum(SetAlign, 5); *) LogWLn;
|
||||
LogWStr("ADDRESS "); LogWNum(AddressSize, 4); (* LogWNum(PointerAlign, 5); *) LogWLn;
|
||||
LogWLn;
|
||||
LogWStr("Alignment: "); LogWNum(Alignment, 4); LogWLn;
|
||||
END VerboseListSizes;
|
||||
|
||||
|
||||
|
||||
|
||||
(* Integer size support *)
|
||||
|
||||
PROCEDURE SignedMaximum*(bytecount: LONGINT): SYSTEM.INT64;
|
||||
VAR result: SYSTEM.INT64;
|
||||
BEGIN
|
||||
result := 1;
|
||||
result := SYSTEM.LSH(result, bytecount*8-1);
|
||||
RETURN result - 1;
|
||||
END SignedMaximum;
|
||||
|
||||
PROCEDURE SignedMinimum*(bytecount: LONGINT): SYSTEM.INT64;
|
||||
BEGIN RETURN -SignedMaximum(bytecount) - 1
|
||||
END SignedMinimum;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
PROCEDURE GetProperties();
|
||||
(* VAR base: LONGINT; *)
|
||||
BEGIN
|
||||
(* Fixed and Configuration.Mod based sizes have been initialised in
|
||||
the module startup code, and maybe overridden by the -Bnnn bootstrap
|
||||
parameter *)
|
||||
|
||||
MaxReal := 3.40282346D38; (* REAL is 4 bytes *)
|
||||
MaxLReal := 1.7976931348623157D307 * 9.999999; (* LONGREAL is 8 bytes *)
|
||||
(*should be 1.7976931348623157D308 *)
|
||||
|
||||
MinReal := -MaxReal;
|
||||
MinLReal := -MaxLReal;
|
||||
MaxSet := SetSize * 8 - 1;
|
||||
MaxIndex := SignedMaximum(AddressSize);
|
||||
|
||||
IF verbose IN opt THEN VerboseListSizes END;
|
||||
END GetProperties;
|
||||
|
||||
(* ------------------------- Read Symbol File ------------------------- *)
|
||||
|
||||
|
||||
|
|
@ -711,7 +661,7 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
|
||||
PROCEDURE RegisterNewSym*;
|
||||
BEGIN
|
||||
IF (modName # "SYSTEM") OR (mainprog IN opt) THEN Files.Register(newSFile) END
|
||||
IF (modName # "SYSTEM") OR (mainprog IN Options) THEN Files.Register(newSFile) END
|
||||
END RegisterNewSym;
|
||||
|
||||
PROCEDURE DeleteNewSym*;
|
||||
|
|
@ -837,8 +787,8 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
IF noerr THEN LogWStr(" "); LogWNum(Files.Pos(R[BodyFile]), 0); LogWStr(" chars.") END;
|
||||
IF noerr THEN
|
||||
IF modName = "SYSTEM" THEN
|
||||
IF ~(mainprog IN opt) THEN Files.Register(BFile) END
|
||||
ELSIF ~(mainprog IN opt) THEN
|
||||
IF ~(mainprog IN Options) THEN Files.Register(BFile) END
|
||||
ELSIF ~(mainprog IN Options) THEN
|
||||
Append(R[HeaderInclude], HFile);
|
||||
Files.Register(HIFile); Files.Register(BFile)
|
||||
ELSE
|
||||
|
|
@ -854,29 +804,11 @@ MODULE OPM; (* RC 6.3.89 / 28.6.89, J.Templ 10.7.89 / 22.7.96 *)
|
|||
|
||||
|
||||
|
||||
PROCEDURE -GetAlignment(VAR a: INTEGER) "struct {char c; long long l;} s; *a = (char*)&s.l - (char*)&s";
|
||||
|
||||
BEGIN
|
||||
MaxReal := 3.40282346D38; (* REAL is 4 bytes *)
|
||||
MaxLReal := 1.7976931348623157D307 * 9.999999; (* LONGREAL is 8 bytes, should be 1.7976931348623157D308 *)
|
||||
MinReal := -MaxReal;
|
||||
MinLReal := -MaxLReal;
|
||||
|
||||
Texts.OpenWriter(W);
|
||||
|
||||
MODULES := ""; Platform.GetEnv("MODULES", MODULES);
|
||||
|
||||
OBERON := "."; Platform.GetEnv("OBERON", OBERON);
|
||||
Strings.Append(";.;", OBERON);
|
||||
Strings.Append(MODULES, OBERON);
|
||||
Strings.Append(";", OBERON);
|
||||
Strings.Append(Configuration.installdir, OBERON);
|
||||
Strings.Append("/sym;", OBERON);
|
||||
|
||||
Files.SetSearchPath(OBERON);
|
||||
|
||||
(* Default address size and alignment are those of this compiler *)
|
||||
AddressSize := SIZE(SYSTEM.ADDRESS);
|
||||
GetAlignment(Alignment);
|
||||
|
||||
(* Default type size model is that of the original Oberon-2 implementation (-O2) *)
|
||||
ShortintSize := 1;
|
||||
IntegerSize := 2;
|
||||
LongintSize := 4;
|
||||
SetSize := 4
|
||||
END OPM.
|
||||
|
|
@ -1234,7 +1234,7 @@ END Import;
|
|||
i := 1; WHILE i < maxImps DO expCtxt.locmno[i] := -1; INC(i) END;
|
||||
OutObj(topScope^.right);
|
||||
ext := sfpresent & symExtended;
|
||||
new := ~sfpresent OR symNew OR (OPM.forcenewsym IN OPM.opt);
|
||||
new := ~sfpresent OR symNew OR (OPM.forcenewsym IN OPM.Options);
|
||||
IF OPM.noerr & sfpresent & (impCtxt.reffp # expCtxt.reffp) THEN
|
||||
new := TRUE;
|
||||
IF ~extsf THEN err(155) END
|
||||
|
|
@ -1296,8 +1296,8 @@ BEGIN topScope := NIL; OpenScope(0, NIL); OPM.errpos := 0;
|
|||
|
||||
(*initialization of module SYSTEM*)
|
||||
EnterTyp("BYTE", Byte, 1, bytetyp);
|
||||
EnterTyp("PTR", Pointer, -1, sysptrtyp); (* Size set in Vishap.PropagateElementaryTypeSize *)
|
||||
EnterTyp("ADDRESS", Int, -1, adrtyp); (* Size set in Vishap.PropagateElementaryTypeSize *)
|
||||
EnterTyp("PTR", Pointer, -1, sysptrtyp); (* Size set in Compiler.PropagateElementaryTypeSize *)
|
||||
EnterTyp("ADDRESS", Int, -1, adrtyp); (* Size set in Compiler.PropagateElementaryTypeSize *)
|
||||
EnterTyp("INT8", Int, 1, int8typ);
|
||||
EnterTyp("INT16", Int, 2, int16typ);
|
||||
EnterTyp("INT32", Int, 4, int32typ);
|
||||
|
|
@ -1322,7 +1322,7 @@ BEGIN topScope := NIL; OpenScope(0, NIL); OPM.errpos := 0;
|
|||
|
||||
EnterTyp("BOOLEAN", Bool, 1, booltyp);
|
||||
EnterTyp("CHAR", Char, 1, chartyp);
|
||||
EnterTyp("SET", Set, -1, settyp); (* Size set in Vishap.PropagateElementaryTypeSize *)
|
||||
EnterTyp("SET", Set, -1, settyp); (* Size set in Compiler.PropagateElementaryTypeSize *)
|
||||
EnterTyp("REAL", Real, 4, realtyp);
|
||||
EnterTyp("LONGREAL", LReal, 8, lrltyp);
|
||||
EnterTyp("HUGEINT", Int, 8, hinttyp);
|
||||
|
|
|
|||
|
|
@ -162,7 +162,7 @@ MODULE OPV; (* J. Templ 16.2.95 / 3.7.96
|
|||
OPT.Nindex,
|
||||
OPT.Nproc,
|
||||
OPT.Ncall: RETURN 10
|
||||
| OPT.Nguard: IF OPM.typchk IN OPM.opt THEN RETURN 10 ELSE RETURN 9 (*cast*) END
|
||||
| OPT.Nguard: IF OPM.typchk IN OPM.Options THEN RETURN 10 ELSE RETURN 9 (*cast*) END
|
||||
| OPT.Nvarpar: IF comp IN {OPT.Array, OPT.DynArr} THEN RETURN 10 ELSE RETURN 9 END (* arrays don't need deref *)
|
||||
| OPT.Nderef: RETURN 9
|
||||
| OPT.Nmop: CASE subclass OF
|
||||
|
|
@ -243,7 +243,7 @@ MODULE OPV; (* J. Templ 16.2.95 / 3.7.96
|
|||
OPM.WriteString("__SETOF("); Entier(n, MinPrec);
|
||||
OPM.WriteString(","); OPM.WriteInt(newtype.size*8); OPM.Write(CloseParen)
|
||||
ELSIF to = OPT.Int THEN
|
||||
IF (newtype.size < n.typ.size) & (OPM.ranchk IN OPM.opt) THEN
|
||||
IF (newtype.size < n.typ.size) & (OPM.ranchk IN OPM.Options) THEN
|
||||
OPM.WriteString("__SHORT"); IF SideEffects(n) THEN OPM.Write("F") END;
|
||||
OPM.Write(OpenParen); Entier(n, MinPrec); OPM.WriteString(Comma);
|
||||
OPM.WriteInt(OPM.SignedMaximum(newtype.size) + 1); OPM.Write(CloseParen)
|
||||
|
|
@ -251,7 +251,7 @@ MODULE OPV; (* J. Templ 16.2.95 / 3.7.96
|
|||
SizeCast(n.typ.size, newtype.size); Entier(n, 9)
|
||||
END
|
||||
ELSIF to = OPT.Char THEN
|
||||
IF OPM.ranchk IN OPM.opt THEN OPM.WriteString("__CHR");
|
||||
IF OPM.ranchk IN OPM.Options THEN OPM.WriteString("__CHR");
|
||||
IF SideEffects(n) THEN OPM.Write("F") END ;
|
||||
OPM.Write(OpenParen); Entier(n, MinPrec); OPM.Write(CloseParen)
|
||||
ELSE OPM.WriteString("(CHAR)"); Entier(n, 9)
|
||||
|
|
@ -280,7 +280,7 @@ MODULE OPV; (* J. Templ 16.2.95 / 3.7.96
|
|||
|
||||
PROCEDURE Index(n, d: OPT.Node; prec, dim: INTEGER);
|
||||
BEGIN
|
||||
IF ~(OPM.inxchk IN OPM.opt)
|
||||
IF ~(OPM.inxchk IN OPM.Options)
|
||||
OR (n^.right^.class = OPT.Nconst) & ((n^.right^.conval^.intval = 0) OR (n^.left^.typ^.comp # OPT.DynArr)) THEN
|
||||
expr(n^.right, prec)
|
||||
ELSE
|
||||
|
|
@ -342,7 +342,7 @@ MODULE OPV; (* J. Templ 16.2.95 / 3.7.96
|
|||
OPM.Write(CloseBracket)
|
||||
END
|
||||
| OPT.Nguard: typ := n^.typ; obj := n^.left^.obj;
|
||||
IF OPM.typchk IN OPM.opt THEN
|
||||
IF OPM.typchk IN OPM.Options THEN
|
||||
IF typ^.comp = OPT.Record THEN OPM.WriteString(GuardRecFunc);
|
||||
IF obj^.mnolev # OPM.level THEN (*intermediate level var-par record*)
|
||||
OPM.WriteStringVar(obj^.scope^.name); OPM.WriteString("__curr->"); OPC.Ident(obj)
|
||||
|
|
@ -363,7 +363,7 @@ MODULE OPV; (* J. Templ 16.2.95 / 3.7.96
|
|||
OPM.Write("("); OPC.Ident(typ^.strobj); OPM.Write(")"); expr(n^.left, designPrec)
|
||||
END
|
||||
END
|
||||
| OPT.Neguard: IF OPM.typchk IN OPM.opt THEN
|
||||
| OPT.Neguard: IF OPM.typchk IN OPM.Options THEN
|
||||
IF n^.left^.class = OPT.Nvarpar THEN OPM.WriteString("__GUARDEQR(");
|
||||
OPC.CompleteIdent(n^.left^.obj); OPM.WriteString(Comma); TypeOf(n^.left);
|
||||
ELSE OPM.WriteString("__GUARDEQP("); expr(n^.left^.left, MinPrec)
|
||||
|
|
@ -844,7 +844,7 @@ MODULE OPV; (* J. Templ 16.2.95 / 3.7.96
|
|||
END ;
|
||||
ActualPar(n^.right, n^.obj)
|
||||
| OPT.Nifelse: IF n^.subcl # OPT.assertfn THEN IfStat(n, FALSE, outerProc)
|
||||
ELSIF OPM.assert IN OPM.opt THEN
|
||||
ELSIF OPM.assert IN OPM.Options THEN
|
||||
OPM.WriteString("__ASSERT("); expr(n^.left^.left^.left, MinPrec); OPM.WriteString(Comma);
|
||||
OPM.WriteInt(n^.left^.right^.right^.conval^.intval); OPM.Write(CloseParen); OPC.EndStat
|
||||
END
|
||||
|
|
@ -867,7 +867,7 @@ MODULE OPV; (* J. Templ 16.2.95 / 3.7.96
|
|||
OPM.WriteString("goto exit__"); OPM.WriteInt(exit.label)
|
||||
END
|
||||
| OPT.Nreturn: IF OPM.level = 0 THEN
|
||||
IF OPM.mainprog IN OPM.opt THEN OPM.WriteString("__FINI") ELSE OPM.WriteString("__ENDMOD") END
|
||||
IF OPM.mainprog IN OPM.Options THEN OPM.WriteString("__FINI") ELSE OPM.WriteString("__ENDMOD") END
|
||||
ELSE
|
||||
IF n^.left # NIL THEN
|
||||
(* Make local copy of result before ExitProc deletes dynamic vars *)
|
||||
|
|
@ -895,7 +895,7 @@ MODULE OPV; (* J. Templ 16.2.95 / 3.7.96
|
|||
|
||||
PROCEDURE Module*(prog: OPT.Node);
|
||||
BEGIN
|
||||
IF ~(OPM.mainprog IN OPM.opt) THEN OPC.GenHdr(prog^.right); OPC.GenHdrIncludes END ;
|
||||
IF ~(OPM.mainprog IN OPM.Options) THEN OPC.GenHdr(prog^.right); OPC.GenHdrIncludes END ;
|
||||
OPC.GenBdy(prog^.right); stat(prog, NIL)
|
||||
END Module;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@ MODULE extTools;
|
|||
|
||||
IMPORT Strings, Console, Configuration, Platform, OPM;
|
||||
|
||||
VAR compilationOptions, CFLAGS: ARRAY 1023 OF CHAR;
|
||||
VAR CFLAGS: ARRAY 1023 OF CHAR;
|
||||
|
||||
|
||||
PROCEDURE execute(title: ARRAY OF CHAR; cmd: ARRAY OF CHAR);
|
||||
VAR r, status, exitcode: INTEGER;
|
||||
BEGIN
|
||||
IF OPM.verbose IN OPM.opt THEN
|
||||
IF OPM.verbose IN OPM.Options THEN
|
||||
Console.String(title); Console.String(cmd); Console.Ln
|
||||
END;
|
||||
r := Platform.System(cmd);
|
||||
|
|
@ -29,16 +29,27 @@ BEGIN
|
|||
END execute;
|
||||
|
||||
|
||||
PROCEDURE InitialiseCompilerCommand(VAR s: ARRAY OF CHAR);
|
||||
BEGIN
|
||||
COPY(Configuration.compile, s);
|
||||
Strings.Append(' -I "', s);
|
||||
Strings.Append(OPM.ResourceDir, s);
|
||||
Strings.Append('/include" ', s);
|
||||
Platform.GetEnv("CFLAGS", CFLAGS);
|
||||
Strings.Append (CFLAGS, s);
|
||||
Strings.Append (" ", s);
|
||||
END InitialiseCompilerCommand;
|
||||
|
||||
|
||||
PROCEDURE Assemble*(moduleName: ARRAY OF CHAR);
|
||||
VAR
|
||||
cmd: ARRAY 1023 OF CHAR;
|
||||
BEGIN
|
||||
cmd := Configuration.compile;
|
||||
Strings.Append(compilationOptions, cmd);
|
||||
Strings.Append("-c ", cmd);
|
||||
Strings.Append(moduleName, cmd);
|
||||
Strings.Append(".c", cmd);
|
||||
execute("Assemble: ", cmd);
|
||||
InitialiseCompilerCommand(cmd);
|
||||
Strings.Append("-c ", cmd);
|
||||
Strings.Append(moduleName, cmd);
|
||||
Strings.Append(".c", cmd);
|
||||
execute("Assemble: ", cmd);
|
||||
END Assemble;
|
||||
|
||||
|
||||
|
|
@ -46,9 +57,7 @@ PROCEDURE LinkMain*(VAR moduleName: ARRAY OF CHAR; statically: BOOLEAN; addition
|
|||
VAR
|
||||
cmd: ARRAY 1023 OF CHAR;
|
||||
BEGIN
|
||||
cmd := Configuration.compile;
|
||||
Strings.Append(" ", cmd);
|
||||
Strings.Append(compilationOptions, cmd);
|
||||
InitialiseCompilerCommand(cmd);
|
||||
Strings.Append(moduleName, cmd);
|
||||
Strings.Append(".c ", cmd);
|
||||
Strings.Append(additionalopts, cmd);
|
||||
|
|
@ -58,7 +67,7 @@ PROCEDURE LinkMain*(VAR moduleName: ARRAY OF CHAR; statically: BOOLEAN; addition
|
|||
Strings.Append(Configuration.objflag, cmd);
|
||||
Strings.Append(moduleName, cmd);
|
||||
Strings.Append(Configuration.linkflags, cmd);
|
||||
Strings.Append(Configuration.installdir, cmd);
|
||||
Strings.Append(OPM.ResourceDir, cmd);
|
||||
Strings.Append('/lib"', cmd);
|
||||
Strings.Append(Configuration.libspec, cmd);
|
||||
|
||||
|
|
@ -66,11 +75,5 @@ PROCEDURE LinkMain*(VAR moduleName: ARRAY OF CHAR; statically: BOOLEAN; addition
|
|||
END LinkMain;
|
||||
|
||||
|
||||
BEGIN
|
||||
Strings.Append(' -I "', compilationOptions);
|
||||
Strings.Append(Configuration.installdir, compilationOptions);
|
||||
Strings.Append('/include" ', compilationOptions);
|
||||
Platform.GetEnv("CFLAGS", CFLAGS);
|
||||
Strings.Append (CFLAGS, compilationOptions);
|
||||
Strings.Append (" ", compilationOptions);
|
||||
END extTools.
|
||||
,
|
||||
|
|
@ -433,11 +433,6 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
|
|||
r.res := 0; r.eof := FALSE
|
||||
END ReadBytes;
|
||||
|
||||
PROCEDURE ReadByte* (VAR r : Rider; VAR x : ARRAY OF SYSTEM.BYTE);
|
||||
BEGIN
|
||||
ReadBytes(r, x, 1);
|
||||
END ReadByte;
|
||||
|
||||
PROCEDURE Base* (VAR r: Rider): File;
|
||||
BEGIN RETURN r.buf.f
|
||||
END Base;
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ TYPE
|
|||
FileHandle* = LONGINT;
|
||||
|
||||
FileIdentity* = RECORD
|
||||
volume*: LONGINT; (* dev on Unix filesystems, volume serial number on NTFS *)
|
||||
index*: LONGINT; (* inode on Unix filesystems, file id on NTFS *)
|
||||
mtime*: LONGINT; (* File modification time, value is system dependent *)
|
||||
volume: LONGINT; (* dev on Unix filesystems, volume serial number on NTFS *)
|
||||
index: LONGINT; (* inode on Unix filesystems, file id on NTFS *)
|
||||
mtime: LONGINT; (* File modification time, value is system dependent *)
|
||||
END;
|
||||
|
||||
EnvPtr = POINTER TO ARRAY 1024 OF CHAR;
|
||||
|
|
|
|||
|
|
@ -384,8 +384,6 @@ void writeMakeParameters() {
|
|||
fprintf(fd, "VERSION=%s\n", version);
|
||||
fprintf(fd, "ONAME=%s\n", oname);
|
||||
fprintf(fd, "DATAMODEL=%s\n", dataModel);
|
||||
fprintf(fd, "INTSIZE=%d\n", intsize);
|
||||
fprintf(fd, "MODEL=-O%c\n", intsize == 2 ? '2' : 'V');
|
||||
fprintf(fd, "ADRSIZE=%d\n", addressSize);
|
||||
fprintf(fd, "ALIGNMENT=%d\n", alignment);
|
||||
fprintf(fd, "INSTALLDIR=%s\n", installdir);
|
||||
|
|
|
|||
379
src/tools/make/oberon.mk
Normal file
379
src/tools/make/oberon.mk
Normal file
|
|
@ -0,0 +1,379 @@
|
|||
# DO NOT RUN THIS MAKEFILE DIRECTLY.
|
||||
#
|
||||
# Always use the makefile in the root of the enlistment. This makefile
|
||||
# depends on up to date configuration files generated by the root makefile.
|
||||
|
||||
|
||||
|
||||
|
||||
# Be independent of any CFLAGS settings in the calling environment
|
||||
CFLAGS =
|
||||
|
||||
# Gnu make has the make initial directory in CURDIR, BSD make has it in .CURDIR.
|
||||
ROOTDIR = $(CURDIR)$(.CURDIR)
|
||||
|
||||
# Configuration.Make is created by src/tools/make/configure.c, which is run on
|
||||
# *every* build by the makefile in the enlistment root.
|
||||
include ./Configuration.Make
|
||||
|
||||
FLAVOUR = $(OS).$(DATAMODEL).$(COMPILER)
|
||||
BUILDDIR = build/$(FLAVOUR)
|
||||
OBECOMP = $(ONAME)$(BINEXT)
|
||||
|
||||
|
||||
|
||||
# Default make target - explain usage
|
||||
usage:
|
||||
@echo ""
|
||||
@echo Do not run this makefile directly, always run the makefile in
|
||||
@echo the root of the enlistment.
|
||||
|
||||
|
||||
|
||||
|
||||
clean:
|
||||
@printf "\n\n--- Cleaning branch $(BRANCH) $(OS) $(COMPILER) $(DATAMODEL) ---\n\n"
|
||||
rm -rf $(BUILDDIR)
|
||||
rm -f $(OBECOMP)
|
||||
|
||||
|
||||
|
||||
|
||||
# Assemble: Generate the Vishap Oberon compiler binary by compiling the C sources in the build directory
|
||||
|
||||
assemble:
|
||||
@printf "\nmake assemble - compiling Oberon compiler c source:\n"
|
||||
@printf " VERSION: %s\n" "$(VERSION)"
|
||||
@printf " BRANCH: %s\n" "$(BRANCH)"
|
||||
@printf " Target characteristics:\n"
|
||||
@printf " PLATFORM: %s\n" "$(PLATFORM)"
|
||||
@printf " OS: %s\n" "$(OS)"
|
||||
@printf " BUILDDIR: %s\n" "$(BUILDDIR)"
|
||||
@printf " INSTALLDIR: %s\n" "$(INSTALLDIR)"
|
||||
@printf " Oberon characteristics:\n"
|
||||
@printf " MODEL: %s\n" "$(MODEL)"
|
||||
@printf " ADRSIZE: %s\n" "$(ADRSIZE)"
|
||||
@printf " ALIGNMENT: %s\n" "$(ALIGNMENT)"
|
||||
@printf " C compiler:\n"
|
||||
@printf " COMPILER: %s\n" "$(COMPILER)"
|
||||
@printf " COMPILE: %s\n" "$(COMPILE)"
|
||||
@printf " DATAMODEL: %s\n" "$(DATAMODEL)"
|
||||
|
||||
cd $(BUILDDIR) && $(COMPILE) -c SYSTEM.c Configuration.c Platform.c Heap.c
|
||||
cd $(BUILDDIR) && $(COMPILE) -c Console.c Strings.c Modules.c Files.c
|
||||
cd $(BUILDDIR) && $(COMPILE) -c Reals.c Texts.c vt100.c errors.c
|
||||
cd $(BUILDDIR) && $(COMPILE) -c OPM.c extTools.c OPS.c OPT.c
|
||||
cd $(BUILDDIR) && $(COMPILE) -c OPC.c OPV.c OPB.c OPP.c
|
||||
|
||||
cd $(BUILDDIR) && $(COMPILE) $(STATICLINK) Compiler.c -o $(ROOTDIR)/$(OBECOMP) \
|
||||
SYSTEM.o Configuration.o Platform.o Heap.o Console.o Strings.o Modules.o Files.o \
|
||||
Reals.o Texts.o vt100.o errors.o OPM.o extTools.o OPS.o OPT.o \
|
||||
OPC.o OPV.o OPB.o OPP.o
|
||||
|
||||
cp src/system/*.[ch] $(BUILDDIR)
|
||||
@printf "$(OBECOMP) created.\n"
|
||||
|
||||
|
||||
|
||||
|
||||
compilerfromsavedsource:
|
||||
@echo Populating clean build directory from bootstrap C sources $(PLATFORM)-$(ADRSIZE)$(ALIGNMENT).
|
||||
@mkdir -p $(BUILDDIR)
|
||||
@cp bootstrap/$(PLATFORM)-$(ADRSIZE)$(ALIGNMENT)/* $(BUILDDIR)
|
||||
@cp bootstrap/*.[ch] $(BUILDDIR)
|
||||
@make -f src/tools/make/oberon.mk -s assemble
|
||||
@cp bootstrap/*.[ch] $(BUILDDIR)
|
||||
|
||||
|
||||
|
||||
|
||||
translate:
|
||||
# Make sure we have an oberon compiler binary: if we built one earlier we'll use it,
|
||||
# otherwise use one of the pre-prepared sets of C sources in the bootstrap directory.
|
||||
|
||||
if [ ! -e $(OBECOMP) ]; then make -f src/tools/make/oberon.mk -s compilerfromsavedsource; fi
|
||||
|
||||
@printf "\nmake translate - translating compiler source from Oberon to C:\n"
|
||||
@printf " PLATFORM: %s\n" $(PLATFORM)
|
||||
@printf " MODEL: %s\n" $(MODEL)
|
||||
@printf " ADRSIZE: %s\n" $(ADRSIZE)
|
||||
@printf " ALIGNMENT: %s\n" $(ALIGNMENT)
|
||||
@mkdir -p $(BUILDDIR)
|
||||
@rm -f $(BUILDDIR)/*.sym
|
||||
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../Configuration.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/system/Platform$(PLATFORM).Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfFapx -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/system/Heap.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/system/Console.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/library/v4/Strings.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/library/v4/Modules.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfFx -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/system/Files.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/library/v4/Reals.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/library/v4/Texts.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/library/misc/vt100.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/compiler/errors.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/compiler/OPM.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/compiler/extTools.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfFx -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/compiler/OPS.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/compiler/OPT.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/compiler/OPC.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/compiler/OPV.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/compiler/OPB.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/compiler/OPP.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ssfm -A$(ADRSIZE)$(ALIGNMENT) -O$(MODEL) ../../src/compiler/Compiler.Mod
|
||||
|
||||
@printf "$(BUILDDIR) filled with compiler C source.\n"
|
||||
|
||||
|
||||
|
||||
|
||||
browsercmd:
|
||||
@printf "\nMaking symbol browser\n"
|
||||
@cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -fSm -O$(MODEL) ../../src/tools/browser/BrowserCmd.Mod
|
||||
@cd $(BUILDDIR); $(COMPILE) BrowserCmd.c -o showdef \
|
||||
Platform.o Texts.o OPT.o Heap.o Console.o SYSTEM.o OPM.o OPS.o OPV.o \
|
||||
Files.o Reals.o Modules.o vt100.o errors.o Configuration.o Strings.o \
|
||||
OPC.o
|
||||
|
||||
|
||||
|
||||
|
||||
FORCE:
|
||||
|
||||
# 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.
|
||||
install:
|
||||
@printf "\nInstalling into \"$(INSTALLDIR)\"\n"
|
||||
@rm -rf "$(INSTALLDIR)/bin" "$(INSTALLDIR)/$(MODEL)"
|
||||
@mkdir -p "$(INSTALLDIR)/bin"
|
||||
@mkdir -p "$(INSTALLDIR)/$(MODEL)/include"
|
||||
@mkdir -p "$(INSTALLDIR)/$(MODEL)/sym"
|
||||
@mkdir -p "$(INSTALLDIR)/$(MODEL)/lib"
|
||||
@cp $(BUILDDIR)/*.h "$(INSTALLDIR)/$(MODEL)/include/"
|
||||
@cp $(BUILDDIR)/*.sym "$(INSTALLDIR)/$(MODEL)/sym/"
|
||||
@cp $(OBECOMP) "$(INSTALLDIR)/bin/$(OBECOMP)"
|
||||
@-cp $(BUILDDIR)/showdef$(BINEXT) "$(INSTALLDIR)/bin"
|
||||
@cp $(BUILDDIR)/lib$(ONAME)* "$(INSTALLDIR)/$(MODEL)/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"
|
||||
|
||||
|
||||
|
||||
|
||||
uninstall:
|
||||
@printf "\nUninstalling from \"$(INSTALLDIR)\"\n"
|
||||
rm -rf "$(INSTALLDIR)"
|
||||
rm -f /etc/ld.so.conf/lib$(ONAME)
|
||||
if which ldconfig >/dev/null 2>&1; then ldconfig; fi
|
||||
|
||||
|
||||
|
||||
|
||||
v4:
|
||||
@printf "\nMaking v4 library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/v4/Args.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/v4/Printer.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/v4/Sets.Mod
|
||||
|
||||
ooc2:
|
||||
@printf "\nMaking ooc2 library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc2/ooc2Strings.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc2/ooc2Ascii.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc2/ooc2CharClass.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc2/ooc2ConvTypes.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc2/ooc2IntConv.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc2/ooc2IntStr.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc2/ooc2Real0.Mod
|
||||
|
||||
|
||||
TODO: Comment disabled lines contain use of VAL that reads beyond source variable
|
||||
|
||||
ooc:
|
||||
@printf "\nMaking ooc library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocLowReal.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocLowLReal.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocRealMath.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocOakMath.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocLRealMath.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocLongInts.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocComplexMath.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocLComplexMath.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocAscii.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocCharClass.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocStrings.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocConvTypes.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocLRealConv.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocLRealStr.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocRealConv.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocRealStr.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocIntConv.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocIntStr.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocMsg.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocSysClock.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocTime.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocChannel.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocStrings2.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocRts.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocFilenames.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocTextRider.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocBinaryRider.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocJulianDay.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocFilenames.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocwrapperlibc.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ooc/oocC$(DATAMODEL).Mod
|
||||
|
||||
oocX11:
|
||||
@printf "\nMaking oocX11 library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/oocX11/oocX11.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/oocX11/oocXutil.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/oocX11/oocXYplane.Mod
|
||||
|
||||
ulm:
|
||||
@printf "\nMaking ulm library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmObjects.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmPriorities.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmDisciplines.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmServices.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmSys.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmSYSTEM.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmEvents.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmProcess.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmResources.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmForwarders.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmRelatedEvents.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmTypes.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmStreams.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmStrings.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmSysTypes.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmTexts.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmSysConversions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmErrors.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmSysErrors.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmSysStat.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmASCII.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmSets.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmIO.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmAssertions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmIndirectDisciplines.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmStreamDisciplines.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmIEEE.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmMC68881.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmReals.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmPrint.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmWrite.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmConstStrings.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmPlotters.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmSysIO.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmLoader.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmNetIO.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmPersistentObjects.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmPersistentDisciplines.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmOperations.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmScales.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmTimes.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmClocks.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmTimers.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmConditions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmStreamConditions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmTimeConditions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmCiphers.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmCipherOps.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmBlockCiphers.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmAsymmetricCiphers.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmConclusions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmRandomGenerators.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmTCrypt.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/ulm/ulmIntOperations.Mod
|
||||
|
||||
pow32:
|
||||
@printf "\nMaking pow library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/pow/powStrings.Mod
|
||||
|
||||
misc:
|
||||
@printf "\nMaking misc library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/system/Oberon.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/misc/crt.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/misc/Listen.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/misc/MersenneTwister.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/misc/MultiArrays.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/misc/MultiArrayRiders.Mod
|
||||
|
||||
s3:
|
||||
@printf "\nMaking s3 library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethBTrees.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethMD5.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethSets.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethZlib.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethZlibBuffers.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethZlibInflate.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethZlibDeflate.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethZlibReaders.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethZlibWriters.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethZip.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethRandomNumbers.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethGZReaders.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethGZWriters.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethUnicode.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethDates.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethReals.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(OBECOMP) -Ffs -O$(MODEL) ../../src/library/s3/ethStrings.Mod
|
||||
|
||||
librarybinary:
|
||||
@printf "\nMaking lib$(ONAME)\n"
|
||||
|
||||
# Remove objects that should not be part of the library
|
||||
rm -f $(BUILDDIR)/Compiler.o
|
||||
|
||||
# Note: remining compiler files are retained in the library allowing the building
|
||||
# of utilities like BrowserCmd.Mod (aka showdef).
|
||||
|
||||
# Make static library
|
||||
ar rcs "$(BUILDDIR)/lib$(ONAME).a" $(BUILDDIR)/*.o
|
||||
|
||||
# Make shared library
|
||||
@cd $(BUILDDIR) && $(COMPILE) -shared -o lib$(ONAME).so *.o
|
||||
|
||||
|
||||
|
||||
|
||||
library: v4 ooc2 ooc ulm pow32 misc s3 librarybinary
|
||||
|
||||
|
||||
|
||||
|
||||
sourcechanges:
|
||||
@cd $(BUILDDIR) && sh $(ROOTDIR)/src/tools/make/sourcechanges.sh $(ROOTDIR)/bootstrap/$(PLATFORM)-$(ADRSIZE)$(ALIGNMENT)
|
||||
|
||||
|
||||
|
||||
|
||||
RUNTEST = COMPILER=$(COMPILER) OBECOMP="$(OBECOMP) -O$(MODEL)" FLAVOUR=$(FLAVOUR) BRANCH=$(BRANCH) sh ./test.sh "$(INSTALLDIR)"
|
||||
|
||||
confidence:
|
||||
@printf "\n\n--- Confidence tests ---\n\n"
|
||||
cd src/test/confidence/hello; $(RUNTEST)
|
||||
cd src/test/confidence/intsyntax; $(RUNTEST)
|
||||
cd src/test/confidence/language; $(RUNTEST)
|
||||
cd src/test/confidence/texts; $(RUNTEST)
|
||||
cd src/test/confidence/library; $(RUNTEST)
|
||||
cd src/test/confidence/lola; $(RUNTEST)
|
||||
cd src/test/confidence/arrayassignment; $(RUNTEST)
|
||||
if [ "$(PLATFORM)" != "windows" ] ; then cd src/test/confidence/signal; $(RUNTEST); fi
|
||||
@printf "\n\n--- Confidence tests passed ---\n\n"
|
||||
|
|
@ -1,379 +0,0 @@
|
|||
# DO NOT RUN THIS MAKEFILE DIRECTLY.
|
||||
#
|
||||
# Always use the makefile in the root of the enlistment. This makefile
|
||||
# depends on up to date configuration files generated by the root makefile.
|
||||
|
||||
|
||||
|
||||
|
||||
# Be independent of any CFLAGS settings in the calling environment
|
||||
CFLAGS =
|
||||
|
||||
# Gnu make has the make initial directory in CURDIR, BSD make has it in .CURDIR.
|
||||
ROOTDIR = $(CURDIR)$(.CURDIR)
|
||||
|
||||
# Configuration.Make is created by src/tools/make/configure.c, which is run on
|
||||
# *every* build by the makefile in the enlistment root.
|
||||
include ./Configuration.Make
|
||||
|
||||
FLAVOUR = $(OS).$(DATAMODEL).$(COMPILER)
|
||||
BUILDDIR = build/$(FLAVOUR)
|
||||
VISHAP = $(ONAME)$(BINEXT)
|
||||
|
||||
MODEL=-O2 # Override model - build everything as S8,I16,L32.
|
||||
|
||||
|
||||
|
||||
# Default make target - explain usage
|
||||
usage:
|
||||
@echo ""
|
||||
@echo Do not run this makefile directly, always run the makefile in
|
||||
@echo the root of the enlistment.
|
||||
|
||||
|
||||
|
||||
|
||||
clean:
|
||||
@printf "\n\n--- Cleaning branch $(BRANCH) $(OS) $(COMPILER) $(DATAMODEL) ---\n\n"
|
||||
rm -rf $(BUILDDIR)
|
||||
rm -f $(VISHAP)
|
||||
|
||||
|
||||
|
||||
|
||||
# Assemble: Generate the Vishap Oberon compiler binary by compiling the C sources in the build directory
|
||||
|
||||
assemble:
|
||||
@printf "\nmake assemble - compiling Oberon compiler c source:\n"
|
||||
@printf " VERSION: %s\n" "$(VERSION)"
|
||||
@printf " BRANCH: %s\n" "$(BRANCH)"
|
||||
@printf " Target characteristics:\n"
|
||||
@printf " PLATFORM: %s\n" "$(PLATFORM)"
|
||||
@printf " OS: %s\n" "$(OS)"
|
||||
@printf " BUILDDIR: %s\n" "$(BUILDDIR)"
|
||||
@printf " INSTALLDIR: %s\n" "$(INSTALLDIR)"
|
||||
@printf " Oberon characteristics:\n"
|
||||
@printf " INTSIZE: %s\n" "$(INTSIZE)"
|
||||
@printf " ADRSIZE: %s\n" "$(ADRSIZE)"
|
||||
@printf " ALIGNMENT: %s\n" "$(ALIGNMENT)"
|
||||
@printf " C compiler:\n"
|
||||
@printf " COMPILER: %s\n" "$(COMPILER)"
|
||||
@printf " COMPILE: %s\n" "$(COMPILE)"
|
||||
@printf " DATAMODEL: %s\n" "$(DATAMODEL)"
|
||||
|
||||
cd $(BUILDDIR) && $(COMPILE) -c SYSTEM.c Configuration.c Platform.c Heap.c
|
||||
cd $(BUILDDIR) && $(COMPILE) -c Console.c Strings.c Modules.c Files.c
|
||||
cd $(BUILDDIR) && $(COMPILE) -c Reals.c Texts.c vt100.c errors.c
|
||||
cd $(BUILDDIR) && $(COMPILE) -c OPM.c extTools.c OPS.c OPT.c
|
||||
cd $(BUILDDIR) && $(COMPILE) -c OPC.c OPV.c OPB.c OPP.c
|
||||
|
||||
cd $(BUILDDIR) && $(COMPILE) $(STATICLINK) Vishap.c -o $(ROOTDIR)/$(VISHAP) \
|
||||
SYSTEM.o Configuration.o Platform.o Heap.o Console.o Strings.o Modules.o Files.o \
|
||||
Reals.o Texts.o vt100.o errors.o OPM.o extTools.o OPS.o OPT.o \
|
||||
OPC.o OPV.o OPB.o OPP.o
|
||||
|
||||
cp src/system/*.[ch] $(BUILDDIR)
|
||||
@printf "$(VISHAP) created.\n"
|
||||
|
||||
|
||||
|
||||
|
||||
compilerfromsavedsource:
|
||||
@echo Populating clean build directory from bootstrap C sources.
|
||||
@mkdir -p $(BUILDDIR)
|
||||
@cp bootstrap/$(PLATFORM)-$(ADRSIZE)$(ALIGNMENT)/* $(BUILDDIR)
|
||||
@cp bootstrap/*.[ch] $(BUILDDIR)
|
||||
@make -f src/tools/make/vishap.make -s assemble
|
||||
@cp bootstrap/*.[ch] $(BUILDDIR)
|
||||
|
||||
|
||||
|
||||
|
||||
translate:
|
||||
# Make sure we have an oberon compiler binary: if we built one earlier we'll use it,
|
||||
# otherwise use one of the pre-prepared sets of C sources in the bootstrap directory.
|
||||
|
||||
if [ ! -e $(VISHAP) ]; then make -f src/tools/make/vishap.make -s compilerfromsavedsource; fi
|
||||
|
||||
@printf "\nmake translate - translating compiler source from Oberon to C:\n"
|
||||
@printf " PLATFORM: %s\n" $(PLATFORM)
|
||||
@printf " INTSIZE: %s\n" $(INTSIZE)
|
||||
@printf " MODEL: %s\n" $(MODEL)
|
||||
@printf " ADRSIZE: %s\n" $(ADRSIZE)
|
||||
@printf " ALIGNMENT: %s\n" $(ALIGNMENT)
|
||||
@mkdir -p $(BUILDDIR)
|
||||
@rm -f $(BUILDDIR)/*.sym
|
||||
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../Configuration.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/system/Platform$(PLATFORM).Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfFapx -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/system/Heap.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/system/Console.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/library/v4/Strings.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/library/v4/Modules.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfFx -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/system/Files.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/library/v4/Reals.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/library/v4/Texts.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/library/misc/vt100.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/compiler/errors.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/compiler/OPM.cmdln.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/compiler/extTools.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfFx -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/compiler/OPS.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/compiler/OPT.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/compiler/OPC.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/compiler/OPV.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/compiler/OPB.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -SsfF -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/compiler/OPP.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ssfm -A$(ADRSIZE)$(ALIGNMENT) $(MODEL) ../../src/compiler/Vishap.Mod
|
||||
|
||||
@printf "$(BUILDDIR) filled with compiler C source.\n"
|
||||
|
||||
|
||||
|
||||
|
||||
browsercmd:
|
||||
@printf "\nMaking symbol browser\n"
|
||||
@cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -fSm $(MODEL) ../../src/tools/browser/BrowserCmd.Mod
|
||||
@cd $(BUILDDIR); $(COMPILE) BrowserCmd.c -o showdef \
|
||||
Platform.o Texts.o OPT.o Heap.o Console.o SYSTEM.o OPM.o OPS.o OPV.o \
|
||||
Files.o Reals.o Modules.o vt100.o errors.o Configuration.o Strings.o \
|
||||
OPC.o
|
||||
|
||||
|
||||
|
||||
|
||||
FORCE:
|
||||
|
||||
# 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.
|
||||
install:
|
||||
@printf "\nInstalling into \"$(INSTALLDIR)\"\n"
|
||||
@rm -rf "$(INSTALLDIR)"
|
||||
@mkdir -p "$(INSTALLDIR)/bin" "$(INSTALLDIR)/include" "$(INSTALLDIR)/sym" "$(INSTALLDIR)/lib"
|
||||
@cp $(BUILDDIR)/*.h "$(INSTALLDIR)/include/"
|
||||
@cp $(BUILDDIR)/*.sym "$(INSTALLDIR)/sym/"
|
||||
@cp $(VISHAP) "$(INSTALLDIR)/bin/$(VISHAP)"
|
||||
@-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"
|
||||
|
||||
|
||||
|
||||
|
||||
uninstall:
|
||||
@printf "\nUninstalling from \"$(INSTALLDIR)\"\n"
|
||||
rm -rf "$(INSTALLDIR)"
|
||||
rm -f /etc/ld.so.conf/lib$(ONAME)
|
||||
if which ldconfig >/dev/null 2>&1; then ldconfig; fi
|
||||
|
||||
|
||||
|
||||
|
||||
v4:
|
||||
@printf "\nMaking v4 library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/v4/Args.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/v4/Printer.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/v4/Sets.Mod
|
||||
|
||||
ooc2:
|
||||
@printf "\nMaking ooc2 library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc2/ooc2Strings.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc2/ooc2Ascii.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc2/ooc2CharClass.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc2/ooc2ConvTypes.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc2/ooc2IntConv.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc2/ooc2IntStr.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc2/ooc2Real0.Mod
|
||||
|
||||
|
||||
TODO: Comment disabled lines contain use of VAL that reads beyond source variable
|
||||
|
||||
ooc:
|
||||
@printf "\nMaking ooc library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocLowReal.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocLowLReal.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocRealMath.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocOakMath.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocLRealMath.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocLongInts.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocComplexMath.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocLComplexMath.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocAscii.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocCharClass.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocStrings.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocConvTypes.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocLRealConv.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocLRealStr.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocRealConv.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocRealStr.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocIntConv.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocIntStr.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocMsg.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocSysClock.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocTime.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocChannel.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocStrings2.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocRts.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocFilenames.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocTextRider.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocBinaryRider.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocJulianDay.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocFilenames.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocwrapperlibc.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ooc/oocC$(DATAMODEL).Mod
|
||||
|
||||
oocX11:
|
||||
@printf "\nMaking oocX11 library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/oocX11/oocX11.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/oocX11/oocXutil.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/oocX11/oocXYplane.Mod
|
||||
|
||||
ulm:
|
||||
@printf "\nMaking ulm library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmObjects.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmPriorities.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmDisciplines.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmServices.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmSys.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmSYSTEM.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmEvents.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmProcess.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmResources.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmForwarders.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmRelatedEvents.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmTypes.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmStreams.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmStrings.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmSysTypes.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmTexts.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmSysConversions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmErrors.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmSysErrors.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmSysStat.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmASCII.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmSets.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmIO.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmAssertions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmIndirectDisciplines.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmStreamDisciplines.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmIEEE.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmMC68881.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmReals.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmPrint.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmWrite.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmConstStrings.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmPlotters.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmSysIO.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmLoader.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmNetIO.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmPersistentObjects.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmPersistentDisciplines.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmOperations.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmScales.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmTimes.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmClocks.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmTimers.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmConditions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmStreamConditions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmTimeConditions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmCiphers.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmCipherOps.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmBlockCiphers.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmAsymmetricCiphers.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmConclusions.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmRandomGenerators.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmTCrypt.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/ulm/ulmIntOperations.Mod
|
||||
|
||||
pow32:
|
||||
@printf "\nMaking pow library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/pow/powStrings.Mod
|
||||
|
||||
misc:
|
||||
@printf "\nMaking misc library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/system/Oberon.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/misc/crt.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/misc/Listen.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/misc/MersenneTwister.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/misc/MultiArrays.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/misc/MultiArrayRiders.Mod
|
||||
|
||||
s3:
|
||||
@printf "\nMaking s3 library\n"
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethBTrees.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethMD5.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethSets.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethZlib.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethZlibBuffers.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethZlibInflate.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethZlibDeflate.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethZlibReaders.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethZlibWriters.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethZip.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethRandomNumbers.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethGZReaders.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethGZWriters.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethUnicode.Mod
|
||||
cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethDates.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethReals.Mod
|
||||
# cd $(BUILDDIR); $(ROOTDIR)/$(VISHAP) -Ffs $(MODEL) ../../src/library/s3/ethStrings.Mod
|
||||
|
||||
librarybinary:
|
||||
@printf "\nMaking lib$(ONAME)\n"
|
||||
|
||||
# Remove objects that should not be part of the library
|
||||
rm -f $(BUILDDIR)/vishap.o
|
||||
|
||||
# Note: remining compiler files are retained in the library allowing the building
|
||||
# of utilities like BrowserCmd.Mod (aka showdef).
|
||||
|
||||
# Make static library
|
||||
ar rcs "$(BUILDDIR)/lib$(ONAME).a" $(BUILDDIR)/*.o
|
||||
|
||||
# Make shared library
|
||||
@cd $(BUILDDIR) && $(COMPILE) -shared -o lib$(ONAME).so *.o
|
||||
|
||||
|
||||
|
||||
|
||||
library: v4 ooc2 ooc ulm pow32 misc s3 librarybinary
|
||||
|
||||
|
||||
|
||||
|
||||
sourcechanges:
|
||||
@cd $(BUILDDIR) && sh $(ROOTDIR)/src/tools/make/sourcechanges.sh $(ROOTDIR)/bootstrap/$(PLATFORM)-$(ADRSIZE)$(ALIGNMENT)
|
||||
|
||||
|
||||
|
||||
|
||||
RUNTEST = COMPILER=$(COMPILER) OBECOMP=$(VISHAP) FLAVOUR=$(FLAVOUR) BRANCH=$(BRANCH) sh ./test.sh "$(INSTALLDIR)"
|
||||
|
||||
confidence:
|
||||
@printf "\n\n--- Confidence tests ---\n\n"
|
||||
cd src/test/confidence/hello; $(RUNTEST)
|
||||
cd src/test/confidence/intsyntax; $(RUNTEST)
|
||||
cd src/test/confidence/language; $(RUNTEST)
|
||||
cd src/test/confidence/texts; $(RUNTEST)
|
||||
cd src/test/confidence/library; $(RUNTEST)
|
||||
cd src/test/confidence/lola; $(RUNTEST)
|
||||
cd src/test/confidence/arrayassignment; $(RUNTEST)
|
||||
if [ "$(PLATFORM)" != "windows" ] ; then cd src/test/confidence/signal; $(RUNTEST); fi
|
||||
@printf "\n\n--- Confidence tests passed ---\n\n"
|
||||
Loading…
Add table
Add a link
Reference in a new issue