1 | &begin_parameters
|
---|
2 | cpu option(-processor)name,allow(mc68020,i80860,pa7100,pa8000),=mc68020
|
---|
3 | recompile switch(-recompile),=1
|
---|
4 | rebind switch(-rebind),=1
|
---|
5 | tgt_mod option(-target_module)module_name,='(current_module)'
|
---|
6 | version option(-version)name,allow(alpha,ga),=ga
|
---|
7 | compiler option(-compiler)name,allow(cc,gcc)=cc
|
---|
8 | &end_parameters
|
---|
9 | &echo command_lines
|
---|
10 | &
|
---|
11 | & This is a VOS command macro to build Perl 5 for the Stratus VOS
|
---|
12 | & operating system. You need to have the VOS POSIX.1 support
|
---|
13 | & loaded on your system. Change the following statement, if
|
---|
14 | & necessary, to assign the correct pathname of the directory that
|
---|
15 | & contains VOS POSIX.1 support.
|
---|
16 | &
|
---|
17 | &if &version& = alpha
|
---|
18 | &then &set_string POSIX >vos_ftp_site>pub>vos>alpha>posix
|
---|
19 | &else &set_string POSIX >system>posix_object_library
|
---|
20 | &
|
---|
21 | & See if the site has VOS POSIX.1 support loaded. If not, quit now.
|
---|
22 | &
|
---|
23 | &if ^ (exists &POSIX& -directory)
|
---|
24 | &then &do
|
---|
25 | &display_line build: VOS POSIX.1 support not found. &POSIX&
|
---|
26 | &return 1
|
---|
27 | &end
|
---|
28 | &
|
---|
29 | &if &cpu& = mc68020 & &version& = ga | &cpu& = i80860 & &version& = ga
|
---|
30 | &then &do
|
---|
31 | &display_line build: "-version ga" is incompatible with "-processor mc68020 or i80860"
|
---|
32 | &return 1
|
---|
33 | &end
|
---|
34 | &
|
---|
35 | &if &compiler& = gcc & &version& = alpha
|
---|
36 | &then &do
|
---|
37 | &display_line build: "-compiler gcc" is incompatible with "-version alpha"
|
---|
38 | &return 1
|
---|
39 | &end
|
---|
40 | &
|
---|
41 | &if &compiler& = gcc & &cpu& = pa8000
|
---|
42 | &then &do
|
---|
43 | &display_line build: "-compiler gcc" is incompatible with "-processor pa8000"
|
---|
44 | &return 1
|
---|
45 | &end
|
---|
46 | &
|
---|
47 | & Set up the appropriate directory suffix for each architecture.
|
---|
48 | &
|
---|
49 | &if &cpu& = mc68020
|
---|
50 | &then &set_string obj ''
|
---|
51 | &if &cpu& = i80860
|
---|
52 | &then &set_string obj .860
|
---|
53 | &if &cpu& = pa7100
|
---|
54 | &then &set_string obj .7100
|
---|
55 | &if &cpu& = pa8000
|
---|
56 | &then &set_string obj .8000
|
---|
57 | &
|
---|
58 | &if &cpu& = mc68020
|
---|
59 | &then &set_string obj2 68k
|
---|
60 | &else &set_string obj2 (substr &obj& 2)
|
---|
61 | &
|
---|
62 | &if &cpu& = mc68020
|
---|
63 | &then &set_string bindsize -size large
|
---|
64 | &else &set_string bindsize ''
|
---|
65 | &
|
---|
66 | &if &compiler& = cc
|
---|
67 | &then &do
|
---|
68 | &set_string cpu -processor &cpu&
|
---|
69 | &set_string s .obj
|
---|
70 | &end
|
---|
71 | &else &do
|
---|
72 | &set_string cpu ''
|
---|
73 | &set_string s .o
|
---|
74 | &end
|
---|
75 | &
|
---|
76 | & Suppress several harmless compiler warning and advice messages.
|
---|
77 | & Use -list -show_include all -show_macros both_ways when debugging.
|
---|
78 | &
|
---|
79 | &set_string cflags -D_SVID_SOURCE -D_POSIX_C_SOURCE=199506L -DPERL_CORE -O4 -DPERL_NO_DEV_RANDOM
|
---|
80 | &
|
---|
81 | &if &compiler& = cc
|
---|
82 | &then &set_string cflags &cflags& '-u'
|
---|
83 | &else &set_string cflags &cflags& '-c'
|
---|
84 | &
|
---|
85 | & The following is a work-around for stcp-1437,8,9
|
---|
86 | &
|
---|
87 | &if &version& = ga
|
---|
88 | &then &set_string cflags &cflags& -D_BSD_SOURCE
|
---|
89 | &
|
---|
90 | &if &compiler& = cc
|
---|
91 | &then &set_string diag -suppress_diag 2006 2064 2065
|
---|
92 | &else &set_string diag ''
|
---|
93 | &
|
---|
94 | & The following is a work-around for stcp-1570 and GCC.
|
---|
95 | & (and for some perl errors that only cc finds)
|
---|
96 | &
|
---|
97 | &if &compiler& = gcc
|
---|
98 | &then &set_string diag &diag& -w
|
---|
99 | &else &set_string diag &diag& -w1
|
---|
100 | &
|
---|
101 | &if &version& = alpha
|
---|
102 | &then !set_library_paths include << < &POSIX&>incl &+
|
---|
103 | (master_disk)>system>include_library
|
---|
104 | &else !set_library_paths include << < &+
|
---|
105 | (master_disk)>system>stcp>include_library &+
|
---|
106 | (master_disk)>system>include_library>sysv &+
|
---|
107 | (master_disk)>system>include_library
|
---|
108 | &
|
---|
109 | &if &compiler& = gcc
|
---|
110 | &then !set_library_paths command '(current_dir)' &+
|
---|
111 | (master_disk)>system>gnu_library>bin &+
|
---|
112 | (master_disk)>system>command_library
|
---|
113 | &else !set_library_paths command '(current_dir)' &+
|
---|
114 | (master_disk)>system>command_library
|
---|
115 | &
|
---|
116 | & If requested, compile the source code.
|
---|
117 | &
|
---|
118 | &if &recompile& = 0
|
---|
119 | &then &goto CHECK_REBIND
|
---|
120 | &
|
---|
121 | & Some of the compiler invocations need more VM than
|
---|
122 | & the defaults allow. Raise the limits.
|
---|
123 | !update_process_cmd_limits -initial_total_limit 150000000 -initial_heap_limit 100000000 -no_ask
|
---|
124 | &
|
---|
125 | !&compiler& <<av.c &diag& &cpu& &cflags& -o av&s&
|
---|
126 | &if (command_status) ^= 0 &then &return
|
---|
127 | !&compiler& <<deb.c &diag& &cpu& &cflags& -o deb&s&
|
---|
128 | &if (command_status) ^= 0 &then &return
|
---|
129 | !&compiler& <<doio.c &diag& &cpu& &cflags& -o doio&s&
|
---|
130 | &if (command_status) ^= 0 &then &return
|
---|
131 | !&compiler& <<doop.c &diag& &cpu& &cflags& -o doop&s&
|
---|
132 | &if (command_status) ^= 0 &then &return
|
---|
133 | !&compiler& <<dump.c &diag& &cpu& &cflags& -o dump&s&
|
---|
134 | &if (command_status) ^= 0 &then &return
|
---|
135 | !&compiler& <<globals.c &diag& &cpu& &cflags& -o globals&s&
|
---|
136 | &if (command_status) ^= 0 &then &return
|
---|
137 | !&compiler& <<gv.c &diag& &cpu& &cflags& -o gv&s&
|
---|
138 | &if (command_status) ^= 0 &then &return
|
---|
139 | !&compiler& <<hv.c &diag& &cpu& &cflags& -o hv&s&
|
---|
140 | &if (command_status) ^= 0 &then &return
|
---|
141 | !&compiler& <<locale.c &diag& &cpu& &cflags& -o locale&s&
|
---|
142 | &if (command_status) ^= 0 &then &return
|
---|
143 | & !&compiler& <<malloc.c &diag& &cpu& &cflags& -o malloc&s&
|
---|
144 | & &if (command_status) ^= 0 &then &return
|
---|
145 | !&compiler& <<mg.c &diag& &cpu& &cflags& -o mg&s&
|
---|
146 | &if (command_status) ^= 0 &then &return
|
---|
147 | !&compiler& <<numeric.c &diag& &cpu& &cflags& -o numeric&s&
|
---|
148 | &if (command_status) ^= 0 &then &return
|
---|
149 | !&compiler& <<op.c &diag& &cpu& &cflags& -o op&s&
|
---|
150 | &if (command_status) ^= 0 &then &return
|
---|
151 | &
|
---|
152 | & We are essentially building miniperl for now. Until we
|
---|
153 | & get a POSIX shell on VOS we won't add any of the extensions.
|
---|
154 | &
|
---|
155 | & !link <<op.c opmini.c -delete
|
---|
156 | & &if (command_status) ^= 0 &then &return
|
---|
157 | & !&compiler& opmini.c &diag& &cpu& &cflags& -DPERL_EXTERNAL_GLOB -o opmini&s&
|
---|
158 | & &if (command_status) ^= 0 &then &return
|
---|
159 | & !unlink opmini.c
|
---|
160 | & &if (command_status) ^= 0 &then &return
|
---|
161 | &
|
---|
162 | !&compiler& <<pad.c &diag& &cpu& &cflags& -o pad&s&
|
---|
163 | &if (command_status) ^= 0 &then &return
|
---|
164 | !&compiler& <<perl.c &diag& &cpu& &cflags& -o perl&s& &+
|
---|
165 | -DARCHLIB="/system/ported/lib/perl5/5.8.8/&obj2&" &+
|
---|
166 | -DARCHLIB_EXP="/system/ported/lib/perl5/5.8.8/&obj2&" &+
|
---|
167 | -DSITEARCH="/system/ported/lib/perl5/site_perl/5.8.8/&obj2&" &+
|
---|
168 | -DSITEARCH_EXP="/system/ported/lib/perl5/site_perl/5.8.8/&obj2&" &+
|
---|
169 | -DARCHNAME="&obj2&"
|
---|
170 | &if (command_status) ^= 0 &then &return
|
---|
171 | !&compiler& <<perlapi.c &diag& &cpu& &cflags& -o perlapi&s&
|
---|
172 | &if (command_status) ^= 0 &then &return
|
---|
173 | !&compiler& <<perlio.c &diag& &cpu& &cflags& -o perlio&s&
|
---|
174 | &if (command_status) ^= 0 &then &return
|
---|
175 | !&compiler& <<perly.c &diag& &cpu& &cflags& -o perly&s&
|
---|
176 | &if (command_status) ^= 0 &then &return
|
---|
177 | & compiling pp.c for the PA-RISC hits compiler bug pcg-98; avoid it.
|
---|
178 | & The bug is fixed in VOS 14.1.0 and all later releases.
|
---|
179 | &if (index (string &cpu&) pa) > 0 & (module_info os_release) < 'VOS Release 14.1.0'
|
---|
180 | &then !&compiler& <<pp.c &diag& &cpu& &cflags& -no_schedule -o pp&s&
|
---|
181 | &else !&compiler& <<pp.c &diag& &cpu& &cflags& -o pp&s&
|
---|
182 | &if (command_status) ^= 0 &then &return
|
---|
183 | !&compiler& <<pp_ctl.c &diag& &cpu& &cflags& -o pp_ctl&s&
|
---|
184 | &if (command_status) ^= 0 &then &return
|
---|
185 | !&compiler& <<pp_hot.c &diag& &cpu& &cflags& -o pp_hot&s&
|
---|
186 | &if (command_status) ^= 0 &then &return
|
---|
187 | !&compiler& <<pp_pack.c &diag& &cpu& &cflags& -o pp_pack&s&
|
---|
188 | &if (command_status) ^= 0 &then &return
|
---|
189 | !&compiler& <<pp_sort.c &diag& &cpu& &cflags& -o pp_sort&s&
|
---|
190 | &if (command_status) ^= 0 &then &return
|
---|
191 | !&compiler& <<pp_sys.c &diag& &cpu& &cflags& -o pp_sys&s&
|
---|
192 | &if (command_status) ^= 0 &then &return
|
---|
193 | !&compiler& <<reentr.c &diag& &cpu& &cflags& -o reentr&s&
|
---|
194 | &if (command_status) ^= 0 &then &return
|
---|
195 | !&compiler& <<regcomp.c &diag& &cpu& &cflags& -o regcomp&s&
|
---|
196 | &if (command_status) ^= 0 &then &return
|
---|
197 | !&compiler& <<regexec.c &diag& &cpu& &cflags& -o regexec&s&
|
---|
198 | &if (command_status) ^= 0 &then &return
|
---|
199 | !&compiler& <<run.c &diag& &cpu& &cflags& -o run&s&
|
---|
200 | &if (command_status) ^= 0 &then &return
|
---|
201 | !&compiler& <<scope.c &diag& &cpu& &cflags& -o scope&s&
|
---|
202 | &if (command_status) ^= 0 &then &return
|
---|
203 | !&compiler& <<sv.c &diag& &cpu& &cflags& -o sv&s&
|
---|
204 | &if (command_status) ^= 0 &then &return
|
---|
205 | !&compiler& <<taint.c &diag& &cpu& &cflags& -o taint&s&
|
---|
206 | &if (command_status) ^= 0 &then &return
|
---|
207 | !&compiler& <<toke.c &diag& &cpu& &cflags& -o toke&s&
|
---|
208 | &if (command_status) ^= 0 &then &return
|
---|
209 | !&compiler& <<universal.c &diag& &cpu& &cflags& -o universal&s&
|
---|
210 | &if (command_status) ^= 0 &then &return
|
---|
211 | !&compiler& <<utf8.c &diag& &cpu& &cflags& -o utf8&s&
|
---|
212 | &if (command_status) ^= 0 &then &return
|
---|
213 | !&compiler& <<util.c &diag& &cpu& &cflags& -o util&s&
|
---|
214 | &if (command_status) ^= 0 &then &return
|
---|
215 | !&compiler& <<xsutils.c &diag& &cpu& &cflags& -o xsutils&s&
|
---|
216 | &if (command_status) ^= 0 &then &return
|
---|
217 | !&compiler& <vos.c &diag& &cpu& &cflags& -o vos&s&
|
---|
218 | &if (command_status) ^= 0 &then &return
|
---|
219 | &if &version& = alpha
|
---|
220 | &then &do
|
---|
221 | !&compiler& <vos_dummies.c &cpu& -O4 -o vos_dummies&s&
|
---|
222 | &if (command_status) ^= 0 &then &return
|
---|
223 | &end
|
---|
224 | &
|
---|
225 | &if &compiler& = gcc
|
---|
226 | &then &do
|
---|
227 | &if (exists -file perl.a) &then !delete_file perl.a
|
---|
228 | !ar rc perl.a av.o deb.o doio.o doop.o dump.o globals.o gv.o hv.o locale.o &+
|
---|
229 | mg.o numeric.o op.o pad.o perl.o perlapi.o perlio.o perly.o pp.o pp_ctl.o &+
|
---|
230 | pp_hot.o pp_pack.o pp_sort.o pp_sys.o reentr.o regcomp.o regexec.o run.o &+
|
---|
231 | scope.o sv.o taint.o toke.o universal.o utf8.o util.o vos.o xsutils.o
|
---|
232 | !delete_file *.o -no_ask -brief
|
---|
233 | &end
|
---|
234 | &else &do
|
---|
235 | !&compiler& <<miniperlmain.c &diag& &cpu& &cflags& -o miniperlmain&s&
|
---|
236 | &if (command_status) ^= 0 &then &return
|
---|
237 | &end
|
---|
238 | &
|
---|
239 | & If requested, bind the executable program module.
|
---|
240 | &
|
---|
241 | &label CHECK_REBIND
|
---|
242 | &if &rebind& = 0
|
---|
243 | &then &return
|
---|
244 | &
|
---|
245 | &if (exists -directory (master_disk)>system>tcp_os>object_library.&obj2&)
|
---|
246 | &then &set_string tcp_objlib (master_disk)>system>tcp_os>object_library.&obj2&
|
---|
247 | &else &set_string tcp_objlib (master_disk)>system>tcp_os>object_library
|
---|
248 | &
|
---|
249 | &if (exists -directory (master_disk)>system>stcp>object_library.&obj2&)
|
---|
250 | &then &set_string stcp_objlib (master_disk)>system>stcp>object_library.&obj2&
|
---|
251 | &else &set_string stcp_objlib (master_disk)>system>stcp>object_library
|
---|
252 | &
|
---|
253 | &if (exists -directory (master_disk)>system>object_library.&obj2&)
|
---|
254 | &then &set_string objlib (master_disk)>system>object_library.&obj2&
|
---|
255 | &else &set_string objlib (master_disk)>system>object_library
|
---|
256 | &
|
---|
257 | &if (exists -directory (master_disk)>system>c_object_library.&obj2&)
|
---|
258 | &then &set_string c_objlib (master_disk)>system>c_object_library.&obj2&
|
---|
259 | &else &set_string c_objlib (master_disk)>system>c_object_library
|
---|
260 | &
|
---|
261 | &if (exists -directory (master_disk)>system>posix_object_library.&obj2&)
|
---|
262 | &then &set_string posix_objlib (master_disk)>system>posix_object_library.&obj2&
|
---|
263 | &else &set_string posix_objlib (master_disk)>system>posix_object_library
|
---|
264 | &
|
---|
265 | &if &version& = alpha
|
---|
266 | &then !set_library_paths object . &tcp_objlib& &+
|
---|
267 | &POSIX&>c>sysv_runtime>obj&obj& &+
|
---|
268 | &POSIX&>c>runtime>obj&obj& &+
|
---|
269 | &c_objlib& &objlib&
|
---|
270 | &else !set_library_paths object . &stcp_objlib& &+
|
---|
271 | &stcp_objlib&>common &+
|
---|
272 | &stcp_objlib&>net &+
|
---|
273 | &stcp_objlib&>sbsd &+
|
---|
274 | &stcp_objlib&>socket &+
|
---|
275 | &posix_objlib&>sysv &+
|
---|
276 | &posix_objlib&>bsd &+
|
---|
277 | &posix_objlib& &+
|
---|
278 | &c_objlib& &objlib&
|
---|
279 | &if &compiler& = gcc
|
---|
280 | &then &do
|
---|
281 | &set_string cflags (before &$cflags& -c)
|
---|
282 | !&compiler& <<miniperlmain.c perl.a &diag& &cpu& &cflags& -o perl.pm
|
---|
283 | &if (command_status) ^= 0 &then &return
|
---|
284 | !delete_file perl.a
|
---|
285 | &end
|
---|
286 | &else &do
|
---|
287 | &if &version& = alpha
|
---|
288 | &then !bind -control <perl.bind vos_dummies &+
|
---|
289 | &tcp_objlib&>tcp_runtime &tcp_objlib&>tcp_gethost &+
|
---|
290 | &cpu& -target_module &tgt_mod& &bindsize& -map
|
---|
291 | &else !bind -control <perl.bind &cpu& -target_module &tgt_mod& -map
|
---|
292 | &if (command_status) ^= 0 &then &return
|
---|
293 | &end
|
---|
294 | !delete_file *&s& -no_ask -brief
|
---|