-
Notifications
You must be signed in to change notification settings - Fork 3
/
build.com
125 lines (123 loc) · 4.05 KB
/
build.com
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
$!
$! MORIA build command file:
$! example of how to build a moria executable from the
$! source. Note that in this example moria is built with
$! no error checking on. This greatly increases the
$! efficiency of the program, but should only be used with
$! de-bugged versions.
$!
$!
$ Setup:
$ on warning then continue
$ on error then goto error_trap
$!
$ Build_paths:
$ cur_path := 'f$directory()'
$ path_dist := 'cur_path'
$ cur_len = 'f$length(cur_path)' - 1
$ cur_path := 'f$extract(0,cur_len,cur_path)'
$ path_source := 'cur_path'.source]
$ path_include := 'cur_path'.source.include]
$ path_macro := 'cur_path'.source.macro]
$ path_execute := 'cur_path'.execute]
$!
$ Define_logicals:
$ define mor_main 'path_dist'
$ define mor_source 'path_source'
$ define mor_include 'path_include'
$ define mor_macro 'path_macro'
$ define mor_execute 'path_execute'
$!
$ START:
$ if p1.eqs."?" then goto HELP
$ if p1.eqs."LINK" then goto LINK_STEP
$ if p1.eqs."TERMDEF" then goto COMPILE_TERMDEF
$ if p1.eqs."MACROS" then goto COMPILE_MACROS
$ if p1.eqs."MORIA" then goto COMPILE_MORIA
$ if p1.eqs."" then goto COMPILE_MORIA
$!
$ BAD_PARAM:
$ write sys$output "Unrecognized parameter : ",p1
$ exit
$!
$ HELP:
$ type sys$input
BUILD.COM : Accepts one optional parameter. By default, all steps are
executed. If parameter is used, only certain steps are
executed.
Parameters: P1
? - display this help
- Compile all source, re-link moria
LINK - re-link moria
TERMDEF - compile termdef, re-link moria
MACROS - compile all macro routines, re-link moria
MORIA - compile moria & termdef, re-link moria
$ exit
$!
$ COMPILE_MORIA:
$ set def mor_source
$ delete moria.lis;*
$ delete moria.obj;*
$ delete moria.env;*
$ write sys$output "Compiling MORIA.PAS."
$ pascal moria.pas /nocheck/nodebug/nolist
$ write sys$output "MORIA.PAS compiled."
$ purge moria.*
$!
$ COMPILE_TERMDEF:
$ set def mor_source
$ delete termdef.lis;*
$ delete termdef.obj;*
$ write sys$output "Compiling TERMDEF.PAS."
$ pascal termdef /nocheck/nodebug/nolist
$ write sys$output "TERMDEF.PAS compiled."
$ if p1.nes."" then goto LINK_STEP
$!
$ COMPILE_MACROS:
$ set def mor_macro
$ delete morialib.olb;*
$ delete *.obj;*
$ write sys$output "Compiling MACROS."
$ macro bitpos/nodebug/nolist
$ write sys$output "BITPOS compiled."
$ macro distance/nodebug/nolist
$ write sys$output "DISTANCE compiled."
$ macro insert/nodebug/nolist
$ write sys$output "INSERT compiled."
$ macro maxmin/nodebug/nolist
$ write sys$output "MAXMIN compiled."
$ macro minmax/nodebug/nolist
$ write sys$output "MINMAX compiled."
$ macro putqio/nodebug/nolist
$ write sys$output "PUTQIO compiled."
$ macro randint/nodebug/nolist
$ write sys$output "RANDINT compiled."
$ macro randrep/nodebug/nolist
$ write sys$output "RANDREP compiled."
$ library/create morialib.olb
$ library morialib bitpos
$ library morialib distance
$ library morialib insert
$ library morialib maxmin
$ library morialib minmax
$ library morialib putqio
$ library morialib randint
$ library morialib randrep
$ write sys$output "MORIALIB.OLB built."
$ if p1.nes."" then goto LINK_STEP
$!
$ LINK_STEP:
$ set def mor_source
$ delete moria.map;*
$ write sys$output "Linking."
$ link /notrace/nodebug moria,termdef,mor_macro:morialib/library
$ write sys$output "MORIA linked."
$ rename moria.exe mor_execute:moria.exe
$ purge mor_execute:moria.exe
$ set def mor_main
$ exit
$!
$ ERROR_TRAP:
$ write sys$output "***Error resulted in termination***"
$ set def mor_main
$ exit