Commit | Line | Data |
---|---|---|
f970f0fc | 1 | $! OpenVMS configuration procedure for Perl -- do not attempt to run under DOS |
7558ebc2 | 2 | $ sav_ver = 'F$VERIFY(0)' |
9b5c8979 | 3 | $ on control_y then goto clean_up |
97abc6ad HM |
4 | $! SET VERIFY |
5 | $! | |
570bb66e | 6 | $! For example, if you unpacked perl into: [USER.PERL-5n...] then you will |
e6df7ed1 | 7 | $! want to cd into the tree and execute Configure: |
97abc6ad | 8 | $! |
a3ef2c6f | 9 | $! $ SET DEFAULT [USER.PERL5_xxx] |
e6df7ed1 | 10 | $! $ @Configure |
97abc6ad HM |
11 | $! |
12 | $! or | |
13 | $! | |
a3ef2c6f | 14 | $! $ SET DEFAULT [USER.PERL5_xxx] |
e6df7ed1 | 15 | $! $ @Configure "-des" |
97abc6ad HM |
16 | $! |
17 | $! That's it. If you get into a bind trying to build perl on VMS then | |
429a5e67 | 18 | $! definitely read through the README.VMS file. |
146174a9 | 19 | $! Beyond that send email to vmsperl@perl.org |
97abc6ad HM |
20 | $! |
21 | $! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
22 | $! | |
97abc6ad | 23 | $! send suggestions to: |
a3ef2c6f | 24 | $! Dan Sugalski <dan@sidhe.org> |
97abc6ad HM |
25 | $! Thank you!!!! |
26 | $! | |
27 | $! Adapted and converted from Larry Wall & Andy Dougherty's | |
429a5e67 | 28 | $! "Configure generated by metaconfig 3.0 PL60." by Peter Prymmer |
146174a9 CB |
29 | $! (a Bourne sh[ell] script for configuring the installation of perl |
30 | $! on non-VMS systems) in the perl5.002|3 epoch (spring/summer 1996) | |
97abc6ad HM |
31 | $! with much valuable help from Charles Bailey & |
32 | $! the whole VMSPerl crew. | |
429a5e67 | 33 | $! Extended and messed about with by Dan Sugalski |
97abc6ad | 34 | $! |
97abc6ad HM |
35 | $! VMS-isms we will need: |
36 | $ echo = "write sys$output " | |
37 | $ cat = "type" | |
a5fddd44 | 38 | $ delete := delete ! local symbol overrides globals with qualifiers |
97abc6ad | 39 | $ gcc_symbol = "gcc" |
96021e87 | 40 | $ ld = "Link/nodebug" |
97abc6ad HM |
41 | $ ans = "" |
42 | $ macros = "" | |
c645ec3f | 43 | $ extra_flags = "" |
498336ed | 44 | $ user_c_flags = "" |
6c7aff00 | 45 | $ use_ieee_math = "y" |
498336ed | 46 | $ be_case_sensitive = "n" |
899de42e | 47 | $ shorten_long_symbols = "y" |
4adb8845 | 48 | $ unlink_all_versions = "n" |
96021e87 | 49 | $ builder = "MMK" |
a3ef2c6f | 50 | $ use_vmsdebug_perl = "n" |
f53b4005 CB |
51 | $ use64bitall = "n" |
52 | $ use64bitint = "n" | |
65b8dcb0 | 53 | $ uselongdouble = "n" |
fe6e2aaa | 54 | $ uselargefiles = "y" |
cfcfe586 | 55 | $ usestdstat = "n" |
79e63f36 | 56 | $ usesitecustomize = "n" |
97abc6ad | 57 | $ C_Compiler_Replace = "CC=" |
3f39e13a CB |
58 | $ thread_upcalls = "MTU=" |
59 | $ thread_kernel = "MTK=" | |
429a5e67 DS |
60 | $ use_two_pot_malloc = "N" |
61 | $ use_pack_malloc = "N" | |
62 | $ use_debugmalloc = "N" | |
570bb66e | 63 | $ ccflags = "" |
17e8697d | 64 | $ static_ext = "" |
63d52911 | 65 | $ dynamic_ext = "" |
5581d86f | 66 | $ nonxs_ext = "" |
bd2aeadf | 67 | $ nonxs_ext2 = "" |
97abc6ad | 68 | $ vms_default_directory_name = F$ENVIRONMENT("DEFAULT") |
570bb66e JH |
69 | $ max_allowed_dir_depth = 3 ! e.g. [A.B.PERLxxx] not [A.B.C.PERLxxx] |
70 | $! max_allowed_dir_depth = 2 ! e.g. [A.PERLxxx] not [A.B.PERLxxx] | |
97abc6ad | 71 | $! |
c998f3c7 PP |
72 | $! Sebastian Bazley's request: close the CONFIG handle with /NOLOG |
73 | $! qualifier "just in case" (configure.com is re @ed in a bad state). | |
74 | $! This construct was tested to be not a problem as far back as | |
75 | $! VMS V5.5-2, hopefully earlier versions are OK as well. | |
76 | $! | |
77 | $ CLOSE/NOLOG CONFIG | |
78 | $! | |
79 | $! Now keep track of open files | |
80 | $! | |
97abc6ad HM |
81 | $ vms_filcnt = F$GETJPI ("","FILCNT") |
82 | $! | |
83 | $!: compute my invocation name | |
84 | $ me = F$ENVIRONMENT("PROCEDURE") | |
85 | $! | |
86 | $! Many null statements (begin with colon ':') in the Bourne shell version of | |
87 | $! this script serve as comments/placeholders. I have retained some of the ones | |
88 | $! that will help you compare this .COM file to the sh version - as well as | |
89 | $! leave placeholders for future improvements to this .COM file. | |
90 | $! sfn = VMS "skipped for now" | |
91 | $! | |
92 | $!: Proper PATH separator !sfn | |
93 | $!: Proper PATH setting !sfn | |
94 | $!: Sanity checks !sfn "Say '@''$me''" | |
95 | $!: On HP-UX, large Configure scripts may exercise a bug in /bin/sh !sfn | |
96 | $!: Configure runs within the UU subdirectory !->after find MANIFEST | |
97 | $! <big long list of default values (mostly null)> | |
98 | $!: We must find out about Eunice early !(?) | |
99 | $!: list of known cpp symbols, sorted alphabetically !sfn | |
100 | $! al = al + "..." | |
101 | $!: default library list !sfn | |
102 | $! <no hints files in use (yet?)> | |
103 | $!: Extra object files, if any, needed on this platform. !sfn | |
104 | $!: Possible local include directories to search. !sfn | |
105 | $!: Set locincpth to "" in a hint file to defeat local include searches. !sfn | |
106 | $!locincpth="/usr/local/include /opt/local/include /usr/gnu/include" !sfn | |
107 | $!locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include" | |
108 | $!: no include file wanted by default !sfn | |
109 | $!inclwanted='' !sfn | |
110 | $!: Possible local library directories to search. !sfn | |
111 | $!loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib" !sfn | |
112 | $!loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" !sfn | |
113 | $!: general looking path for locating libraries !sfn | |
114 | $!glibpth="/lib/pa1.1 /usr/shlib /usr/lib/large /lib /usr/lib" !sfn | |
115 | $!glibpth="$glibpth $xlibpth /lib/large /usr/lib/small /lib/small" !sfn | |
116 | $!glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/shlib" !sfn | |
117 | $!: Private path used by Configure to find libraries. Its value !sfn | |
118 | $!: is prepended to libpth. This variable takes care of special !sfn | |
119 | $!: machines, like the mips. Usually, it should be empty. !sfn | |
120 | $!plibpth='' !sfn | |
121 | $!: full support for void wanted by default !sfn | |
122 | $!defvoidused=15 !sfn | |
123 | $!: List of libraries we want. !sfn | |
124 | $!libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl' !sfn | |
125 | $!libswanted="$libswanted dld ld sun m c cposix posix ndir dir crypt" !sfn | |
126 | $!libswanted="$libswanted ucb bsd BSD PW x" !sfn | |
127 | $!: We probably want to search /usr/shlib before most other libraries. !sfn | |
128 | $!: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. !sfn | |
129 | $!glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'` !sfn | |
130 | $!glibpth="/usr/shlib $glibpth" !sfn | |
131 | $!: Do not use vfork unless overridden by a hint file. !sfn | |
132 | $!usevfork=false !sfn | |
133 | $!: script used to extract .SH files with variable substitutions !sfn | |
134 | $!: produce awk script to parse command line options !sfn | |
135 | $!sfn (assume no sed awk) see below | |
136 | $!: process the command line options | |
137 | $! | |
138 | $!: set up default values | |
139 | $ fastread="" | |
140 | $ reuseval="false" | |
c886fb20 | 141 | $ maniskip = "false" |
570bb66e | 142 | $ IF F$TYPE(config_sh) .EQS. "" THEN config_sh="" |
97abc6ad HM |
143 | $ alldone="" |
144 | $ error="" | |
145 | $ silent="" | |
146 | $ extractsh="" | |
147 | $ override="" | |
148 | $ knowitall="" | |
414b89cc | 149 | $ ccname="VAX" |
97abc6ad | 150 | $ Dec_C_Version = "" |
570bb66e | 151 | $ cxxversion = "" |
97abc6ad | 152 | $ use_threads = "F" |
498336ed CB |
153 | $ use_5005_threads = "N" |
154 | $ use_ithreads = "N" | |
97abc6ad HM |
155 | $! |
156 | $!: option parsing | |
08c7cbbb | 157 | $ config_args = "" |
97abc6ad HM |
158 | $ IF (P1 .NES. "") |
159 | $ THEN !one or more switches was thrown | |
160 | $ i = 1 | |
161 | $ bang = 0 | |
162 | $Param_loop: | |
08c7cbbb GS |
163 | $ IF (P'i'.NES."") |
164 | $ THEN | |
165 | $ bang = bang + 1 | |
166 | $ config_args = config_args + F$FAO(" !AS",P'i') | |
167 | $ ENDIF | |
97abc6ad HM |
168 | $ i = i + 1 |
169 | $ IF (i.LT.9) THEN GOTO Param_loop !DCL allows P1..P8 | |
170 | $! | |
171 | $ i = 1 | |
172 | $Opt_loop: | |
173 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "-") THEN P'i' = P'i' - "-" | |
174 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "/") THEN P'i' = P'i' - "/" | |
175 | $Remove_quotation_mark: | |
176 | $ P'i' = P'i' - """" | |
177 | $ IF F$LOCATE("""",P'i') .LT. F$LENGTH(P'i') THEN GOTO Remove_quotation_mark | |
178 | $ gotopt = "f" !"alse" | |
179 | $ gotshortopt = "f" !"alse" | |
180 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "d") | |
181 | $ THEN | |
182 | $ fastread = "yes" | |
183 | $ gotopt = "t" !"rue" | |
184 | $ P'i' = P'i' - "d" | |
185 | $ gotshortopt = "t" !"rue" | |
186 | $ ENDIF | |
187 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "e") | |
188 | $ THEN | |
189 | $ alldone = "cont" | |
190 | $ gotopt = "t" | |
191 | $ P'i' = P'i' - "e" | |
192 | $ gotshortopt = "t" | |
193 | $ ENDIF | |
570bb66e | 194 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "f") ! "-f" |
97abc6ad HM |
195 | $ THEN |
196 | $ P'i' = P'i' - "f" | |
197 | $ config_sh = P'i' | |
198 | $ IF (F$SEARCH(config_sh).NES."") | |
199 | $ THEN | |
8560c20d CB |
200 | $ test_config_sh = F$FILE_ATTRIBUTES(config_sh,"PRO") |
201 | $ IF (F$LOCATE("R",test_config_sh).NE.F$LENGTH(test_config_sh)) | |
97abc6ad | 202 | $ THEN |
570bb66e | 203 | $ config_dflt = "y" |
97abc6ad HM |
204 | $ CONTINUE !at this point check UIC && if test allows... |
205 | $ !to be continued ? | |
206 | $ ELSE | |
207 | $ echo "''me': cannot read config file ''config_sh'." | |
208 | $ error="true" | |
209 | $ ENDIF | |
210 | $ ELSE | |
211 | $ echo "''me': cannot read config file ''config_sh'." | |
212 | $ error="true" | |
213 | $ ENDIF | |
214 | $ gotopt = "t" | |
215 | $ ENDIF | |
570bb66e | 216 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "h") ! "-h" |
97abc6ad HM |
217 | $ THEN |
218 | $ error = "true" | |
219 | $ gotopt = "t" | |
220 | $ P'i' = P'i' - "h" | |
221 | $ gotshortopt = "t" | |
222 | $ ENDIF | |
570bb66e | 223 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "m") ! "-m" |
c886fb20 CB |
224 | $ THEN |
225 | $ maniskip = "true" | |
226 | $ gotopt = "t" | |
227 | $ P'i' = P'i' - "m" | |
228 | $ gotshortopt = "t" | |
229 | $ ENDIF | |
570bb66e | 230 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "r") ! "-r" |
97abc6ad HM |
231 | $ THEN |
232 | $ reuseval = "true" | |
233 | $ gotopt = "t" | |
234 | $ P'i' = P'i' - "r" | |
235 | $ gotshortopt = "t" | |
236 | $ ENDIF | |
570bb66e | 237 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "s") ! "-s" |
97abc6ad HM |
238 | $ THEN |
239 | $ silent = "true" | |
240 | $ gotopt = "t" | |
241 | $ P'i' = P'i' - "s" | |
242 | $ gotshortopt = "t" | |
243 | $ ENDIF | |
570bb66e | 244 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "E") ! "-E" |
97abc6ad HM |
245 | $ THEN |
246 | $ alldone = "exit" | |
247 | $ gotopt = "t" | |
248 | $ ENDIF | |
570bb66e | 249 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "K") ! "-K" |
97abc6ad HM |
250 | $ THEN |
251 | $ knowitall = "true" | |
252 | $ gotopt = "t" | |
253 | $ P'i' = P'i' - "K" | |
254 | $ gotshortopt = "t" | |
255 | $ ENDIF | |
570bb66e | 256 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "O") ! "-O" |
97abc6ad HM |
257 | $ THEN |
258 | $ override = "true" | |
259 | $ gotopt = "t" | |
260 | $ P'i' = P'i' - "O" | |
261 | $ gotshortopt = "t" | |
262 | $ ENDIF | |
570bb66e | 263 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "S") ! "-S" |
97abc6ad | 264 | $ THEN |
570bb66e | 265 | $ extractsh = "true" !VMS? Yes with munchconfig |
97abc6ad HM |
266 | $ gotopt = "t" |
267 | $ P'i' = P'i' - "S" | |
268 | $ gotshortopt = "t" | |
269 | $ ENDIF | |
570bb66e | 270 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "D") ! "-D" |
97abc6ad HM |
271 | $ THEN |
272 | $ P'i' = P'i' - "D" | |
97abc6ad HM |
273 | $ IF (F$LOCATE("=",P'i') .EQ. F$LENGTH(P'i')) |
274 | $ THEN | |
570bb66e | 275 | $ tmp = P'i' + "=""define""" |
7558ebc2 | 276 | $ 'tmp' |
570bb66e | 277 | $ DELETE/SYMBOL tmp |
97abc6ad HM |
278 | $ ELSE |
279 | $ IF (F$LOCATE("=",P'i') .EQ. (F$LENGTH(P'i') - 1)) | |
280 | $ THEN | |
281 | $ me = F$PARSE(me,,,"NAME") + F$PARSE(me,,,"TYPE") | |
7558ebc2 | 282 | $ echo "''me': use ""-Usymbol=val"" not ""-Dsymbol=""." |
97abc6ad HM |
283 | $ echo "''me': ignoring -D",P'i' |
284 | $ ELSE | |
570bb66e JH |
285 | $ tmp = F$EXTRACT(0,F$LOCATE("=",P'i'),P'i') |
286 | $ tmp = tmp + "=""" + F$EXTRACT(F$LOCATE("=",P'i')+1,F$LENGTH(P'i'),P'i') + """" | |
7558ebc2 | 287 | $ 'tmp' |
570bb66e | 288 | $ DELETE/SYMBOL tmp |
97abc6ad HM |
289 | $ ENDIF |
290 | $ ENDIF | |
97abc6ad HM |
291 | $ gotopt = "t" |
292 | $ ENDIF | |
570bb66e | 293 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "U") ! "-U" |
97abc6ad HM |
294 | $ THEN |
295 | $ P'i' = P'i' - "U" | |
296 | $ IF (F$LOCATE("=",P'i') .EQ. F$LENGTH(P'i')) | |
297 | $ THEN | |
570bb66e | 298 | $ tmp = P'i' + "=""""" |
7558ebc2 | 299 | $ 'tmp' |
570bb66e | 300 | $ DELETE/SYMBOL tmp |
97abc6ad HM |
301 | $ ELSE |
302 | $ IF (F$LOCATE("=",P'i') .LT. (F$LENGTH(P'i') - 1)) | |
303 | $ THEN | |
304 | $ me = F$PARSE(me,,,"NAME") + F$PARSE(me,,,"TYPE") | |
7558ebc2 | 305 | $ echo "''me': use ""-Dsymbol=val"" not ""-Usymbol=val""." |
97abc6ad HM |
306 | $ echo "''me': ignoring -U",P'i' |
307 | $ ELSE | |
570bb66e | 308 | $ tmp = P'i' + "=""undef""" |
7558ebc2 | 309 | $ 'tmp' |
570bb66e | 310 | $ DELETE/SYMBOL tmp |
97abc6ad HM |
311 | $ ENDIF |
312 | $ ENDIF | |
97abc6ad HM |
313 | $ gotopt = "t" |
314 | $ ENDIF | |
315 | $ IF (F$EXTRACT(0,1,P'i') .EQS. "V") | |
316 | $ THEN | |
317 | $ me = F$PARSE(me,,,"NAME") + F$PARSE(me,,,"TYPE") | |
318 | $ echo "''me' generated by an unknown version of EDT." | |
319 | $ STOP | |
570bb66e | 320 | $ EXIT |
97abc6ad HM |
321 | $ ENDIF |
322 | $ IF .NOT.gotopt | |
323 | $ THEN | |
324 | $ echo "''me': unknown option ",P'i' | |
325 | $ error = "true" | |
326 | $ ENDIF | |
327 | $ IF (F$LENGTH(P'i').GT.0).AND.(gotshortopt) THEN i = i - 1 !clustered switch | |
328 | $ i = i + 1 | |
329 | $ IF (i .LT. (bang + 1)) THEN GOTO Opt_loop | |
330 | $! | |
331 | $ ENDIF ! (P1 .NES. "") | |
08c7cbbb | 332 | $ config_args = F$EDIT(config_args,"TRIM") |
97abc6ad HM |
333 | $! |
334 | $ IF (error) | |
335 | $ THEN | |
336 | $ me = F$PARSE(me,,,"DIRECTORY")+ F$PARSE(me,,,"NAME") | |
7558ebc2 | 337 | $ echo "Usage: @''me' [-dehmr""EKOSV""] [-fconfig.sh] [""-Dsymbol""] [""-Dsymbol=value""]" |
c886fb20 | 338 | $ echo " [-Usymbol] [-Usymbol=]" |
7558ebc2 PP |
339 | $ TYPE SYS$INPUT: |
340 | $ DECK | |
97abc6ad HM |
341 | "-d" : use defaults for all answers. |
342 | "-e" : go on without questioning past the production of config.sh. * | |
343 | "-f" : specify an alternate default configuration file. | |
344 | "-h" : print this help message and exit (with an error status). | |
c886fb20 | 345 | "-m" : skip the MANIFEST check to see that all files are present |
97abc6ad HM |
346 | "-r" : reuse C symbols value if possible (skips costly nm extraction).* |
347 | "-s" : silent mode, only echoes questions and essential information. | |
348 | -"D" : define symbol to have some value: * | |
349 | -"Dsymbol" symbol gets the value 'define' | |
350 | -"Dsymbol=value" symbol gets the value 'value' | |
351 | -E : stop at the end of questions, after having produced config.sh. * | |
352 | -K : do not use unless you know what you are doing. | |
353 | -O : let -D and -U override definitions from loaded configuration file. * | |
354 | -S : perform variable substitutions on all .SH files (can mix with -f) * | |
355 | -"U" : undefine symbol: * | |
356 | -"Usymbol" symbol gets the value 'undef' | |
357 | -"Usymbol=" symbol gets completely empty | |
358 | -V : print version number and exit (with a zero status). | |
7558ebc2 | 359 | $ EOD |
97abc6ad HM |
360 | $ echo "%Config-I-VMS, lower case switches must be enclosed" |
361 | $ echo "-Config-I-VMS, in double quotation marks, e.g.:" | |
362 | $ echo "-Config-I-VMS, @Configure ""-des""" | |
363 | $ echo "-Config-I-VMS, * indicates switch may not be fully implemented for VMS." | |
364 | $ SET DEFAULT 'vms_default_directory_name' !be kind rewind | |
365 | $ STOP | |
366 | $ EXIT 3 ! $STATUS = "%X00000003" (informational) | |
367 | $ ENDIF | |
368 | $! | |
369 | $ GOTO Check_silence | |
370 | $! | |
371 | $Shut_up: | |
01792a70 CB |
372 | $ IF F$Mode() .eqs. "BATCH" |
373 | $ THEN | |
6623414d CB |
374 | $ x = F$GETQUI("CANCEL_OPERATION") ! clear the deck |
375 | $ x = "THIS_JOB" | |
376 | $ bproc_queue = f$getqui("DISPLAY_QUEUE","QUEUE_NAME","*",x) | |
377 | $ bproc_entry = f$getqui("DISPLAY_JOB","ENTRY_NUMBER",,x) | |
378 | $ bproc_name = f$getqui("DISPLAY_JOB","JOB_NAME",,x) | |
379 | $ bproc_log_spec = f$getqui("DISPLAY_JOB","LOG_SPECIFICATION",,x) | |
380 | $ STDOUT = F$PARSE(bproc_name, bproc_log_spec, ".LOG") | |
381 | $ WRITE SYS$OUTPUT "Writing output of entry ''bproc_entry' in queue ''bproc_queue' to a new version of: " | |
01792a70 | 382 | $ WRITE SYS$OUTPUT STDOUT |
6623414d CB |
383 | $ DELETE_/SYMBOL x |
384 | $ DELETE_/SYMBOL bproc_queue | |
385 | $ DELETE_/SYMBOL bproc_entry | |
386 | $ DELETE_/SYMBOL bproc_name | |
387 | $ DELETE_/SYMBOL bproc_log_spec | |
01792a70 CB |
388 | $ ELSE |
389 | $ STDOUT = F$TRNLNM("SYS$OUTPUT") | |
390 | $ ENDIF | |
97abc6ad HM |
391 | $ DEFINE SYS$OUTPUT "_NLA0:" |
392 | $ echo4 = "write STDOUT " | |
393 | $ cat4 = "TYPE/OUTPUT=''STDOUT'" | |
01792a70 | 394 | $ open/write/share=read STDOUT 'STDOUT' |
97abc6ad HM |
395 | $ RETURN |
396 | $! | |
397 | $Check_silence: | |
398 | $ IF (silent) | |
399 | $ THEN | |
400 | $ GOSUB Shut_up | |
401 | $ ELSE | |
402 | $ echo4 = "write SYS$OUTPUT " | |
403 | $ cat4 = "TYPE" | |
404 | $ ENDIF | |
405 | $! | |
406 | $!: run the defines and the undefines, if any, but leave the file out there... | |
407 | $! Unfortunately Configure.COM in DCL is not yet set up to do this - | |
408 | $! maybe someday | |
409 | $! | |
410 | $!: set package name | |
411 | $ package = "perl5" | |
f53b4005 | 412 | $ packageup = F$EDIT((package - "5"),"UPCASE") |
97abc6ad HM |
413 | $! |
414 | $!: Eunice requires " " instead of "", can you believe it | |
415 | $ echo "" | |
416 | $!: Here we go... | |
417 | $ echo "Beginning of configuration questions for ''package'." | |
418 | $ echo "" | |
419 | $! | |
420 | $!: Some greps do not return status, grrr. | |
421 | $ contains = "SEARCH" | |
422 | $! | |
423 | $!: first determine how to suppress newline on echo command !cant DCL is record oriented | |
424 | $! echo "Checking ''echo' to see how to suppress newlines..." | |
425 | $! echo "giving up..." | |
426 | $! echo "The star should be here-->*" | |
427 | $! | |
428 | $!: Now test for existence of everything in MANIFEST | |
429 | $ echo "" | |
430 | $ echo4 "First let's make sure your kit is complete. Checking..." | |
431 | $ manifestfound = "" | |
432 | $ miss_list = "" | |
a5fddd44 | 433 | $! Here I assume we are in the [foo.PERLxxx...] tree |
97abc6ad HM |
434 | $! because the search routine simply does set def [-] if necessary. |
435 | $ file_2_find = "MANIFEST" !I hope this one is not in [foo.PERL5xxx.VMS...] | |
436 | $Research_manifest: | |
437 | $ manifestfound = F$SEARCH(file_2_find) | |
438 | $ IF (manifestfound .EQS. "") | |
439 | $ THEN | |
440 | $ IF F$PARSE(F$ENVIRONMENT("DEFAULT"),,,"DIRECTORY",).NES."[000000]" | |
441 | $ THEN | |
442 | $ SET DEFAULT [-] | |
443 | $ GOTO Research_manifest | |
444 | $ ELSE | |
445 | $ echo "" | |
446 | $ echo "There is no MANIFEST file. I hope your kit is complete !" | |
447 | $ miss_list = "" | |
448 | $ GOTO Beyond_manifest | |
449 | $ ENDIF | |
450 | $ ELSE | |
dab31494 PP |
451 | $! MANIFEST. has been found and we have set def'ed there. |
452 | $! Time to bail out before it's too late, i.e. too deep. | |
453 | $! Depth check is unnecessary on Alpha VMS V7.2++ (even for ODS-2). | |
454 | $ tmp = f$extract(1,3,f$edit(f$getsyi("VERSION"),"TRIM,COLLAPSE")) | |
455 | $ IF (tmp .GES. "7.2") .AND. (F$GETSYI("HW_MODEL") .GE. 1024) THEN GOTO Beyond_depth_check | |
456 | $! Depth check also unnecessary on ODS 5 (or later) file systems. | |
457 | $ tmp = F$INTEGER(F$GETDVI(F$ENVIRONMENT("DEFAULT"),"ACPTYPE") - "F11V") | |
458 | $ IF (tmp .GE. 5) THEN GOTO Beyond_depth_check | |
459 | $ IF (F$ELEMENT(max_allowed_dir_depth,".",F$ENVIRONMENT("DEFAULT")).nes.".") | |
97abc6ad HM |
460 | $ THEN |
461 | $ TYPE SYS$INPUT: | |
7558ebc2 | 462 | $ DECK |
97abc6ad HM |
463 | %Config-E-VMS, ERROR: |
464 | Sorry! It apears as though your perl build sub-directory is already too | |
465 | deep into the VMS file system. Please try moving stuff into a shallower | |
466 | directory (or altering the "max_allowed_dir_depth" parameter). | |
7558ebc2 | 467 | $ EOD |
97abc6ad HM |
468 | $ echo4 "ABORTING..." |
469 | $ SET DEFAULT 'vms_default_directory_name' !be kind rewind | |
470 | $ STOP | |
471 | $ EXIT !2 !$STATUS = "%X00000002" (error) | |
472 | $ ENDIF | |
e6df7ed1 | 473 | $Beyond_depth_check: |
97abc6ad HM |
474 | $! |
475 | $! after finding MANIFEST let's create (but not yet enter) the UU subdirectory | |
476 | $! | |
477 | $ IF (manifestfound .NES. "") | |
478 | $ THEN | |
479 | $ IF ( F$SEARCH("UU.DIR").EQS."" ) | |
480 | $ THEN | |
481 | $ CREATE/DIRECTORY [.UU] | |
482 | $ ELSE | |
1171624b CB |
483 | $ IF ( F$SEARCH("[.UU.CXX_REPOSITORY]*.*").NES."" ) |
484 | $ THEN | |
485 | $ DELETE/NOLOG/NOCONFIRM [.UU.CXX_REPOSITORY]*.*;* | |
486 | $ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) [.UU]CXX_REPOSITORY.DIR | |
487 | $ ENDIF | |
fcc434ad | 488 | $ IF ( F$SEARCH("[.UU]*.*").NES."" ) THEN DELETE/NOLOG/NOCONFIRM [.UU]*.*;* |
97abc6ad HM |
489 | $ ENDIF |
490 | $!: Configure runs within the UU subdirectory | |
491 | $ SET DEFAULT [.UU] | |
492 | $! | |
493 | $! a little redundancy never hurt anybody? | |
494 | $ file_2_find = "[-]" + file_2_find | |
495 | $ manifestfound = F$SEARCH(file_2_find) | |
496 | $! | |
497 | $ OPEN/WRITE MISSING MISSING. | |
498 | $!change to "FALSE" if you wish to skip the manifest search | |
499 | $!(which after all is rather slow in DCL :-) | |
c886fb20 | 500 | $ IF (maniskip) |
97abc6ad | 501 | $ THEN |
c886fb20 CB |
502 | $ echo "Skipping MANIFEST check as requested" |
503 | $ ELSE | |
504 | $! | |
97abc6ad HM |
505 | $ OPEN/READ CONFIG 'manifestfound' |
506 | $Read_loop_manifest: | |
507 | $ READ/END_OF_FILE = Done_manifest CONFIG line | |
508 | $! This algorithm turns "foo/bar/baz.c" into "[.foo.bar]baz.c" | |
509 | $! pvhp@lns62.lns.cornell.edu 10-JUN-1996 20:31:46 | |
510 | $! 2-MAR-1998 15:46:11 Improved to turn "foo/bar/baz.c.buz" | |
511 | $! into "[.foo.bar]baz.c_buz as happens with vmstar and unzip | |
512 | $ line = F$EDIT(line,"TRIM, COMPRESS") | |
513 | $ file_2_find = F$EXTRACT(0,F$LOCATE(" ",line),line) | |
514 | $ IF F$LOCATE("/",file_2_find) .NE. F$LENGTH(file_2_find) | |
515 | $ THEN | |
516 | $Re_strip_line_manifest: | |
517 | $ loca = F$LOCATE("/",file_2_find) | |
518 | $ ante = F$EXTRACT(0,loca,file_2_find) | |
519 | $ post = F$EXTRACT(loca,F$LENGTH(file_2_find),file_2_find) | |
520 | $ test_this = ante + "." + (post - "/") | |
521 | $ IF F$LOCATE("/",test_this) .NE. F$LENGTH(test_this) | |
522 | $ THEN | |
523 | $ file_2_find = ante + "." + (post - "/") | |
524 | $ GOTO Re_strip_line_manifest | |
525 | $ ELSE | |
526 | $ file_2_find = ante + "]" + (post - "/") | |
527 | $ ENDIF | |
528 | $ file_2_find = "[-."+file_2_find | |
529 | $ ELSE | |
530 | $ file_2_find = "[-]" + file_2_find | |
531 | $ ENDIF | |
532 | $! | |
adb2331d CB |
533 | $ tmp = F$PARSE(file_2_find + ";",,,,"SYNTAX_ONLY") |
534 | $ IF F$SEARCH(tmp) .NES. "" THEN file_2_find = tmp | |
97abc6ad HM |
535 | $ dirname = F$EXTRACT(0,F$LOCATE("]",file_2_find),file_2_find) + "]" |
536 | $ file_2_find = file_2_find - dirname | |
17d0565f CB |
537 | $! |
538 | $! may not need double dot check on ODS-5 volumes | |
539 | $ found = F$SEARCH(dirname + file_2_find) | |
540 | $ IF found .NES. "" THEN GOTO Read_loop_manifest | |
541 | $! | |
97abc6ad HM |
542 | $ dots = 0 |
543 | $Dot_loop: | |
544 | $ dot_ele = F$ELEMENT(dots,".",file_2_find) | |
545 | $ IF dot_ele .EQS. "." THEN GOTO Eo_dot_loop | |
546 | $ IF dots .eq. 0 | |
547 | $ THEN basename = f$extract(0,f$locate(".",file_2_find),file_2_find) + "." | |
548 | $ ELSE basename = basename + dot_ele + "_" | |
549 | $ ENDIF | |
550 | $ dots = dots + 1 | |
551 | $ GOTO dot_loop | |
552 | $Eo_dot_loop: | |
553 | $ IF (((f$length(file_2_find)+1) .eq. f$length(basename)) .and. - | |
554 | (f$extract(f$length(basename)-1,1,basename) .eqs. "_")) THEN - | |
555 | basename = f$extract(0,f$length(basename)-1,basename) | |
556 | $ file_2_find = dirname + basename | |
557 | $! | |
558 | $ found = F$SEARCH(file_2_find) | |
146174a9 CB |
559 | $ IF (found .EQS. "" .AND. dots .GT. 2) |
560 | $ THEN | |
561 | $! 17-DEC-1999 Improved to turn "[.foo.bar]baz.c_buz" into | |
562 | $! "[.foo.bar]baz_c.buz" to cover unzipped archives and put | |
563 | $! "[.foo.bar]baz.c_buz,baz_c.buz" into missing list if neither is found. | |
53071e5e CB |
564 | $ dotloc = f$locate(".",basename) |
565 | $ basename[dotloc,1] := "_" | |
566 | $ dot_ele = F$ELEMENT(dots - 1,"_",f$extract(dotloc,f$length(basename),basename)) | |
146174a9 CB |
567 | $ basename = - |
568 | f$extract(0,f$length(basename)-(f$length(dot_ele)+1),basename) - | |
569 | + "." + dot_ele | |
570 | $ found = F$SEARCH(dirname + basename) | |
571 | $ file_2_find = file_2_find + "," + basename | |
572 | $ ENDIF | |
1bae32db CB |
573 | $ tildeloc = f$locate("~",basename) |
574 | $ IF (found .EQS. "" .AND. tildeloc .LT. f$length(basename)) | |
575 | $ THEN | |
576 | $ basename[tildeloc,1] := "_" | |
577 | $ found = F$SEARCH(dirname + basename) | |
578 | $ file_2_find = file_2_find + "," + basename | |
579 | $ ENDIF | |
97abc6ad HM |
580 | $ IF (found .EQS. "") |
581 | $ THEN | |
582 | $ WRITE MISSING file_2_find | |
583 | $ IF ((F$LENGTH(miss_list)+F$LENGTH(file_2_find)).LT.250) | |
584 | $ THEN | |
585 | $ miss_list = miss_list + "," + file_2_find | |
586 | $ ENDIF | |
587 | $ ENDIF | |
588 | $ GOTO Read_loop_manifest | |
589 | $Done_manifest: | |
590 | $ CLOSE CONFIG | |
591 | $ ENDIF !"TRUE" | |
592 | $ CLOSE MISSING | |
593 | $ ENDIF ! (manifestfound .NES. "") | |
594 | $Beyond_manifest: | |
595 | $ IF (miss_list .NES. "") | |
596 | $ THEN | |
597 | $ echo "Some of the files not found include:" | |
598 | $ cat4 MISSING. | |
599 | $ ENDIF | |
600 | $ IF ((miss_list .NES. "").OR.(manifestfound .EQS. "")) | |
601 | $ THEN | |
602 | $ TYPE SYS$INPUT: | |
7558ebc2 PP |
603 | $ DECK |
604 | ||
97abc6ad HM |
605 | |
606 | THIS PACKAGE SEEMS TO BE INCOMPLETE. | |
607 | ||
608 | You have the option of continuing the configuration process, despite the | |
609 | distinct possibility that your kit is damaged, by typing 'y'es. If you | |
610 | do, don't blame me if something goes wrong. I advise you to type 'n'o | |
498336ed | 611 | and contact the author (dan@sidhe.org) |
97abc6ad | 612 | |
7558ebc2 | 613 | $ EOD |
97abc6ad HM |
614 | $ READ SYS$COMMAND/PROMPT="Continue? [n] " ans |
615 | $ IF ans | |
616 | $ THEN | |
617 | $ echo4 "Continuing..." | |
618 | $ ELSE | |
619 | $ echo4 "ABORTING..." | |
620 | $ GOTO Clean_up | |
621 | $ ENDIF | |
622 | $ ELSE | |
623 | $ echo4 "Looks good..." | |
fcc434ad | 624 | $ DELETE/NOLOG/NOCONFIRM MISSING.; |
97abc6ad HM |
625 | $ ENDIF ! (miss_list .NES. "") |
626 | $ ENDIF ! (manifestfound .EQS. "") ELSE | |
627 | $! | |
628 | $! after finding MANIFEST (see above) | |
629 | $!: Configure runs within the UU subdirectory | |
630 | $! | |
631 | $!: compute the number of columns on the terminal for proper question formatting | |
a3bd614a PP |
632 | $ IF F$MODE() .EQS. "BATCH" |
633 | $! else it winds up being 512 in batch | |
634 | $ THEN COLUMNS = 80 | |
635 | $ ELSE COLUMNS = F$GETDVI("SYS$OUTPUT","DEVBUFSIZ") | |
636 | $ ENDIF | |
637 | $! "-des" sets SYS$OUTPUT to NL: with a DEVBUFSIZ too large (512 again) | |
638 | $ IF COLUMNS .GT. 210 THEN COLUMNS = 80 | |
639 | $! not sure if this would actually be needed - it hopefully will not hurt | |
640 | $ IF COLUMNS .LT. 40 THEN COLUMNS = 40 | |
97abc6ad HM |
641 | $! |
642 | $!: set up the echo used in my read !sfn | |
643 | $!: now set up to do reads with possible shell escape and default assignment !sfn | |
644 | $ GOTO Beyond_myread | |
645 | $! | |
a3bd614a PP |
646 | $! The sub_rp splitting is intended to handle long symbols such as the dflt for |
647 | $! extensions. | |
648 | $! | |
97abc6ad HM |
649 | $myread: |
650 | $ ans = "" | |
a3bd614a | 651 | $ len_rp = F$LENGTH(rp) |
a5fddd44 | 652 | $ If (.NOT. silent) Then echo "" |
a3bd614a PP |
653 | $ IF len_rp .GT. 210 |
654 | $ THEN | |
655 | $ i_rp = 0 | |
9b5c8979 | 656 | $ rp_loop: |
a3bd614a | 657 | $ sub_rp = F$EXTRACT(i_rp,COLUMNS,rp) |
a3bd614a | 658 | $ i_rp = i_rp + COLUMNS |
bf25f2b5 | 659 | $ if i_rp .LT. len_rp THEN echo4 "''sub_rp'" |
9b5c8979 | 660 | $ IF i_rp .LT. len_rp THEN GOTO rp_loop |
a3bd614a | 661 | $ ELSE |
9b5c8979 | 662 | $ sub_rp = rp |
a3bd614a | 663 | $ ENDIF |
9b5c8979 JH |
664 | $ if (fastread) |
665 | $ then | |
666 | $ echo4 "''sub_rp'" | |
667 | $ else | |
668 | $ READ SYS$COMMAND/PROMPT="''sub_rp'" ans | |
669 | $ endif | |
a5fddd44 PP |
670 | $ IF (ans .EQS. "&-d") |
671 | $ THEN | |
672 | $ echo4 "(OK, I will run with -d after this question.)" | |
9b5c8979 JH |
673 | $ echo "" |
674 | $ deferred_fastread =1 | |
675 | $ goto myread | |
a5fddd44 PP |
676 | $ ENDIF |
677 | $ IF (ans .EQS. "&-s") | |
678 | $ THEN | |
679 | $ echo4 "(OK, I will run with -s after this question.)" | |
97abc6ad | 680 | $ echo "" |
9b5c8979 JH |
681 | $ deferred_silent = 1 |
682 | $ goto myread | |
a3bd614a | 683 | $ ENDIF |
9b5c8979 JH |
684 | $ if (bool_dflt .nes. "") |
685 | $ then | |
686 | $ if (ans .eqs. "") then ans = bool_dflt | |
687 | $ ans = f$extract(0,1,f$edit(ans,"collapse,upcase")) | |
688 | $ if (ans .eqs. "Y" .or. ans .eqs. "1" .or. ans .eqs. "T") | |
689 | $ then | |
690 | $ ans = "Y" | |
691 | $ else | |
692 | $ if (ans .eqs. "N" .or. ans .eqs. "0" .or. ans .eqs. "F") | |
693 | $ then | |
694 | $ ans = "N" | |
695 | $ else | |
696 | $ echo4 "Input not understood please answer 'Yes' or 'No'" | |
697 | $ goto myread | |
698 | $ endif | |
699 | $ endif | |
700 | $ bool_dflt = "" | |
701 | $ else | |
702 | $ ans = f$edit(ans,"trim,compress") | |
703 | $ if (ans .eqs. "") then ans = dflt | |
704 | $ if (f$edit(ans,"upcase") .eqs. "NONE") then ans = "" | |
705 | $ endif | |
706 | $ if f$type(deferred_silent) .nes. "" | |
707 | $ then | |
a5fddd44 PP |
708 | $ silent := true |
709 | $ GOSUB Shut_up | |
9b5c8979 | 710 | $ delete/symbol deferred_silent |
a5fddd44 | 711 | $ ENDIF |
9b5c8979 JH |
712 | $ if f$type(deferred_fastread) .nes. "" |
713 | $ then | |
714 | $ fastread = 1 | |
715 | $ delete/symbol deferred_fastread | |
716 | $ endif | |
97abc6ad HM |
717 | $ RETURN |
718 | $! | |
719 | $Beyond_myread: | |
720 | $! | |
721 | $!: create .config dir to save info across Configure sessions | |
722 | $ IF ( F$SEARCH("[-]CONFIG.DIR").EQS."" ) | |
723 | $ THEN | |
724 | $ CREATE/DIRECTORY [-.CONFIG] | |
725 | $ OPEN/WRITE CONFIG [-.CONFIG]README. | |
726 | $ WRITE CONFIG - | |
727 | "This directory created by Configure to save information that should" | |
728 | $ WRITE CONFIG - | |
729 | "persist across sessions." | |
730 | $ WRITE CONFIG "" | |
731 | $ WRITE CONFIG - | |
732 | "You may safely delete it if you wish." | |
733 | $ CLOSE CONFIG | |
734 | $ ENDIF | |
735 | $! | |
56aeb0ae PP |
736 | $ IF F$TYPE(usedevel) .EQS. "" THEN usedevel := n |
737 | $ patchlevel_h = F$SEARCH("[-]patchlevel.h") | |
738 | $ IF (patchlevel_h.NES."") | |
739 | $ THEN | |
7558ebc2 | 740 | $ SEARCH 'patchlevel_h' "define","PERL_VERSION","epoch"/match=and/out=[]ver.out |
59a27e12 | 741 | $ IF .NOT. usedevel .AND. usedevel .NES. "define" |
56aeb0ae PP |
742 | $ THEN |
743 | $ OPEN/READ CONFIG []ver.out | |
744 | $ READ CONFIG line | |
745 | $ CLOSE CONFIG | |
746 | $ tmp = F$EDIT(line,"TRIM,COMPRESS") | |
747 | $ xpatchlevel = F$INTEGER(F$ELEMENT(2," ",tmp)) | |
748 | $ line = xpatchlevel / 2 | |
749 | $ tmp = xpatchlevel - ( line * 2 ) | |
750 | $ IF tmp .NE. 0 | |
751 | $ THEN | |
752 | $ echo4 "patchlevel is " + F$STRING(xpatchlevel) | |
753 | $ cat4 SYS$INPUT: | |
7558ebc2 | 754 | $ DECK |
56aeb0ae PP |
755 | *** WHOA THERE!!! *** |
756 | ||
757 | This is an UNSTABLE DEVELOPMENT release. | |
758 | (The patchlevel, is odd--as opposed to even, | |
759 | and that signifies a development release. If you want a | |
760 | maintenance release, you want an even-numbered release.) | |
761 | ||
762 | Do ***NOT*** install this into production use. | |
763 | Data corruption and crashes are possible. | |
764 | ||
765 | It is most seriously suggested that you do not continue any further | |
766 | unless you want to help in developing and debugging Perl. | |
767 | ||
7558ebc2 | 768 | $ EOD |
9b5c8979 JH |
769 | $ bool_dflt="n" |
770 | $ rp="Do you really want to continue? [''bool_dflt'] " | |
c66e9063 CL |
771 | $ fastread_save = fastread |
772 | $ fastread := FALSE | |
56aeb0ae | 773 | $ GOSUB myread |
c66e9063 CL |
774 | $ fastread = fastread_save |
775 | $ delete/symbol fastread_save | |
56aeb0ae PP |
776 | $ IF ans |
777 | $ THEN | |
778 | $ echo4 "Okay, continuing." | |
779 | $ ELSE | |
780 | $ echo4 "Okay, bye." | |
781 | $ DELETE/NOLOG/NOCONFIRM []ver.out; | |
782 | $ GOTO Clean_up | |
56aeb0ae PP |
783 | $ ENDIF |
784 | $ ENDIF | |
785 | $ DELETE/SYMBOL line | |
786 | $ DELETE/SYMBOL tmp | |
787 | $ ENDIF | |
788 | $ DELETE/NOLOG/NOCONFIRM []ver.out; | |
789 | $ ENDIF | |
97abc6ad HM |
790 | $!: general instructions |
791 | $ needman = "true" | |
792 | $ firsttime = "true" | |
793 | $ user = F$EDIT(F$GETJPI("","USERNAME"),"TRIM,COLLAPSE") | |
794 | $ IF .NOT.(F$SEARCH("[-.CONFIG]INSTRUCT.").EQS."") | |
795 | $ THEN | |
796 | $ messages = F$ENVIRONMENT("MESSAGE") | |
a3ef2c6f | 797 | $ SET MESSAGE/NOFAC/NOSEV/NOIDENT/NOTEXT |
97abc6ad HM |
798 | $ contains /NOOUTPUT [-.CONFIG]INSTRUCT. 'user' |
799 | $ IF .NOT.($status.EQ.%X08D78053) | |
800 | $ THEN | |
801 | $ firsttime="" | |
9b5c8979 JH |
802 | $ bool_dflt = "n" |
803 | $ rp = "Would you like to see the instructions? [''bool_dflt'] " | |
97abc6ad HM |
804 | $ GOSUB myread |
805 | $ if .NOT.ans THEN needman="" | |
806 | $ ENDIF | |
a3ef2c6f | 807 | $ SET MESSAGE 'messages' |
97abc6ad HM |
808 | $ ENDIF |
809 | $ if (fastread.AND.silent.AND.(alldone.eqs."cont")) THEN needman="" | |
810 | $! | |
811 | $ IF (needman) | |
812 | $ THEN | |
813 | $ TYPE SYS$INPUT: | |
7558ebc2 | 814 | $ DECK |
97abc6ad HM |
815 | |
816 | This installation shell script will examine your system and ask you questions | |
817 | to determine how the perl5 package should be installed. If you get | |
818 | stuck on a question, you may use a ^C or ^Y shell escape to STOP this | |
819 | process, edit something, then restart this process as you just did. | |
820 | Many of the questions will have default answers in square | |
821 | brackets; typing carriage return will give you the default. | |
822 | ||
7558ebc2 | 823 | $ EOD |
96021e87 JM |
824 | $ if (fastread) |
825 | $ then | |
826 | $ echo4 "" | |
827 | $ else | |
828 | $ READ SYS$COMMAND/PROMPT="Type carriage return to continue " ans | |
829 | $ endif | |
97abc6ad | 830 | $ TYPE SYS$INPUT: |
7558ebc2 | 831 | $ DECK |
97abc6ad | 832 | |
a3ef2c6f | 833 | In a hurry? You may run '@Configure "-d"'. This will bypass nearly all |
97abc6ad | 834 | the questions and use the computed defaults (or the previous answers provided |
a3ef2c6f | 835 | there was already a config.sh file). Type '@Configure "-h"' for a list of |
97abc6ad HM |
836 | options. |
837 | ||
7558ebc2 | 838 | $ EOD |
96021e87 JM |
839 | $ if (fastread) |
840 | $ then | |
841 | $ echo4 "" | |
842 | $ else | |
843 | $ READ SYS$COMMAND/PROMPT="Type carriage return to continue " ans | |
844 | $ endif | |
97abc6ad | 845 | $ TYPE SYS$INPUT: |
7558ebc2 | 846 | $ DECK |
97abc6ad HM |
847 | |
848 | Much effort has been expended to ensure that this shell script will | |
849 | run on any VMS system. If despite that it blows up on yours, your | |
850 | best bet is to edit Configure.com and @ it again. Whatever problems | |
498336ed | 851 | you have with Configure.com, let me (dan@sidhe.org) know how I blew |
97abc6ad HM |
852 | it. |
853 | ||
7558ebc2 | 854 | $ EOD |
97abc6ad HM |
855 | $!This installation script affects things in two ways: |
856 | $! | |
857 | $!1) it may do direct variable substitutions on some of the files included | |
858 | $! in this kit. | |
859 | $!2) it builds a config.h file for inclusion in C programs. You may edit | |
860 | $! any of these files as the need arises after running this script. | |
861 | $! | |
862 | $!If you make a mistake on a question, there is no easy way to back up to it | |
863 | $!currently. | |
864 | $! | |
96021e87 JM |
865 | $ if (fastread) |
866 | $ then | |
867 | $ echo4 "" | |
868 | $ else | |
869 | $ READ SYS$COMMAND/PROMPT="Type carriage return to continue " ans | |
870 | $ endif | |
97abc6ad HM |
871 | $ IF (F$SEARCH("[-.CONFIG]INSTRUCT.").EQS."") |
872 | $ THEN | |
873 | $ OPEN/WRITE CONFIG [-.CONFIG]INSTRUCT. | |
874 | $ WRITE CONFIG user | |
875 | $ CLOSE CONFIG | |
876 | $ ENDIF | |
877 | $ ENDIF !(needman .EQS. "true") | |
878 | $! | |
879 | $!: see if sh knows # comments !sfn | |
97abc6ad HM |
880 | $!: figure out how to guarantee sh startup !sfn |
881 | $!: find out where common programs are !sfn | |
882 | $!loclist="awk/cat/comm/cp/echo/expr/find/grep/ln/ls/mkdir/rm/sed/sort/touch/tr/uniq" | |
5869b1f1 | 883 | $!trylist="byacc/cpp/csh/date/egrep/less/line/more/nroff/perl/pg/sendmail/test/uname" |
97abc6ad HM |
884 | $! echo "I don't know where '$file' is, and my life depends on it." |
885 | $! echo "Go find a public domain implementation or fix your PATH setting!" | |
886 | $! echo "" | |
887 | $! echo "Don't worry if any of the following aren't found..." | |
96021e87 | 888 | $!: determine whether symbolic links are supported !sfn !jem- further down |
97abc6ad HM |
889 | $!: see whether [:lower:] and [:upper:] are supported character classes !sfn |
890 | $!: set up the translation script tr, must be called with ./tr of course !sfn | |
891 | $! | |
892 | $!: Try to determine whether config.sh was made on this system | |
893 | $!: Get old answers from old config file if Configure was run on the | |
894 | $!: same system, otherwise use the hints. | |
bf12dbb5 | 895 | $ config_sh_es = "''config_sh'/[-]config.sh/" |
97abc6ad HM |
896 | $ i = 0 |
897 | $ max = 3 | |
898 | $Config_sh_look: | |
899 | $ config_sh = F$ELEMENT(i,"/",config_sh_es) | |
900 | $ i = i + 1 | |
901 | $ IF (config_sh.NES."/").AND.(config_sh.NES."") | |
902 | $ THEN | |
903 | $ configshfound = F$SEARCH(config_sh) | |
904 | $ IF (configshfound.NES."") THEN GOTO Config_sh_found | |
905 | $ ENDIF | |
906 | $ IF (i.LT.max) THEN GOTO Config_sh_look | |
56aeb0ae | 907 | $ osname = F$EDIT(F$GETSYI("NODE_SWTYPE"),"COLLAPSE") |
570bb66e JH |
908 | $ IF (configshfound.EQS."") |
909 | $ THEN | |
910 | $ config_sh = "[-]config.sh" ! the fallback default | |
911 | $ GOTO Beyond_config_sh | |
912 | $ ENDIF | |
97abc6ad | 913 | $Config_sh_found: |
56aeb0ae | 914 | $ IF F$TYPE(osname) .EQS. "" THEN osname = F$EDIT(F$GETSYI("NODE_SWTYPE"),"COLLAPSE") |
9b5c8979 JH |
915 | $ bool_dflt = "n" |
916 | $ IF F$TYPE(config_dflt) .NES. "" THEN bool_dflt = config_dflt | |
917 | $ rp = "Shall I use ''config_sh' for default answers? [''bool_dflt'] " | |
570bb66e JH |
918 | $ GOSUB myread |
919 | $ IF ans | |
920 | $ THEN | |
921 | $ echo "" | |
922 | $ echo "Fetching default answers from ''config_sh'..." | |
923 | $! | |
9b5c8979 JH |
924 | $! we do our own parsing of the shell-script stuff |
925 | $! ...and only accept symbols if they're in the | delimited list below | |
926 | $! | |
927 | $ config_symbols0 ="|archlib|archlibexp|bin|binexp|builddir|cf_email|config_sh|installarchlib|installbin|installman1dir|installman3dir|" | |
928 | $ config_symbols1 ="|installprivlib|installscript|installsitearch|installsitelib|most|oldarchlib|oldarchlibexp|osname|pager|perl_symbol|perl_verb|" | |
85fac3a9 | 929 | $ config_symbols2 ="|prefix|privlib|privlibexp|scriptdir|sitearch|sitearchexp|sitebin|sitelib|sitelib_stem|sitelibexp|usecxx|use64bitall|use64bitint|" |
50ddda1d | 930 | $ config_symbols3 ="|usecasesensitive|usedefaulttypes|usedevel|useieee|useithreads|uselongdouble|usemultiplicity|usemymalloc|usedebugging_perl|" |
712b953a | 931 | $ config_symbols4 ="|usesecurelog|usethreads|usevmsdebug|usefaststdio|usemallocwrap|unlink_all_versions|uselargefiles|usesitecustomize|" |
1171624b | 932 | $ config_symbols5 ="|buildmake|builder|usethreadupcalls|usekernelthreads|useshortenedsymbols" |
9b5c8979 JH |
933 | $! |
934 | $ open/read CONFIG 'config_sh' | |
935 | $ rd_conf_loop: | |
936 | $ read/end=erd_conf_loop CONFIG line | |
937 | $ line = f$edit(line,"trim") | |
938 | $ if line .eqs. "" .or. f$extract(0,1,line) .eqs. "#" then goto rd_conf_loop | |
939 | $ sym = f$element(0,"=",line) | |
940 | $ if sym .eqs. "=" then goto rd_conf_loop | |
941 | $ dsym = "|"+sym+"|" | |
942 | $ k = 0 | |
943 | $ rd_ck_loop: | |
944 | $ syms = config_symbols'k' | |
945 | $ j = f$locate(dsym, syms) | |
946 | $ if j .lt. f$length(syms) then goto erd_ck_loop | |
947 | $ k = k + 1 | |
96021e87 | 948 | $ if k .lt. 6 then goto rd_ck_loop |
9b5c8979 JH |
949 | $ goto rd_conf_loop |
950 | $ erd_ck_loop: | |
951 | $ val = f$element(1,"=",line) | |
952 | $ val = f$extract(1,f$length(val)-2,val) | |
953 | $ write sys$output "''sym' = ""''val'""" | |
954 | $ 'sym' = "''val'" | |
955 | $ goto rd_conf_loop | |
956 | $ erd_conf_loop: | |
957 | $ close CONFIG | |
958 | $ delete/symbol config_symbols0 | |
959 | $ delete/symbol config_symbols1 | |
960 | $ delete/symbol config_symbols2 | |
961 | $ delete/symbol config_symbols3 | |
962 | $ delete/symbol config_symbols4 | |
96021e87 | 963 | $ delete/symbol config_symbols5 |
9b5c8979 JH |
964 | $ delete/symbol sym |
965 | $ delete/symbol val | |
966 | $ delete/symbol dsym | |
967 | $ if f$type(usedebugging_perl) .nes. "" | |
968 | $ then | |
6a0e5042 | 969 | $ DEBUGGING = usedebugging_perl |
9b5c8979 JH |
970 | $ delete/symbol usedebugging_perl |
971 | $ endif | |
570bb66e JH |
972 | $! |
973 | $ ENDIF | |
9b5c8979 | 974 | $ if f$type(config_dflt) .nes. "" then DELETE/SYMBOL config_dflt |
570bb66e | 975 | $! |
97abc6ad HM |
976 | $!we actually do not have "hints/" for VMS |
977 | $! TYPE SYS$INPUT: | |
7558ebc2 | 978 | $! DECK |
97abc6ad HM |
979 | $! |
980 | $!First time through, eh? I have some defaults handy for the following systems: | |
981 | $! | |
7558ebc2 | 982 | $! EOD |
97abc6ad HM |
983 | $! echo " ","VMS_VAX" |
984 | $! echo " ","VMS_AXP" | |
a50752f9 | 985 | $! echo " ","VMS_IA64" |
97abc6ad HM |
986 | $! : Now look for a hint file osname_osvers, unless one has been |
987 | $! : specified already. | |
988 | $! TYPE SYS$INPUT: | |
989 | $! | |
990 | $!You may give one or more space-separated answers, or "none" if appropriate. | |
991 | $!If your OS version has no hints, DO NOT give a wrong version -- say "none". | |
992 | $! | |
993 | $! READ SYS$COMMAND/PROMPT="Which of these apply, if any? " ans | |
994 | $! | |
995 | $Beyond_config_sh: | |
996 | $! | |
997 | $!: Restore computed paths !sfn | |
998 | $! | |
97abc6ad HM |
999 | $! %Config-I-VMS, a necessary error trap (could be PC running VCL) |
1000 | $! | |
1001 | $ IF (osname .NES. "VMS") | |
1002 | $ THEN | |
1003 | $ echo4 "Hmm.. I wonder what ''osname' is (?)" | |
1004 | $ TYPE SYS$INPUT: | |
7558ebc2 | 1005 | $ DECK |
97abc6ad HM |
1006 | |
1007 | %Config-E-VMS, ERROR: | |
1008 | ||
1009 | Err, you do not appear to be running VMS! | |
146174a9 | 1010 | This procedure is intended to Configure the building of Perl for VMS. |
97abc6ad | 1011 | |
7558ebc2 | 1012 | $ EOD |
9b5c8979 JH |
1013 | $ bool_dflt = "n" |
1014 | $ GOSUB myread | |
97abc6ad HM |
1015 | $ IF ans |
1016 | $ THEN | |
1017 | $ echo4 "Continuing..." | |
1018 | $ ELSE | |
1019 | $ echo4 "ABORTING..." | |
1020 | $ SET DEFAULT 'vms_default_directory_name' !be kind rewind | |
1021 | $ STOP | |
1022 | $ EXIT 2 !$STATUS = "%X00000002" (error) | |
1023 | $ ENDIF | |
97abc6ad HM |
1024 | $ ENDIF !(osname .NES./.EQS. "VMS") |
1025 | $! | |
1026 | $!: who configured the system | |
97abc6ad | 1027 | $ cf_by = F$EDIT(user,"LOWERCASE") |
08c7cbbb | 1028 | $ osvers = F$EDIT(F$GETSYI("VERSION"),"TRIM") |
97abc6ad HM |
1029 | $! |
1030 | $! Peter Prymmer has seen: | |
1031 | $! "SYS$TIMEZONE_DIFFERENTIAL" = "-46800" (sic) | |
1032 | $! "SYS$TIME_ZONE" = "EDT" | |
1033 | $! | |
1034 | $! Charles Lane recommended: | |
1035 | $! "SYS$TIMEZONE_DIFFERENTIAL" = "-14400" | |
1036 | $! "NEWS_TIMEZONE" = "-0500" | |
1037 | $! "ST_TIMEZONE" = "EDT" | |
1038 | $! "JAN_TIME_ZONE" = "EST " | |
1039 | $! "MULTINET_TIMEZONE" = "EST" | |
1040 | $! "DAYLIGHT_SAVINGS" = "1" | |
1041 | $! | |
1042 | $! Charles Bailey recommends (in ANU NEWS Doc Jan 1995): | |
1043 | $! "PMDF_Timezone" | |
1044 | $! "Multinet_Timezone" | |
1045 | $! "TCPware_Timezone" | |
1046 | $! "WIN$Time_Zone" | |
1047 | $! | |
1048 | $! This snippet o' DCL returns a string in default Unix `date` format, | |
1049 | $! and it will prompt to set SYS$TIMEZONE_DIFFERENTIAL. | |
97abc6ad HM |
1050 | $! |
1051 | $ MIN_TZO = -840 !units are minutes here | |
1052 | $ MAX_TZO = 840 | |
1053 | $! | |
1054 | $ wkday = F$EXTRACT(0,3,F$CVTIME(,,"WEEKDAY")) | |
1055 | $ monn = F$CVTIME(,,"MONTH") | |
1056 | $ mday = F$EXTRACT(8,2,F$CVTIME(,,"DATE")) | |
1057 | $ hour = F$CVTIME(,,"HOUR") | |
1058 | $ min = F$CVTIME(,,"MINUTE") | |
1059 | $ sec = F$CVTIME(,,"SECOND") | |
1060 | $ year = F$CVTIME(,,"YEAR") | |
1061 | $! | |
1062 | $ months = "/Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec/" | |
1063 | $ i = 0 | |
1064 | $Mon_loop: | |
1065 | $ i = i + 1 | |
1066 | $ mon = F$ELEMENT(i,"/",months) | |
1067 | $ IF i.LT.monn THEN GOTO Mon_loop | |
1068 | $! | |
1069 | $ tzneedset = "t" | |
1070 | $ systz = F$TRNLNM("SYS$TIMEZONE_DIFFERENTIAL") | |
1071 | $ IF systz.NES."" | |
1072 | $ THEN | |
1073 | $ tzhour = F$INTEGER(systz)/3600 | |
1074 | $ tzmins = F$INTEGER(systz)/60 | |
1075 | $ tzminrem = tzmins - tzhour*60 | |
1076 | $ IF tzminrem.lt.0 THEN tzminrem = -1*tzminrem !keeps !2ZL happy | |
1077 | $ IF tzhour.ge.0 | |
1078 | $ THEN signothetime = "+" | |
1079 | $ IF tzhour.EQ.0.AND.tzminrem.EQ.0 | |
1080 | $ THEN direction = "on GMT/" | |
1081 | $ ELSE direction = "east of " | |
1082 | $ ENDIF | |
1083 | $ ELSE signothetime = "-" | |
1084 | $ tzhour = -1*tzhour !keeps !UL happy | |
1085 | $ direction = "west of " | |
1086 | $ ENDIF | |
1087 | $ echo "" | |
97abc6ad HM |
1088 | $ echo "According to the setting of your ""SYS$TIMEZONE_DIFFERENTIAL"" (= ''systz')" |
1089 | $ IF tzminrem.ne.0 | |
1090 | $ THEN | |
1091 | $ tzspan = "''tzhour' hours & ''tzminrem' minutes" | |
1092 | $ ELSE | |
1093 | $ tzspan = "''tzhour' hours" | |
1094 | $ ENDIF | |
9b5c8979 | 1095 | $ bool_dflt = "y" |
97abc6ad | 1096 | $ echo "Your system is ''tzspan' ''direction'UTC in England." |
9b5c8979 | 1097 | $ rp = "(''systz') Is this UTC Time Zone Offset correct? [''bool_dflt'] " |
97abc6ad | 1098 | $ GOSUB myread |
9b5c8979 | 1099 | $ IF ans |
97abc6ad HM |
1100 | $ THEN |
1101 | $ tzneedset = "f" | |
1102 | $ tzd = systz | |
1103 | $ GOTO Beyond_TimeZone | |
1104 | $ ENDIF | |
1105 | $ ELSE | |
1106 | $ echo "" | |
97abc6ad HM |
1107 | $ echo4 """SYS$TIMEZONE_DIFFERENTIAL"" does not appear to be DEFINEd on your system" |
1108 | $ ENDIF | |
1109 | $! | |
1110 | $TZSet: | |
1111 | $ echo "" | |
1112 | $ echo "Please tell me in hh:mm form what time offset from GMT/UTC in England" | |
146174a9 | 1113 | $ echo "you are. As an example Eastern (US) Standard Time is -5:00 offset, but" |
97abc6ad HM |
1114 | $ echo "Eastern Daylight Time (summer) is -4:00 offset." |
1115 | $ dflt = "0:00" | |
1116 | $ rp = "Enter the Time Zone offset: [''dflt'] " | |
1117 | $ GOSUB myread | |
1118 | $ ans = F$Edit(ans,"collapse,trim,uncomment,upcase") | |
1119 | $ IF ans.EQS."" THEN ans = dflt | |
1120 | $ tzhour = F$ELEMENT(0,":","''ans'") !first | |
1121 | $ IF tzhour.EQS."" THEN tzhour = 0 | |
1122 | $ tzhour = F$INTEGER(tzhour) | |
1123 | $ tzminrem = F$ELEMENT(1,":","''ans'") !second | |
1124 | $ IF tzminrem.NES."" | |
1125 | $ THEN | |
1126 | $ tzminrem = F$INTEGER(tzminrem) | |
1127 | $ IF F$EXTRACT(0,1,"''ans'") .EQS. "-" THEN tzminrem = tzminrem * -1 | |
1128 | $ ELSE | |
1129 | $ tzminrem = 0 | |
1130 | $ ENDIF | |
1131 | $ tzmins = tzhour*60 + tzminrem | |
1132 | $ tzd = F$STRING(tzmins*60) | |
1133 | $ IF tzhour .GE. 0 | |
1134 | $ THEN | |
1135 | $ signothetime = "+" | |
1136 | $ ELSE | |
1137 | $ tzhour = -1*tzhour !keeps !UL happy | |
1138 | $ signothetime = "-" | |
1139 | $ ENDIF | |
1140 | $ IF (tzmins.GT.MAX_TZO).OR.(tzmins.LT.MIN_TZO) | |
1141 | $ THEN | |
1142 | $ echo "" | |
1143 | $ echo "%Config-W-VMS-TIMERANGE, Response must be in the range -14:00 to 14:00." | |
1144 | $ goto TZSet | |
1145 | $ ENDIF | |
1146 | $! | |
1147 | $Beyond_TimeZone: | |
1148 | $ tz = f$fao("UTC!AS!UL:!2ZL",signothetime,tzhour,tzminrem) | |
1149 | $ cf_time = "''wkday' ''mon' ''mday' ''hour':''min':''sec' ''tz' ''year'" | |
1150 | $! | |
4581ada3 CB |
1151 | $! This quotation from Configure has to be included on VMS: |
1152 | $! | |
1153 | $ TYPE SYS$INPUT: | |
1154 | $ DECK | |
1155 | ||
1156 | There is, however, a strange, musty smell in the air that reminds me of | |
1157 | something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. | |
1158 | $ EOD | |
1159 | $! | |
1160 | $! Determine the architecture name. For now we just get the base | |
1161 | $! architecture name, which may accumulate various minus sign-delimited | |
1162 | $! appendages later depending on configuration options. But we need the | |
1163 | $! base name early because not all questions are worth asking on all | |
1164 | $! platforms. | |
1165 | $! | |
1166 | $! Please use F$ELEMENT(0,"-",archname) .EQS. "VMS_VAX" (or "VMS_AXP" or | |
1167 | $! "VMS_IA64") from here on to allow cross-platform configuration (e.g. | |
55315086 | 1168 | $! configure a VAX build on an Alpha). |
97abc6ad | 1169 | $! |
a50752f9 | 1170 | $ IF (F$GETSYI("HW_MODEL") .LT. 1024 .AND. F$GETSYI("HW_MODEL") .GT. 0) |
97abc6ad HM |
1171 | $ THEN |
1172 | $ archname = "VMS_VAX" | |
a50752f9 | 1173 | $ otherarch = "an Alpha or IA64" |
08c7cbbb GS |
1174 | $ alignbytes="8" |
1175 | $ arch_type = "ARCH-TYPE=__VAX__" | |
97abc6ad | 1176 | $ ELSE |
a50752f9 CB |
1177 | $ IF (F$GETSYI("ARCH_TYPE") .EQ. 2) |
1178 | $ THEN | |
1179 | $ archname = "VMS_AXP" | |
1180 | $ otherarch = "a VAX or IA64" | |
1181 | $ arch_type = "ARCH-TYPE=__AXP__" | |
1182 | $ ELSE | |
1183 | $ archname = "VMS_IA64" | |
1184 | $ otherarch = "a VAX or Alpha" | |
1185 | $ arch_type = "ARCH-TYPE=__IA64__" | |
1186 | $ ENDIF | |
08c7cbbb | 1187 | $ alignbytes="8" |
97abc6ad | 1188 | $ ENDIF |
86fced14 | 1189 | $! |
97abc6ad | 1190 | $!: set the base revision |
08c7cbbb GS |
1191 | $ baserev="5.0" |
1192 | $ revision = baserev - ".0" | |
97abc6ad HM |
1193 | $!: get the patchlevel |
1194 | $ echo "" | |
570bb66e | 1195 | $ echo4 "Getting the current patchlevel..." |
5cda9808 CB |
1196 | $ patchlevel="0" |
1197 | $ subversion="0" | |
1198 | $ api_revision="0" | |
1199 | $ api_version="0" | |
1200 | $ api_subversion="0" | |
1201 | $ perl_patchlevel="0" | |
97abc6ad HM |
1202 | $ patchlevel_h = F$SEARCH("[-]patchlevel.h") |
1203 | $ IF (patchlevel_h.NES."") | |
1204 | $ THEN | |
1205 | $ got_patch = "false" | |
1206 | $ got_sub = "false" | |
08c7cbbb GS |
1207 | $ got_api_revision = "false" |
1208 | $ got_api_version = "false" | |
1209 | $ got_api_subversion = "false" | |
9ec25520 | 1210 | $ got_perl_patchlevel= "false" |
97abc6ad HM |
1211 | $ OPEN/READONLY CONFIG 'patchlevel_h' |
1212 | $Patchlevel_h_loop: | |
570bb66e | 1213 | $ READ/END_Of_File=Close_patch/ERROR=Close_patch CONFIG line |
cceca5ed | 1214 | $ IF ((F$LOCATE("#define PERL_VERSION",line).NE.F$LENGTH(line)).AND.(.NOT.got_patch)) |
97abc6ad HM |
1215 | $ THEN |
1216 | $ line = F$EDIT(line,"COMPRESS, TRIM") | |
cc391245 | 1217 | $ patchlevel = F$ELEMENT(2," ",line) |
97abc6ad HM |
1218 | $ got_patch = "true" |
1219 | $ ENDIF | |
cceca5ed | 1220 | $ IF ((F$LOCATE("#define PERL_SUBVERSION",line).NE.F$LENGTH(line)).AND.(.NOT.got_sub)) |
97abc6ad HM |
1221 | $ THEN |
1222 | $ line = F$EDIT(line,"COMPRESS, TRIM") | |
cc391245 | 1223 | $ subversion = F$ELEMENT(2," ",line) |
97abc6ad HM |
1224 | $ got_sub = "true" |
1225 | $ ENDIF | |
08c7cbbb GS |
1226 | $ IF ((F$LOCATE("#define PERL_API_REVISION",line).NE.F$LENGTH(line)).AND.(.NOT.got_api_revision)) |
1227 | $ THEN | |
1228 | $ line = F$EDIT(line,"COMPRESS, TRIM") | |
1229 | $ api_revision = F$ELEMENT(2," ",line) | |
1230 | $ got_api_revision = "true" | |
1231 | $ ENDIF | |
1232 | $ IF ((F$LOCATE("#define PERL_API_VERSION",line).NE.F$LENGTH(line)).AND.(.NOT.got_api_version)) | |
1233 | $ THEN | |
1234 | $ line = F$EDIT(line,"COMPRESS, TRIM") | |
1235 | $ api_version = F$ELEMENT(2," ",line) | |
1236 | $ got_api_version = "true" | |
1237 | $ ENDIF | |
1238 | $ IF ((F$LOCATE("#define PERL_API_SUBVERSION",line).NE.F$LENGTH(line)).AND.(.NOT.got_api_subversion)) | |
1239 | $ THEN | |
1240 | $ line = F$EDIT(line,"COMPRESS, TRIM") | |
1241 | $ api_subversion = F$ELEMENT(2," ",line) | |
1242 | $ got_api_subversion = "true" | |
1243 | $ ENDIF | |
9ec25520 CB |
1244 | $ IF ((F$LOCATE("""DEVEL",line).NE.F$LENGTH(line)).AND.(.NOT.got_perl_patchlevel)) |
1245 | $ THEN | |
1246 | $ line = F$EDIT(line,"COMPRESS, TRIM") | |
1247 | $ perl_patchlevel = F$ELEMENT(1,"""",line) | |
1248 | $ perl_patchlevel = perl_patchlevel - "DEVEL" | |
1249 | $ got_perl_patchlevel = "true" | |
1250 | $ ENDIF | |
c4ac6101 CB |
1251 | $ IF ((F$LOCATE("""SMOKE",line).NE.F$LENGTH(line)).AND.(.NOT.got_perl_patchlevel)) |
1252 | $ THEN | |
1253 | $ line = F$EDIT(line,"COMPRESS, TRIM") | |
1254 | $ perl_patchlevel = F$ELEMENT(1,"""",line) | |
1255 | $ perl_patchlevel = perl_patchlevel - "SMOKE" | |
1256 | $ got_perl_patchlevel = "true" | |
1257 | $ ENDIF | |
1258 | $ IF ((F$LOCATE("""MAINT",line).NE.F$LENGTH(line)).AND.(.NOT.got_perl_patchlevel)) | |
1259 | $ THEN | |
1260 | $ line = F$EDIT(line,"COMPRESS, TRIM") | |
1261 | $ perl_patchlevel = F$ELEMENT(1,"""",line) | |
1262 | $ perl_patchlevel = perl_patchlevel - "MAINT" | |
1263 | $ got_perl_patchlevel = "true" | |
1264 | $ ENDIF | |
cd30eb94 PP |
1265 | $ IF (.NOT. got_patch) .OR. - |
1266 | (.NOT. got_sub) .OR. - | |
1267 | (.NOT. got_api_revision) .OR. - | |
1268 | (.NOT. got_api_version) .OR. - | |
9ec25520 CB |
1269 | (.NOT. got_api_subversion) .OR. - |
1270 | (.NOT. got_perl_patchlevel) - | |
cd30eb94 | 1271 | THEN GOTO Patchlevel_h_loop |
97abc6ad HM |
1272 | $Close_patch: |
1273 | $ CLOSE CONFIG | |
97abc6ad | 1274 | $ ENDIF |
8c541774 CB |
1275 | $! |
1276 | $ IF F$SEARCH("[-].patch") .NES. "" | |
1277 | $ THEN | |
1278 | $ SET NOON | |
1279 | $ OPEN/READ PATCH [-].patch | |
1280 | $ READ PATCH line | |
1281 | $ CLOSE PATCH | |
9c3905ef CB |
1282 | $ tmp = F$EDIT(line,"TRIM,COMPRESS") |
1283 | $ IF F$ELEMENT(3, " ", tmp) .NES. "" THEN tmp = F$ELEMENT(3, " ", tmp) | |
8c541774 | 1284 | $ SET ON |
9c3905ef | 1285 | $ IF tmp .NES. "" THEN perl_patchlevel = tmp |
8c541774 CB |
1286 | $ ENDIF |
1287 | $! | |
9ec25520 CB |
1288 | $ version_patchlevel_string = "version ''patchlevel' subversion ''subversion'" |
1289 | $ IF got_perl_patchlevel .AND. perl_patchlevel .NES. "0" | |
97abc6ad | 1290 | $ THEN |
9ec25520 | 1291 | $ version_patchlevel_string = "''version_patchlevel_string' patch ''perl_patchlevel'" |
97abc6ad | 1292 | $ ENDIF |
9ec25520 | 1293 | $ echo "(You have ''package' ''version_patchlevel_string'.)" |
97abc6ad | 1294 | $! |
08c7cbbb | 1295 | $ version = revision + "_" + patchlevel + "_" + subversion |
97abc6ad | 1296 | $! |
4581ada3 CB |
1297 | $!: see if we need a special compiler |
1298 | $! cc_list = "cc/decc|gcc" !%Config-I-VMS, compiler symbols/commands | |
97abc6ad | 1299 | $! |
4581ada3 CB |
1300 | $ nocc = "f" |
1301 | $ vms_cc_dflt = "" | |
1302 | $ vms_cc_available = "" | |
1303 | $! | |
1304 | $ OPEN/WRITE CONFIG ccvms.c | |
1305 | $ WRITE CONFIG "#ifdef __DECC" | |
1306 | $ WRITE CONFIG "#include <stdlib.h>" !DECC is sooo picky | |
1307 | $ WRITE CONFIG "#endif" | |
1308 | $ WRITE CONFIG "#include <stdio.h>" | |
1309 | $ WRITE CONFIG "int main() {" | |
1310 | $ WRITE CONFIG "#ifdef __DECC" | |
1311 | $ WRITE CONFIG " printf(""/DECC\n"");" | |
1312 | $ WRITE CONFIG "#else" | |
1313 | $ WRITE CONFIG " printf(""/VAXC\n"");" | |
1314 | $ WRITE CONFIG "#endif" | |
1315 | $ WRITE CONFIG " exit(0);" | |
1316 | $ WRITE CONFIG "}" | |
1317 | $ CLOSE CONFIG | |
1318 | $! | |
1319 | $ SET NOON | |
1320 | $ DEFINE/USER_MODE SYS$ERROR _NLA0: | |
1321 | $ DEFINE/USER_MODE SYS$OUTPUT _NLA0: | |
1322 | $ cc/NoObj/list=ccvms.lis ccvms.c | |
1323 | $ tmp = $status | |
1324 | $ SET ON | |
1325 | $ IF (silent) THEN GOSUB Shut_up | |
1326 | $ IF tmp.NE.%X10B90001 | |
1327 | $ THEN | |
1328 | $ IF tmp.NE.%X10000001 | |
1329 | $ THEN | |
1330 | $ nocc = "t" !%X10000001 is return from gcc | |
1331 | $ GOTO Gcc_initial_check | |
1332 | $ ENDIF | |
1333 | $ ENDIF | |
1334 | $! | |
1335 | $ GOSUB List_Parse | |
1336 | $ IF .NOT.silent THEN echo "" | |
1337 | $ echo "Default ""cc"" is ''line' ''archsufx' ''F$GETSYI("VERSION")'" | |
1338 | $ IF F$LOCATE("VAX",line).NE.F$LENGTH(line) | |
1339 | $ THEN | |
1340 | $ IF .NOT.silent | |
97abc6ad | 1341 | $ THEN |
4581ada3 | 1342 | $ echo "Will try cc/decc..." |
97abc6ad | 1343 | $ ENDIF |
4581ada3 CB |
1344 | $ SET NOON |
1345 | $ DEFINE/USER_MODE SYS$ERROR NL: | |
1346 | $ DEFINE/USER_MODE SYS$OUTPUT NL: | |
1347 | $ cc/decc/NoObj/list=ccvms.lis ccvms.c | |
1348 | $ tmp = $status | |
1349 | $ SET ON | |
1350 | $ IF (silent) THEN GOSUB Shut_up | |
1351 | $ IF tmp.NE.%X10B90001 | |
7558ebc2 | 1352 | $ THEN |
4581ada3 CB |
1353 | $ echo "Apparently you don't have that one." |
1354 | $ ELSE | |
1355 | $ GOSUB List_parse | |
1356 | $ echo "You also have: ''line' ''archsufx' ''F$GETSYI("VERSION")'" | |
1357 | $ vms_cc_available = vms_cc_available + "cc/decc " | |
97abc6ad | 1358 | $ ENDIF |
4581ada3 CB |
1359 | $ ELSE |
1360 | $ IF (F$LOCATE("DEC",line).NE.F$LENGTH(line)).or.(F$LOCATE("Compaq",line).NE.F$LENGTH(line)) - | |
1361 | .or.(F$LOCATE("HP",F$EDIT(line,"UPCASE")).NE.F$LENGTH(line)) | |
1362 | $ THEN | |
1363 | $ vms_cc_dflt = "/decc" | |
1364 | $ vms_cc_available = vms_cc_available + "cc/decc " | |
570bb66e | 1365 | $ ENDIF |
4581ada3 | 1366 | $ ENDIF |
97abc6ad HM |
1367 | $! |
1368 | $Gcc_initial_check: | |
570bb66e | 1369 | $ echo "Checking for gcc" |
97abc6ad | 1370 | $ OPEN/WRITE CONFIG gccvers.lis |
41cbbefa | 1371 | $ SET NOON |
570bb66e JH |
1372 | $ DEFINE/USER_MODE SYS$ERROR CONFIG |
1373 | $ DEFINE/USER_MODE SYS$OUTPUT CONFIG | |
97abc6ad HM |
1374 | $ 'gcc_symbol'/noobj/version _nla0: |
1375 | $ tmp = $status | |
41cbbefa | 1376 | $ SET ON |
97abc6ad HM |
1377 | $ IF (silent) THEN GOSUB Shut_up |
1378 | $ CLOSE CONFIG | |
1379 | $ IF (tmp.NE.%X10000001).and.(tmp.ne.%X00030001) | |
1380 | $ THEN | |
7558ebc2 | 1381 | $ echo "Symbol ""''gcc_symbol'"" is not defined. I guess you do not have it." |
570bb66e JH |
1382 | $ DELETE/NOLOG/NOCONFIRM gccvers.lis; |
1383 | $ GOTO Cxx_initial_check | |
97abc6ad HM |
1384 | $ ENDIF |
1385 | $ OPEN/READ CONFIG gccvers.lis | |
1386 | $GCC_List_Read: | |
1387 | $ READ/END_OF_FILE=GCC_List_End CONFIG line | |
1388 | $ GOTO GCC_List_Read | |
1389 | $GCC_List_End: | |
1390 | $ CLOSE CONFIG | |
1391 | $ echo line | |
1392 | $ vms_cc_available = vms_cc_available + "''gcc_symbol' " | |
1393 | $ DELETE/NOLOG/NOCONFIRM gccvers.lis; | |
1394 | $! | |
570bb66e JH |
1395 | $Cxx_initial_check: |
1396 | $! | |
85fac3a9 | 1397 | $! In order to build with the HP C++ compiler, invoke configure.com with "-Dusecxx" on |
7558ebc2 | 1398 | $! the command line. |
570bb66e | 1399 | $! |
85fac3a9 CB |
1400 | $ IF F$TYPE(usecxx) .EQS. "" THEN usecxx := n |
1401 | $ IF usecxx .OR. usecxx .EQS. "define" | |
570bb66e JH |
1402 | $ THEN |
1403 | $! | |
1404 | $ echo "Checking for CXX..." | |
1405 | $ OPEN/WRITE CONFIG ccvms.c | |
1406 | $ WRITE CONFIG "#include <iostream>" | |
1407 | $ WRITE CONFIG "int main() {" | |
1408 | $ WRITE CONFIG "#ifdef __DECCXX" | |
1409 | $ WRITE CONFIG " cout << __DECCXX, endl;" | |
1410 | $ WRITE CONFIG "#else" | |
1411 | $ WRITE CONFIG " cout << 0,endl;" | |
1412 | $ WRITE CONFIG "#endif" | |
1413 | $! Todo: add G++ identifier check ?? | |
1414 | $ WRITE CONFIG " return(0);" | |
1415 | $ WRITE CONFIG "}" | |
1416 | $ CLOSE CONFIG | |
1417 | $ SET NOON | |
1418 | $ DEFINE/USER_MODE SYS$OUTPUT NL: | |
1419 | $ DEFINE/USER_MODE SYS$ERROR NL: | |
1420 | $ cxx ccvms.c | |
1421 | $ tmp = $status | |
1422 | $ SET ON | |
1423 | $! success $status with: | |
1424 | $! DEC C++ V1.1-001 on VMS VAX V5.5-2 | |
1425 | $! DEC C++ V5.6-013 on OpenVMS VAX V7.1 | |
1426 | $! DEC C++ V6.1-003 on OpenVMS Alpha V7.1 | |
1427 | $! Compaq C++ V6.2-016 for OpenVMS Alpha V7.2-1 | |
1428 | $ IF tmp .eq. %X15F60001 | |
1429 | $ THEN | |
1430 | $! Which linker? | |
1431 | $ SET NOON | |
1432 | $ DEFINE/USER_MODE SYS$OUTPUT NL: | |
1433 | $ DEFINE/USER_MODE SYS$ERROR NL: | |
96021e87 | 1434 | $ link/nodebug ccvms.obj |
570bb66e JH |
1435 | $ tmp = $status |
1436 | $ SET ON | |
1437 | $ ! success $status with: | |
1438 | $ ! link && DEC C++ V1.1-001 on VMS VAX V5.5-2 | |
1439 | $ ! link && DEC C++ V5.6-013 on OpenVMS VAX V7.1 | |
1440 | $ IF tmp .eq. %X10000001 | |
1441 | $ THEN | |
85fac3a9 | 1442 | $ ld_try = "Link/nodebug" |
570bb66e JH |
1443 | $ vms_cc_available = vms_cc_available + "cxx " |
1444 | $ echo "CXX and LINK are available." | |
1445 | $ ELSE | |
1446 | $ IF F$SEARCH("ccvms.exe") .NES. "" THEN DELETE/NOLOG/NOCONFIRM ccvms.exe; | |
1447 | $ SET NOON | |
1448 | $ DEFINE/USER_MODE SYS$OUTPUT NL: | |
1449 | $ DEFINE/USER_MODE SYS$ERROR NL: | |
1450 | $ cxxlink ccvms.obj | |
1451 | $ tmp = $status | |
1452 | $ SET ON | |
1453 | $ ! success $status with: | |
1454 | $ ! cxxlink && DEC C++ V6.1-003 on OpenVMS Alpha V7.1 | |
1455 | $ ! cxxlink && Compaq C++ V6.2-016 for OpenVMS Alpha V7.2-1 | |
1456 | $ IF tmp .eq. %X10000001 | |
1457 | $ THEN | |
1458 | $ ld_try = "cxxlink" | |
1459 | $ vms_cc_available = vms_cc_available + "cxx " | |
1460 | $ echo "CXX and CXXLINK are available." | |
1461 | $ ENDIF | |
1462 | $ ENDIF | |
1463 | $ IF F$SEARCH("ccvms.exe") .NES. "" THEN DELETE/NOLOG/NOCONFIRM ccvms.exe; | |
1464 | $ ELSE | |
1465 | $ echo "Nope." | |
1466 | $ ENDIF | |
1467 | $ DELETE/NOLOG/NOCONFIRM ccvms.c; | |
1468 | $ IF F$SEARCH("ccvms.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM ccvms.obj; | |
1469 | $ CALL Cxx_demangler_cleanup | |
1470 | $! | |
1471 | $ ENDIF ! 1 .eq. 0 or 1 .eq. 1 | |
1472 | $! | |
97abc6ad HM |
1473 | $CC_Cleanup: |
1474 | $ DELETE/NOLOG/NOCONFIRM ccvms.*; | |
1475 | $CC_Desired: | |
1476 | $!: see if we need a special compiler | |
1477 | $! echo "" | |
570bb66e | 1478 | $ echo "Available compiler(s):" |
97abc6ad HM |
1479 | $ echo "( ''vms_cc_available')" |
1480 | $ IF .NOT.nocc | |
1481 | $ THEN | |
85fac3a9 CB |
1482 | $ IF usecxx .OR. usecxx .EQS. "define" |
1483 | $ THEN | |
1484 | $ dflt = "cxx" | |
1485 | $ ELSE | |
1486 | $ dflt = "cc''vms_cc_dflt'" !-> "cc" in case first compile went OK | |
1487 | $ ENDIF | |
97abc6ad HM |
1488 | $ ELSE |
1489 | $ dflt = gcc_symbol | |
1490 | $ ENDIF | |
1491 | $ rp = "Use which C compiler? [''dflt'] " | |
1492 | $ GOSUB myread | |
1493 | $ IF ans.NES."" | |
1494 | $ THEN | |
1495 | $ ans = F$EDIT(ans,"TRIM, COMPRESS, LOWERCASE") | |
1496 | $ Mcc = ans | |
a50752f9 CB |
1497 | $ IF (F$LOCATE("dec",ans).NE.F$LENGTH(ans)).or.(F$LOCATE("compaq",ans).NE.F$LENGTH(ans)) - |
1498 | .or.(F$LOCATE("hp",ans).NE.F$LENGTH(ans)) | |
97abc6ad HM |
1499 | $ THEN |
1500 | $ Mcc = "cc/decc" | |
414b89cc CB |
1501 | $! CPQ ? |
1502 | $ ccname := DEC | |
429a5e67 | 1503 | $ C_COMPILER_Replace = "CC=cc=''Mcc'" |
97abc6ad | 1504 | $ ENDIF |
570bb66e JH |
1505 | $ IF F$LOCATE("cxx",F$EDIT(ans,"COLLAPSE,LOWERCASE")) .NE. F$LENGTH(ans) |
1506 | $ THEN | |
1507 | $ Mcc = "cxx" | |
414b89cc | 1508 | $ ccname := CXX |
570bb66e | 1509 | $ ld = ld_try |
7558ebc2 PP |
1510 | $ C_COMPILER_Replace = "CC=cc=''Mcc'" |
1511 | $ ELSE ! Not_cxx | |
1512 | $ IF Mcc.NES.dflt | |
97abc6ad | 1513 | $ THEN |
7558ebc2 PP |
1514 | $ IF F$LOCATE("dec",dflt) .NE. F$LENGTH(dflt) .or. - |
1515 | F$LOCATE("compaq",dflt) .NE. F$LENGTH(dflt) | |
1516 | $ THEN | |
1517 | $ C_COMPILER_Replace = "CC=cc=''Mcc'" | |
1518 | $ ELSE | |
414b89cc | 1519 | $ ccname := DEC |
7558ebc2 PP |
1520 | $ ENDIF |
1521 | $ ELSE | |
1522 | $ IF Mcc .EQS. "cc/decc" | |
1523 | $ THEN | |
414b89cc | 1524 | $ ccname := DEC |
7558ebc2 PP |
1525 | $ C_COMPILER_Replace = "CC=cc=''Mcc'" |
1526 | $ ENDIF | |
97abc6ad HM |
1527 | $ ENDIF |
1528 | $ ENDIF | |
1529 | $ ELSE | |
1530 | $ Mcc = dflt | |
1531 | $ IF Mcc .EQS. "cc/decc" | |
1532 | $ THEN | |
414b89cc | 1533 | $ ccname := DEC |
429a5e67 | 1534 | $ C_COMPILER_Replace = "CC=cc=''Mcc'" |
97abc6ad | 1535 | $ ENDIF |
97abc6ad HM |
1536 | $ IF Mcc .EQS. "gcc" |
1537 | $ THEN | |
414b89cc | 1538 | $ ccname := GCC |
429a5e67 | 1539 | $ C_COMPILER_Replace = "CC=cc=''Mcc'" |
97abc6ad HM |
1540 | $ ENDIF |
1541 | $ ENDIF | |
1542 | $Decc_Version_check: | |
570bb66e | 1543 | $ ccversion="" |
414b89cc | 1544 | $ IF ccname .EQS. "DEC" |
97abc6ad HM |
1545 | $ THEN |
1546 | $ echo "" | |
7558ebc2 | 1547 | $ echo4 "Checking for the Dec C version number..." |
97abc6ad HM |
1548 | $ OPEN/WRITE CONFIG deccvers.c |
1549 | $ WRITE CONFIG "#include <stdlib.h>" !DECC is sooo picky | |
1550 | $ WRITE CONFIG "#include <stdio.h>" | |
1551 | $ WRITE CONFIG "int main() {" | |
1552 | $ WRITE CONFIG "#ifdef __DECC" | |
1553 | $ WRITE CONFIG "#ifdef __DECC_VER" | |
1554 | $ WRITE CONFIG " printf(""%i\n"", __DECC_VER);" | |
1555 | $ WRITE CONFIG "#else" | |
1556 | $ WRITE CONFIG " printf(""%i\n"", ""1"");" | |
1557 | $ WRITE CONFIG "#endif" | |
1558 | $ WRITE CONFIG "#endif" | |
1559 | $ WRITE CONFIG " exit(0);" | |
1560 | $ WRITE CONFIG "}" | |
1561 | $ CLOSE CONFIG | |
570bb66e JH |
1562 | $ SET NOON |
1563 | $ DEFINE/USER_MODE SYS$ERROR NL: | |
1564 | $ DEFINE/USER_MODE SYS$OUTPUT NL: | |
97abc6ad HM |
1565 | $ 'Mcc' deccvers.c |
1566 | $ tmp = $status | |
97abc6ad | 1567 | $ IF (silent) THEN GOSUB Shut_up |
570bb66e JH |
1568 | $ DEFINE/USER_MODE SYS$ERROR NL: |
1569 | $ DEFINE/USER_MODE SYS$OUTPUT NL: | |
96021e87 | 1570 | $ link/nodebug deccvers.obj |
97abc6ad | 1571 | $ tmp = $status |
97abc6ad HM |
1572 | $ IF (silent) THEN GOSUB Shut_up |
1573 | $ OPEN/WRITE CONFIG deccvers.out | |
570bb66e JH |
1574 | $ DEFINE/USER_MODE SYS$ERROR CONFIG |
1575 | $ DEFINE/USER_MODE SYS$OUTPUT CONFIG | |
97abc6ad HM |
1576 | $ mcr []deccvers.exe |
1577 | $ tmp = $status | |
570bb66e | 1578 | $ SET ON |
97abc6ad | 1579 | $ CLOSE CONFIG |
97abc6ad HM |
1580 | $ IF (silent) THEN GOSUB Shut_up |
1581 | $ OPEN/READ CONFIG deccvers.out | |
1582 | $ READ/END_OF_FILE=Dec_c_cleanup CONFIG line | |
1583 | $Dec_c_cleanup: | |
1584 | $ CLOSE CONFIG | |
97abc6ad | 1585 | $ echo "You are using Dec C ''line'" |
570bb66e JH |
1586 | $ ccversion = line |
1587 | $ Dec_C_Version = F$INTEGER(line) | |
2b4b3ebb | 1588 | $ IF Dec_C_Version .GE. 60200000 .AND. F$ELEMENT(0, "-", archname) .NES. "VMS_VAX" |
570bb66e JH |
1589 | $ THEN |
1590 | $ echo4 "adding /NOANSI_ALIAS qualifier to ccflags." | |
1591 | $ ccflags = ccflags + "/NOANSI_ALIAS" | |
1592 | $ ENDIF | |
1593 | $ DELETE/NOLOG/NOCONFIRM deccvers.*; | |
97abc6ad | 1594 | $ ENDIF |
97abc6ad | 1595 | $Gcc_check: |
570bb66e | 1596 | $ gccversion = "" |
414b89cc | 1597 | $ IF ccname .EQS. "GCC" |
97abc6ad | 1598 | $ THEN |
570bb66e JH |
1599 | $ vaxcrtl_olb = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB") |
1600 | $ vaxcrtl_exe = F$SEARCH("SYS$SHARE:VAXCRTL.EXE") | |
1601 | $ gcclib_olb = F$SEARCH("GNU_CC:[000000]GCCLIB.OLB") | |
1602 | $ IF gcclib_olb .EQS. "" | |
97abc6ad | 1603 | $ THEN |
570bb66e JH |
1604 | $! These objects/libs come w/ gcc 2.7.2 for AXP: |
1605 | $ tmp = F$SEARCH("GNU_CC:[000000]libgcc2.olb") | |
1606 | $ IF tmp .NES. "" then gcclib_olb = tmp | |
1607 | $ tmp = F$SEARCH("GNU_CC:[000000]libgcclib.olb") | |
1608 | $ IF tmp .NES. "" | |
1609 | $ THEN | |
1610 | $ IF gcclib_olb .EQS. "" | |
1611 | $ THEN gcclib_olb = tmp | |
1612 | $ ELSE gcclib_olb = gcclib_olb + "/lib," + tmp | |
1613 | $ ENDIF | |
97abc6ad | 1614 | $ ENDIF |
570bb66e JH |
1615 | $ tmp = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB") |
1616 | $ IF tmp .NES. "" | |
1617 | $ THEN | |
1618 | $ IF gcclib_olb .EQS. "" | |
1619 | $ THEN gcclib_olb = tmp | |
1620 | $ ELSE gcclib_olb = gcclib_olb + "/lib," + tmp | |
1621 | $ ENDIF | |
97abc6ad | 1622 | $ ENDIF |
570bb66e JH |
1623 | $ tmp = F$SEARCH("GNU_CC:[000000]crt0.obj") |
1624 | $ IF tmp .NES. "" | |
1625 | $ THEN | |
1626 | $ IF gcclib_olb .EQS. "" | |
1627 | $ THEN gcclib_olb = tmp | |
1628 | $ ELSE gcclib_olb = gcclib_olb + "/lib," + tmp | |
1629 | $ ENDIF | |
97abc6ad | 1630 | $ ENDIF |
570bb66e JH |
1631 | $ IF gcclib_olb .EQS. vaxcrtl_olb THEN gcclib_olb = "" !goofy order of axplibs |
1632 | $ ELSE | |
1633 | $ gcclib_olb = gcclib_olb + "/lib" | |
97abc6ad | 1634 | $ ENDIF |
570bb66e | 1635 | $ IF gcclib_olb .NES. "" .AND. - |
97abc6ad HM |
1636 | (vaxcrtl_olb .NES. "" .OR. - |
1637 | vaxcrtl_exe .NES. "" ) | |
570bb66e JH |
1638 | $ THEN |
1639 | $ echo "" | |
1640 | $ echo4 "Checking for GNU cc in disguise and/or its version number..." !>&4 | |
1641 | $ OPEN/WRITE CONFIG gccvers.c | |
570bb66e JH |
1642 | $ WRITE CONFIG "#include <stdio.h>" |
1643 | $ WRITE CONFIG "int main() {" | |
1644 | $ WRITE CONFIG "#ifdef __GNUC__" | |
1645 | $ WRITE CONFIG "#ifdef __VERSION__" | |
1646 | $ WRITE CONFIG " printf(""%s\n"", __VERSION__);" | |
1647 | $ WRITE CONFIG "#else" | |
1648 | $ WRITE CONFIG " printf(""%s\n"", ""1"");" | |
1649 | $ WRITE CONFIG "#endif" | |
1650 | $ WRITE CONFIG "#endif" | |
1651 | $ WRITE CONFIG " exit(0);" | |
1652 | $ WRITE CONFIG "}" | |
1653 | $ CLOSE CONFIG | |
1654 | $ DEFINE SYS$ERROR _NLA0: | |
1655 | $ DEFINE SYS$OUTPUT _NLA0: | |
1656 | $ 'Mcc' gccvers.c | |
1657 | $ tmp = $status | |
1658 | $ DEASSIGN SYS$ERROR _NLA0: | |
1659 | $ DEASSIGN SYS$OUTPUT _NLA0: | |
1660 | $ IF (silent) THEN GOSUB Shut_up | |
1661 | $ DEFINE SYS$ERROR _NLA0: | |
1662 | $ DEFINE SYS$OUTPUT _NLA0: | |
1663 | $ IF vaxcrtl_exe .EQS. "" | |
1664 | $ THEN | |
1665 | $ IF F$LOCATE("VAXCRTL",gcclib_olb).NE.F$LENGTH(gcclib_olb) | |
1666 | $ THEN | |
96021e87 | 1667 | $ link/nodebug gccvers.obj,'gcclib_olb',SYS$LIBRARY:VAXCRTL/Library |
570bb66e JH |
1668 | $ tmp = $status |
1669 | $ ELSE | |
96021e87 | 1670 | $ link/nodebug gccvers.obj,'gcclib_olb' |
570bb66e JH |
1671 | $ tmp = $status |
1672 | $ ENDIF | |
1673 | $ ELSE | |
1674 | $ OPEN/WRITE CONFIG GCCVERS.OPT | |
1675 | $ WRITE CONFIG "SYS$SHARE:VAXCRTL/SHARE" | |
1676 | $ CLOSE CONFIG | |
96021e87 | 1677 | $ link/nodebug gccvers.obj,GCCVERS.OPT/OPT,'gcclib_olb' |
570bb66e JH |
1678 | $ tmp = $status |
1679 | $ ENDIF | |
1680 | $ DEASSIGN SYS$ERROR | |
1681 | $ DEASSIGN SYS$OUTPUT | |
1682 | $ IF (silent) THEN GOSUB Shut_up | |
1683 | $ OPEN/WRITE CONFIG gccvers.out | |
1684 | $ DEFINE SYS$ERROR CONFIG | |
1685 | $ DEFINE SYS$OUTPUT CONFIG | |
1686 | $ mcr []gccvers.exe | |
1687 | $ tmp = $status | |
1688 | $ CLOSE CONFIG | |
1689 | $ DEASSIGN SYS$OUTPUT | |
1690 | $ DEASSIGN SYS$ERROR | |
1691 | $ IF (silent) THEN GOSUB Shut_up | |
1692 | $ OPEN/READ CONFIG gccvers.out | |
1693 | $ READ/END_OF_FILE=Gcc_cleanup CONFIG line | |
1694 | $Gcc_cleanup: | |
1695 | $ CLOSE CONFIG | |
1696 | $ DELETE/NOLOG/NOCONFIRM gccvers.*; | |
1697 | $ IF F$LOCATE("GNU C version ",line).NE.F$LENGTH(line) | |
1698 | $ THEN | |
1699 | $ echo "You are not using GNU cc." | |
1700 | $ GOTO Host_name | |
1701 | $ ELSE | |
1702 | $ echo "You are using GNU cc ''line'" | |
1703 | $ gccversion = line | |
414b89cc | 1704 | $ ccname := "GCC" |
570bb66e JH |
1705 | $ C_COMPILER_Replace = "CC=cc=''Mcc'" |
1706 | $ GOTO Include_dirs | |
1707 | $ ENDIF | |
1708 | $ ENDIF | |
1709 | $ ENDIF | |
1710 | $Cxx_Version_check: | |
414b89cc | 1711 | $ IF ccname .EQS. "CXX" |
97abc6ad | 1712 | $ THEN |
570bb66e | 1713 | $ OPEN/WRITE CONFIG cxxvers.c |
97abc6ad HM |
1714 | $ WRITE CONFIG "#include <stdio.h>" |
1715 | $ WRITE CONFIG "int main() {" | |
570bb66e JH |
1716 | $ WRITE CONFIG "#ifdef __DECCXX_VER" |
1717 | $ WRITE CONFIG " printf(""%i\n"", __DECCXX_VER);" | |
97abc6ad | 1718 | $ WRITE CONFIG "#else" |
570bb66e | 1719 | $ WRITE CONFIG " printf(""%i\n"", ""0"");" |
97abc6ad | 1720 | $ WRITE CONFIG "#endif" |
570bb66e | 1721 | $ WRITE CONFIG " return(0);" |
97abc6ad HM |
1722 | $ WRITE CONFIG "}" |
1723 | $ CLOSE CONFIG | |
570bb66e JH |
1724 | $ SET NOON |
1725 | $ DEFINE/USER_MODE SYS$ERROR NL: | |
1726 | $ DEFINE/USER_MODE SYS$OUTPUT NL: | |
1727 | $ 'Mcc' cxxvers.c | |
97abc6ad | 1728 | $ tmp = $status |
570bb66e | 1729 | $ SET ON |
97abc6ad | 1730 | $ IF (silent) THEN GOSUB Shut_up |
570bb66e JH |
1731 | $ SET NOON |
1732 | $ DEFINE/USER_MODE SYS$ERROR NL: | |
1733 | $ DEFINE/USER_MODE SYS$OUTPUT NL: | |
1734 | $ 'ld' cxxvers.obj | |
1735 | $ tmp = $status | |
1736 | $ SET ON | |
97abc6ad | 1737 | $ IF (silent) THEN GOSUB Shut_up |
570bb66e JH |
1738 | $ OPEN/WRITE CONFIG cxxvers.out |
1739 | $ SET NOON | |
1740 | $ DEFINE/USER_MODE SYS$ERROR CONFIG | |
1741 | $ DEFINE/USER_MODE SYS$OUTPUT CONFIG | |
1742 | $ mcr []cxxvers.exe | |
97abc6ad | 1743 | $ tmp = $status |
570bb66e | 1744 | $ SET ON |
97abc6ad | 1745 | $ CLOSE CONFIG |
97abc6ad | 1746 | $ IF (silent) THEN GOSUB Shut_up |
570bb66e JH |
1747 | $ OPEN/READ CONFIG cxxvers.out |
1748 | $ READ/END_OF_FILE=Cxx_cleanup CONFIG line | |
1749 | $Cxx_cleanup: | |
97abc6ad | 1750 | $ CLOSE CONFIG |
570bb66e JH |
1751 | $ DELETE/NOLOG/NOCONFIRM cxxvers.*; |
1752 | $ echo "You are using CXX ''line'" | |
1753 | $ cxxversion = line | |
1754 | $ ccversion = line | |
60f153db | 1755 | $ d_cplusplus = "define" |
85fac3a9 CB |
1756 | $ echo4 "adding /NOANSI_ALIAS qualifier to ccflags." |
1757 | $ ccflags = ccflags + "/NOANSI_ALIAS" | |
570bb66e | 1758 | $ CALL Cxx_demangler_cleanup |
60f153db CB |
1759 | $ ELSE |
1760 | $ d_cplusplus = "undef" | |
570bb66e JH |
1761 | $ ENDIF |
1762 | $! | |
1763 | $Cxx_demangler_cleanup: SUBROUTINE | |
1764 | $! | |
1765 | $! If we do build with CXX these demangler Dbs will be left all over. | |
1766 | $! However, configure.com does try to remove the [.UU] sub directory. | |
1767 | $! Be sure to set default to the correct place before calling this sub. | |
1768 | $! | |
1769 | $ SET NOON | |
1770 | $ IF F$SEARCH("[.CXX_REPOSITORY]*.*") .NES. "" THEN DELETE/NOLOG/NOCONFIRM [.CXX_REPOSITORY]*.*;* | |
1771 | $ IF F$SEARCH("CXX_REPOSITORY.DIR") .NES. "" | |
1772 | $ THEN | |
1773 | $ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) CXX_REPOSITORY.DIR | |
1774 | $ DELETE/NOLOG/NOCONFIRM CXX_REPOSITORY.DIR; | |
97abc6ad | 1775 | $ ENDIF |
570bb66e JH |
1776 | $ SET ON |
1777 | $ EXIT | |
1778 | $ ENDSUBROUTINE ! Cxx_demangler_cleanup | |
1779 | $! | |
97abc6ad HM |
1780 | $ GOTO Host_name |
1781 | $! | |
1782 | $List_Parse: | |
1783 | $ OPEN/READ CONFIG ccvms.lis | |
1784 | $ READ CONFIG line | |
2b4b3ebb | 1785 | $ IF F$ELEMENT(0, "-", archname) .EQS. "VMS_VAX" |
97abc6ad HM |
1786 | $ THEN |
1787 | $ read CONFIG line | |
1788 | $ archsufx = "VAX" | |
1789 | $ ELSE | |
2b4b3ebb | 1790 | $ IF F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP" |
a50752f9 CB |
1791 | $ THEN |
1792 | $ archsufx = "AXP" | |
1793 | $ ELSE | |
1794 | $ archsufx = "IA64" | |
1795 | $ ENDIF | |
97abc6ad HM |
1796 | $ ENDIF |
1797 | $ CLOSE CONFIG | |
1798 | $ line = F$EDIT(line,"TRIM,COMPRESS") | |
1799 | $ line = line - "Page 1" ! occurs at end all compilers | |
1800 | $ line = line - "CCVMS " ! filename appears w/ VAXC | |
1801 | $ line = line - "Source Listing " ! Seen w/ AXP DECC | |
1802 | $ tmp = F$EXTRACT(0,20,line) !timestamp, e.g. "30-JUL-1996 21:12:54 " | |
1803 | $ line = line - tmp | |
1804 | $ line = F$EDIT(line,"TRIM") !bit redundant but we're in no big hurry | |
1805 | $ DELETE/NOLOG/NOCONFIRM ccvms.lis; | |
1806 | $ RETURN | |
1807 | $! | |
1808 | $Include_dirs: | |
570bb66e | 1809 | $!: What should the include directory be ? (.TLB text libraries) |
97abc6ad HM |
1810 | $ dflt = gcclib_olb |
1811 | $ rp = "Where are the include files you want to use? " | |
db7bf729 | 1812 | $ IF f$length( rp + "[''dflt'] " ) .GT. 76 |
97abc6ad HM |
1813 | $ THEN rp = F$FAO("!AS!/!AS",rp,"[''dflt'] ") |
1814 | $ ELSE rp = rp + "[''dflt'] " | |
1815 | $ ENDIF | |
1816 | $ GOSUB myread | |
1817 | $ usrinc = ans | |
1818 | $! | |
1819 | $!: see if we have to deal with yellow pages, now NIS. | |
1820 | $!: now get the host name | |
1821 | $Host_name: | |
1822 | $ echo "" | |
1823 | $ echo4 "Figuring out host name..." !>&4 | |
1824 | $ myhostname = "" | |
1825 | $ IF myhostname.eqs."" THEN myhostname = F$TRNLNM("ARPANET_HOST_NAME") | |
1826 | $ IF myhostname.eqs."" THEN myhostname = F$TRNLNM("INTERNET_HOST_NAME") | |
1827 | $ IF myhostname.eqs."" THEN myhostname = F$TRNLNM("MULTINET_HOST_NAME") | |
1828 | $ IF myhostname.eqs."" THEN myhostname = F$TRNLNM("UCX$INET_HOST_NAME") | |
1829 | $ IF myhostname.eqs."".and. - | |
1830 | F$TRNLNM("UCX$INET_HOST") .nes. "" .and. - | |
1831 | F$TRNLNM("UCX$INET_DOMAIN") .nes. "" THEN - | |
1832 | myhostname = F$TRNLNM("UCX$INET_HOST") + "." + F$TRNLNM("UCX$INET_DOMAIN") | |
16421035 PP |
1833 | $ IF myhostname.eqs."".and. - |
1834 | F$TRNLNM("TCPIP$INET_HOST") .nes. "" .and. - | |
1835 | F$TRNLNM("TCPIP$INET_DOMAIN") .nes. "" THEN - | |
1836 | myhostname = F$TRNLNM("TCPIP$INET_HOST") + "." + F$TRNLNM("TCPIP$INET_DOMAIN") | |
97abc6ad HM |
1837 | $ IF myhostname.eqs."" THEN myhostname = F$TRNLNM("TCPWARE_DOMAINNAME") |
1838 | $ IF myhostname.eqs."" THEN myhostname = F$TRNLNM("NEWS_ADDRESS") | |
1839 | $ IF myhostname.eqs."" THEN myhostname = F$TRNLNM("SYS$NODE") - "::" | |
1840 | $ IF myhostname.eqs."" THEN myhostname = F$EDIT(F$GETSYI("SCSNODE"),"TRIM") | |
1841 | $!: you do not want to know about this | |
1842 | $!: verify guess | |
1843 | $ rp = "Your host name appears to be """"''myhostname'"""". Right? " | |
9b5c8979 | 1844 | $ bool_dflt = "y" |
97abc6ad | 1845 | $ GOSUB myread |
9b5c8979 | 1846 | $ IF (.not.ans) |
97abc6ad HM |
1847 | $ THEN |
1848 | $ READ SYS$COMMAND/PROMPT= - | |
1849 | "Please type the (one word) name of your host: " ans | |
1850 | $ myhostname = ans | |
1851 | $ ENDIF | |
1852 | $!: translate upper to lower if necessary | |
1853 | $ myhostname = F$EDIT(myhostname,"COLLAPSE") | |
1854 | $ mylowhostname = F$EDIT(myhostname," LOWERCASE") | |
1855 | $ IF mylowhostname.NES.myhostname | |
1856 | $ THEN | |
1857 | $ echo "(Normalizing case in your host name)" | |
1858 | $ myhostname = mylowhostname | |
1859 | $ ENDIF | |
1860 | $! | |
1861 | $ fp = F$LOCATE(".",myhostname) | |
1862 | $ mydomain = F$EXTRACT(fp,(F$LENGTH(myhostname)-fp)+1,myhostname) | |
1863 | $ IF mydomain.NES."" !no periods in DECnet names like "MYDECNODE::" | |
1864 | $ THEN | |
1865 | $ rp = "What is your domain name? [''mydomain'] " | |
9b5c8979 | 1866 | $ dflt = mydomain |
97abc6ad | 1867 | $ GOSUB myread |
9b5c8979 | 1868 | $ mydomain = ans |
97abc6ad HM |
1869 | $!: translate upper to lower if necessary |
1870 | $ mydomain = F$EDIT(mydomain,"COLLAPSE") | |
1871 | $ mylowdomain = F$EDIT(mydomain," LOWERCASE") | |
1872 | $ IF mylowdomain.NES.mydomain | |
1873 | $ THEN | |
1874 | $ echo "(Normalizing case in your domain name)" | |
1875 | $ mydomain = mylowdomain | |
1876 | $ ENDIF | |
1877 | $ ENDIF | |
1878 | $ myhostname = myhostname - mydomain | |
1879 | $ echo "(Trimming domain name from host name--host name is now ''myhostname')" | |
1880 | $ IF .NOT.silent | |
7558ebc2 PP |
1881 | $ THEN |
1882 | $ TYPE SYS$INPUT: | |
1883 | $ DECK | |
97abc6ad HM |
1884 | |
1885 | I need to get your e-mail address in Internet format if possible, i.e. | |
1886 | something like user@host.domain. Please answer accurately since I have | |
1887 | no easy means to double check it. The default value provided below | |
1888 | is most probably close to the reality but may not be valid from outside | |
1889 | your organization... | |
7558ebc2 | 1890 | $ EOD |
97abc6ad | 1891 | $ ENDIF |
414b89cc CB |
1892 | $ IF F$TYPE(cf_email) .EQS. "" |
1893 | $ THEN | |
1894 | $ dflt = "''cf_by'@''myhostname'"+"''mydomain'" | |
1895 | $ rp = "What is your e-mail address? [''dflt'] " | |
1896 | $ GOSUB myread | |
9b5c8979 | 1897 | $ cf_email = ans |
97abc6ad HM |
1898 | $ ENDIF |
1899 | $! | |
1900 | $ IF .NOT.silent | |
7558ebc2 PP |
1901 | $ THEN |
1902 | $ TYPE SYS$INPUT: | |
1903 | $ DECK | |
97abc6ad HM |
1904 | |
1905 | If you or somebody else will be maintaining perl at your site, please | |
1906 | fill in the correct e-mail address here so that they may be contacted | |
1907 | if necessary. Currently, the "perlbug" program included with perl | |
1908 | will send mail to this address in addition to perlbug@perl.com. You may | |
1909 | enter "none" for no administrator. | |
7558ebc2 | 1910 | $ EOD |
97abc6ad HM |
1911 | $ ENDIF |
1912 | $ dflt = "''cf_email'" | |
1913 | $ rp = "Perl administrator e-mail address [''dflt'] " | |
1914 | $ GOSUB myread | |
9b5c8979 | 1915 | $ perladmin = ans |
97abc6ad HM |
1916 | $! |
1917 | $!: determine where public executable scripts go | |
1918 | $!: determine perl absolute location | |
1919 | $!: figure out how to guarantee perl startup | |
1920 | $! | |
1921 | $!: see how we invoke the C preprocessor | |
1922 | $! echo "" | |
1923 | $! echo4 "Now, how can we feed standard input to your C preprocessor..." !>&4 | |
1924 | $!: Set private lib path | |
1925 | $!: Now check and see which directories actually exist, avoiding duplicates | |
1926 | $!: determine optimize, if desired, or use for debug flag also | |
1927 | $!: We will not override a previous value, but we might want to | |
1928 | $!: augment a hint file | |
1929 | $!: the following weeds options from ccflags that are of no interest to cpp | |
1930 | $!: flags used in final linking phase | |
1931 | $!: Try to guess additional flags to pick up local libraries. | |
1932 | $!: coherency check | |
1933 | $! echo "" | |
1934 | $! echo4 "Checking your choice of C compiler and flags for coherency..." !>&4 | |
1935 | $!: compute shared library extension | |
1936 | $!: Looking for optional libraries | |
1937 | $!: see if nm is to be used to determine whether a symbol is defined or not | |
1938 | $!: get list of predefined functions in a handy place | |
983dbef6 | 1939 | $!: see if we have sigaction or sigprocmask |
fcc434ad | 1940 | $ IF (ccname .EQS. "DEC" .AND. Dec_C_Version .GE. 50200000) .OR. (ccname .EQS. "CXX") |
97abc6ad HM |
1941 | $ THEN |
1942 | $ Has_Dec_C_Sockets = "T" | |
1943 | $ echo "" | |
7558ebc2 | 1944 | $ echo4 "Hmm... Looks like you have Dec C Berkeley networking support." |
570bb66e JH |
1945 | $ ELSE |
1946 | $ Has_Dec_C_Sockets = "F" | |
97abc6ad | 1947 | $ ENDIF |
046cc26c CB |
1948 | $! |
1949 | $ IF Has_Dec_C_Sockets | |
97abc6ad HM |
1950 | $ THEN |
1951 | $ echo "" | |
046cc26c CB |
1952 | $ echo "You have sockets available via the C library. Should socket support" |
1953 | $ echo "be built into Perl?" | |
1954 | $ dflt = "DECC" | |
1955 | $ rp = "Choose socket support option (NONE" | |
570bb66e | 1956 | $ IF Has_Dec_C_Sockets THEN rp = rp + ",DECC" |
97abc6ad HM |
1957 | $ rp = rp + ") [''dflt'] " |
1958 | $ GOSUB myread | |
570bb66e JH |
1959 | $ Has_Dec_C_Sockets = "F" |
1960 | $ Has_socketshr = "F" | |
97abc6ad | 1961 | $ ans = F$EDIT(ans,"TRIM,COMPRESS,LOWERCASE") |
fcc434ad | 1962 | $ IF ans.eqs."decc" THEN Has_Dec_C_Sockets = "T" |
570bb66e | 1963 | $ ENDIF |
97abc6ad HM |
1964 | $! |
1965 | $! | |
3eeba6fb | 1966 | $! Ask if they want to build with VMS_DEBUG perl |
146174a9 | 1967 | $ echo "" |
3eeba6fb CB |
1968 | $ echo "Perl can be built to run under the VMS debugger." |
1969 | $ echo "You should only select this option if you are debugging" | |
1970 | $ echo "perl itself. This can be a useful feature if you are " | |
1971 | $ echo "embedding perl in a program." | |
9b5c8979 JH |
1972 | $ bool_dflt = "n" |
1973 | $ if f$type(usevmsdebug) .nes. "" | |
1974 | $ then | |
1975 | $ if usevmsdebug .or. usevmsdebug .eqs. "define" then bool_dflt="y" | |
1976 | $ endif | |
1977 | $ rp = "Build a VMS-DEBUG version of Perl? [''bool_dflt'] " | |
3eeba6fb | 1978 | $ GOSUB myread |
9b5c8979 JH |
1979 | $ use_vmsdebug_perl = ans |
1980 | $ IF use_vmsdebug_perl | |
3eeba6fb | 1981 | $ THEN |
9b5c8979 | 1982 | $ usevmsdebug = "define" |
3eeba6fb CB |
1983 | $ macros = macros + """__DEBUG__=1""," |
1984 | $ ELSE | |
9b5c8979 | 1985 | $ usevmsdebug = "undef" |
3eeba6fb CB |
1986 | $ ENDIF |
1987 | $! | |
8c99d73e GS |
1988 | $! Ask if they want to build with DEBUGGING |
1989 | $ echo "" | |
7558ebc2 PP |
1990 | $ echo "Perl can be built with extra runtime debugging enabled. This" |
1991 | $ echo "enables the -D switch, at the cost of some performance. It" | |
1992 | $ echo "was mandatory on perl 5.005 and before on VMS, but is now" | |
1993 | $ echo "optional. If you do not generally use it you should probably" | |
1994 | $ echo "leave this off and gain a bit of extra speed." | |
6a0e5042 CB |
1995 | $ bool_dflt = "n" |
1996 | $ if f$type(DEBUGGING) .nes. "" | |
9b5c8979 | 1997 | $ then |
6a0e5042 | 1998 | $ if f$extract(0,1,f$edit(DEBUGGING,"collapse,upcase")).eqs."Y" .or. DEBUGGING .eqs. "define" then bool_dflt="y" |
9b5c8979 JH |
1999 | $ endif |
2000 | $ rp = "Build a DEBUGGING version of Perl? [''bool_dflt'] " | |
8c99d73e | 2001 | $ GOSUB myread |
9b5c8979 | 2002 | $ use_debugging_perl = ans |
8c99d73e | 2003 | $! |
79e63f36 | 2004 | $! |
97abc6ad | 2005 | $! Ask about threads, if appropriate |
414b89cc | 2006 | $ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" |
97abc6ad | 2007 | $ THEN |
146174a9 | 2008 | $ echo "" |
0e965207 JH |
2009 | $ echo "Perl can be built to take advantage of threads on some systems." |
2010 | $ echo "To do so, configure.com can be run with -""Dusethreads""." | |
2011 | $ echo "" | |
2012 | $ echo "Note that Perl built with threading support runs slightly slower" | |
2013 | $ echo "and uses more memory than plain Perl. The current implementation" | |
2014 | $ echo "is believed to be stable, but it is fairly new, and so should be" | |
2015 | $ echo "treated with caution." | |
2016 | $ echo "" | |
9b5c8979 JH |
2017 | $ bool_dflt = "n" |
2018 | $ if f$type(usethreads) .nes. "" | |
2019 | $ then | |
2020 | $ if usethreads .or. usethreads .eqs. "define" then bool_dflt="y" | |
2021 | $ endif | |
0e965207 JH |
2022 | $! Catch cases where user specified ithreads or 5005threads but |
2023 | $! forgot -Dusethreads | |
2024 | $ if f$type(useithreads) .nes. "" | |
2025 | $ then | |
2026 | $ if useithreads .or. useithreads .eqs. "define" then bool_dflt="y" | |
2027 | $ endif | |
2028 | $ if f$type(use5005threads) .nes. "" | |
2029 | $ then | |
2030 | $ if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="y" | |
2031 | $ endif | |
2032 | $ echo "If this doesn't make any sense to you, just accept the default '" + bool_dflt + "'." | |
2033 | $ rp = "Build a threading Perl? [''bool_dflt'] " | |
97abc6ad | 2034 | $ GOSUB myread |
9b5c8979 | 2035 | $ if ans |
97abc6ad | 2036 | $ THEN |
01aa1a42 | 2037 | $ usethreads = "define" |
97abc6ad | 2038 | $ use_threads="T" |
0e965207 JH |
2039 | $ ! Shall we do the 5.005-type threads, or IThreads? |
2040 | $ echo "Since release 5.6, Perl has had two different threading implementations," | |
2041 | $ echo "the newer interpreter-based version (ithreads) with one interpreter per" | |
2042 | $ echo "thread, and the older 5.005 version (5005threads)." | |
2043 | $ echo "The 5005threads version is effectively unmaintained and will probably be" | |
2044 | $ echo "removed in Perl 5.10, so there should be no need to build a Perl using it" | |
2045 | $ echo "unless needed for backwards compatibility with some existing 5.005threads" | |
2046 | $ echo "code." | |
7558ebc2 | 2047 | $ echo "" |
0e965207 | 2048 | $ bool_dflt = "y" |
9b5c8979 JH |
2049 | $ if f$type(useithreads) .nes. "" |
2050 | $ then | |
41cbbefa | 2051 | $ if useithreads .eqs. "undef" then bool_dflt="n" |
0e965207 JH |
2052 | $ endif |
2053 | $ if f$type(use5005threads) .nes. "" | |
2054 | $ then | |
2055 | $ if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="n" | |
9b5c8979 | 2056 | $ endif |
1c2e8cca | 2057 | $ rp = "Use the newer interpreter-based ithreads? [''bool_dflt'] " |
2974eb71 | 2058 | $ GOSUB myread |
9b5c8979 JH |
2059 | $ use_ithreads=ans |
2060 | $ if use_ithreads | |
498336ed | 2061 | $ THEN |
498336ed CB |
2062 | $ use_5005_threads="N" |
2063 | $ ELSE | |
498336ed CB |
2064 | $ use_5005_threads="Y" |
2065 | $ ENDIF | |
3f39e13a CB |
2066 | $ ! Are they on VMS 7.1 or greater? |
2067 | $ IF "''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.1" | |
429a5e67 DS |
2068 | $ THEN |
2069 | $ echo "" | |
3f39e13a CB |
2070 | $ echo "Threaded Perl can be linked to use system upcalls on your system. This feature" |
2071 | $ echo "allows the thread scheduler to be made aware of system events (such as I/O)" | |
2072 | $ echo "so as to prevent a single thread from blocking all the threads in a program," | |
2073 | $ echo "even on a single-processor machine." | |
2074 | $ bool_dflt = "y" | |
2075 | $ IF f$type(usethreadupcalls) .NES. "" | |
2076 | $ THEN | |
2077 | $ if .not. usethreadupcalls .or. usethreadupcalls .eqs. "undef" then bool_dflt="n" | |
2078 | $ ENDIF | |
2079 | $ rp = "Enable thread upcalls? [''bool_dflt'] " | |
429a5e67 | 2080 | $ gosub myread |
3f39e13a | 2081 | $ IF ans |
429a5e67 | 2082 | $ THEN |
3f39e13a CB |
2083 | $ thread_upcalls = "MTU=MTU=1" |
2084 | $ usethreadupcalls = "define" | |
2085 | $ ! Are they on alpha or itanium? | |
2b4b3ebb | 2086 | $ IF (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") .AND. ("''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.2") |
3f39e13a CB |
2087 | $ THEN |
2088 | $ echo "" | |
2089 | $ echo "Threaded Perl can be linked to use multiple kernel threads on your system." | |
db7bf729 | 2090 | $ echo "This feature allows multiple user threads to make use of multiple CPUs on" |
3f39e13a CB |
2091 | $ echo "a multi-processor machine." |
2092 | $ bool_dflt = "n" | |
2093 | $ IF f$type(usekernelthreads) .nes. "" | |
2094 | $ THEN | |
2095 | $ if usekernelthreads .or. usekernelthreads .eqs. "define" then bool_dflt="y" | |
2096 | $ ENDIF | |
2097 | $ rp = "Enable multiple kernel threads? [''bool_dflt'] " | |
2098 | $ gosub myread | |
2099 | $ IF ans | |
2100 | $ THEN | |
2101 | $ thread_kernel = "MTK=MTK=1" | |
2102 | $ usekernelthreads = "define" | |
db7bf729 | 2103 | $ ENDIF |
3f39e13a | 2104 | $ ENDIF |
429a5e67 DS |
2105 | $ ENDIF |
2106 | $ ENDIF | |
01aa1a42 CB |
2107 | $ ELSE |
2108 | $ usethreads = "undef" | |
97abc6ad HM |
2109 | $ ENDIF |
2110 | $ ENDIF | |
3f39e13a CB |
2111 | $ IF F$TYPE(usethreadupcalls) .EQS. "" THEN usethreadupcalls = "undef" |
2112 | $ IF F$TYPE(usekernelthreads) .EQS. "" THEN usekernelthreads = "undef" | |
01aa1a42 CB |
2113 | $! |
2114 | $! Ask if they want to build with MULTIPLICITY | |
2115 | $ echo "" | |
2116 | $ echo "Perl can be built so that multiple Perl interpreters can coexist" | |
2117 | $ echo "within the same Perl executable." | |
2118 | $ IF usethreads .OR. usethreads .EQS. "define" | |
2119 | $ THEN | |
2120 | $ echo "This multiple interpreter support is required for interpreter-based threads." | |
2121 | $ usemultiplicity="define" | |
2122 | $ ELSE | |
2123 | $ bool_dflt = "n" | |
2124 | $ if f$type(usemultiplicity) .nes. "" | |
2125 | $ then | |
2126 | $ if usemultiplicity .or. usemultiplicity .eqs. "define" then bool_dflt = "y" | |
2127 | $ endif | |
2128 | $ rp = "Build Perl for multiplicity? [''bool_dflt'] " | |
2129 | $ GOSUB myread | |
2130 | $ IF ans | |
2131 | $ THEN | |
2132 | $ usemultiplicity="define" | |
2133 | $ ELSE | |
2134 | $ usemultiplicity="undef" | |
2135 | $ ENDIF | |
2136 | $ ENDIF | |
2137 | $! | |
2138 | $! Ask if they want to build with 64-bit support | |
2139 | $ IF (F$ELEMENT(0, "-", archname).NES."VMS_VAX").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") | |
2140 | $ THEN | |
2141 | $ bool_dflt = "n" | |
2142 | $ IF F$TYPE(use64bitint) .NES. "" | |
2143 | $ THEN | |
2144 | $ IF use64bitint .OR. use64bitint .eqs. "define" THEN bool_dflt = "y" | |
2145 | $ ENDIF | |
2146 | $ echo "" | |
2147 | $ echo "You have natively 64-bit long integers." | |
2148 | $ echo "" | |
2149 | $ echo "Perl can be built to take advantage of 64-bit integer types" | |
2150 | $ echo "on some systems, To do so, Configure can be run with -Duse64bitint." | |
2151 | $ echo "Choosing this option will most probably introduce binary incompatibilities." | |
2152 | $ echo "" | |
2153 | $ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." | |
2154 | $ rp = "Try to use 64-bit integers, if available? [''bool_dflt'] " | |
2155 | $ GOSUB myread | |
2156 | $ use64bitint = ans | |
2157 | $! | |
2158 | $ bool_dflt = "n" | |
2159 | $ IF F$TYPE(use64bitall) .NES. "" | |
2160 | $ THEN | |
2161 | $ IF use64bitall .OR. use64bitall .eqs. "define" THEN bool_dflt = "y" | |
2162 | $ ENDIF | |
2163 | $ echo "" | |
2164 | $ echo "You may also choose to try maximal 64-bitness. It means using as much" | |
2165 | $ echo "64-bitness as possible on the platform. This in turn means even more" | |
2166 | $ echo "binary incompatibilities. On the other hand, your platform may not" | |
2167 | $ echo "have any more 64-bitness available than what you already have chosen." | |
2168 | $ echo "" | |
2169 | $ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." | |
2170 | $ rp = "Try to use maximal 64-bit support, if available? [''bool_dflt'] " | |
2171 | $ GOSUB myread | |
2172 | $ use64bitall=ans | |
2173 | $ IF use64bitall .AND. .NOT. use64bitint | |
2174 | $ THEN | |
2175 | $ echo "" | |
2176 | $ echo "Since you have chosen a maximally 64-bit build, I'm also turning on" | |
2177 | $ echo "the use of 64-bit integers." | |
2178 | $ use64bitint="Y" | |
2179 | $ ENDIF | |
2180 | $! | |
2181 | $ bool_dflt = use64bitall | |
2182 | $ IF F$TYPE(uselargefiles) .NES. "" | |
2183 | $ THEN | |
2184 | $ IF uselargefiles .OR. uselargefiles .eqs. "define" THEN bool_dflt = "y" | |
2185 | $ ENDIF | |
2186 | $ echo "" | |
2187 | $ echo "Perl can be built to understand large files (files larger than 2 gigabytes)" | |
2188 | $ echo "on some systems. To do so, Configure can be run with -Duselargefiles." | |
2189 | $ echo "" | |
2190 | $ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." | |
2191 | $ rp = "Try to understand large files, if available? [''bool_dflt'] " | |
2192 | $ GOSUB myread | |
2193 | $ uselargefiles=ans | |
2194 | $! | |
2195 | $ bool_dflt = "n" | |
2196 | $ IF F$TYPE(uselongdouble) .NES. "" | |
2197 | $ THEN | |
2198 | $ IF uselongdouble .OR. uselongdouble .eqs. "define" THEN bool_dflt = "y" | |
2199 | $ ENDIF | |
2200 | $ echo "" | |
2201 | $ echo "Perl can be built to take advantage of long doubles which" | |
2202 | $ echo "(if available) may give more accuracy and range for floating point numbers." | |
2203 | $ echo "" | |
2204 | $ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." | |
2205 | $ rp = "Try to use long doubles, if available? [''bool_dflt'] " | |
2206 | $ GOSUB myread | |
2207 | $ uselongdouble = ans | |
2208 | $! | |
2209 | $ ENDIF ! not VAX && >= 7.1 | |
2210 | $! | |
2211 | $ IF usesitecustomize .OR. usesitecustomize .eqs. "define" | |
2212 | $ THEN | |
2213 | $ usesitecustomize = "define" | |
2214 | $ ELSE | |
2215 | $ usesitecustomize = "undef" | |
2216 | $ ENDIF | |
2217 | $! | |
498336ed | 2218 | $! Case sensitive? |
7558ebc2 PP |
2219 | $ echo "" |
2220 | $ echo "By default, perl (and pretty much everything else on VMS) uses" | |
2221 | $ echo "case-insensitive linker symbols. Which is to say, when the" | |
2222 | $ echo "underlying C code makes a call to a routine called Perl_foo in" | |
2223 | $ echo "the source, the name in the object modules or shareable images" | |
2224 | $ echo "is really PERL_FOO. There are some packages that use an" | |
2225 | $ echo "embedded perl interpreter that instead require case-sensitive" | |
2226 | $ echo "linker symbols." | |
2227 | $ echo "" | |
2228 | $ echo "If you have no idea what this means, and do not have" | |
2229 | $ echo "any program requiring anything, choose the default." | |
9b5c8979 JH |
2230 | $ bool_dflt = be_case_sensitive |
2231 | $ if f$type(usecasesensitive) .nes. "" | |
2232 | $ then | |
2233 | $ if usecasesensitive .or. usecasesensitive .eqs. "define" then bool_dflt = "y" | |
2234 | $ if f$extract(0,1,f$edit(usecasesensitive,"collapse,upcase")).eqs."N" .or. usecasesensitive .eqs. "undef" then bool_dflt = "n" | |
2235 | $ endif | |
2236 | $ rp = "Build with case-sensitive symbols? [''bool_dflt'] " | |
7558ebc2 | 2237 | $ GOSUB myread |
9b5c8979 | 2238 | $ be_case_sensitive = ans |
1171624b CB |
2239 | $! |
2240 | $! Shortened symbols? | |
2241 | $ echo "" | |
2242 | $ echo "The VMS linker does not handle symbol names longer than 31 characters," | |
2243 | $ echo "but the compiler can shorten long symbols if requested." | |
2244 | $ bool_dflt = shorten_long_symbols | |
2245 | $ if f$type(useshortenedsymbols) .nes. "" | |
2246 | $ then | |
2247 | $ if useshortenedsymbols .or. useshortenedsymbols .eqs. "define" then bool_dflt = "y" | |
2248 | $ if f$extract(0,1,f$edit(useshortenedsymbols,"collapse,upcase")) .eqs. "N" .or. useshortenedsymbols .eqs. "undef" then bool_dflt = "n" | |
2249 | $ endif | |
2250 | $ rp = "Build with long symbols shortened? [''bool_dflt'] " | |
2251 | $ GOSUB myread | |
2252 | $ shorten_long_symbols = ans | |
2b4b3ebb | 2253 | $ IF F$ELEMENT(0, "-", archname) .NES. "VMS_VAX" |
1171624b | 2254 | $ THEN |
498336ed | 2255 | $! IEEE math? |
7558ebc2 | 2256 | $ echo "" |
3ad67d07 CB |
2257 | $ echo "Perl normally uses IEEE format (T_FLOAT) floating point numbers on" |
2258 | $ echo "Alpha and Itanium, but if you need G_FLOAT for binary compatibility" | |
24866caa CB |
2259 | $ echo "with an external library or existing data, you may wish to disable" |
2260 | $ echo "the IEEE math option." | |
9b5c8979 JH |
2261 | $ bool_dflt = use_ieee_math |
2262 | $ if f$type(useieee) .nes. "" | |
2263 | $ then | |
17d0565f CB |
2264 | $ if useieee .or. useieee .eqs. "define" |
2265 | $ then | |
2266 | $ bool_dflt="y" | |
2267 | $ else | |
2268 | $ bool_dflt="n" | |
2269 | $ endif | |
9b5c8979 JH |
2270 | $ endif |
2271 | $ rp = "Use IEEE math? [''bool_dflt'] " | |
7558ebc2 | 2272 | $ GOSUB myread |
9b5c8979 | 2273 | $ use_ieee_math = ans |
bb6f4497 | 2274 | $ ELSE |
bb6f4497 | 2275 | $ use_ieee_math = "n" |
7558ebc2 | 2276 | $ ENDIF |
9b5c8979 JH |
2277 | $ useieee = "undef" |
2278 | $ usecasesensitive = "undef" | |
1171624b | 2279 | $ useshortenedsymbols = "undef" |
9b5c8979 JH |
2280 | $ if (use_ieee_math) then useieee = "define" |
2281 | $ if (be_case_sensitive) then usecasesensitive = "define" | |
1171624b | 2282 | $ if (shorten_long_symbols) then useshortenedsymbols = "define" |
4adb8845 CB |
2283 | $! Unlink all versions? |
2284 | $ echo "" | |
2285 | $ echo "By default, Perl's unlink() provides VMS-like behavior and only" | |
2286 | $ echo "deletes the latest version of a file. Enabling this option builds" | |
2287 | $ echo "Perl so that unlink() deletes all versions of a file." | |
2288 | $ bool_dflt = unlink_all_versions | |
2289 | $ if f$type(unlink_all_versions) .nes. "" | |
2290 | $ then | |
2291 | $ if unlink_all_versions .or. unlink_all_versions .eqs. "define" | |
2292 | $ then | |
2293 | $ bool_dflt="y" | |
2294 | $ else | |
2295 | $ bool_dflt="n" | |
2296 | $ endif | |
2297 | $ endif | |
2298 | $ rp = "Make unlink() delete all versions of a file? [''bool_dflt'] " | |
2299 | $ GOSUB myread | |
2300 | $ unlink_all_versions = ans | |
2301 | $ IF unlink_all_versions | |
2302 | $ THEN | |
2303 | $ d_unlink_all_versions = "define" | |
2304 | $ ELSE | |
2305 | $ d_unlink_all_versions = "undef" | |
2306 | $ ENDIF | |
e9df20f7 | 2307 | $! |
498336ed CB |
2308 | $! CC Flags |
2309 | $ echo "" | |
7558ebc2 PP |
2310 | $ echo "Your compiler may want other flags. For this question you should include" |
2311 | $ echo "/INCLUDE=(whatever) and /DEFINE=(whatever), flags and any other flags" | |
2312 | $ echo "or qualifiers used by the compiler." | |
2313 | $ echo "" | |
2314 | $ echo "To use no flags, specify the word ""none""." | |
498336ed | 2315 | $ dflt = user_c_flags |
7558ebc2 PP |
2316 | $ rp = "Any additional cc flags? [''dflt'] " |
2317 | $ GOSUB myread | |
7558ebc2 | 2318 | $ IF ans .EQS. "none" THEN ans = "" |
498336ed | 2319 | $ user_c_flags = "''ans'" |
97abc6ad | 2320 | $! |
cc391245 CB |
2321 | $! Ask whether they want to use secure logical translation when tainting |
2322 | $ echo "" | |
2323 | $ echo "As Perl starts up, it checks several logical names, such as" | |
2324 | $ echo "PERL5LIB and PERL_ENV_TABLES, which allow you to modify aspects" | |
2325 | $ echo "of its behavior. For additional security, you may limit this" | |
2326 | $ echo "process to executive- and kernel-mode translation when tainting" | |
2327 | $ echo "is enabled. In this case, logical names normally skipped when" | |
2328 | $ echo "tainting is enabled (e.g. PERL5OPTS) are translated as well." | |
2329 | $ echo "If you do not choose to do this, the usual order of access modes" | |
2330 | $ echo "is used for logical name translation." | |
2331 | $ echo "" | |
2332 | $ echo "This restriction does not apply to the %ENV hash or to implicit" | |
2333 | $ echo "logical name translation during parsing of file specifications;" | |
2334 | $ echo "these always use the normal sequence of access modes for logical" | |
2335 | $ echo "name translation." | |
9b5c8979 JH |
2336 | $ bool_dflt = "y" |
2337 | $ if f$type(usesecurelog) .nes. "" | |
2338 | $ then | |
2339 | $ if f$extract(0,1,f$edit(usesecurelog,"collapse,upcase")).eqs."N" .or. usesecurelog .eqs. "undef" then bool_dflt = "n" | |
2340 | $ endif | |
2341 | $ rp = "Use secure logical name translation? [''bool_dflt'] " | |
cc391245 | 2342 | $ GOSUB myread |
9b5c8979 JH |
2343 | $ d_secintgenv = ans |
2344 | $ usesecurelog = "undef" | |
2345 | $ if (d_secintgenv) then usesecurelog = "define" | |
cc391245 CB |
2346 | $! |
2347 | $! Ask whether they want to default filetypes | |
2348 | $ echo "" | |
2349 | $ echo "When you pass the name of a program to Perl on the command line," | |
2350 | $ echo "it generally doesn't supply any defaults unless the -S command" | |
2351 | $ echo "line switch is specified. In keeping with the VMS tradition of" | |
2352 | $ echo "default file types, however, you can configure Perl to try default" | |
2353 | $ echo "file types of nothing, .pl, and .com, in that order (e.g. typing" | |
2354 | $ echo """$ perl foo"" would cause Perl to look for foo., then foo.pl, and" | |
2355 | $ echo "finally foo.com)." | |
8c99d73e | 2356 | $ echo "" |
7558ebc2 PP |
2357 | $ echo "This is currently broken in some configurations. Only enable it if" |
2358 | $ echo "you know what you are doing." | |
9b5c8979 JH |
2359 | $ bool_dflt = "n" |
2360 | $ if f$type(usedefaulttypes) .nes. "" | |
2361 | $ then | |
2362 | $ if usedefaulttypes .or. usedefaulttypes .eqs. "define" then bool_dflt="y" | |
2363 | $ endif | |
2364 | $ rp = "Always use default file types? [''bool_dflt'] " | |
cc391245 | 2365 | $ GOSUB myread |
9b5c8979 JH |
2366 | $ d_alwdeftype = ans |
2367 | $ usedefaulttypes = "undef" | |
2368 | $ if (d_alwdeftype) then usedefaulttypes = "define" | |
2369 | $! | |
4581ada3 CB |
2370 | $ dflt = archname |
2371 | $ rp = "What is your architecture name? [''archname'] " | |
2372 | $ GOSUB myread | |
2373 | $ IF ans.NES."" | |
2374 | $ THEN | |
2375 | $ ans = F$EDIT(ans,"COLLAPSE, UPCASE") | |
2376 | $ IF (ans.NES.archname) !.AND.knowitall | |
2377 | $ THEN | |
2378 | $ echo4 "I'll go with ''archname' anyway..." | |
2379 | $ ENDIF | |
2380 | $ ENDIF | |
35182409 CB |
2381 | $! |
2382 | $ IF usethreads .OR. usethreads .EQS. "define" | |
2383 | $ THEN | |
2384 | $ echo4 "Threads selected." | |
2385 | $ IF F$LOCATE("-thread", archname) .EQ. F$LENGTH(archname) | |
2386 | $ THEN | |
2387 | $ archname = "''archname'-thread" | |
2388 | $ echo4 "...setting architecture name to ''archname'." | |
2389 | $ ELSE | |
2390 | $ echo4 "...and architecture name already has -thread." | |
2391 | $ ENDIF | |
2392 | $ ENDIF | |
2393 | $! | |
2394 | $ IF usemultiplicity .OR. usemultiplicity .EQS. "define" | |
2395 | $ THEN | |
2396 | $ echo4 "Multiplicity selected." | |
2397 | $ IF F$LOCATE("-multi", archname) .EQ. F$LENGTH(archname) | |
2398 | $ THEN | |
2399 | $ archname = "''archname'-multi" | |
2400 | $ echo4 "...setting architecture name to ''archname'." | |
2401 | $ ELSE | |
2402 | $ echo4 "...and architecture name already has -multi." | |
2403 | $ ENDIF | |
2404 | $ ENDIF | |
2405 | $! | |
2406 | $ IF uselongdouble .OR. uselongdouble .EQS. "define" | |
2407 | $ THEN | |
2408 | $ echo4 "Long doubles selected." | |
2409 | $ IF F$LOCATE("-ld", archname) .EQ. F$LENGTH(archname) | |
2410 | $ THEN | |
2411 | $ archname = "''archname'-ld" | |
2412 | $ echo4 "...setting architecture name to ''archname'." | |
2413 | $ ELSE | |
2414 | $ echo4 "...and architecture name already has -ld." | |
2415 | $ ENDIF | |
2416 | $ ENDIF | |
2417 | $! | |
4581ada3 CB |
2418 | $ bool_dflt = "n" |
2419 | $ vms_prefix = "perl_root" | |
2420 | $ vms_prefixup = F$EDIT(vms_prefix,"UPCASE") | |
2421 | $ rp = "Will you be sharing your ''vms_prefixup' with ''otherarch'? [''bool_dflt'] " | |
2422 | $ GOSUB myread | |
2423 | $ IF .NOT. ans | |
2424 | $ THEN | |
2425 | $ sharedperl = "N" | |
2426 | $ ELSE | |
2427 | $ sharedperl = "Y" | |
2428 | $ IF (F$ELEMENT(0, "-", archname).EQS."VMS_AXP") | |
2429 | $ THEN | |
2430 | $ macros = macros + """AXE=1""," | |
2431 | $ ENDIF | |
2432 | $ IF (F$ELEMENT(0, "-", archname).EQS."VMS_IA64") | |
2433 | $ THEN | |
2434 | $ macros = macros + """IXE=1""," | |
2435 | $ ENDIF | |
2436 | $ ENDIF | |
2437 | $! | |
2438 | $!: is AFS running? !sfn | |
2439 | $!: decide how portable to be. Allow command line overrides. !sfn | |
2440 | $!: set up shell script to do ~ expansion !sfn | |
2441 | $!: expand filename !sfn | |
2442 | $!: now set up to get a file name !sfn | |
2443 | $! | |
2444 | $ IF F$TYPE(prefix) .EQS. "" | |
2445 | $ THEN | |
2446 | $ prefix = F$ENVIRONMENT("DEFAULT") - ".UU]" + "]" | |
2447 | $ prefix = F$PARSE(prefix,,,,"NO_CONCEAL") - "][" - "000000." - ".000000" - ".;" | |
2448 | $ prefixbase = prefix - "]" | |
2449 | $! Add _ROOT to make install PERL_ROOT differ from build directory. | |
2450 | $ prefix = prefixbase + "_ROOT.]" | |
2451 | $ ENDIF | |
2452 | $ ! more redundant scrubbing of values | |
2453 | $ prefix = prefix - "000000." | |
2454 | $ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" + ".]" | |
2455 | $ src = prefix | |
2456 | $!: determine root of directory hierarchy where package will be installed. | |
2457 | $ dflt = prefix | |
2458 | $ IF .NOT.silent | |
2459 | $ THEN | |
2460 | $ echo "" | |
2461 | $ echo "By default, ''package' will be installed in ''dflt', pod" | |
2462 | $ echo "pages under ''prefixbase'.LIB.POD], etc..., i.e. with ''dflt' as prefix for" | |
2463 | $ echo "all installation directories." | |
2464 | $ echo "On ''osname' the prefix is used to DEFINE the ''vms_prefixup' prior to installation" | |
2465 | $ echo "as well as during subsequent use of ''package' via ''packageup'_SETUP.COM." | |
2466 | $ ENDIF | |
2467 | $ rp = "Installation prefix to use (for ''vms_prefixup')? [ ''dflt' ] " | |
2468 | $ GOSUB myread | |
2469 | $ IF ans.NES."" | |
2470 | $ THEN | |
2471 | $ prefix = ans | |
2472 | $ IF F$LOCATE(".]",ans) .EQ. F$LENGTH(ans) THEN prefix = prefix - "]" + ".]" | |
2473 | $ ELSE | |
2474 | $ prefix = dflt | |
2475 | $ ENDIF | |
2476 | $ perl_root = prefix | |
2477 | $! | |
2478 | $! Check here for pre-existing PERL_ROOT. | |
2479 | $! -> ask if removal desired. | |
2480 | $! Check here for writability of requested PERL_ROOT if it is not the default (cwd). | |
2481 | $! -> recommend letting PERL_ROOT be PERL_SRC if requested PERL_ROOT is not writable. | |
2482 | $! | |
2483 | $ tmp = perl_root - ".]" + "]" | |
2484 | $ dflt = f$parse(tmp,,,,) | |
2485 | $ IF dflt .eqs. "" | |
2486 | $ THEN | |
2487 | $ echo4 "''tmp' does not yet exist." | |
2488 | $! create/directory 'tmp' | |
2489 | $ ELSE | |
2490 | $ echo4 "''tmp' already exists." | |
2491 | $ ENDIF | |
2492 | $! | |
2493 | $ vms_skip_install = "true" | |
2494 | $ bool_dflt = "y" | |
2495 | $! echo "" | |
2496 | $ rp = "Skip the remaining """"where install"""" questions? [''bool_dflt'] " | |
2497 | $ GOSUB myread | |
2498 | $ IF (.NOT.ans) THEN vms_skip_install = "false" | |
2499 | $ IF (.NOT.vms_skip_install) | |
2500 | $ THEN | |
2501 | $! | |
2502 | $!: set the prefixit variable, to compute a suitable default value | |
2503 | $! | |
2504 | $!: determine where private library files go | |
2505 | $!: Usual default is /usr/local/lib/perl5. Also allow things like | |
2506 | $!: /opt/perl/lib, since /opt/perl/lib/perl5 would be redundant. | |
2507 | $ IF .NOT.silent | |
2508 | $ THEN | |
2509 | $ TYPE SYS$INPUT: | |
2510 | $ DECK | |
2511 | ||
2512 | There are some auxiliary files for perl5 that need to be put into a | |
2513 | private library directory that is accessible by everyone. | |
2514 | $ EOD | |
2515 | $ ENDIF | |
2516 | $ IF F$TYPE(privlib) .NES. "" | |
2517 | $ THEN dflt = privlib | |
2518 | $ ELSE dflt = "''vms_prefix':[lib]" | |
2519 | $ ENDIF | |
2520 | $ rp = "Pathname where the private library files will reside? " | |
2521 | $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") | |
2522 | $ GOSUB myread | |
2523 | $ privlib = ans | |
2524 | $! | |
2525 | $ ENDIF !%Config-I-VMS, skip remaining "where install" questions | |
2526 | $! | |
2527 | $ IF F$TYPE(perl_symbol) .EQS. "" THEN perl_symbol := true | |
2528 | $ IF F$TYPE(perl_verb) .EQS. "" THEN perl_verb = "" | |
2529 | $ IF perl_symbol | |
2530 | $ THEN bool_dflt = "y" | |
2531 | $ ELSE bool_dflt = "n" | |
2532 | $ ENDIF | |
2533 | $ IF .NOT.silent | |
2534 | $ THEN | |
2535 | $ echo "" | |
2536 | $ echo "You may choose to write ''packageup'_SETUP.COM to assign a foreign" | |
2537 | $ echo "symbol to invoke ''package', which is the usual method." | |
2538 | $ echO "If you do not do so then you would need a DCL command verb at the" | |
2539 | $ echo "process or the system wide level." | |
2540 | $ ENDIF | |
2541 | $ rp = "Invoke perl as a global symbol foreign command? [''bool_dflt'] " | |
2542 | $ GOSUB myread | |
2543 | $ IF (.NOT.ans) THEN perl_symbol = "false" | |
2544 | $! | |
2545 | $ IF (.NOT.perl_symbol) | |
2546 | $ THEN | |
2547 | $ IF perl_verb .EQS. "DCLTABLES" | |
2548 | $ THEN bool_dflt = "n" | |
2549 | $ ELSE bool_dflt = "y" | |
2550 | $ ENDIF | |
2551 | $ IF .NOT.silent | |
2552 | $ THEN | |
2553 | $ echo "" | |
2554 | $ echo "Since you won't be using a symbol you must choose to put the ''packageup'" | |
2555 | $ echo "verb in a per-process table or in the system wide DCLTABLES (which" | |
2556 | $ echo "would require write privilege)." | |
2557 | $ ENDIF | |
2558 | $ rp = "Invoke perl as a per process command verb? [ ''bool_dflt' ] " | |
2559 | $ GOSUB myread | |
2560 | $ IF (.NOT.ans) | |
2561 | $ THEN perl_verb = "DCLTABLES" | |
2562 | $ ELSE perl_verb = "PROCESS" | |
2563 | $ ENDIF | |
2564 | $ ENDIF ! (.NOT.perl_symbol) | |
2565 | $! | |
2566 | $ IF (.NOT.vms_skip_install) | |
2567 | $ THEN | |
2568 | $!: set the prefixup variable, to restore leading tilde escape !sfn | |
2569 | $! | |
2570 | $!: determine where public architecture dependent libraries go | |
2571 | $ IF (.NOT.silent) | |
2572 | $ THEN | |
2573 | $ echo "" | |
2574 | $ echo "''package' contains architecture-dependent library files. If you are" | |
2575 | $ ENDIF | |
2576 | $ IF (.NOT.silent) | |
2577 | $ THEN | |
2578 | $ TYPE SYS$INPUT: | |
2579 | $ DECK | |
2580 | sharing libraries in a heterogeneous environment, you might store | |
2581 | these files in a separate location. Otherwise, you can just include | |
2582 | them with the rest of the public library files. | |
2583 | $ EOD | |
2584 | $ ENDIF | |
2585 | $ IF F$TYPE(archlib) .NES. "" | |
2586 | $ THEN dflt = archlib | |
2587 | $ ELSE dflt = privlib - "]" + "." + archname + "." + version + "]" | |
2588 | $ ENDIF | |
2589 | $ rp = "Where do you want to put the public architecture-dependent libraries? " | |
2590 | $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") | |
2591 | $ GOSUB myread | |
2592 | $ archlib = ans | |
2593 | $! | |
2594 | $ ENDIF !%Config-I-VMS, skip "where install" questions | |
2595 | $ IF (.NOT.vms_skip_install) | |
2596 | $ THEN | |
2597 | $!: it so happens the Eunice I know will not run shell scripts in Unix format | |
2598 | $! | |
2599 | $!: see if setuid scripts can be secure !sfn | |
2600 | $!: now see if they want to do setuid emulation !sfn | |
2601 | $! | |
2602 | $!: determine where site specific libraries go. | |
2603 | $ IF .NOT.silent | |
2604 | $ THEN | |
2605 | $ TYPE SYS$INPUT: | |
2606 | $ DECK | |
2607 | ||
2608 | The installation process will also create a directory for | |
2609 | site-specific extensions and modules. Some users find it convenient | |
2610 | to place all local files in this directory rather than in the main | |
2611 | distribution directory. | |
2612 | $ EOD | |
2613 | $ ENDIF | |
2614 | $ IF F$TYPE(sitelib) .NES. "" | |
2615 | $ THEN dflt = sitelib | |
2616 | $ ELSE dflt = privlib - "]" + ".SITE_PERL]" | |
2617 | $ ENDIF | |
2618 | $ rp = "Pathname for the site-specific library files? " | |
2619 | $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") | |
2620 | $ GOSUB myread | |
2621 | $ sitelib = ans | |
2622 | $! | |
2623 | $!: determine where site specific architecture-dependent libraries go. | |
2624 | $ IF .NOT.silent | |
2625 | $ THEN TYPE SYS$INPUT: | |
2626 | $ DECK | |
2627 | ||
2628 | The installation process will also create a directory for | |
2629 | architecture-dependent site-specific extensions and modules. | |
2630 | $ EOD | |
2631 | $ ENDIF | |
2632 | $ IF F$TYPE(sitearch) .NES. "" | |
2633 | $ THEN dflt = sitearch | |
2634 | $ ELSE dflt = sitelib - "]" + "." + archname + "]" | |
2635 | $ ENDIF | |
2636 | $ rp = "Pathname for the site-specific architecture-dependent library files? " | |
2637 | $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") | |
2638 | $ GOSUB myread | |
2639 | $ sitearch = ans | |
2640 | $! | |
2641 | $!: determine where old public architecture dependent libraries might be | |
2642 | $! | |
2643 | $!: determine where public executables go | |
2644 | $ IF F$TYPE(bin) .NES. "" | |
2645 | $ THEN dflt = bin | |
2646 | $! ELSE dflt = prefix - ".]" + ".BIN]" | |
2647 | $ ELSE dflt = "/''vms_prefix'" | |
2648 | $ ENDIF | |
2649 | $ rp = "Pathname where the public executables will reside? " | |
2650 | $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") | |
2651 | $ GOSUB myread | |
2652 | $ bin = ans | |
2653 | $! | |
2654 | $!: determine where add-on public executables go | |
2655 | $ IF F$TYPE(sitebin) .NES. "" | |
2656 | $ THEN dflt = sitebin | |
2657 | $ ELSE dflt = "''vms_prefix':[bin.''archname']" | |
2658 | $ ENDIF | |
2659 | $ rp = "Pathname where the add-on public executables should be installed? " | |
2660 | $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") | |
2661 | $ GOSUB myread | |
2662 | $ sitebin = ans | |
2663 | $! | |
2664 | $!: determine where manual pages are on this system | |
2665 | $!: What suffix to use on installed man pages | |
2666 | $!: see if we can have long filenames | |
2667 | $!: determine where library module manual pages go | |
2668 | $!: What suffix to use on installed man pages | |
2669 | $!: see what memory models we can support | |
2670 | $! | |
2671 | $ ELSE ! skipping "where install" questions, we must set some symbols | |
2672 | $ IF F$TYPE(archlib).EQS."" THEN - | |
2673 | archlib="''vms_prefix':[lib.''archname'.''version']" | |
2674 | $ IF F$TYPE(bin) .EQS. "" THEN - | |
2675 | bin="/''vms_prefix'" | |
2676 | $ IF F$TYPE(privlib) .EQS. "" THEN - | |
2677 | privlib ="''vms_prefix':[lib]" | |
2678 | $ IF F$TYPE(sitearch) .EQS. "" THEN - | |
2679 | sitearch="''vms_prefix':[lib.site_perl.''archname']" | |
2680 | $ IF F$TYPE(sitelib) .EQS. "" THEN - | |
2681 | sitelib ="''vms_prefix':[lib.site_perl]" | |
2682 | $ IF F$TYPE(sitebin) .EQS. "" THEN - | |
2683 | sitebin="''vms_prefix':[bin.''archname']" | |
2684 | $ ENDIF !%Config-I-VMS, skip "where install" questions | |
2685 | $! | |
2686 | $! These derived locations can be set whether we've opted to | |
2687 | $! skip the where install questions or not. | |
2688 | $! | |
2689 | $ IF F$TYPE(archlibexp) .EQS. "" THEN - | |
2690 | archlibexp="''vms_prefix':[lib.''archname'.''version']" | |
2691 | $ IF F$TYPE(binexp) .EQS. "" THEN - | |
2692 | binexp ="''vms_prefix':[000000]" | |
2693 | $ IF F$TYPE(builddir) .EQS. "" THEN - | |
2694 | builddir ="''vms_prefix':[000000]" | |
2695 | $ IF F$TYPE(installarchlib) .EQS. "" THEN - | |
2696 | installarchlib="''vms_prefix':[lib.''archname'.''version']" | |
2697 | $ IF F$TYPE(installbin) .EQS. "" THEN - | |
2698 | installbin ="''vms_prefix':[000000]" | |
2699 | $ IF F$TYPE(installscript) .EQS. "" THEN - | |
2700 | installscript ="''vms_prefix':[utils]" | |
2701 | $ IF F$TYPE(installman1dir) .EQS. "" THEN - | |
2702 | installman1dir ="''vms_prefix':[man.man1]" | |
2703 | $ IF F$TYPE(installman3dir) .EQS. "" THEN - | |
2704 | installman3dir ="''vms_prefix':[man.man3]" | |
2705 | $ IF F$TYPE(installprivlib) .EQS. "" THEN - | |
2706 | installprivlib ="''vms_prefix':[lib]" | |
2707 | $ IF F$TYPE(installsitearch) .EQS. "" THEN - | |
2708 | installsitearch="''vms_prefix':[lib.site_perl.''archname']" | |
2709 | $ IF F$TYPE(installsitelib) .EQS. "" THEN - | |
2710 | installsitelib ="''vms_prefix':[lib.site_perl]" | |
2711 | $ IF F$TYPE(oldarchlib) .EQS. "" THEN - | |
2712 | oldarchlib="''vms_prefix':[lib.''archname']" | |
2713 | $ IF F$TYPE(oldarchlibexp) .EQS. "" THEN - | |
2714 | oldarchlibexp="''vms_prefix':[lib.''archname']" | |
2715 | $ IF F$TYPE(privlibexp) .EQS. "" THEN - | |
2716 | privlibexp ="''vms_prefix':[lib]" | |
2717 | $ IF F$TYPE(scriptdir) .EQS. "" THEN - | |
2718 | scriptdir ="''vms_prefix':[utils]" | |
2719 | $ IF F$TYPE(sitearchexp) .EQS. "" THEN - | |
2720 | sitearchexp ="''vms_prefix':[lib.site_perl.''archname']" | |
2721 | $ IF F$TYPE(sitelib_stem) .EQS. "" THEN - | |
2722 | sitelib_stem ="''vms_prefix':[lib.site_perl]" | |
2723 | $ IF F$TYPE(sitelibexp) .EQS. "" THEN - | |
2724 | sitelibexp ="''vms_prefix':[lib.site_perl]" | |
2725 | $! | |
dc8c9d5a CB |
2726 | $! determine whether to use malloc wrapping |
2727 | $ echo "" | |
dc9da78b | 2728 | $ bool_dflt = "y" |
dc8c9d5a CB |
2729 | $ IF F$TYPE(usemallocwrap) .nes. "" |
2730 | $ then | |
dc9da78b | 2731 | $ if .NOT. usemallocwrap .or. usemallocwrap .eqs. "undef" then bool_dflt = "n" |
dc8c9d5a CB |
2732 | $ endif |
2733 | $ rp = "Do you wish to wrap malloc calls to protect against potential overflows? [''bool_dflt'] " | |
2734 | $ GOSUB myread | |
2735 | $ IF ans | |
2736 | $ THEN usemallocwrap = "define" | |
2737 | $ ELSE usemallocwrap = "undef" | |
2738 | $ ENDIF | |
2739 | $! | |
97abc6ad HM |
2740 | $! Ask if they want to use perl's memory allocator |
2741 | $ echo "" | |
7558ebc2 PP |
2742 | $ echo "Perl has a built-in memory allocator that is tuned for normal" |
2743 | $ echo "memory usage. It is oftentimes better than the standard system" | |
2744 | $ echo "memory allocator. It also has the advantage of providing memory" | |
2745 | $ echo "allocation statistics, if you choose to enable them." | |
9b5c8979 JH |
2746 | $ bool_dflt = "n" |
2747 | $ IF F$TYPE(usemymalloc) .nes. "" | |
2748 | $ then | |
2749 | $ if usemymalloc .or. usemymalloc .eqs. "define" then bool_dflt = "y" | |
2750 | $ endif | |
2751 | $ rp = "Do you wish to attempt to use the malloc that comes with ''package'? [''bool_dflt'] " | |
97abc6ad | 2752 | $ GOSUB myread |
9b5c8979 | 2753 | $ mymalloc = ans |
570bb66e | 2754 | $ IF mymalloc |
429a5e67 | 2755 | $ THEN |
570bb66e | 2756 | $ IF use_debugging_perl |
429a5e67 DS |
2757 | $ THEN |
2758 | $ echo "" | |
7558ebc2 PP |
2759 | $ echo "Perl can keep statistics on memory usage if you choose to use" |
2760 | $ echo "them. This is useful for debugging, but does have some" | |
2761 | $ echo "performance overhead." | |
9b5c8979 JH |
2762 | $ bool_dflt = "n" |
2763 | $ rp = "Do you want the debugging memory allocator? [''bool_dflt'] " | |
429a5e67 | 2764 | $ gosub myread |
9b5c8979 | 2765 | $ use_debugmalloc = ans |
429a5e67 DS |
2766 | $ ENDIF |
2767 | $ ! Check which memory allocator we want | |
2768 | $ echo "" | |
7558ebc2 PP |
2769 | $ echo "There are currently three different memory allocators: the" |
2770 | $ echo "default (which is a pretty good general-purpose memory manager)," | |
2771 | $ echo "the TWO_POT allocator (which is optimized to save memory for" | |
2772 | $ echo "larger allocations), and PACK_MALLOC (which is optimized to save" | |
2773 | $ echo "memory for smaller allocations). They're all good, but if your" | |
2774 | $ echo "usage tends towards larger chunks use TWO_POT, otherwise use" | |
429a5e67 | 2775 | $ echo "PACK_MALLOC." |
429a5e67 DS |
2776 | $ dflt = "DEFAULT" |
2777 | $ rp = "Memory allocator (DEFAULT, TWO_POT, PACK_MALLOC) [''dflt'] " | |
2778 | $ GOSUB myread | |
429a5e67 DS |
2779 | $ if ans.eqs."TWO_POT" then use_two_pot_malloc = "Y" |
2780 | $ if ans.eqs."PACK_MALLOC" then use_pack_malloc = "Y" | |
2781 | $ ENDIF | |
97abc6ad | 2782 | $! |
a3bd614a PP |
2783 | $ known_extensions = "" |
2784 | $ xxx = "" | |
2785 | $ OPEN/READ CONFIG 'manifestfound' | |
2786 | $ext_loop: | |
2787 | $ READ/END_OF_FILE=end_ext/ERROR=end_ext CONFIG line | |
0189e3e0 | 2788 | $ IF F$EXTRACT(0,4,line) .NES. "ext/" .AND. - |
a193a2db | 2789 | F$EXTRACT(0,5,line) .NES. "dist/".AND. - |
0189e3e0 | 2790 | F$EXTRACT(0,5,line) .NES. "cpan/" THEN goto ext_loop |
a3bd614a PP |
2791 | $ line = F$EDIT(line,"COMPRESS") |
2792 | $ line = F$ELEMENT(0," ",line) | |
619cec6d CB |
2793 | $ IF F$EXTRACT(0,4,line) .EQS. "ext/" |
2794 | $ THEN | |
2795 | $ xxx = F$ELEMENT(1,"/",line) | |
2796 | $ IF F$SEARCH("[-.ext]''xxx'.DIR;1") .EQS. "" THEN GOTO ext_loop | |
2797 | $ ENDIF | |
a193a2db NC |
2798 | $ IF F$EXTRACT(0,5,line) .EQS. "dist/" |
2799 | $ THEN | |
2800 | $ xxx = F$ELEMENT(1,"/",line) | |
2801 | $ IF F$SEARCH("[-.dist]''xxx'.DIR;1") .EQS. "" THEN GOTO ext_loop | |
2802 | $ ENDIF | |
0189e3e0 NC |
2803 | $ IF F$EXTRACT(0,5,line) .EQS. "cpan/" |
2804 | $ THEN | |
2805 | $ xxx = F$ELEMENT(1,"/",line) | |
2806 | $ IF F$SEARCH("[-.cpan]''xxx'.DIR;1") .EQS. "" THEN GOTO ext_loop | |
2807 | $ ENDIF | |
a3bd614a | 2808 | $ IF xxx .EQS. "DynaLoader" THEN goto ext_loop ! omit |
1f29050e NC |
2809 | $! |
2810 | $! (extspec = xxx) =~ tr!-!/! | |
2811 | $ extspec = "" | |
2812 | $ idx = 0 | |
d1ce36d7 | 2813 | $ extension_dir_name = xxx |
1f29050e NC |
2814 | $ replace_dash_with_slash: |
2815 | $ before = F$ELEMENT(idx, "-", xxx) | |
2816 | $ IF before .EQS. "-" THEN goto end_replace_dash_with_slash | |
2817 | $ IF extspec .NES. "" | |
2818 | $ THEN | |
2819 | $ extspec = extspec + "/" | |
2820 | $ ENDIF | |
2821 | $ extspec = extspec + before | |
2822 | $ idx = idx + 1 | |
2823 | $ goto replace_dash_with_slash | |
2824 | $ | |
2825 | $ end_replace_dash_with_slash: | |
2826 | $ | |
619cec6d | 2827 | $ xxx = known_extensions |
d1ce36d7 CB |
2828 | $ gosub may_already_have_extension |
2829 | $ IF $STATUS .EQ. 1 | |
2830 | $ THEN | |
2831 | $ xxx = nonxs_ext | |
2832 | $ gosub may_already_have_extension | |
2833 | $ ENDIF | |
bd2aeadf CB |
2834 | $ IF $STATUS .EQ. 1 |
2835 | $ THEN | |
2836 | $ xxx = nonxs_ext2 | |
2837 | $ gosub may_already_have_extension | |
2838 | $ ENDIF | |
d1ce36d7 CB |
2839 | $ IF $STATUS .NE. 1 THEN goto ext_loop |
2840 | $ goto found_new_extension | |
2841 | $! | |
619cec6d CB |
2842 | $ may_already_have_extension: |
2843 | $ idx = F$LOCATE(extspec, xxx) | |
2844 | $ extlen = F$LENGTH(xxx) | |
bd2aeadf CB |
2845 | $ IF idx .EQ. extlen THEN return 1 ! didn't find it |
2846 | $! But "Flirble" may just be part of "Acme-Flirble". This is not | |
2847 | $! bullet-proof because we may only be looking at one chunk of the | |
2848 | $! existing extension list. | |
619cec6d CB |
2849 | $ IF idx .GT. 0 .AND. F$EXTRACT(idx - 1, 1, xxx) .NES. " " |
2850 | $ THEN | |
2851 | $ xxx = F$EXTRACT(idx + F$LENGTH(extspec) + 1, extlen, xxx) | |
2852 | $ GOTO may_already_have_extension | |
2853 | $ ENDIF | |
2854 | $! But "Foo" may just be part of "Foo-Bar" so check for equality. | |
2855 | $ xxx = F$EXTRACT(idx, extlen - idx, xxx) | |
2856 | $ IF F$ELEMENT(0, " ", xxx) .EQS. extspec | |
2857 | $ THEN | |
d1ce36d7 | 2858 | $ RETURN 3 |
619cec6d CB |
2859 | $ ELSE |
2860 | $ xxx = F$EXTRACT(F$LENGTH(extspec) + 1, extlen, xxx) | |
2861 | GOTO may_already_have_extension | |
2862 | $ ENDIF | |
2863 | $! | |
2864 | $ found_new_extension: | |
a193a2db | 2865 | $ IF F$SEARCH("[-.ext.''extension_dir_name']*.xs") .EQS. "" .AND. F$SEARCH("[-.dist.''extension_dir_name']*.xs") .EQS. "" .AND. F$SEARCH("[-.cpan.''extension_dir_name']*.xs") .EQS. "" |
d1ce36d7 | 2866 | $ THEN |
bd2aeadf CB |
2867 | $! Bit if a hack to get around the 1K buffer on older systems. |
2868 | $ IF F$LENGTH(nonxs_ext) .GT. 950 | |
2869 | $ THEN | |
2870 | $ nonxs_ext2 = nonxs_ext2 + " ''extspec'" | |
2871 | $ ELSE | |
2872 | $ nonxs_ext = nonxs_ext + " ''extspec'" | |
2873 | $ ENDIF | |
0189e3e0 NC |
2874 | $ ELSE |
2875 | $ known_extensions = known_extensions + " ''extspec'" | |
d1ce36d7 | 2876 | $ ENDIF |
a3bd614a PP |
2877 | $ goto ext_loop |
2878 | $end_ext: | |
2879 | $ close CONFIG | |
2880 | $ DELETE/SYMBOL xxx | |
1f29050e NC |
2881 | $ DELETE/SYMBOL idx |
2882 | $ DELETE/SYMBOL extspec | |
619cec6d | 2883 | $ DELETE/SYMBOL extlen |
d1ce36d7 | 2884 | $ DELETE/SYMBOL extension_dir_name |
a3bd614a PP |
2885 | $ known_extensions = F$EDIT(known_extensions,"TRIM,COMPRESS") |
2886 | $ dflt = known_extensions | |
2887 | $ IF ccname .NES. "DEC" .AND. ccname .NES. "CXX" | |
2888 | $ THEN | |
2889 | $ dflt = dflt - "POSIX" ! not with VAX C or GCC | |
2890 | $ ENDIF | |
2891 | $ dflt = dflt - "ByteLoader" ! needs to be ported | |
2892 | $ dflt = dflt - "DB_File" ! needs to be ported | |
2893 | $ dflt = dflt - "GDBM_File" ! needs porting/special library | |
1f29050e | 2894 | $ dflt = dflt - "IPC/SysV" ! needs to be ported |
a3bd614a PP |
2895 | $ dflt = dflt - "NDBM_File" ! needs porting/special library |
2896 | $ dflt = dflt - "ODBM_File" ! needs porting/special library | |
1f29050e | 2897 | $ dflt = dflt - "Sys/Syslog" ! needs porting/special library "GDBM_File macro LOG_DEBUG" |
046cc26c | 2898 | $ IF .NOT. Has_Dec_C_Sockets |
9b5878df CB |
2899 | $ THEN |
2900 | $ dflt = dflt - "Socket" ! optional on VMS | |
2901 | $ ENDIF | |
d1ce36d7 CB |
2902 | $ dflt = dflt - "Win32API/File" - "Win32" ! need Dave Cutler's other project |
2903 | $ nonxs_ext = nonxs_ext - "Win32CORE" | |
bd2aeadf | 2904 | $ nonxs_ext2 = nonxs_ext2 - "Win32CORE" |
a3bd614a | 2905 | $ dflt = F$EDIT(dflt,"TRIM,COMPRESS") |
d1ce36d7 | 2906 | $ nonxs_ext = F$EDIT(nonxs_ext,"TRIM,COMPRESS") |
bd2aeadf | 2907 | $ nonxs_ext2 = F$EDIT(nonxs_ext2,"TRIM,COMPRESS") |
a3bd614a | 2908 | $! |
97abc6ad HM |
2909 | $! Ask for their default list of extensions to build |
2910 | $ echo "" | |
7558ebc2 PP |
2911 | $ echo "It is time to specify which modules you want to build into" |
2912 | $ echo "perl. Most of these are standard and should be chosen, though" | |
2913 | $ echo "you might, for example, want to build GDBM_File instead of" | |
2914 | $ echo "SDBM_File if you have the GDBM library built on your machine." | |
2915 | $ echo "" | |
97abc6ad | 2916 | $ echo "Which modules do you want to build into perl?" |
97abc6ad HM |
2917 | $ rp = "[''dflt'] " |
2918 | $ GOSUB myread | |
63d52911 | 2919 | $ dynamic_ext = F$EDIT(ans,"TRIM,COMPRESS") |
97abc6ad HM |
2920 | $! |
2921 | $! %Config-I-VMS, determine build/make utility here (make gmake mmk mms) | |
2922 | $ echo "" | |
570bb66e | 2923 | $ echo "Checking your ""make"" utilities..." |
97abc6ad HM |
2924 | $! If the 'build' that you use is not here add it and it's test |
2925 | $! switch to the _END_ of these strings (and increment max_build) | |
2926 | $! (e.g. builders = builders + "/FOOMAKE" | |
2927 | $! probers = probers + " -fooVersionSwitch" | |
2928 | $! ) & please let me know about it. | |
2929 | $ builders = "IMAKE/GNUMAKE/MGMAKE/GMAKE/MAKE/MMS/MMK" | |
2930 | $ probers = "-f Makefile. -v!-f Makefile. -v!-f Makefile. -v!-f Makefile. -v!-f Makefile. -v!/IDENT!/IDENT" | |
2931 | $ max_build = 7 | |
2932 | $! | |
96021e87 JM |
2933 | $ orig_dflt = f$edit(builder,"UPCASE") |
2934 | $ if orig_dflt .eqs. "" then orig_dflt = "MMK" | |
97abc6ad HM |
2935 | $ default_set = "" |
2936 | $ ok_builders = "" | |
2937 | $ OPEN/WRITE/ERROR=Open_error CONFIG Makefile. | |
2938 | $ WRITE CONFIG "dont_make_anything_yet:" | |
2939 | $ WRITE CONFIG F$FAO("!_") | |
2940 | $ CLOSE CONFIG | |
2941 | $ n = 0 | |
2942 | $ messages = F$ENVIRONMENT("MESSAGE") | |
2943 | $Build_probe: | |
2944 | $ build = F$ELEMENT(n,"/",builders) | |
2945 | $ probe = F$ELEMENT(n,"!",probers) | |
2946 | $ echo "Testing whether you have ''build' on your system..." | |
570bb66e JH |
2947 | $! |
2948 | $! Noted with GNU Make version 3.60 that the $status and $severity | |
2949 | $! with the 'probe' Makefile appear to be: $STATUS == "%X1000000C" | |
2950 | $! $SEVERITY == "4". | |
2951 | $! | |
a3ef2c6f GS |
2952 | $ SET NOON |
2953 | $ ON CONTROL_Y THEN GOTO Reenable_messages_build | |
2954 | $ SET MESSAGE/NOFAC/NOSEV/NOIDENT/NOTEXT | |
97abc6ad | 2955 | $ 'build' 'probe' |
570bb66e | 2956 | $ IF ($SEVERITY .EQ. 1) ! not adequate? |
97abc6ad HM |
2957 | $ THEN |
2958 | $ echo "OK." | |
2959 | $ IF (build .EQS. orig_dflt) | |
2960 | $ THEN | |
2961 | $ default_set = "TRUE" | |
2962 | $ dflt = build | |
2963 | $ ENDIF | |
2964 | $ ok_builders = ok_builders + " " + build | |
2965 | $ IF (.NOT. default_set) THEN dflt = build | |
2966 | $ ELSE | |
2967 | $ echo "Nope." | |
2968 | $ ENDIF | |
a3ef2c6f GS |
2969 | $Reenable_messages_build: |
2970 | $ SET MESSAGE 'messages' | |
2971 | $ SET ON | |
9b5c8979 | 2972 | $ on control_y then goto clean_up |
97abc6ad HM |
2973 | $ n = n + 1 |
2974 | $ IF (n .LT. max_build) THEN GOTO Build_probe | |
2975 | $! | |
2976 | $ echo "" | |
2977 | $ IF (ok_builders .NES. "") | |
2978 | $ THEN | |
2979 | $ echo "Here is the list of builders you can apparently use:" | |
2980 | $ echo "(",ok_builders," )" | |
a5fddd44 | 2981 | $ rp = "Which """"make"""" utility do you wish to use? [''dflt'] " |
97abc6ad HM |
2982 | $ GOSUB myread |
2983 | $ ans = F$EDIT(ans,"TRIM, COMPRESS") | |
2984 | $ ans = F$EXTRACT(0,F$LOCATE(" ",ans),ans) !throw out "-f Makefile." here | |
2985 | $ IF (ans .EQS. "") | |
2986 | $ THEN build = dflt | |
2987 | $ ELSE build = ans | |
2988 | $ ENDIF | |
2989 | $ ELSE | |
2990 | $ TYPE SYS$INPUT: | |
7558ebc2 | 2991 | $ DECK |
97abc6ad HM |
2992 | |
2993 | %Config-E-VMS, ERROR: | |
2994 | Well this looks pretty serious. Perl5 cannot be compiled without a "make" | |
2995 | utility of some sort and after checking my "builders" list I cannot find | |
2996 | the symbol or command you use on your system to compile programs. | |
2997 | ||
7558ebc2 | 2998 | $ EOD |
570bb66e | 2999 | $ READ SYS$COMMAND/PROMPT="Which ""MMS"" do you use? " ans |
97abc6ad HM |
3000 | $ ans = F$EDIT(ans,"TRIM, COMPRESS") |
3001 | $ ans = F$EXTRACT(0,F$LOCATE(" ",ans),ans) !throw out "-f Makefile." here | |
3002 | $ IF (ans .EQS. "") | |
3003 | $ THEN build = dflt | |
7558ebc2 | 3004 | $ echo "I do not know where ""make"" is, and my life depends on it." |
97abc6ad HM |
3005 | $ echo "Go find a make program or fix your DCL$PATH setting!" |
3006 | $ echo "ABORTING..." | |
3007 | $ SET DEFAULT 'vms_default_directory_name' !be kind rewind | |
3008 | $ STOP | |
3009 | $ EXIT 2 !$STATUS = "%X00000002" (error) | |
3010 | $ ELSE | |
3011 | $ build = ans | |
3012 | $ ENDIF | |
3013 | $ ENDIF | |
3014 | $! | |
fcc434ad | 3015 | $ DELETE/NOLOG/NOCONFIRM Makefile.; |
97abc6ad HM |
3016 | $ GOTO Beyond_open |
3017 | $Open_error: | |
3018 | $ TYPE SYS$INPUT: | |
7558ebc2 | 3019 | $ DECK |
97abc6ad HM |
3020 | |
3021 | There seems to be trouble. I just tried to create a file in | |
7558ebc2 | 3022 | $ EOD |
97abc6ad HM |
3023 | $ echo4 'F$ENVIRONMENT("DEFAULT")' |
3024 | $ TYPE SYS$INPUT: | |
7558ebc2 | 3025 | $ DECK |
97abc6ad HM |
3026 | but was unsuccessful. I am stopping now. Please check that directories' |
3027 | PROTECTION bits. I will leave you in the directory where you started | |
3028 | Configure.com | |
7558ebc2 | 3029 | $ EOD |
97abc6ad HM |
3030 | $ echo4 "ABORTING..." |
3031 | $ GOTO Clean_up | |
3032 | $ STOP | |
3033 | $ EXIT | |
3034 | $! | |
3035 | $Beyond_open: | |
3036 | $! echo " Very well I will proceed with ""''build'""" | |
3037 | $ make = F$EDIT(build,"UPCASE") | |
3038 | $! | |
3039 | $!: locate the preferred pager for this system | |
3040 | $!pagers = "most|more|less|type/page" | |
936f6df1 CB |
3041 | $ IF osvers .GES. "V6.1" |
3042 | $ THEN | |
3043 | $ dflt = "type/page=save=10" | |
3044 | $ ELSE | |
3045 | $ dflt = "type/page" | |
3046 | $ ENDIF | |
dfe814dc PP |
3047 | $! assume that the presence of a most symbol indicates the presence |
3048 | $! of the pager. | |
3049 | $ IF F$TYPE(most) .EQS. "STRING" THEN dflt = "most" | |
3050 | $ IF F$TYPE(pager) .EQS. "STRING" THEN dflt = pager | |
3051 | $ rp="What pager is used on your system? [''dflt'] " | |
3052 | $ GOSUB myread | |
9b5c8979 | 3053 | $ pager = ans |
97abc6ad | 3054 | $! |
97abc6ad HM |
3055 | $! update makefile here |
3056 | $! echo4 "Updating makefile..." | |
3057 | $! | |
3058 | $ IF (make .EQS. "MMS").OR.(make .EQS. "MMK") | |
3059 | $ THEN | |
08c7cbbb GS |
3060 | $ makefile = "" !wrt MANIFEST dir |
3061 | $ UUmakefile = "[-]DESCRIP.MMS" !wrt CWD dir | |
3062 | $ DEFmakefile = "DESCRIP.MMS" !wrt DEF dir (?) | |
570bb66e | 3063 | $ Makefile_SH = "descrip_mms.template" |
97abc6ad | 3064 | $ ELSE |
08c7cbbb GS |
3065 | $ makefile = " -f Makefile." !wrt MANIFEST dir |
3066 | $ UUmakefile = "[-]Makefile." !wrt CWD dir | |
3067 | $ DEFmakefile = "Makefile." !wrt DEF dir (?) | |
570bb66e | 3068 | $ Makefile_SH = "Makefile.in" |
97abc6ad HM |
3069 | $ ENDIF |
3070 | $! | |
7558ebc2 PP |
3071 | $ IF macros .NES. "" |
3072 | $ THEN | |
97abc6ad HM |
3073 | $ tmp = F$LENGTH(macros) |
3074 | $ macros = F$EXTRACT(0,(tmp-1),macros) !miss trailing comma | |
3075 | $ macros = "/macro=(" + macros + ")" | |
3076 | $ ENDIF | |
498336ed CB |
3077 | $! Build up the extra C flags |
3078 | $! | |
7558ebc2 PP |
3079 | $ IF use_ieee_math |
3080 | $ THEN | |
e0261ef8 | 3081 | $ extra_flags = "''extra_flags'" + "/float=ieee/ieee=denorm" |
3ad67d07 | 3082 | $ ELSE |
2b4b3ebb | 3083 | $ IF (F$ELEMENT(0, "-", archname).EQS."VMS_IA64") |
3ad67d07 CB |
3084 | $ THEN |
3085 | $ extra_flags = "''extra_flags'" + "/float=g_float" | |
3086 | $ ENDIF | |
7558ebc2 | 3087 | $ ENDIF |
1171624b | 3088 | $ names_flags = "" |
7558ebc2 PP |
3089 | $ IF be_case_sensitive |
3090 | $ THEN | |
1171624b | 3091 | $ names_flags = "AS_IS" |
7558ebc2 | 3092 | $ ENDIF |
1171624b CB |
3093 | $ IF shorten_long_symbols |
3094 | $ THEN | |
3095 | $ IF be_case_sensitive | |
3096 | $ THEN | |
3097 | $ names_flags = "''names_flags',SHORTENED" | |
3098 | $ ELSE | |
3099 | $ names_flags = "SHORTENED" | |
3100 | $ ENDIF | |
3101 | $ ENDIF | |
3102 | $ IF F$LENGTH(names_flags) .ne. 0 | |
3103 | $ THEN | |
3104 | $ extra_flags = "''extra_flags'" + "/NAMES=(''names_flags')" | |
3105 | $ ENDIF | |
3106 | $ DELETE/SYMBOLS names_flags | |
498336ed | 3107 | $ extra_flags = "''extra_flags'" + "''user_c_flags'" |
97abc6ad | 3108 | $! |
570bb66e JH |
3109 | $ min_pgflquota = "100000" |
3110 | $ pgflquota = F$STRING(F$GETJPI("","PGFLQUOTA")) | |
3111 | $ IF pgflquota .LES. min_pgflquota | |
3112 | $ THEN | |
3113 | $ echo4 "Your PGFLQUOTA of ''pgflquota' appears too small to build ''package'." | |
3114 | $ READ SYS$COMMAND/PROMPT="Continue? [n] " ans | |
3115 | $ IF ans | |
3116 | $ THEN | |
3117 | $ echo4 "Continuing..." | |
3118 | $ ELSE | |
3119 | $ echo4 "ABORTING..." | |
3120 | $ GOTO Clean_up | |
3121 | $ ENDIF | |
3122 | $ ENDIF | |
97abc6ad HM |
3123 | $! |
3124 | $ echo "" | |
570bb66e JH |
3125 | $ echo4 "Checking the C run-time library." |
3126 | $! | |
56aeb0ae | 3127 | $! Former SUBCONFIGURE.COM |
570bb66e JH |
3128 | $! |
3129 | $! - build a config.sh for VMS Perl. | |
3130 | $! - use built config.sh to take config_h.SH -> config.h | |
3131 | $! - also take vms/descrip_mms.template -> descrip.mms (VMS Makefile) | |
3132 | $! vms/Makefile.in -> Makefile. (VMS GNU Makefile?) | |
3133 | $! vms/Makefile.SH -> Makefile. (VMS GNU Makefile?) | |
570bb66e JH |
3134 | $! |
3135 | $! Note for folks from other platforms changing things in here: | |
3136 | $! | |
3137 | $! Fancy changes (based on compiler capabilities or VMS version or | |
3138 | $! whatever) are tricky, so go ahead and punt on those. | |
3139 | $! | |
3140 | $! Simple changes, though (say, always setting something to 1, or undef, | |
3141 | $! or something like that) are straightforward. Adding a new constant | |
3142 | $! item for the ultimately created config.sh requires at least one | |
3143 | $! (possibly more) line(s) to this file. | |
3144 | $! | |
3145 | $! Add a line in the format: | |
3146 | $! | |
3147 | $! $ WC "foo='undef'" | |
3148 | $! | |
3149 | $! somewhere between the line tagged '##BEGIN WRITE NEW CONSTANTS HERE##' | |
3150 | $! and the one tagged '##END WRITE NEW CONSTANTS HERE##' (note the order | |
3151 | $! is sorted ASCII and corresponds to the output of config.sh in the | |
3152 | $! Bourne shell version of Configure). | |
3153 | $! Be very careful with quoting, as it can be tricky. | |
3154 | $! For example if instead of a constant string like 'undef' or 'define' | |
3155 | $! you wanted to add something to VMS's config.sh that looks like: | |
3156 | $! | |
3157 | $! blank_string='' | |
3158 | $! | |
3159 | $! then add a line that looks like this before the | |
3160 | $! '##END WRITE NEW CONSTANTS HERE##' tagged line: | |
3161 | $! | |
3162 | $! $ WC "blank_string='" + "'" | |
3163 | $! | |
3164 | $! (+ is the string concatenator and "''var'" has the effect | |
3165 | $! of "${var}" in perl or sh, but "'const'" is not interpolated). | |
3166 | $! | |
3167 | $! Note that unitialized variables, such as a line like: | |
3168 | $! | |
3169 | $! $ WC "new_var='" + new_var + "'" | |
3170 | $! | |
3171 | $! should be avoided unless new_var has a value assigned prior | |
3172 | $! to that line (think of perl's -w warnings). | |
3173 | $! | |
3174 | $! %DCL-W-UNDSYM, undefined symbol - check validity and spelling | |
3175 | $! \NEW_VAR\ | |
3176 | $! | |
3177 | $! | |
3178 | $ vms_ver = F$EXTRACT(1,3, osvers) | |
3179 | $ IF F$LENGTH(Mcc) .EQ. 0 THEN Mcc := "cc" | |
3180 | $ MCC = f$edit(mcc, "UPCASE") | |
3181 | $ C_Compiler_Replace := "CC=CC=''Mcc'''ccflags'" | |
414b89cc | 3182 | $ IF ccname .EQS. "DEC" |
570bb66e JH |
3183 | $ THEN |
3184 | $ Checkcc := "''Mcc'/prefix=all" | |
3185 | $ ELSE | |
414b89cc | 3186 | $ IF ccname .EQS. "CXX" |
570bb66e JH |
3187 | $ THEN |
3188 | $ Checkcc := cxx | |
3189 | $ ELSE | |
3190 | $ Checkcc := "''Mcc'" | |
3191 | $ ENDIF | |
3192 | $ ENDIF | |
3193 | $ ccflags = ccflags + extra_flags | |
3194 | $ IF be_case_sensitive | |
3195 | $ THEN | |
3196 | $ d_vms_be_case_sensitive = "define" | |
3197 | $ ELSE | |
3198 | $ d_vms_be_case_sensitive = "undef" | |
3199 | $ ENDIF | |
1171624b CB |
3200 | $ IF shorten_long_symbols |
3201 | $ THEN | |
3202 | $ d_vms_shorten_long_symbols = "define" | |
3203 | $ ELSE | |
3204 | $ d_vms_shorten_long_symbols = "undef" | |
3205 | $ ENDIF | |
570bb66e JH |
3206 | $! Some constant defaults. |
3207 | $ hwname = f$getsyi("HW_NAME") | |
3208 | $ myname = myhostname | |
3209 | $ IF myname .EQS. "" THEN myname = F$TRNLNM("SYS$NODE") | |
3210 | $! | |
3211 | $ ccdlflags="" | |
3212 | $ cccdlflags="" | |
3213 | $! | |
50ddda1d CB |
3214 | $! FIXME -- This section does not really handle all the different permutations |
3215 | $! of 64-bitness, and it does not provide for the /POINTER_SIZE=64 compiler | |
3216 | $! option that would be necessary to support the "explicit 64-bit interfaces" | |
3217 | $! promised by -Dusemorebits. | |
3218 | $! | |
3219 | $ usemorebits = "undef" | |
570bb66e JH |
3220 | $ IF use64bitint .OR. use64bitint .EQS. "define" |
3221 | $ THEN | |
3222 | $ use64bitint = "define" | |
842bcadf CB |
3223 | $ ivdformat="""Ld""" |
3224 | $ uvuformat="""Lu""" | |
3225 | $ uvoformat="""Lo""" | |
3226 | $ uvxformat="""Lx""" | |
3227 | $ uvXUformat="""LX""" | |
570bb66e JH |
3228 | $ ELSE |
3229 | $ use64bitint = "undef" | |
842bcadf CB |
3230 | $ ivdformat="""ld""" |
3231 | $ uvuformat="""lu""" | |
3232 | $ uvoformat="""lo""" | |
3233 | $ uvxformat="""lx""" | |
3234 | $ uvXUformat="""lX""" | |
3235 | $ ENDIF | |
3236 | $ IF uselongdouble .OR. uselongdouble .EQS. "define" | |
3237 | $ THEN | |
50ddda1d CB |
3238 | $ uselongdouble = "define" |
3239 | $ alignbytes="16" | |
842bcadf | 3240 | $ nveformat="""Le""" |
d677d0fc | 3241 | $ nvEUformat="""LE""" |
842bcadf | 3242 | $ nvfformat="""Lf""" |
d677d0fc | 3243 | $ nvFUformat="""LF""" |
842bcadf | 3244 | $ nvgformat="""Lg""" |
d677d0fc | 3245 | $ nvGUformat="""LG""" |
842bcadf | 3246 | $ ELSE |
50ddda1d | 3247 | $ uselongdouble = "undef" |
842bcadf | 3248 | $ nveformat="""e""" |
d677d0fc | 3249 | $ nvEUformat="""E""" |
842bcadf | 3250 | $ nvfformat="""f""" |
d677d0fc | 3251 | $ nvFUformat="""F""" |
842bcadf | 3252 | $ nvgformat="""g""" |
d677d0fc | 3253 | $ nvGUformat="""G""" |
570bb66e JH |
3254 | $ ENDIF |
3255 | $ IF use64bitall .OR. use64bitall .EQS. "define" | |
3256 | $ THEN | |
3257 | $ use64bitall = "define" | |
3258 | $ ELSE | |
3259 | $ use64bitall = "undef" | |
3260 | $ ENDIF | |
e366167b CB |
3261 | $ IF uselargefiles .OR. uselargefiles .EQS. "define" |
3262 | $ THEN | |
3263 | $ uselargefiles = "define" | |
3264 | $ ELSE | |
3265 | $ uselargefiles = "undef" | |
3266 | $ ENDIF | |
570bb66e | 3267 | $! |
9b5c8979 JH |
3268 | $ usemymalloc = "undef" |
3269 | $ if mymalloc then usemymalloc = "define" | |
570bb66e JH |
3270 | $! |
3271 | $ perl_cc=Mcc | |
3272 | $! | |
2b4b3ebb | 3273 | $ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP") |
570bb66e JH |
3274 | $ THEN |
3275 | $ obj_ext=".abj" | |
3276 | $ so="axe" | |
3277 | $ dlext="axe" | |
3278 | $ exe_ext=".axe" | |
3279 | $ lib_ext=".alb" | |
3280 | $ ELSE | |
2b4b3ebb | 3281 | $ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_IA64") |
a50752f9 CB |
3282 | $ THEN |
3283 | $ obj_ext=".ibj" | |
3284 | $ so="ixe" | |
3285 | $ dlext="ixe" | |
3286 | $ exe_ext=".ixe" | |
3287 | $ lib_ext=".ilb" | |
3288 | $ ELSE | |
3289 | $ obj_ext=".obj" | |
3290 | $ so="exe" | |
3291 | $ dlext="exe" | |
3292 | $ exe_ext=".exe" | |
3293 | $ lib_ext=".olb" | |
3294 | $ ENDIF | |
570bb66e JH |
3295 | $ ENDIF |
3296 | $ dlobj="dl_vms''obj_ext'" | |
3297 | $! | |
1b24ed4b | 3298 | $ cppstdin="''perl_cc'/noobj/comments=as_is/preprocess=sys$output sys$input" |
570bb66e | 3299 | $ cppminus=" " |
1b24ed4b | 3300 | $ cpprun="''perl_cc'/noobj/comments=as_is/preprocess=sys$output sys$input" |
570bb66e JH |
3301 | $ cpplast=" " |
3302 | $! | |
3303 | $ timetype="time_t" | |
3304 | $ signal_t="void" | |
3305 | $ stdchar="char" | |
3306 | $! | |
3307 | $ IF mymalloc | |
3308 | $ THEN d_mymalloc="define" | |
3309 | $ ELSE d_mymalloc="undef" | |
3310 | $ ENDIF | |
3311 | $! | |
1be1b388 | 3312 | $ usedevel="undef" |
570bb66e | 3313 | $ usedl="define" |
ef060a86 | 3314 | $ startperl="""$ perl 'f$env(\""procedure\"")' \""'"+"'p1'\"" \""'"+"'p2'\"" \""'"+"'p3'\"" \""'"+"'p4'\"" \""'"+"'p5'\"" \""'"+"'p6'\"" \""'"+"'p7'\"" \""'"+"'p8'\""!\n" |
4a5365b8 | 3315 | $ startperl=startperl + "$ exit++ + ++$status!=0 and $exit=$status=undef; while($#ARGV != -1 and $ARGV[$#ARGV] eq '"+"'){pop @ARGV;}""" |
570bb66e | 3316 | $! |
32995a38 | 3317 | $ libs=" " |
414b89cc | 3318 | $ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" |
570bb66e JH |
3319 | $ THEN |
3320 | $ libc="(DECCRTL)" | |
3321 | $ ELSE | |
3322 | $ libc=" " | |
3323 | $ ENDIF | |
3324 | $! | |
94928b12 JH |
3325 | $! perllibs should be libs with all non-core libs (such as gdbm) removed. |
3326 | $! | |
3327 | $ perllibs=libs | |
3328 | $! | |
570bb66e | 3329 | $! |
2b4b3ebb | 3330 | $ IF F$ELEMENT(0, "-", archname) .NES. "VMS_VAX" |
570bb66e JH |
3331 | $ THEN |
3332 | $ d_PRId64 = "define" | |
d677d0fc | 3333 | $ d_PRIi64 = "define" |
570bb66e JH |
3334 | $ d_PRIu64 = "define" |
3335 | $ d_PRIo64 = "define" | |
3336 | $ d_PRIx64 = "define" | |
842bcadf | 3337 | $ d_PRIXU64 = "define" |
570bb66e | 3338 | $ sPRId64 = """Ld""" |
6b356c8e | 3339 | $ sPRIXU64 = """LX""" |
59a27e12 | 3340 | $ sPRIi64 = """Li""" |
570bb66e JH |
3341 | $ sPRIo64 = """Lo""" |
3342 | $ sPRIu64 = """Lu""" | |
3343 | $ sPRIx64 = """Lx""" | |
3344 | $ d_quad = "define" | |
3345 | $ quadtype = "long long" | |
3346 | $ uquadtype = "unsigned long long" | |
d207eff1 CB |
3347 | $ quadkind = "3" |
3348 | $! | |
3349 | $ d_frexpl = "define" | |
3350 | $ d_modfl = "define" | |
3351 | $ d_modflproto = "define" | |
570bb66e JH |
3352 | $ ELSE |
3353 | $ d_PRId64 = "undef" | |
d677d0fc | 3354 | $ d_PRIi64 = "undef" |
6b356c8e | 3355 | $ d_PRIXU64 = "undef" |
570bb66e JH |
3356 | $ d_PRIu64 = "undef" |
3357 | $ d_PRIo64 = "undef" | |
3358 | $ d_PRIx64 = "undef" | |
3359 | $ sPRId64 = "" | |
6b356c8e | 3360 | $ sPRIXU64 = """lX""" |
59a27e12 | 3361 | $ sPRIi64 = "" |
570bb66e JH |
3362 | $ sPRIo64 = "" |
3363 | $ sPRIu64 = "" | |
3364 | $ sPRIx64 = "" | |
3365 | $ d_quad = "undef" | |
d207eff1 CB |
3366 | $ quadtype = "undef" |
3367 | $ uquadtype = "undef" | |
3368 | $ quadkind = "undef" | |
a175606a | 3369 | $! |
570bb66e | 3370 | $ d_frexpl = "undef" |
570bb66e | 3371 | $ d_modfl = "undef" |
8725ccc4 | 3372 | $ d_modflproto = "undef" |
570bb66e JH |
3373 | $ ENDIF |
3374 | $! | |
6732c5ab | 3375 | $ IF useieee .OR. useieee .EQS. "define" |
a175606a CB |
3376 | $ THEN |
3377 | $ d_isnan = "define" | |
3378 | $ d_isnanl = "define" | |
3379 | $ ELSE | |
3380 | $ d_isnan = "undef" | |
3381 | $ d_isnanl = "undef" | |
3382 | $ ENDIF | |
3383 | $! | |
570bb66e JH |
3384 | $! Now some that we build up |
3385 | $! | |
a92ae878 | 3386 | $ IF use_threads |
570bb66e JH |
3387 | $ THEN |
3388 | $ IF use_5005_threads | |
3389 | $ THEN | |
570bb66e JH |
3390 | $ d_old_pthread_create_joinable = "undef" |
3391 | $ old_pthread_create_joinable = " " | |
3392 | $ use5005threads = "define" | |
3393 | $ useithreads = "undef" | |
3394 | $ ELSE | |
570bb66e JH |
3395 | $ d_old_pthread_create_joinable = "undef" |
3396 | $ old_pthread_create_joinable = " " | |
3397 | $ use5005threads = "undef" | |
3398 | $ useithreads = "define" | |
3399 | $ ENDIF | |
3400 | $ ELSE | |
3401 | $ d_old_pthread_create_joinable = "undef" | |
3402 | $ old_pthread_create_joinable = " " | |
3403 | $ use5005threads = "undef" | |
3404 | $ useithreads = "undef" | |
3405 | $ ENDIF | |
3406 | $! | |
3407 | $! Some that we need to invoke the compiler for | |
3408 | $! | |
3409 | $! | |
3410 | $! handy construction aliases/symbols | |
3411 | $! | |
3412 | $ OS := "open/write CONFIG []try.c" | |
3413 | $ WS := "write CONFIG" | |
3414 | $ CS := "close CONFIG" | |
3415 | $ DS := "delete/nolog/noconfirm []try.*;*" | |
3416 | $ Needs_Opt := N | |
3417 | $ good_compile = %X10B90001 | |
414b89cc | 3418 | $ IF ccname .EQS. "GCC" |
570bb66e JH |
3419 | $ THEN |
3420 | $ open/write OPTCHAN []try.opt | |
3421 | $ write OPTCHAN "Gnu_CC:[000000]gcclib.olb/library" | |
3422 | $ write OPTCHAN "Sys$Share:VAXCRTL/Share" | |
3423 | $ Close OPTCHAN | |
3424 | $ Needs_Opt := Y | |
3425 | $ good_compile = %X10000001 | |
3426 | $ ENDIF | |
414b89cc | 3427 | $ IF ccname .EQS. "CXX" |
570bb66e JH |
3428 | $ THEN |
3429 | $ good_compile = %X15F60001 | |
3430 | $ ENDIF | |
3431 | $ good_link = %X10000001 | |
3432 | $ tmp = "" ! null string default | |
3433 | $! | |
3434 | $ GOTO beyond_compile_ok | |
3435 | $! | |
3436 | $! Check for type sizes | |
3437 | $! | |
3438 | $type_size_check: | |
3439 | $! | |
3440 | $ OS | |
7558ebc2 PP |
3441 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3442 | $ WS "#include <stdlib.h>" | |
3443 | $ WS "#endif" | |
3444 | $ WS "#include <stdio.h>" | |
3445 | $ WS "int main()" | |
570bb66e JH |
3446 | $ WS "{" |
3447 | $ WS "printf(""%d\n"", sizeof(''tmp'));" | |
7558ebc2 | 3448 | $ WS "exit(0);" |
570bb66e JH |
3449 | $ WS "}" |
3450 | $ CS | |
3451 | $ GOSUB compile | |
3452 | $ RETURN | |
3453 | $! | |
3454 | $!: locate header file | |
3455 | $findhdr: | |
3456 | $! | |
3457 | $ OS | |
7558ebc2 PP |
3458 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3459 | $ WS "#include <stdlib.h>" | |
3460 | $ WS "#endif" | |
3461 | $ WS "#include <stdio.h>" | |
570bb66e | 3462 | $ WS "#include <''tmp'>" |
7558ebc2 | 3463 | $ WS "int main()" |
570bb66e JH |
3464 | $ WS "{" |
3465 | $ WS "printf(""define\n"");" | |
7558ebc2 | 3466 | $ WS "exit(0);" |
570bb66e JH |
3467 | $ WS "}" |
3468 | $ CS | |
3469 | $ GOSUB link_ok | |
3470 | $ RETURN | |
3471 | $! | |
3472 | $!: define an alternate in-header-list? function | |
3473 | $inhdr: | |
3474 | $! | |
3475 | $ GOSUB findhdr | |
3476 | $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link | |
3477 | $ THEN | |
3478 | $ echo4 "<''tmp'> found." | |
3479 | $ tmp = "define" | |
3480 | $ ELSE | |
3481 | $ echo4 "<''tmp'> NOT found." | |
3482 | $ tmp = "undef" | |
3483 | $ ENDIF | |
3484 | $ RETURN | |
3485 | $! | |
3486 | $!: define an is-in-libc? function | |
3487 | $inlibc: | |
3488 | $ GOSUB link_ok | |
3489 | $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link | |
3490 | $ THEN | |
3491 | $ echo4 "''tmp'() found." | |
3492 | $ tmp = "define" | |
3493 | $ ELSE | |
3494 | $ echo4 "''tmp'() NOT found." | |
3495 | $ tmp = "undef" | |
3496 | $ ENDIF | |
3497 | $ RETURN | |
3498 | $! | |
3499 | $!: define a shorthand compile call | |
3500 | $compile: | |
3501 | $ GOSUB link_ok | |
3502 | $just_mcr_it: | |
3503 | $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link | |
3504 | $ THEN | |
3505 | $ OPEN/WRITE CONFIG []try.out | |
3506 | $ DEFINE/USER_MODE SYS$ERROR CONFIG | |
3507 | $ DEFINE/USER_MODE SYS$OUTPUT CONFIG | |
3508 | $ MCR []try.exe | |
3509 | $ CLOSE CONFIG | |
3510 | $ OPEN/READ CONFIG []try.out | |
3511 | $ READ CONFIG tmp | |
3512 | $ CLOSE CONFIG | |
3513 | $ DELETE/NOLOG/NOCONFIRM []try.out; | |
3514 | $ DELETE/NOLOG/NOCONFIRM []try.exe; | |
3515 | $ ELSE | |
3516 | $ tmp = "" ! null string default | |
3517 | $ ENDIF | |
3518 | $ RETURN | |
3519 | $! | |
3520 | $link_ok: | |
3521 | $ GOSUB compile_ok | |
3522 | $ DEFINE/USER_MODE SYS$ERROR _NLA0: | |
3523 | $ DEFINE/USER_MODE SYS$OUTPUT _NLA0: | |
3524 | $ SET NOON | |
3525 | $ IF Needs_Opt | |
3526 | $ THEN | |
3527 | $ 'ld' try.obj,try.opt/opt | |
3528 | $ link_status = $status | |
3529 | $ ELSE | |
3530 | $ 'ld' try.obj | |
3531 | $ link_status = $status | |
3532 | $ ENDIF | |
3533 | $ SET ON | |
3534 | $ IF F$SEARCH("try.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM try.obj; | |
3535 | $ RETURN | |
3536 | $! | |
3537 | $!: define a shorthand compile call for compilations that should be ok. | |
3538 | $compile_ok: | |
3539 | $ DEFINE/USER_MODE SYS$ERROR _NLA0: | |
3540 | $ DEFINE/USER_MODE SYS$OUTPUT _NLA0: | |
3541 | $ SET NOON | |
3542 | $ 'Checkcc' try.c | |
3543 | $ compile_status = $status | |
3544 | $ SET ON | |
3545 | $ DELETE/NOLOG/NOCONFIRM try.c; | |
3546 | $ RETURN | |
3547 | $! | |
3548 | $beyond_compile_ok: | |
3549 | $! | |
3550 | $! Check for __STDC__ | |
3551 | $! | |
3552 | $ OS | |
7558ebc2 PP |
3553 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3554 | $ WS "#include <stdlib.h>" | |
3555 | $ WS "#endif" | |
3556 | $ WS "#include <stdio.h>" | |
3557 | $ WS "int main()" | |
570bb66e | 3558 | $ WS "{" |
7558ebc2 PP |
3559 | $ WS "#ifdef __STDC__" |
3560 | $ WS "printf(""42\n"");" | |
85fac3a9 CB |
3561 | $ WS "#elif defined (__STD_ANSI)" ! for CXX |
3562 | $ WS "printf(""42\n"");" | |
7558ebc2 PP |
3563 | $ WS "#else" |
3564 | $ WS "printf(""1\n"");" | |
3565 | $ WS "#endif" | |
3566 | $ WS "exit(0);" | |
570bb66e JH |
3567 | $ WS "}" |
3568 | $ CS | |
3569 | $ GOSUB compile | |
3570 | $ cpp_stuff=tmp | |
3571 | $ IF F$INTEGER(tmp) .eq. 42 | |
3572 | $ THEN | |
85fac3a9 CB |
3573 | $ echo4 "Oh! Smells like ANSI's been here." |
3574 | $ echo "We can catify or stringify, separately or together!" | |
570bb66e JH |
3575 | $ ENDIF |
3576 | $! | |
3577 | $! Check for double size | |
3578 | $! | |
3579 | $ echo4 "Checking to see how big your double precision numbers are..." | |
3580 | $ tmp="double" | |
3581 | $ GOSUB type_size_check | |
3582 | $ doublesize = tmp | |
3583 | $ echo "Your double is ''doublesize' bytes long." | |
3584 | $! | |
3585 | $! Check for long double size | |
3586 | $! | |
3587 | $ OS | |
7558ebc2 | 3588 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
0e965207 | 3589 | $ WS "#pragma message disable ALL" ! VAX compilers may have distracting informationals |
7558ebc2 PP |
3590 | $ WS "#include <stdlib.h>" |
3591 | $ WS "#endif" | |
3592 | $ WS "#include <stdio.h>" | |
3593 | $ WS "int main()" | |
570bb66e | 3594 | $ WS "{" |
7558ebc2 PP |
3595 | $ WS "printf(""%d\n"", sizeof(long double));" |
3596 | $ WS "exit(0);" | |
570bb66e JH |
3597 | $ WS "}" |
3598 | $ CS | |
3599 | $ echo4 "Checking to see if you have long double..." | |
3600 | $ GOSUB link_ok | |
3601 | $ IF link_status .NE. good_link | |
3602 | $ THEN | |
3603 | $ longdblsize="0" | |
3604 | $ d_longdbl="undef" | |
3605 | $ echo "You do not have long double." | |
3606 | $ ELSE | |
3607 | $ echo "You have long double." | |
3608 | $ echo4 "Checking to see how big your long doubles are..." | |
3609 | $ GOSUB just_mcr_it | |
3610 | $ longdblsize = tmp | |
3611 | $ d_longdbl = "define" | |
3612 | $ echo "Your long doubles are ''longdblsize' bytes long." | |
3613 | $ ENDIF | |
3614 | $! | |
7f830b7b CB |
3615 | $ IF d_longdbl .OR. d_longdbl .EQS. "define" |
3616 | $ THEN | |
3617 | $ d_PRIEUldbl = "define" | |
3618 | $ d_PRIFUldbl = "define" | |
3619 | $ d_PRIGUldbl = "define" | |
3620 | $ d_PRIeldbl = "define" | |
3621 | $ d_PRIfldbl = "define" | |
3622 | $ d_PRIgldbl = "define" | |
3623 | $ sPRIEUldbl = """LE""" | |
3624 | $ sPRIFUldbl = """LF""" | |
3625 | $ sPRIGUldbl = """LG""" | |
3626 | $ sPRIeldbl = """Le""" | |
3627 | $ sPRIfldbl = """Lf""" | |
3628 | $ sPRIgldbl = """Lg""" | |
3629 | $ ELSE | |
3630 | $ d_PRIEUldbl = "undef" | |
3631 | $ d_PRIFUldbl = "undef" | |
3632 | $ d_PRIGUldbl = "undef" | |
3633 | $ d_PRIeldbl = "undef" | |
3634 | $ d_PRIfldbl = "undef" | |
3635 | $ d_PRIgldbl = "undef" | |
3636 | $ sPRIEUldbl = "" | |
3637 | $ sPRIFUldbl = "" | |
3638 | $ sPRIGUldbl = "" | |
3639 | $ sPRIeldbl = "" | |
3640 | $ sPRIfldbl = "" | |
3641 | $ sPRIgldbl = "" | |
3642 | $ ENDIF | |
3643 | $ d_SCNfldbl = d_PRIfldbl | |
3644 | $ sSCNfldbl = sPRIfldbl ! expect consistency | |
3645 | $! | |
570bb66e JH |
3646 | $!: check for long long |
3647 | $ OS | |
7558ebc2 PP |
3648 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3649 | $ WS "#include <stdlib.h>" | |
3650 | $ WS "#endif" | |
3651 | $ WS "#include <stdio.h>" | |
3652 | $ WS "int main()" | |
570bb66e | 3653 | $ WS "{" |
7558ebc2 PP |
3654 | $ WS "printf(""%d\n"", sizeof(long long));" |
3655 | $ WS "exit(0);" | |
570bb66e JH |
3656 | $ WS "}" |
3657 | $ CS | |
3658 | $ echo4 "Checking to see if you have long long..." | |
3659 | $ GOSUB link_ok | |
3660 | $ IF link_status .NE. good_link | |
3661 | $ THEN | |
3662 | $ longlongsize="0" | |
3663 | $ d_longlong="undef" | |
3664 | $ echo "You do not have long long." | |
3665 | $ ELSE | |
3666 | $ echo "You have long long." | |
3667 | $ echo4 "Checking to see how big your long longs are..." | |
3668 | $ GOSUB just_mcr_it | |
3669 | $ longlongsize = tmp | |
3670 | $ d_longlong = "define" | |
3671 | $ echo "Your long longs are ''longlongsize' bytes long." | |
3672 | $ ENDIF | |
3673 | $! | |
3674 | $! Check the prototype for getgid | |
3675 | $! | |
3676 | $ echo "Looking for the type for group ids returned by getgid()." | |
3677 | $ OS | |
7558ebc2 PP |
3678 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3679 | $ WS "#include <stdlib.h>" | |
3680 | $ WS "#endif" | |
3681 | $ WS "#include <stdio.h>" | |
3682 | $ WS "#include <types.h>" | |
3683 | $ WS "int main()" | |
570bb66e | 3684 | $ WS "{" |
7558ebc2 PP |
3685 | $ WS "gid_t foo;" |
3686 | $ WS "exit(0);" | |
570bb66e JH |
3687 | $ WS "}" |
3688 | $ CS | |
3689 | $ GOSUB compile_ok | |
3690 | $ IF compile_status .NE. good_compile | |
3691 | $ THEN | |
3692 | $! Okay, gid_t failed. Must be unsigned int | |
3693 | $ gidtype = "unsigned int" | |
3694 | $ echo4 "assuming ""''gidtype'""." | |
3695 | $ ELSE | |
3696 | $ gidtype = "gid_t" | |
3697 | $ echo4 "gid_t found." | |
3698 | $ ENDIF | |
3699 | $! | |
3700 | $! Check to see if we've got dev_t | |
3701 | $! | |
3702 | $ echo "Looking for the type for dev." | |
3703 | $ OS | |
7558ebc2 PP |
3704 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3705 | $ WS "#include <stdlib.h>" | |
3706 | $ WS "#endif" | |
3707 | $ WS "#include <stdio.h>" | |
3708 | $ WS "#include <types.h>" | |
3709 | $ WS "int main()" | |
570bb66e | 3710 | $ WS "{" |
7558ebc2 PP |
3711 | $ WS "dev_t foo;" |
3712 | $ WS "exit(0);" | |
570bb66e JH |
3713 | $ WS "}" |
3714 | $ CS | |
3715 | $ GOSUB compile_ok | |
3716 | $ IF compile_status .NE. good_compile | |
3717 | $ THEN | |
3718 | $! Okay, dev_t failed. Must be unsigned int | |
3719 | $ devtype = "unsigned int" | |
3720 | $ echo4 "assuming ""''devtype'""." | |
3721 | $ ELSE | |
3722 | $ devtype = "dev_t" | |
3723 | $ echo4 "dev_t found." | |
3724 | $ ENDIF | |
3725 | $! | |
3726 | $! Check to see if we've got unistd.h (which we ought to, but you never know) | |
3727 | $! | |
3728 | $ i_netdb = "undef" | |
3729 | $ tmp = "unistd.h" | |
3730 | $ GOSUB inhdr | |
3731 | $ i_unistd = tmp | |
3732 | $! | |
704c2eb3 JM |
3733 | $! Check to see if we've got utime.h (which we should use if we have) |
3734 | $! | |
3735 | $ i_netdb = "undef" | |
3736 | $ tmp = "utime.h" | |
3737 | $ GOSUB inhdr | |
3738 | $ i_utime = tmp | |
3739 | $! | |
41cbbefa CB |
3740 | $! do we have getppid()? |
3741 | $! | |
3742 | $ IF i_unistd .EQS. "define" | |
3743 | $ THEN | |
3744 | $ OS | |
3745 | $ WS "#include <stdio.h>" | |
3746 | $ WS "#include <unistd.h>" | |
3747 | $ WS "int main() {" | |
3748 | $ WS "printf(""%d\n"",getppid());" | |
3749 | $ WS "return(0);" | |
3750 | $ WS "}" | |
3751 | $ CS | |
3752 | $ tmp = "getppid" | |
3753 | $ GOSUB inlibc | |
3754 | $ d_getppid = tmp | |
3755 | $ ELSE | |
3756 | $ d_getppid = "undef" | |
3757 | $ ENDIF | |
3758 | $! | |
570bb66e JH |
3759 | $!: see if this is a libutil.h system |
3760 | $! | |
3761 | $ tmp = "libutil.h" | |
3762 | $ GOSUB inhdr | |
3763 | $ i_libutil = tmp | |
3764 | $! | |
3765 | $! Check to see if we've got shadow.h (probably not, but...) | |
3766 | $! | |
3767 | $ tmp = "shadow.h" | |
3768 | $ GOSUB inhdr | |
3769 | $ i_shadow = tmp | |
3770 | $! | |
3771 | $! Check to see if we've got socks.h (probably not, but...) | |
3772 | $! | |
3773 | $ tmp = "socks.h" | |
3774 | $ GOSUB inhdr | |
3775 | $ i_socks = tmp | |
3776 | $! | |
3777 | $! Check the prototype for select | |
3778 | $! | |
046cc26c | 3779 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
3780 | $ THEN |
3781 | $ OS | |
7558ebc2 PP |
3782 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3783 | $ WS "#include <stdlib.h>" | |
3784 | $ WS "#endif" | |
3785 | $ WS "#include <stdio.h>" | |
3786 | $ WS "#include <types.h>" | |
3787 | $ IF i_unistd .EQS. "define" THEN WS "#include <unistd.h>" | |
046cc26c CB |
3788 | $ WS "#include <time.h>" |
3789 | $ WS "#include <socket.h>" | |
7558ebc2 | 3790 | $ WS "int main()" |
570bb66e | 3791 | $ WS "{" |
7558ebc2 PP |
3792 | $ WS "fd_set *foo;" |
3793 | $ WS "int bar;" | |
3794 | $ WS "foo = NULL;" | |
3795 | $ WS "bar = select(2, foo, foo, foo, NULL);" | |
3796 | $ WS "exit(0);" | |
570bb66e JH |
3797 | $ WS "}" |
3798 | $ CS | |
3799 | $ GOSUB compile_ok | |
3800 | $ IF compile_status .NE. good_compile | |
3801 | $ THEN | |
3802 | $! Okay, select failed. Must be an int * | |
3803 | $ selecttype = "int *" | |
3804 | $ echo4 "select() NOT found." | |
3805 | $ ELSE | |
3806 | $ selecttype="fd_set *" | |
3807 | $ echo4 "select() found." | |
3808 | $ ENDIF | |
3809 | $ ELSE | |
3810 | $ ! No sockets, so stick in an int * : no select, so pick a harmless default | |
3811 | $ selecttype = "int *" | |
3812 | $ ENDIF | |
3813 | $! | |
3814 | $! Check to see if fd_set exists | |
3815 | $! | |
3816 | $ echo "Checking to see how well your C compiler handles fd_set and friends ..." | |
3817 | $ OS | |
7558ebc2 PP |
3818 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3819 | $ WS "#include <stdlib.h>" | |
3820 | $ WS "#endif" | |
3821 | $ WS "#include <stdio.h>" | |
3822 | $ WS "#include <types.h>" | |
570bb66e JH |
3823 | $ IF Has_Dec_C_Sockets |
3824 | $ THEN | |
7558ebc2 PP |
3825 | $ WS "#include <time.h>" |
3826 | $ WS "#include <socket.h>" | |
570bb66e | 3827 | $ ENDIF |
7558ebc2 | 3828 | $ WS "int main()" |
570bb66e | 3829 | $ WS "{" |
7558ebc2 PP |
3830 | $ WS "fd_set *foo;" |
3831 | $ WS "int bar;" | |
3832 | $ WS "exit(0);" | |
570bb66e JH |
3833 | $ WS "}" |
3834 | $ CS | |
3835 | $ GOSUB compile_ok | |
3836 | $ IF compile_status .ne. good_compile | |
3837 | $ THEN | |
3838 | $! Okay, fd_set failed. Must not exist | |
3839 | $ d_fd_set = "undef" | |
3840 | $ echo4 "Hmm, your compiler has some difficulty with fd_set." | |
3841 | $ ELSE | |
3842 | $ d_fd_set="define" | |
3843 | $ echo4 "Well, your system knows about the normal fd_set typedef..." | |
3844 | $ ENDIF | |
3845 | $! | |
3846 | $! Check for inttypes.h | |
3847 | $! | |
3848 | $ tmp = "inttypes.h" | |
3849 | $ GOSUB inhdr | |
3850 | $ i_inttypes = tmp | |
3851 | $! | |
3852 | $! Check to see if off64_t exists | |
3853 | $! | |
3854 | $ echo4 "Checking to see if you have off64_t..." | |
3855 | $ OS | |
7558ebc2 PP |
3856 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3857 | $ WS "#include <stdlib.h>" | |
3858 | $ WS "#endif" | |
3859 | $ WS "#include <stdio.h>" | |
3860 | $ WS "#include <types.h>" | |
3861 | $ WS "#''i_inttypes' IIH" | |
3862 | $ WS "#ifdef IIH" | |
3863 | $ WS "#include <inttypes.h>" | |
3864 | $ WS "#endif" | |
3865 | $ WS "int main()" | |
570bb66e | 3866 | $ WS "{" |
7558ebc2 PP |
3867 | $ WS "off64_t bar;" |
3868 | $ WS "exit(0);" | |
570bb66e JH |
3869 | $ WS "}" |
3870 | $ CS | |
3871 | $ GOSUB compile_ok | |
3872 | $ IF compile_status .EQ. good_compile | |
3873 | $ THEN | |
3874 | $ d_off64_t="define" | |
3875 | $ echo "You have off64_t." | |
3876 | $ ELSE | |
3877 | $ d_off64_t = "undef" | |
3878 | $ echo "You do not have off64_t." | |
3879 | $ ENDIF | |
3880 | $! | |
3881 | $! Check to see if fpos64_t exists | |
3882 | $! | |
3883 | $ echo4 "Checking to see if you have fpos64_t..." | |
3884 | $ OS | |
7558ebc2 PP |
3885 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3886 | $ WS "#include <stdlib.h>" | |
3887 | $ WS "#endif" | |
3888 | $ WS "#include <stdio.h>" | |
3889 | $ WS "#include <types.h>" | |
3890 | $ WS "#''i_inttypes' IIH" | |
3891 | $ WS "#ifdef IIH" | |
3892 | $ WS "#include <inttypes.h>" | |
3893 | $ WS "#endif" | |
3894 | $ WS "int main()" | |
570bb66e | 3895 | $ WS "{" |
7558ebc2 PP |
3896 | $ WS "fpos64_t bar;" |
3897 | $ WS "exit(0);" | |
570bb66e JH |
3898 | $ WS "}" |
3899 | $ CS | |
3900 | $ GOSUB compile_ok | |
3901 | $ IF compile_status .EQ. good_compile | |
3902 | $ THEN | |
3903 | $ d_fpos64_t="define" | |
3904 | $ echo "You have fpos64_t." | |
3905 | $ ELSE | |
3906 | $ d_fpos64_t = "undef" | |
3907 | $ echo "You do not have fpos64_t." | |
3908 | $ ENDIF | |
3909 | $! | |
3910 | $! Check to see if int64_t exists | |
3911 | $! | |
3912 | $ echo4 "Checking to see if you have int64_t..." | |
3913 | $ OS | |
7558ebc2 PP |
3914 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3915 | $ WS "#include <stdlib.h>" | |
3916 | $ WS "#endif" | |
3917 | $ WS "#include <stdio.h>" | |
3918 | $ WS "#include <types.h>" | |
3919 | $ WS "#''i_inttypes' IIH" | |
3920 | $ WS "#ifdef IIH" | |
3921 | $ WS "#include <inttypes.h>" | |
3922 | $ WS "#endif" | |
3923 | $ WS "int main()" | |
570bb66e | 3924 | $ WS "{" |
7558ebc2 PP |
3925 | $ WS "int64_t bar;" |
3926 | $ WS "exit(0);" | |
570bb66e JH |
3927 | $ WS "}" |
3928 | $ CS | |
3929 | $ GOSUB compile_ok | |
3930 | $ IF compile_status .EQ. good_compile | |
3931 | $ THEN | |
3932 | $ d_int64_t="define" | |
3933 | $ echo "You have int64_t." | |
3934 | $ ELSE | |
3935 | $ d_int64_t = "undef" | |
3936 | $ echo "You do not have int64_t." | |
3937 | $ ENDIF | |
3938 | $! | |
e0261ef8 CB |
3939 | $! Check to see if fseeko exists |
3940 | $! | |
3941 | $ OS | |
3942 | $ WS "#include <stdio.h>" | |
3943 | $ WS "int main()" | |
3944 | $ WS "{" | |
3945 | $ WS "FILE *f=NULL;" | |
3946 | $ WS "fseeko(f,(off_t)0,SEEK_SET);" | |
3947 | $ WS "return(0);" | |
3948 | $ WS "}" | |
3949 | $ CS | |
3950 | $ tmp = "fseeko" | |
3951 | $ GOSUB inlibc | |
3952 | $ d_fseeko = tmp | |
3953 | $! | |
3954 | $! Check to see if ftello exists | |
3955 | $! | |
3956 | $ OS | |
3957 | $ WS "#include <stdio.h>" | |
3958 | $ WS "int main()" | |
3959 | $ WS "{" | |
3960 | $ WS "FILE *f=NULL; off_t o=0;" | |
3961 | $ WS "o=ftello(f);" | |
3962 | $ WS "return(0);" | |
3963 | $ WS "}" | |
3964 | $ CS | |
3965 | $ tmp = "ftello" | |
3966 | $ GOSUB inlibc | |
3967 | $ d_ftello = tmp | |
3968 | $! | |
570bb66e JH |
3969 | $!: see if this is a netdb.h system |
3970 | $ IF Has_Dec_C_Sockets | |
3971 | $ THEN | |
3972 | $ tmp = "netdb.h" | |
3973 | $ GOSUB inhdr | |
3974 | $ i_netdb = tmp | |
3975 | $ ENDIF | |
3976 | $! | |
3977 | $! Check for h_errno | |
3978 | $! | |
3979 | $ echo4 "Checking to see if you have h_errno..." | |
3980 | $ OS | |
7558ebc2 PP |
3981 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
3982 | $ WS "#include <stdlib.h>" | |
3983 | $ WS "#endif" | |
3984 | $ WS "#include <stdio.h>" | |
3985 | $ IF i_unistd .EQS. "define" THEN WS "#include <unistd.h>" | |
3986 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" | |
3987 | $ WS "int main()" | |
570bb66e | 3988 | $ WS "{" |
7558ebc2 PP |
3989 | $ WS "h_errno = 3;" |
3990 | $ WS "exit(0);" | |
570bb66e JH |
3991 | $ WS "}" |
3992 | $ CS | |
3993 | $ GOSUB link_ok | |
3994 | $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link | |
3995 | $ THEN | |
3996 | $ d_herrno="define" | |
3997 | $ echo "You have h_errno." | |
3998 | $ ELSE | |
3999 | $ d_herrno="undef" | |
4000 | $ echo "You do not have h_errno." | |
4001 | $ ENDIF | |
4002 | $! | |
4003 | $! Check to see if gethostname exists | |
4004 | $! | |
046cc26c | 4005 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4006 | $ THEN |
4007 | $ OS | |
7558ebc2 PP |
4008 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4009 | $ WS "#include <stdlib.h>" | |
4010 | $ WS "#endif" | |
4011 | $ WS "#include <stdio.h>" | |
4012 | $ WS "#include <types.h>" | |
046cc26c CB |
4013 | $ WS "#include <time.h>" |
4014 | $ WS "#include <socket.h>" | |
7558ebc2 | 4015 | $ WS "int main()" |
570bb66e | 4016 | $ WS "{" |
7558ebc2 PP |
4017 | $ WS "char name[100];" |
4018 | $ WS "int bar, baz;" | |
4019 | $ WS "bar = 100;" | |
4020 | $ WS "baz = gethostname(name, bar);" | |
4021 | $ WS "exit(0);" | |
570bb66e JH |
4022 | $ WS "}" |
4023 | $ CS | |
4024 | $ GOSUB link_ok | |
4025 | $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link | |
4026 | $ THEN | |
4027 | $ d_gethname="define" | |
4028 | $ echo4 "gethostname() found." | |
4029 | $ ELSE | |
4030 | $ d_gethname="undef" | |
4031 | $ ENDIF | |
4032 | $ ELSE | |
4033 | $ ! No sockets, so no gethname | |
4034 | $ d_gethname = "undef" | |
4035 | $ ENDIF | |
4036 | $! | |
4037 | $! Check for sys/file.h | |
4038 | $! | |
4039 | $ tmp = "sys/file.h" | |
4040 | $ GOSUB inhdr | |
4041 | $ i_sysfile = tmp | |
4042 | $! | |
670137c2 CB |
4043 | $! |
4044 | $! Check for sys/ioctl.h | |
4045 | $! | |
4046 | $ tmp = "sys/ioctl.h" | |
4047 | $ GOSUB inhdr | |
4048 | $ i_sysioctl = tmp | |
4049 | $! | |
570bb66e JH |
4050 | $! Check for sys/utsname.h |
4051 | $! | |
4052 | $ tmp = "sys/utsname.h" | |
4053 | $ GOSUB inhdr | |
4054 | $ i_sysutsname = tmp | |
4055 | $! | |
4056 | $! Check for syslog.h | |
4057 | $! | |
4058 | $ tmp = "syslog.h" | |
4059 | $ GOSUB inhdr | |
4060 | $ i_syslog = tmp | |
4061 | $! | |
4062 | $! Check for poll.h | |
4063 | $! | |
4064 | $ tmp = "poll.h" | |
4065 | $ GOSUB inhdr | |
4066 | $ i_poll = tmp | |
4067 | $! | |
4068 | $! Check for sys/uio.h | |
4069 | $! | |
4070 | $ tmp = "sys/uio.h" | |
4071 | $ GOSUB inhdr | |
4072 | $ i_sysuio = tmp | |
4073 | $! | |
4074 | $! Check for sys/mode.h | |
4075 | $! | |
4076 | $ tmp = "sys/mode.h" | |
4077 | $ GOSUB inhdr | |
4078 | $ i_sysmode = tmp | |
4079 | $! | |
ed1b9de0 JM |
4080 | $! Check for poll.h |
4081 | $! | |
4082 | $ tmp = "sys/poll.h" | |
4083 | $ gosub inhdr | |
4084 | $ i_syspoll = tmp | |
4085 | $! | |
570bb66e JH |
4086 | $! Check for sys/access.h |
4087 | $! | |
4088 | $ tmp = "sys/access.h" | |
4089 | $ GOSUB inhdr | |
4090 | $ i_sysaccess = tmp | |
4091 | $! | |
4092 | $! Check for sys/security.h | |
4093 | $! | |
4094 | $ tmp = "sys/security.h" | |
4095 | $ GOSUB inhdr | |
4096 | $ i_syssecrt = tmp | |
4097 | $! | |
4098 | $! Check for fcntl.h | |
4099 | $! | |
4100 | $ tmp = "fcntl.h" | |
4101 | $ GOSUB inhdr | |
4102 | $ i_fcntl = tmp | |
4103 | $! | |
4104 | $! Check for fcntl | |
4105 | $! | |
4106 | $ OS | |
7558ebc2 PP |
4107 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4108 | $ WS "#include <stdlib.h>" | |
4109 | $ WS "#endif" | |
4110 | $ WS "#include <stdio.h>" | |
4111 | $ WS "#include <fcntl.h>" | |
4112 | $ WS "int main()" | |
570bb66e | 4113 | $ WS "{" |
7558ebc2 PP |
4114 | $ WS "fcntl(1,2,3);" |
4115 | $ WS "exit(0);" | |
570bb66e JH |
4116 | $ WS "}" |
4117 | $ CS | |
4118 | $ tmp = "fcntl" | |
4119 | $ GOSUB inlibc | |
4120 | $ d_fcntl = tmp | |
4121 | $! | |
c44c4826 CB |
4122 | $! Check for fcntl locking capability |
4123 | $! | |
4124 | $ echo4 "Checking if fcntl-based file locking works... " | |
4125 | $ tmp = "undef" | |
4126 | $ IF d_fcntl .EQS. "define" | |
4127 | $ THEN | |
4128 | $ OS | |
4129 | $ WS "#include <stdio.h>" | |
4130 | $ WS "#if defined(__DECC) || defined(__DECCXX)" | |
4131 | $ WS "#include <stdlib.h>" | |
4132 | $ WS "#endif" | |
4133 | $ WS "#include <fcntl.h>" | |
4134 | $ WS "#include <unistd.h>" | |
4135 | $ WS "int main() {" | |
4136 | $ WS "#if defined(F_SETLK) && defined(F_SETLKW)" | |
4137 | $ WS " struct flock flock;" | |
4138 | $ WS " int retval, fd;" | |
5b36ee83 | 4139 | $ WS " fd = open(""[-]perl.c"", O_RDONLY);" |
c44c4826 CB |
4140 | $ WS " flock.l_type = F_RDLCK;" |
4141 | $ WS " flock.l_whence = SEEK_SET;" | |
4142 | $ WS " flock.l_start = flock.l_len = 0;" | |
4143 | $ WS " retval = fcntl(fd, F_SETLK, &flock);" | |
4144 | $ WS " close(fd);" | |
4145 | $ WS " (retval < 0 ? printf(""undef\n"") : printf(""define\n""));" | |
4146 | $ WS "#else" | |
4147 | $ WS " printf(""undef\n"");" | |
4148 | $ WS "#endif" | |
4149 | $ WS "}" | |
4150 | $ CS | |
4151 | $ GOSUB link_ok | |
4152 | $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link | |
4153 | $ THEN | |
4154 | $ GOSUB just_mcr_it | |
4155 | $ IF tmp .EQS. "define" | |
4156 | $ THEN | |
4157 | $ echo4 "Yes, it seems to work." | |
4158 | $ ELSE | |
4159 | $ echo4 "Nope, it didn't work." | |
4160 | $ ENDIF | |
4161 | $ ELSE | |
4162 | $ echo4 "I'm unable to compile the test program, so I'll assume not." | |
4163 | $ tmp = "undef" | |
4164 | $ ENDIF | |
4165 | $ ELSE | |
4166 | $ echo4 "Nope, since you don't even have fcntl()." | |
4167 | $ ENDIF | |
4168 | $ d_fcntl_can_lock = tmp | |
4169 | $! | |
570bb66e JH |
4170 | $! Check for memchr |
4171 | $! | |
4172 | $ OS | |
7558ebc2 PP |
4173 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4174 | $ WS "#include <stdlib.h>" | |
4175 | $ WS "#endif" | |
4176 | $ WS "#include <string.h>" | |
4177 | $ WS "int main()" | |
570bb66e | 4178 | $ WS "{" |
7558ebc2 | 4179 | $ WS "char * place;" |
85fac3a9 | 4180 | $ WS "place = (char *)memchr(""foo"", 47, 3);" |
7558ebc2 | 4181 | $ WS "exit(0);" |
570bb66e JH |
4182 | $ WS "}" |
4183 | $ CS | |
4184 | $ tmp = "memchr" | |
4185 | $ GOSUB inlibc | |
4186 | $ d_memchr = tmp | |
4187 | $! | |
4188 | $! Check for strtoull | |
4189 | $! | |
4190 | $ OS | |
7558ebc2 PP |
4191 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4192 | $ WS "#include <stdlib.h>" | |
4193 | $ WS "#endif" | |
4194 | $ WS "#include <string.h>" | |
4195 | $ WS "int main()" | |
570bb66e | 4196 | $ WS "{" |
7558ebc2 PP |
4197 | $ WS "unsigned __int64 result;" |
4198 | $ WS "result = strtoull(""123123"", NULL, 10);" | |
4199 | $ WS "exit(0);" | |
570bb66e JH |
4200 | $ WS "}" |
4201 | $ CS | |
4202 | $ tmp = "strtoull" | |
4203 | $ GOSUB inlibc | |
4204 | $ d_strtoull = tmp | |
4205 | $! | |
4206 | $! Check for strtouq | |
4207 | $! | |
4208 | $ OS | |
7558ebc2 PP |
4209 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4210 | $ WS "#include <stdlib.h>" | |
4211 | $ WS "#endif" | |
4212 | $ WS "#include <string.h>" | |
4213 | $ WS "int main()" | |
570bb66e | 4214 | $ WS "{" |
7558ebc2 PP |
4215 | $ WS "unsigned __int64 result;" |
4216 | $ WS "result = strtouq(""123123"", NULL, 10);" | |
4217 | $ WS "exit(0);" | |
570bb66e JH |
4218 | $ WS "}" |
4219 | $ CS | |
4220 | $ tmp = "strtouq" | |
4221 | $ GOSUB inlibc | |
4222 | $ d_strtouq = tmp | |
4223 | $! | |
4224 | $! Check for strtoll | |
4225 | $! | |
4226 | $ OS | |
7558ebc2 PP |
4227 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4228 | $ WS "#include <stdlib.h>" | |
4229 | $ WS "#endif" | |
4230 | $ WS "#include <string.h>" | |
4231 | $ WS "int main()" | |
570bb66e | 4232 | $ WS "{" |
7558ebc2 PP |
4233 | $ WS "__int64 result;" |
4234 | $ WS "result = strtoll(""123123"", NULL, 10);" | |
4235 | $ WS "exit(0);" | |
570bb66e JH |
4236 | $ WS "}" |
4237 | $ CS | |
4238 | $ tmp = "strtoll" | |
4239 | $ GOSUB inlibc | |
4240 | $ d_strtoll = tmp | |
4241 | $! | |
d0e6d399 NC |
4242 | $! Check for strtoq |
4243 | $! | |
4244 | $ OS | |
4245 | $ WS "#if defined(__DECC) || defined(__DECCXX)" | |
4246 | $ WS "#include <stdlib.h>" | |
28e5dec8 JH |
4247 | $ WS "#endif" |
4248 | $ WS "#include <string.h>" | |
4249 | $ WS "int main()" | |
4250 | $ WS "{" | |
4251 | $ WS "__int64 result;" | |
4252 | $ WS "result = strtoq(""123123"", NULL, 10);" | |
4253 | $ WS "exit(0);" | |
4254 | $ WS "}" | |
4255 | $ CS | |
4256 | $ tmp = "strtoq" | |
4257 | $ GOSUB inlibc | |
4258 | $ d_strtoq = tmp | |
4259 | $! | |
570bb66e JH |
4260 | $! Check for strtold |
4261 | $! | |
4262 | $ OS | |
7558ebc2 PP |
4263 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4264 | $ WS "#include <stdlib.h>" | |
4265 | $ WS "#endif" | |
4266 | $ WS "#include <string.h>" | |
4267 | $ WS "int main()" | |
570bb66e | 4268 | $ WS "{" |
7558ebc2 PP |
4269 | $ WS "long double result;" |
4270 | $ WS "result = strtold(""123123"", NULL, 10);" | |
4271 | $ WS "exit(0);" | |
570bb66e JH |
4272 | $ WS "}" |
4273 | $ CS | |
4274 | $ tmp = "strtold" | |
4275 | $ GOSUB inlibc | |
4276 | $ d_strtold = tmp | |
4277 | $! | |
4278 | $! Check for atoll | |
4279 | $! | |
4280 | $ OS | |
7558ebc2 PP |
4281 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4282 | $ WS "#include <stdlib.h>" | |
4283 | $ WS "#endif" | |
4284 | $ WS "#include <string.h>" | |
4285 | $ WS "int main()" | |
570bb66e | 4286 | $ WS "{" |
7558ebc2 PP |
4287 | $ WS " __int64 result;" |
4288 | $ WS "result = atoll(""123123"");" | |
4289 | $ WS "exit(0);" | |
570bb66e JH |
4290 | $ WS "}" |
4291 | $ CS | |
4292 | $ tmp = "atoll" | |
4293 | $ GOSUB inlibc | |
4294 | $ d_atoll = tmp | |
4295 | $! | |
4296 | $! Check for atolf | |
4297 | $! | |
4298 | $ OS | |
7558ebc2 PP |
4299 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4300 | $ WS "#include <stdlib.h>" | |
4301 | $ WS "#endif" | |
4302 | $ WS "#include <string.h>" | |
4303 | $ WS "int main()" | |
570bb66e | 4304 | $ WS "{" |
7558ebc2 PP |
4305 | $ WS "long double" |
4306 | $ WS "result = atolf(""123123"");" | |
4307 | $ WS "exit(0);" | |
570bb66e JH |
4308 | $ WS "}" |
4309 | $ CS | |
4310 | $ tmp = "atolf" | |
4311 | $ GOSUB inlibc | |
4312 | $ d_atolf = tmp | |
4313 | $! | |
4314 | $! Check for access | |
4315 | $! | |
4316 | $ OS | |
7558ebc2 PP |
4317 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4318 | $ WS "#include <stdlib.h>" | |
4319 | $ WS "#endif" | |
4320 | $ WS "#include <stdio.h>" | |
4321 | $ WS "int main()" | |
570bb66e | 4322 | $ WS "{" |
7558ebc2 PP |
4323 | $ WS "access(""foo"", F_OK);" |
4324 | $ WS "exit(0);" | |
570bb66e JH |
4325 | $ WS "}" |
4326 | $ CS | |
4327 | $ tmp = "acess" | |
4328 | $ GOSUB inlibc | |
4329 | $ d_access = tmp | |
4330 | $! | |
4331 | $! Check for bzero | |
4332 | $! | |
4333 | $ OS | |
7558ebc2 PP |
4334 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4335 | $ WS "#include <stdlib.h>" | |
4336 | $ WS "#endif" | |
4337 | $ WS "#include <stdio.h>" | |
4338 | $ WS "#include <strings.h>" | |
4339 | $ WS "int main()" | |
570bb66e | 4340 | $ WS "{" |
7558ebc2 PP |
4341 | $ WS "char foo[10];" |
4342 | $ WS "bzero(foo, 10);" | |
4343 | $ WS "exit(0);" | |
570bb66e JH |
4344 | $ WS "}" |
4345 | $ CS | |
4346 | $ tmp = "bzero" | |
4347 | $ GOSUB inlibc | |
4348 | $ d_bzero = tmp | |
4349 | $! | |
4350 | $! Check for bcopy | |
4351 | $! | |
4352 | $ OS | |
7558ebc2 PP |
4353 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4354 | $ WS "#include <stdlib.h>" | |
4355 | $ WS "#endif" | |
4356 | $ WS "#include <stdio.h>" | |
4357 | $ WS "#include <strings.h>" | |
4358 | $ WS "int main()" | |
570bb66e | 4359 | $ WS "{" |
7558ebc2 PP |
4360 | $ WS "char foo[10], bar[10];" |
4361 | $ WS "bcopy(""foo"", bar, 3);" | |
4362 | $ WS "exit(0);" | |
570bb66e JH |
4363 | $ WS "}" |
4364 | $ CS | |
4365 | $ tmp = "bcopy" | |
4366 | $ GOSUB inlibc | |
4367 | $ d_bcopy = tmp | |
4368 | $! | |
4369 | $! Check for mkstemp | |
4370 | $! | |
4371 | $ OS | |
7558ebc2 PP |
4372 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4373 | $ WS "#include <stdlib.h>" | |
4374 | $ WS "#endif" | |
4375 | $ WS "#include <stdio.h>" | |
4376 | $ WS "int main()" | |
570bb66e | 4377 | $ WS "{" |
7558ebc2 PP |
4378 | $ WS "mkstemp(""foo"");" |
4379 | $ WS "exit(0);" | |
570bb66e JH |
4380 | $ WS "}" |
4381 | $ CS | |
4382 | $ tmp = "mkstemp" | |
4383 | $ GOSUB inlibc | |
4384 | $ d_mkstemp = tmp | |
4385 | $! | |
4386 | $! Check for mkstemps | |
4387 | $! | |
4388 | $ OS | |
7558ebc2 PP |
4389 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4390 | $ WS "#include <stdlib.h>" | |
4391 | $ WS "#endif" | |
4392 | $ WS "#include <stdio.h>" | |
4393 | $ WS "int main()" | |
570bb66e | 4394 | $ WS "{" |
7558ebc2 PP |
4395 | $ WS "mkstemps(""foo"", 1);" |
4396 | $ WS "exit(0);" | |
570bb66e JH |
4397 | $ WS "}" |
4398 | $ CS | |
4399 | $ tmp = "mkstemps" | |
4400 | $ GOSUB inlibc | |
4401 | $ d_mkstemps = tmp | |
4402 | $! | |
570bb66e JH |
4403 | $! Check for mkdtemp |
4404 | $! | |
4405 | $ OS | |
7558ebc2 PP |
4406 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4407 | $ WS "#include <stdlib.h>" | |
4408 | $ WS "#endif" | |
4409 | $ WS "#include <stdio.h>" | |
4410 | $ WS "int main()" | |
570bb66e | 4411 | $ WS "{" |
7558ebc2 PP |
4412 | $ WS "mkdtemp(""foo"");" |
4413 | $ WS "exit(0);" | |
570bb66e JH |
4414 | $ WS "}" |
4415 | $ CS | |
4416 | $ tmp = "mkdtemp" | |
4417 | $ GOSUB inlibc | |
4418 | $ d_mkdtemp = tmp | |
4419 | $! | |
d2d53deb CB |
4420 | $! Check for poll |
4421 | $! | |
4422 | $ if i_poll .eqs. "define" | |
4423 | $ then | |
4424 | $ OS | |
4425 | $ WS "#if defined(__DECC) || defined(__DECCXX)" | |
4426 | $ WS "#include <stdlib.h>" | |
4427 | $ WS "#endif" | |
4428 | $ WS "#include <poll.h>" | |
4429 | $ WS "int main()" | |
4430 | $ WS "{" | |
4431 | $ WS "struct pollfd pfd;" | |
4432 | $ WS "int count=poll(&pfd,1,0);" | |
4433 | $ WS "exit(0);" | |
4434 | $ WS "}" | |
4435 | $ CS | |
4436 | $ tmp = "poll" | |
4437 | $ GOSUB inlibc | |
4438 | $ d_poll = tmp | |
4439 | $ else | |
4440 | $ d_poll = "undef" | |
4441 | $ endif | |
4442 | $! | |
570bb66e JH |
4443 | $! Check for setvbuf |
4444 | $! | |
4445 | $ OS | |
7558ebc2 PP |
4446 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4447 | $ WS "#include <stdlib.h>" | |
4448 | $ WS "#endif" | |
4449 | $ WS "#include <stdio.h>" | |
4450 | $ WS "int main()" | |
570bb66e | 4451 | $ WS "{" |
7558ebc2 PP |
4452 | $ WS "FILE *foo;" |
4453 | $ WS "char Buffer[99];" | |
4454 | $ WS "foo = fopen(""foo"", ""r"");" | |
4455 | $ WS "setvbuf(foo, Buffer, 0, 0);" | |
4456 | $ WS "exit(0);" | |
570bb66e JH |
4457 | $ WS "}" |
4458 | $ CS | |
4459 | $ tmp = "setvbuf" | |
4460 | $ GOSUB inlibc | |
4461 | $ d_setvbuf = tmp | |
4462 | $! | |
c998f3c7 PP |
4463 | $! see if sfio.h is available |
4464 | $! see if sfio library is available | |
4465 | $! Ok, but do we want to use it. | |
4466 | $! IF F$TYPE(usesfio) .EQS. "" THEN usesfio = "undef" | |
4467 | $! IF val .EQS. "define" | |
4468 | $! THEN | |
4469 | $! IF usesfio .EQS. "define" | |
4470 | $! THEN dflt = "y" | |
4471 | $! ELSE dflt = "n" | |
4472 | $! ENDIF | |
4473 | $! echo "''package' can use the sfio library, but it is experimental." | |
c998f3c7 PP |
4474 | $! rp="You seem to have sfio available, do you want to try using it? [''dflt'] " |
4475 | $! GOSUB myread | |
4476 | $! IF ans .EQS. "" THEN ans = dflt | |
4477 | $! IF ans | |
4478 | $! THEN | |
712b953a | 4479 | $! echo "Ok, turning on sfio then." |
c998f3c7 PP |
4480 | $! val="define" |
4481 | $! ELSE | |
4482 | $! echo "Ok, avoiding sfio this time. I'll use stdio instead." | |
4483 | $! val="undef" | |
4484 | $! ENDIF | |
4485 | $! ELSE | |
4486 | $! IF usesfio .EQS. "define" | |
4487 | $! THEN | |
4488 | $! echo4 "Sorry, cannot find sfio on this machine." | |
4489 | $! echo4 "Ignoring your setting of usesfio=''usesfio'." | |
4490 | $! val="undef" | |
4491 | $! ENDIF | |
4492 | $! ENDIF | |
4493 | $! | |
570bb66e JH |
4494 | $! Check for setenv |
4495 | $! | |
4496 | $ OS | |
7558ebc2 PP |
4497 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4498 | $ WS "#include <stdlib.h>" | |
4499 | $ WS "#endif" | |
4500 | $ WS "#include <stdio.h>" | |
4501 | $ WS "int main()" | |
570bb66e | 4502 | $ WS "{" |
7558ebc2 PP |
4503 | $ WS "setenv(""FOO"", ""BAR"", 0);" |
4504 | $ WS "exit(0);" | |
570bb66e JH |
4505 | $ WS "}" |
4506 | $ CS | |
4507 | $ tmp = "setenv" | |
4508 | $ GOSUB inlibc | |
4509 | $ d_setenv = tmp | |
4510 | $! | |
4511 | $! Check for setproctitle | |
4512 | $! | |
4513 | $ OS | |
7558ebc2 PP |
4514 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4515 | $ WS "#include <stdlib.h>" | |
4516 | $ WS "#endif" | |
4517 | $ WS "#include <stdio.h>" | |
4518 | $ WS "int main()" | |
570bb66e | 4519 | $ WS "{" |
7558ebc2 PP |
4520 | $ WS "setproctitle(""%s"", ""FOO"");" |
4521 | $ WS "exit(0);" | |
570bb66e JH |
4522 | $ WS "}" |
4523 | $ CS | |
4524 | $ tmp = "setproctitle" | |
4525 | $ GOSUB inlibc | |
4526 | $ d_setproctitle = tmp | |
4527 | $! | |
4528 | $! Check for <netinet/in.h> | |
4529 | $! | |
046cc26c | 4530 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4531 | $ THEN |
4532 | $ tmp = "netinet/in.h" | |
4533 | $ GOSUB inhdr | |
4534 | $ i_niin = tmp | |
4535 | $ ELSE | |
4536 | $ i_niin="undef" | |
4537 | $ ENDIF | |
4538 | $! | |
4539 | $! Check for <netinet/tcp.h> | |
4540 | $! | |
046cc26c | 4541 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4542 | $ THEN |
4543 | $ tmp = "netinet/tcp.h" | |
4544 | $ GOSUB inhdr | |
4545 | $ i_netinettcp = tmp | |
4546 | $ ELSE | |
4547 | $ i_netinettcp="undef" | |
4548 | $ ENDIF | |
4549 | $! | |
4550 | $! Check for endhostent | |
4551 | $! | |
046cc26c | 4552 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4553 | $ THEN |
4554 | $ OS | |
7558ebc2 PP |
4555 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4556 | $ WS "#include <stdlib.h>" | |
4557 | $ WS "#endif" | |
4558 | $ WS "#include <stdio.h>" | |
046cc26c | 4559 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4560 | $ WS "int main()" |
570bb66e | 4561 | $ WS "{" |
7558ebc2 PP |
4562 | $ WS "endhostent();" |
4563 | $ WS "exit(0);" | |
570bb66e JH |
4564 | $ WS "}" |
4565 | $ CS | |
4566 | $ tmp = "endhostent" | |
4567 | $ GOSUB inlibc | |
4568 | $ d_endhent = tmp | |
4569 | $ ELSE | |
4570 | $ d_endhent="undef" | |
4571 | $ ENDIF | |
4572 | $! | |
4573 | $! Check for endnetent | |
4574 | $! | |
046cc26c | 4575 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4576 | $ THEN |
4577 | $ OS | |
7558ebc2 PP |
4578 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4579 | $ WS "#include <stdlib.h>" | |
4580 | $ WS "#endif" | |
4581 | $ WS "#include <stdio.h>" | |
046cc26c | 4582 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
570bb66e JH |
4583 | $ WS "int main()" |
4584 | $ WS "{" | |
4585 | $ WS "endnetent();" | |
4586 | $ WS "exit(0);" | |
4587 | $ WS "}" | |
4588 | $ CS | |
4589 | $ tmp = "endnetent" | |
4590 | $ GOSUB inlibc | |
4591 | $ d_endnent = tmp | |
4592 | $ ELSE | |
4593 | $ d_endnent="undef" | |
4594 | $ ENDIF | |
4595 | $! | |
4596 | $! Check for endprotoent | |
4597 | $! | |
046cc26c | 4598 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4599 | $ THEN |
4600 | $ OS | |
7558ebc2 PP |
4601 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4602 | $ WS "#include <stdlib.h>" | |
4603 | $ WS "#endif" | |
4604 | $ WS "#include <stdio.h>" | |
046cc26c | 4605 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4606 | $ WS "int main()" |
570bb66e | 4607 | $ WS "{" |
7558ebc2 PP |
4608 | $ WS "endprotoent();" |
4609 | $ WS "exit(0);" | |
570bb66e JH |
4610 | $ WS "}" |
4611 | $ CS | |
4612 | $ tmp = "endprotoent" | |
4613 | $ GOSUB inlibc | |
4614 | $ d_endpent = tmp | |
4615 | $ ELSE | |
4616 | $ d_endpent="undef" | |
4617 | $ ENDIF | |
4618 | $! | |
4619 | $! Check for endservent | |
4620 | $! | |
046cc26c | 4621 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4622 | $ THEN |
4623 | $ OS | |
7558ebc2 PP |
4624 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4625 | $ WS "#include <stdlib.h>" | |
4626 | $ WS "#endif" | |
4627 | $ WS "#include <stdio.h>" | |
046cc26c | 4628 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4629 | $ WS "int main()" |
570bb66e | 4630 | $ WS "{" |
7558ebc2 PP |
4631 | $ WS "endservent();" |
4632 | $ WS "exit(0);" | |
570bb66e JH |
4633 | $ WS "}" |
4634 | $ CS | |
4635 | $ tmp = "endservent" | |
4636 | $ GOSUB inlibc | |
4637 | $ d_endsent = tmp | |
4638 | $ ELSE | |
4639 | $ d_endsent="undef" | |
4640 | $ ENDIF | |
4641 | $! | |
4642 | $! Check for sethostent | |
4643 | $! | |
046cc26c | 4644 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4645 | $ THEN |
4646 | $ OS | |
7558ebc2 PP |
4647 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4648 | $ WS "#include <stdlib.h>" | |
4649 | $ WS "#endif" | |
4650 | $ WS "#include <stdio.h>" | |
046cc26c | 4651 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4652 | $ WS "int main()" |
570bb66e | 4653 | $ WS "{" |
7558ebc2 PP |
4654 | $ WS "sethostent(1);" |
4655 | $ WS "exit(0);" | |
570bb66e JH |
4656 | $ WS "}" |
4657 | $ CS | |
4658 | $ tmp = "sethostent" | |
4659 | $ GOSUB inlibc | |
4660 | $ d_sethent = tmp | |
4661 | $ ELSE | |
4662 | $ d_sethent="undef" | |
4663 | $ ENDIF | |
4664 | $! | |
4665 | $! Check for setnetent | |
4666 | $! | |
046cc26c | 4667 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4668 | $ THEN |
4669 | $ OS | |
7558ebc2 PP |
4670 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4671 | $ WS "#include <stdlib.h>" | |
4672 | $ WS "#endif" | |
4673 | $ WS "#include <stdio.h>" | |
046cc26c | 4674 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4675 | $ WS "int main()" |
570bb66e | 4676 | $ WS "{" |
7558ebc2 PP |
4677 | $ WS "setnetent(1);" |
4678 | $ WS "exit(0);" | |
570bb66e JH |
4679 | $ WS "}" |
4680 | $ CS | |
4681 | $ tmp = "setnetent" | |
4682 | $ GOSUB inlibc | |
4683 | $ d_setnent = tmp | |
4684 | $ ELSE | |
4685 | $ d_setnent="undef" | |
4686 | $ ENDIF | |
4687 | $! | |
4688 | $! Check for setprotoent | |
4689 | $! | |
046cc26c | 4690 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4691 | $ THEN |
4692 | $ OS | |
7558ebc2 PP |
4693 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4694 | $ WS "#include <stdlib.h>" | |
4695 | $ WS "#endif" | |
4696 | $ WS "#include <stdio.h>" | |
046cc26c | 4697 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4698 | $ WS "int main()" |
570bb66e | 4699 | $ WS "{" |
7558ebc2 PP |
4700 | $ WS "setprotoent(1);" |
4701 | $ WS "exit(0);" | |
570bb66e JH |
4702 | $ WS "}" |
4703 | $ CS | |
4704 | $ tmp = "setprotoent" | |
4705 | $ GOSUB inlibc | |
4706 | $ d_setpent = tmp | |
4707 | $ ELSE | |
4708 | $ d_setpent="undef" | |
4709 | $ ENDIF | |
4710 | $! | |
4711 | $! Check for setservent | |
4712 | $! | |
046cc26c | 4713 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4714 | $ THEN |
4715 | $ OS | |
7558ebc2 PP |
4716 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4717 | $ WS "#include <stdlib.h>" | |
4718 | $ WS "#endif" | |
4719 | $ WS "#include <stdio.h>" | |
046cc26c | 4720 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4721 | $ WS "int main()" |
570bb66e | 4722 | $ WS "{" |
7558ebc2 PP |
4723 | $ WS "setservent(1);" |
4724 | $ WS "exit(0);" | |
570bb66e JH |
4725 | $ WS "}" |
4726 | $ CS | |
4727 | $ tmp = "setservent" | |
4728 | $ GOSUB inlibc | |
4729 | $ d_setsent = tmp | |
4730 | $ ELSE | |
4731 | $ d_setsent="undef" | |
4732 | $ ENDIF | |
4733 | $! | |
4734 | $! Check for gethostent | |
4735 | $! | |
046cc26c | 4736 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4737 | $ THEN |
4738 | $ OS | |
7558ebc2 PP |
4739 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4740 | $ WS "#include <stdlib.h>" | |
4741 | $ WS "#endif" | |
4742 | $ WS "#include <stdio.h>" | |
046cc26c | 4743 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4744 | $ WS "int main()" |
570bb66e | 4745 | $ WS "{" |
7558ebc2 PP |
4746 | $ WS "gethostent();" |
4747 | $ WS "exit(0);" | |
570bb66e JH |
4748 | $ WS "}" |
4749 | $ CS | |
4750 | $ tmp = "gethostent" | |
4751 | $ GOSUB inlibc | |
4752 | $ d_gethent = tmp | |
4753 | $ ELSE | |
4754 | $ d_gethent="undef" | |
4755 | $ ENDIF | |
4756 | $! | |
4757 | $! Check for getnetent | |
4758 | $! | |
046cc26c | 4759 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4760 | $ THEN |
4761 | $ OS | |
7558ebc2 PP |
4762 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4763 | $ WS "#include <stdlib.h>" | |
4764 | $ WS "#endif" | |
4765 | $ WS "#include <stdio.h>" | |
046cc26c | 4766 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4767 | $ WS "int main()" |
570bb66e | 4768 | $ WS "{" |
7558ebc2 PP |
4769 | $ WS "getnetent();" |
4770 | $ WS "exit(0);" | |
570bb66e JH |
4771 | $ WS "}" |
4772 | $ CS | |
4773 | $ tmp = "getnetent" | |
4774 | $ GOSUB inlibc | |
4775 | $ d_getnent = tmp | |
4776 | $ ELSE | |
4777 | $ d_getnent="undef" | |
4778 | $ ENDIF | |
4779 | $! | |
4780 | $! Check for getprotoent | |
4781 | $! | |
046cc26c | 4782 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4783 | $ THEN |
4784 | $ OS | |
7558ebc2 PP |
4785 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4786 | $ WS "#include <stdlib.h>" | |
4787 | $ WS "#endif" | |
4788 | $ WS "#include <stdio.h>" | |
046cc26c | 4789 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4790 | $ WS "int main()" |
570bb66e | 4791 | $ WS "{" |
7558ebc2 PP |
4792 | $ WS "getprotoent();" |
4793 | $ WS "exit(0);" | |
570bb66e JH |
4794 | $ WS "}" |
4795 | $ CS | |
4796 | $ tmp = "getprotoent" | |
4797 | $ GOSUB inlibc | |
4798 | $ d_getpent = tmp | |
4799 | $ ELSE | |
4800 | $ d_getpent="undef" | |
4801 | $ ENDIF | |
4802 | $! | |
4803 | $! Check for getservent | |
4804 | $! | |
046cc26c | 4805 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4806 | $ THEN |
4807 | $ OS | |
7558ebc2 PP |
4808 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4809 | $ WS "#include <stdlib.h>" | |
4810 | $ WS "#endif" | |
4811 | $ WS "#include <stdio.h>" | |
046cc26c | 4812 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4813 | $ WS "int main()" |
570bb66e | 4814 | $ WS "{" |
7558ebc2 PP |
4815 | $ WS "getservent();" |
4816 | $ WS "exit(0);" | |
570bb66e JH |
4817 | $ WS "}" |
4818 | $ CS | |
4819 | $ tmp = "getservent" | |
4820 | $ GOSUB inlibc | |
4821 | $ d_getsent = tmp | |
4822 | $ ELSE | |
4823 | $ d_getsent="undef" | |
4824 | $ ENDIF | |
4825 | $! | |
234242ca CB |
4826 | $! |
4827 | $! Check for sa_len | |
4828 | $! | |
4829 | $ echo4 "Checking the availability of sa_len in the sockaddr struct ..." | |
046cc26c | 4830 | $ IF Has_Dec_C_Sockets |
234242ca CB |
4831 | $ THEN |
4832 | $ OS | |
4833 | $ WS "#if defined(__DECC) || defined(__DECCXX)" | |
4834 | $ WS "#include <stdlib.h>" | |
4835 | $ WS "#endif" | |
4836 | $ WS "#define _SOCKADDR_LEN" | |
4837 | $ WS "#include <types.h>" | |
046cc26c | 4838 | $ WS "#include <socket.h>" |
85fac3a9 | 4839 | $ WS "#include <string.h>" |
234242ca CB |
4840 | $ WS "int main() {" |
4841 | $ WS "struct sockaddr sa;" | |
85fac3a9 | 4842 | $ WS "memset((char *)&sa, 0, sizeof(sa));" |
234242ca CB |
4843 | $ WS "return (sa.sa_len);" |
4844 | $ WS "}" | |
4845 | $ CS | |
4846 | $ GOSUB compile_ok | |
4847 | $ IF compile_status .EQ. good_compile | |
4848 | $ THEN | |
4849 | $ d_sockaddr_sa_len="define" | |
4850 | $ echo "You have sa_len in the sockaddr struct." | |
4851 | $ ELSE | |
4852 | $ d_sockaddr_sa_len="undef" | |
4853 | $ echo "You do not have sa_len in the sockaddr struct." | |
4854 | $ ENDIF | |
4855 | $ ELSE | |
4856 | $ d_sockaddr_sa_len="undef" | |
4857 | $ echo "You do not have sa_len in the sockaddr struct." | |
4858 | $ ENDIF | |
d9484470 CB |
4859 | $! |
4860 | $! Check for sin6_scope_id | |
4861 | $! | |
4862 | $ echo4 "Checking the availability of sin6_scope_id in the struct sockaddr_in6 ..." | |
046cc26c | 4863 | $ IF Has_Dec_C_Sockets |
d9484470 CB |
4864 | $ THEN |
4865 | $ OS | |
4866 | $ WS "#include <types.h>" | |
046cc26c | 4867 | $ WS "#include <socket.h>" |
d9484470 | 4868 | $ WS "#include <in.h>" |
85fac3a9 | 4869 | $ WS "#include <string.h>" |
d9484470 CB |
4870 | $ WS "int main() {" |
4871 | $ WS "struct sockaddr_in6 sin6;" | |
85fac3a9 | 4872 | $ WS "memset((char *)&sin6, 0, sizeof(sin6));" |
d9484470 CB |
4873 | $ WS "return (sin6.sin6_scope_id);" |
4874 | $ WS "}" | |
4875 | $ CS | |
4876 | $ GOSUB compile_ok | |
4877 | $ IF compile_status .EQ. good_compile | |
4878 | $ THEN | |
4879 | $ d_sin6_scope_id="define" | |
4880 | $ echo "You have sin6_scope_id in the sockaddr_in6 struct." | |
4881 | $ ELSE | |
4882 | $ d_sin6_scope_id="undef" | |
4883 | $ echo "You do not have sin6_scope_id in the sockaddr_in6 struct." | |
4884 | $ ENDIF | |
4885 | $ ELSE | |
4886 | $ d_sin6_scope_id="undef" | |
4887 | $ echo "You do not have sin6_scope_id in the sockaddr_in6 struct." | |
4888 | $ ENDIF | |
4889 | $! | |
02e1c2f1 CB |
4890 | $! Check for nanosleep |
4891 | $! | |
4892 | $ OS | |
4893 | $ WS "#if defined(__DECC) || defined(__DECCXX)" | |
4894 | $ WS "#include <stdlib.h>" | |
4895 | $ WS "#endif" | |
4896 | $ WS "#include <time.h>" | |
4897 | $ WS "int main()" | |
4898 | $ WS "{" | |
4899 | $ WS "int asleep = nanosleep(NULL,NULL);" | |
4900 | $ WS "exit(0);" | |
4901 | $ WS "}" | |
4902 | $ CS | |
4903 | $ tmp = "nanosleep" | |
4904 | $ GOSUB inlibc | |
4905 | $ d_nanosleep = tmp | |
4906 | $! | |
570bb66e JH |
4907 | $! Check for socklen_t |
4908 | $! | |
046cc26c | 4909 | $ IF Has_Dec_C_Sockets |
570bb66e JH |
4910 | $ THEN |
4911 | $ echo4 "Checking to see if you have socklen_t..." | |
4912 | $ OS | |
7558ebc2 PP |
4913 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4914 | $ WS "#include <stdlib.h>" | |
4915 | $ WS "#endif" | |
4916 | $ WS "#include <stdio.h>" | |
046cc26c | 4917 | $ IF i_netdb .EQS. "define" THEN WS "#include <netdb.h>" |
7558ebc2 | 4918 | $ WS "int main()" |
570bb66e | 4919 | $ WS "{" |
7558ebc2 PP |
4920 | $ WS "socklen_t x = 16;" |
4921 | $ WS "exit(0);" | |
570bb66e JH |
4922 | $ WS "}" |
4923 | $ CS | |
4924 | $ GOSUB link_ok | |
4925 | $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link | |
4926 | $ THEN | |
4927 | $ d_socklen_t="define" | |
4928 | $ echo "You have socklen_t." | |
4929 | $ ELSE | |
4930 | $ d_socklen_t="undef" | |
4931 | $ echo "You do not have socklen_t." | |
4932 | $ ENDIF | |
4933 | $ ELSE | |
4934 | $ d_socklen_t="undef" | |
4935 | $ ENDIF | |
4936 | $! | |
4937 | $! Check for pthread_yield | |
4938 | $! | |
4939 | $ IF use_threads | |
4940 | $ THEN | |
4941 | $ OS | |
7558ebc2 PP |
4942 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4943 | $ WS "#include <stdlib.h>" | |
4944 | $ WS "#endif" | |
4945 | $ WS "#include <pthread.h>" | |
4946 | $ WS "#include <stdio.h>" | |
4947 | $ WS "int main()" | |
570bb66e | 4948 | $ WS "{" |
7558ebc2 PP |
4949 | $ WS "pthread_yield();" |
4950 | $ WS "exit(0);" | |
570bb66e JH |
4951 | $ WS "}" |
4952 | $ CS | |
4953 | $ tmp = "pthread_yield" | |
4954 | $ GOSUB inlibc | |
4955 | $ d_pthread_yield = tmp | |
4956 | $ ELSE | |
4957 | $ d_pthread_yield="undef" | |
4958 | $ ENDIF | |
4959 | $! | |
4960 | $! Check for sched_yield | |
4961 | $! | |
4962 | $ IF use_threads | |
4963 | $ THEN | |
4964 | $ OS | |
7558ebc2 PP |
4965 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4966 | $ WS "#include <stdlib.h>" | |
4967 | $ WS "#endif" | |
4968 | $ WS "#include <pthread.h>" | |
4969 | $ WS "#include <stdio.h>" | |
4970 | $ WS "int main()" | |
570bb66e | 4971 | $ WS "{" |
7558ebc2 PP |
4972 | $ WS "sched_yield();" |
4973 | $ WS "exit(0);" | |
570bb66e JH |
4974 | $ WS "}" |
4975 | $ CS | |
4976 | $ tmp = "sched_yield" | |
4977 | $ GOSUB inlibc | |
4978 | $ d_sched_yield = tmp | |
4979 | $ IF d_sched_yield .EQS. "define" | |
4980 | $ THEN sched_yield = "sched_yield" | |
4981 | $ ELSE sched_yield = " " | |
4982 | $ ENDIF | |
4983 | $ ELSE | |
4984 | $ d_sched_yield="undef" | |
4985 | $ sched_yield = " " | |
4986 | $ ENDIF | |
4987 | $! | |
e0e3c57a JH |
4988 | $! Check for pthread_attr_setscope and PTHREAD_SCOPE_SYSTEM. |
4989 | $! (The actual test is to be written.) | |
4990 | $! | |
4991 | $ d_pthread_attr_setscope="undef" | |
4992 | $! | |
570bb66e JH |
4993 | $! Check for generic pointer size |
4994 | $! | |
4995 | $ echo4 "Checking to see how big your pointers are..." | |
4996 | $ OS | |
7558ebc2 PP |
4997 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
4998 | $ WS "#include <stdlib.h>" | |
4999 | $ WS "#endif" | |
5000 | $ WS "#include <stdio.h>" | |
5001 | $ WS "int main()" | |
570bb66e | 5002 | $ WS "{" |
7558ebc2 PP |
5003 | $ WS "int foo;" |
5004 | $ WS "foo = sizeof(char *);" | |
5005 | $ WS "printf(""%d\n"", foo);" | |
5006 | $ WS "exit(0);" | |
570bb66e JH |
5007 | $ WS "}" |
5008 | $ CS | |
5009 | $ tmp = "char *" | |
5010 | $ GOSUB type_size_check | |
5011 | $ ptrsize = tmp | |
5012 | $ echo "Your pointers are ''ptrsize' bytes long." | |
5013 | $! | |
5014 | $! Check for size_t size | |
5015 | $! | |
5016 | $ tmp = "size_t" | |
5017 | $ zzz = tmp | |
5018 | $ echo4 "Checking the size of ''zzz'..." | |
5019 | $ GOSUB type_size_check | |
5020 | $ sizesize = tmp | |
5021 | $ echo "Your ''zzz' size is ''sizesize' bytes." | |
5022 | $! | |
e0261ef8 CB |
5023 | $! Check for _LARGEFILE capability. |
5024 | $! | |
5025 | $ off_t_size = 4 | |
5026 | $ OS | |
5027 | $ WS "#define _LARGEFILE" | |
5028 | $ WS "#include <stdio.h>" | |
5029 | $ WS "int main()" | |
5030 | $ WS "{" | |
5031 | $ WS "printf(""%d\n"", sizeof(off_t));" | |
5032 | $ WS "return(0);" | |
5033 | $ WS "}" | |
5034 | $ CS | |
5035 | $ GOSUB link_ok | |
5036 | $ IF link_status .EQ. good_link | |
5037 | $ THEN | |
5038 | $ GOSUB just_mcr_it | |
5039 | $ off_t_size = tmp | |
5040 | $ ENDIF | |
5041 | $ echo "Your off_t size is ''off_t_size' bytes when _LARGEFILE is defined." | |
5042 | $ IF off_t_size .ne. 8 .AND. (uselargefiles .OR. uselargefiles .eqs. "define") | |
5043 | $ THEN | |
5044 | $ echo4 "You configured with -Duselargefiles but your CRTL does not support _LARGEFILE." | |
5045 | $ echo4 "I'm disabling large file support." | |
5046 | $ uselargefiles = "undef" | |
5047 | $ ENDIF | |
5048 | $! | |
17660758 CB |
5049 | $! Check for st_ino size. |
5050 | $! | |
5051 | $ st_ino_size = 4 | |
5052 | $ OS | |
5053 | $ WS "#include <sys/stat.h>" | |
5054 | $ WS "#include <stdio.h>" | |
5055 | $ WS "#if defined(__DECC) || defined(__DECCXX)" | |
5056 | $ WS "#include <stdlib.h> | |
5057 | $ WS "#endif" | |
5058 | $ WS "int main() { | |
5059 | $ WS "#''uselargefiles' _LARGEFILE" | |
5060 | $ WS "#ifdef _LARGEFILE" | |
5061 | $ WS " printf(""%d\n"", sizeof(__ino64_t));" | |
5062 | $ WS "#else" | |
5063 | $ WS " printf(""%d\n"", sizeof(unsigned short)*3);" | |
5064 | $ WS "#endif" | |
5065 | $ WS " exit(0);" | |
5066 | $ WS "}" | |
5067 | $ CS | |
5068 | $ GOSUB link_ok | |
5069 | $ IF link_status .EQ. good_link | |
5070 | $ THEN | |
5071 | $ GOSUB just_mcr_it | |
5072 | $ st_ino_size = tmp | |
5073 | $ ENDIF | |
5074 | $ echo "Your st_ino size is ''st_ino_size' bytes." | |
5075 | $! | |
96021e87 JM |
5076 | $! Tests for hard link, symbolic links, and 7.3 + CRTL features |
5077 | $! | |
5078 | $ d_lchown = "undef" | |
5079 | $ d_link = "undef" | |
5080 | $ d_lstat = "undef" | |
5081 | $ d_readlink = "undef" | |
5082 | $ d_symlink = "undef" | |
5083 | $ d_realpath = "undef" | |
96021e87 JM |
5084 | $! |
5085 | $! Hard link support has been present since 7.3-1 except for the | |
5086 | $! easy to use DCL test to see if hardlinks are enabled on the build | |
5087 | $! disk. That would require more work to test, and I am only testing | |
5088 | $! this on 8.2, so that is why the 8.2 test. | |
5089 | $! | |
2b4b3ebb | 5090 | $ IF (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") |
96021e87 JM |
5091 | $ THEN |
5092 | $ IF f$getdvi("SYS$DISK","HARDLINKS_SUPPORTED") | |
5093 | $ THEN | |
5094 | $ echo "I Found 64 bit OpenVMS 8.2 or later, and hard links enabled on build disk." | |
5095 | $ echo "I will build with hard link support" | |
5096 | $ d_link = "define" | |
5097 | $ ELSE | |
5098 | $ echo "I Found 64 bit OpenVMS 8.2 or later, and hard links disabled on build disk." | |
5099 | $ echo "I will not build with hard link support." | |
5100 | $ ENDIF | |
5101 | $ ELSE | |
d00eb249 | 5102 | $ echo4 "I can not detect if your CRTL and build disk support hard links." |
96021e87 JM |
5103 | $ echo4 "I am disabling hard link support." |
5104 | $ ENDIF | |
5105 | $! | |
5106 | $ IF uselargefiles .OR. uselargefiles .eqs. "define" | |
5107 | $ THEN | |
2b4b3ebb | 5108 | $ IF (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") |
96021e87 | 5109 | $ THEN |
fe6e2aaa CB |
5110 | $ echo4 "Largefile support enabled, so enabling standard stat support too." |
5111 | $ usestdstat = "y" | |
96021e87 JM |
5112 | $ echo4 - |
5113 | "Looking for the realpath() function to indicate symbolic link support..." | |
5114 | $ OS | |
85fac3a9 | 5115 | $ WS "#include <stdlib.h>" |
96021e87 JM |
5116 | $ WS "char *realpath(const char *file_name, char * resolved_name, ...);" |
5117 | $ WS "int main()" | |
5118 | $ WS "{" | |
5119 | $ WS "char result[255];" | |
5120 | $ WS "realpath(""foo"",result);" | |
5121 | $ WS "exit(0);" | |
5122 | $ WS "}" | |
5123 | $ CS | |
5124 | $ GOSUB link_ok | |
5125 | $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link | |
5126 | $ THEN | |
5127 | $ echo - | |
5128 | "Found realpath() which indicates symbolic link support is present." | |
5129 | $ d_lchown = "define" | |
5130 | $ d_lstat = "define" | |
5131 | $ d_readlink = "define" | |
5132 | $ d_symlink = "define" | |
5133 | $! d_realpath = "define" ! Perl will not put it in the config.h file? | |
5134 | $! Perl apparently does not use a built in realpath() on other platforms, | |
5135 | $! but there is a severe performance penatly on OpenVMS to use the Perl | |
5136 | $! script that implements a realpath(). The d_symlink symbol is used | |
5137 | $! as a replacement for the d_realpath since they are related and both | |
5138 | $! were activated by the CRTL at the same time. | |
5139 | $! | |
5140 | $ ELSE | |
5141 | $ echo4 "Your system does not support symbolic links." | |
5142 | $ echo4 "I am disabling symbolic link support." | |
5143 | $ ENDIF | |
5144 | $ ELSE | |
5145 | $ echo4 "Your system does not support symbolic links." | |
5146 | $ echo4 "I am disabling symbolic link support." | |
5147 | $ ENDIF | |
5148 | $ ELSE | |
2b4b3ebb | 5149 | $ IF (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") |
96021e87 | 5150 | $ THEN |
d00eb249 | 5151 | $ echo4 "-Duselargefiles is required for symbolic link support." |
96021e87 JM |
5152 | $ echo4 "You did not specify that, so I am disabling symbolic link support." |
5153 | $ ENDIF | |
5154 | $ ENDIF | |
5155 | $! | |
9fa802f3 CB |
5156 | $! |
5157 | $! Check for grp.h -- should be 7.3 and later, but test to be sure | |
5158 | $! | |
5159 | $ tmp = "grp.h" | |
5160 | $ GOSUB inhdr | |
5161 | $ i_grp = tmp | |
5162 | $! | |
96021e87 JM |
5163 | $! VMS V7.3-2 powered options |
5164 | $! We know that it is only available for V7.3-2 and later on 64 bit platforms. | |
96021e87 JM |
5165 | $! |
5166 | $ d_getgrgid_r = "undef" | |
5167 | $ getgrgid_r_proto = "0" | |
5168 | $ d_getgrnam_r = "undef" | |
5169 | $ getgrnam_r_proto = "0" | |
5170 | $ d_getpgid = "undef" | |
5171 | $ d_getpgrp = "undef" | |
9fa802f3 CB |
5172 | $! N.B. We already have home-grown thread-safe versions of |
5173 | $! getpwnam and getpwuid -- no need to use CRTL versions | |
96021e87 JM |
5174 | $ d_getpwnam_r = "undef" |
5175 | $ getpwnam_r_proto = "0" | |
5176 | $ d_getpwuid_r = "undef" | |
5177 | $ getpwuid_r_proto = "0" | |
5178 | $ d_setgrent = "undef" | |
5179 | $ d_ttyname_r = "undef" | |
5180 | $ ttyname_r_proto = "0" | |
d00eb249 CB |
5181 | $ d_snprintf = "undef" |
5182 | $ d_vsnprintf = "undef" | |
2b4b3ebb | 5183 | $ if (vms_ver .GES. "7.3-2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") |
96021e87 | 5184 | $ then |
d00eb249 | 5185 | $ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with V7.3-2 routines" |
96021e87 JM |
5186 | $ d_getgrgid_r = "define" |
5187 | $ getgrgid_r_proto = "1" | |
5188 | $ d_getgrnam_r = "define" | |
5189 | $ getgrnam_r_proto = "1" | |
5190 | $ if d_symlink .or. d_symlink .EQS. "define" | |
5191 | $ then | |
5192 | $! FIXME: Need to find how to activate this. | |
5193 | $! d_getpgid = "define" | |
5194 | $! d_getpgrp = "define" | |
5195 | $ endif | |
96021e87 JM |
5196 | $ d_setgrent = "define" |
5197 | $ d_ttyname_r = "define" | |
5198 | $ ttyname_r_proto = "1" | |
d00eb249 CB |
5199 | $ d_snprintf = "define" |
5200 | $ d_vsnprintf = "define" | |
96021e87 JM |
5201 | $ endif |
5202 | $! | |
5203 | $! VMS V7.3-2 powered options | |
5204 | $! We know that it is only available for V7.3-2 and later on 64 bit platforms. | |
5205 | $! Only implementing right now on 8.2 because that is what I am testing | |
5206 | $! These functions may require POSIX UIDs/GIDs to be active, so I am | |
5207 | $! not activating the features at this time, just preparing this file | |
5208 | $! to easily use them in the future. | |
5209 | $! | |
5210 | $ d_seteuid = "undef" | |
5211 | $ d_setpgid = "undef" | |
5212 | $ d_setpgrp = "undef" | |
5213 | $ d_setregid = "undef" | |
5214 | $ d_setreuid = "undef" | |
5215 | $ d_setsid = "undef" | |
d00eb249 | 5216 | $ ! Disable this section for now. |
2b4b3ebb | 5217 | $!$ if (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") |
d00eb249 | 5218 | $ if .NOT. 1 |
96021e87 | 5219 | $ then |
d00eb249 | 5220 | $ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with V7.3-2 UID setting routines" |
96021e87 JM |
5221 | $ d_seteuid = "define" |
5222 | $ d_setpgid = "define" | |
5223 | $ d_setpgrp = "define" | |
5224 | $ d_setregid = "define" | |
5225 | $ d_setreuid = "define" | |
5226 | $ d_setsid = "define" | |
5227 | $ endif | |
5228 | $! | |
5229 | $! VMS V8 powered options | |
5230 | $! We know that it is only available for 8.2 and later on 64 bit platforms. | |
5231 | $! | |
5232 | $ d_fstatvfs = "undef" | |
5233 | $! d_statvfs = "undef" | |
5234 | $ i_sysstatvfs = "undef" | |
2b4b3ebb | 5235 | $ if (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") |
96021e87 | 5236 | $ then |
d00eb249 | 5237 | $ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with 8.2 routines" |
96021e87 JM |
5238 | $ d_fstatvfs = "define" |
5239 | $! d_statvfs = "define" | |
5240 | $ i_sysstatvfs = "define" | |
5241 | $ endif | |
5242 | $! | |
570bb66e JH |
5243 | $! Check rand48 and its ilk |
5244 | $! | |
5245 | $ echo4 "Looking for a random number function..." | |
5246 | $ OS | |
7558ebc2 PP |
5247 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
5248 | $ WS "#include <stdlib.h>" | |
5249 | $ WS "#endif" | |
5250 | $ WS "#include <stdio.h>" | |
5251 | $ WS "int main()" | |
570bb66e JH |
5252 | $ WS "{" |
5253 | $ WS "srand48(12L);" | |
7558ebc2 | 5254 | $ WS "exit(0);" |
570bb66e JH |
5255 | $ WS "}" |
5256 | $ CS | |
5257 | $ GOSUB link_ok | |
5258 | $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link | |
5259 | $ THEN | |
5260 | $ drand01 = "drand48()" | |
cd3eeb19 CB |
5261 | $ randbits = "48" |
5262 | $ randfunc = "drand48" | |
570bb66e JH |
5263 | $ randseedtype = "long int" |
5264 | $ seedfunc = "srand48" | |
5265 | $ echo4 "Good, found drand48()." | |
5266 | $ d_drand48proto = "define" | |
5267 | $ ELSE | |
5268 | $ d_drand48proto = "undef" | |
5269 | $ drand01="random()" | |
cd3eeb19 CB |
5270 | $ randbits = "31" |
5271 | $ randfunc = "random" | |
570bb66e JH |
5272 | $ randseedtype = "unsigned" |
5273 | $ seedfunc = "srandom" | |
5274 | $ OS | |
7558ebc2 PP |
5275 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
5276 | $ WS "#include <stdlib.h>" | |
5277 | $ WS "#endif" | |
5278 | $ WS "#include <stdio.h>" | |
5279 | $ WS "int main()" | |
570bb66e JH |
5280 | $ WS "{" |
5281 | $ WS "srandom(12);" | |
7558ebc2 | 5282 | $ WS "exit(0);" |
570bb66e JH |
5283 | $ WS "}" |
5284 | $ CS | |
5285 | $ GOSUB link_ok | |
5286 | $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link | |
5287 | $ THEN | |
5288 | $ echo4 "OK, found random()." | |
5289 | $ ELSE | |
96e176bf | 5290 | $ drand01="(((float)rand())*MY_INV_RAND_MAX)" |
cd3eeb19 | 5291 | $ randfunc = "rand" |
570bb66e JH |
5292 | $ randseedtype = "unsigned" |
5293 | $ seedfunc = "srand" | |
5294 | $ echo4 "Yick, looks like I have to use rand()." | |
5295 | $ ENDIF | |
5296 | $ ENDIF | |
570bb66e JH |
5297 | $! Done with compiler checks. Clean up. |
5298 | $ IF F$SEARCH("try.c") .NES."" THEN DELETE/NOLOG/NOCONFIRM try.c;* | |
5299 | $ IF F$SEARCH("try.obj").NES."" THEN DELETE/NOLOG/NOCONFIRM try.obj;* | |
5300 | $ IF F$SEARCH("try.exe").NES."" THEN DELETE/NOLOG/NOCONFIRM try.exe;* | |
5301 | $ IF F$SEARCH("try.opt").NES."" THEN DELETE/NOLOG/NOCONFIRM try.opt;* | |
5302 | $ IF F$SEARCH("try.out").NES."" THEN DELETE/NOLOG/NOCONFIRM try.out;* | |
414b89cc | 5303 | $ IF ccname .EQS. "CXX" |
570bb66e JH |
5304 | $ THEN |
5305 | $ CALL Cxx_demangler_cleanup | |
5306 | $ ENDIF | |
5307 | $! | |
5308 | $! Some that are compiler or VMS version sensitive | |
5309 | $! | |
5310 | $! Gnu C stuff | |
414b89cc | 5311 | $ IF ccname .EQS. "GCC" |
570bb66e JH |
5312 | $ THEN |
5313 | $ d_attribut="define" | |
5314 | $ vms_cc_type="gcc" | |
5315 | $ ELSE | |
85fac3a9 CB |
5316 | $ IF ccname .EQS. "CXX" |
5317 | $ THEN | |
5318 | $ vms_cc_type="cxx" | |
5319 | $ ELSE | |
5320 | $ vms_cc_type="cc" | |
5321 | $ ENDIF | |
570bb66e JH |
5322 | $ d_attribut="undef" |
5323 | $ ENDIF | |
5324 | $! | |
85fac3a9 CB |
5325 | $ d_bcmp="define" |
5326 | $ d_getitimer="define" | |
5327 | $ d_gettimeod="define" | |
5328 | $ d_mmap="define" | |
5329 | $ d_mprotect="define" | |
5330 | $ d_munmap="define" | |
5331 | $ d_msync="define" | |
5332 | $ d_ualarm="define" | |
5333 | $ d_uname="define" | |
5334 | $! d_unsetenv="define" ! Fix me - Activating requires changing VMS code | |
5335 | $ d_unsetenv="undef" ! Change will be needed to allow GNV integration | |
5336 | $ d_clearenv="undef" | |
5337 | $ d_usleep="define" | |
5338 | $ d_setitimer="define" | |
5339 | $ d_sigaction="define" | |
5340 | $ d_sigprocmask="define" | |
5341 | $ d_truncate="define" | |
5342 | $ d_wait4="define" | |
5343 | $ d_index="define" | |
5344 | $ pidtype="pid_t" | |
5345 | $ sig_name1="ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE" | |
5346 | $ sig_name2=" ALRM TERM USR1 USR2 NUM18 NUM19 CHLD CONT STOP TSTP TTIN TTOU DEBUG" | |
5347 | $ IF (vms_ver .GES. "7.3") | |
5348 | $ THEN | |
fe1de8ce | 5349 | $ sig_name2 = sig_name2 + " NUM27 WINCH" |
85fac3a9 | 5350 | $ ENDIF |
fe1de8ce CB |
5351 | $!* signal.h defines SIGRTMIN as 33 and SIGRTMAX as 64, but there is no |
5352 | $!* sigqueue function or other apparent means to do realtime signalling, | |
5353 | $!* so let's not try to include the realtime range for now. | |
5354 | $!* sig_name3=" NUM29 NUM30 NUM31 NUM32 RTMIN NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43" | |
5355 | $!* sig_name4=" NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58" | |
5356 | $!* sig_name5=" NUM59 NUM60 NUM61 NUMT62 NUM63 RTMAX" | |
85fac3a9 CB |
5357 | $ sig_name = sig_name1 + sig_name2 |
5358 | $ sig_num = "" | |
5359 | $ sig_num_init = "" | |
5360 | $ sig_name_init = "" | |
5361 | $ sig_index = 0 | |
fe1de8ce CB |
5362 | $! |
5363 | $ PARSE_SIG_NAME_LOOP: | |
5364 | $! | |
5365 | $ tmp = F$ELEMENT(sig_index, " ", sig_name) | |
5366 | $ IF F$LENGTH(F$EDIT(tmp,"TRIM")) .eq. 0 THEN GOTO END_SIG_NAME_LOOP | |
5367 | $ sig_name_init = sig_name_init + """''tmp'""," | |
5368 | $ sig_num = sig_num + "''sig_index' " | |
5369 | $ sig_num_init = sig_num_init + "''sig_index'," | |
5370 | $ sig_index = sig_index + 1 | |
5371 | $ GOTO PARSE_SIG_NAME_LOOP | |
5372 | $! | |
5373 | $ END_SIG_NAME_LOOP: | |
5374 | $! | |
5375 | $ sig_name_init = sig_name_init + "0" | |
5376 | $ sig_num_init = sig_num_init + "0" | |
5377 | $ sig_size = "''sig_index'" | |
5378 | $ sig_index = sig_index - 1 | |
5379 | $ sig_count = "''sig_index'" | |
570bb66e JH |
5380 | $ uidtype="uid_t" |
5381 | $ d_pathconf="define" | |
5382 | $ d_fpathconf="define" | |
5383 | $ d_sysconf="define" | |
5384 | $ d_sigsetjmp="define" | |
85fac3a9 | 5385 | $! |
a3bd614a PP |
5386 | $!: see if tzname[] exists |
5387 | $ OS | |
5388 | $ WS "#include <stdio.h>" | |
5389 | $ WS "#include <time.h>" | |
5390 | $ WS "int main() { extern short tzname[]; printf(""%hd"", tzname[0]); }" | |
5391 | $ CS | |
5392 | $ GOSUB compile_ok | |
5393 | $ IF compile_status .EQ. good_compile | |
5394 | $ THEN | |
5395 | $ d_tzname = "undef" | |
5396 | $ echo4 "tzname[] NOT found." | |
5397 | $ ELSE | |
5398 | $ d_tzname = "define" | |
5399 | $ echo4 "tzname[] found." | |
5400 | $ ENDIF | |
5401 | $ IF F$SEARCH("try.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM try.obj; | |
570bb66e | 5402 | $! |
414b89cc CB |
5403 | $ IF d_gethname .EQS. "undef" .AND. d_uname .EQS. "undef" |
5404 | $ THEN | |
5405 | $ d_phostname="define" | |
5406 | $ ELSE | |
5407 | $ d_phostname="undef" | |
5408 | $ ENDIF | |
5409 | $! | |
570bb66e | 5410 | $! Dec C alone |
85fac3a9 | 5411 | $ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" |
570bb66e JH |
5412 | $ THEN |
5413 | $ d_mbstowcs="define" | |
5414 | $ d_mbtowc="define" | |
5415 | $ d_stdiobase="define" | |
5416 | $ d_stdio_cnt_lval="define" | |
dedcc4d4 | 5417 | $ d_stdio_ptr_lval="define" |
570bb66e | 5418 | $ d_stdstdio="define" |
1de32f2a | 5419 | $ d_faststdio="define" |
570bb66e JH |
5420 | $ d_wcstombs="define" |
5421 | $ d_mblen="define" | |
5422 | $ d_mktime="define" | |
5423 | $ d_strcoll="define" | |
5424 | $ d_strxfrm="define" | |
5425 | $ d_wctomb="define" | |
5426 | $ i_locale="define" | |
2765b840 | 5427 | $ i_langinfo="define" |
570bb66e | 5428 | $ d_locconv="define" |
32995a38 | 5429 | $ d_nl_langinfo="define" |
570bb66e JH |
5430 | $ d_setlocale="define" |
5431 | $ vms_cc_type="decc" | |
5432 | $ ELSE | |
5433 | $ d_mbstowcs="undef" | |
5434 | $ d_mbtowc="undef" | |
5435 | $ d_stdiobase="undef" | |
5436 | $ d_stdio_cnt_lval="undef" | |
5437 | $ d_stdio_ptr_lval="undef" | |
5438 | $ d_stdstdio="undef" | |
1de32f2a | 5439 | $ d_faststdio="undef" |
570bb66e JH |
5440 | $ d_wcstombs="undef" |
5441 | $ d_mblen="undef" | |
5442 | $ d_mktime="undef" | |
5443 | $ d_strcoll="undef" | |
5444 | $ d_strxfrm="undef" | |
5445 | $ d_wctomb="undef" | |
5446 | $ i_locale="undef" | |
2765b840 | 5447 | $ i_langinfo="undef" |
570bb66e | 5448 | $ d_locconv="undef" |
2765b840 | 5449 | $ d_nl_langinfo="undef" |
570bb66e JH |
5450 | $ d_setlocale="undef" |
5451 | $ ENDIF | |
a7ffa9b9 | 5452 | $ d_stdio_ptr_lval_sets_cnt="undef" |
a15cef0c | 5453 | $ d_stdio_ptr_lval_nochange_cnt="define" |
1de32f2a | 5454 | $ usefaststdio="undef" |
570bb66e JH |
5455 | $! |
5456 | $! Sockets? | |
046cc26c | 5457 | $ if Has_Dec_C_Sockets |
570bb66e JH |
5458 | $ THEN |
5459 | $ d_vms_do_sockets="define" | |
5460 | $ d_htonl="define" | |
5461 | $ d_socket="define" | |
96021e87 | 5462 | $ d_sockpair = "undef" |
2b4b3ebb | 5463 | $ if (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") |
96021e87 JM |
5464 | $ then |
5465 | $ echo "Found 64 bit OpenVMS 8.2, will build with socketpair support" | |
5466 | $ d_sockpair = "define" | |
5467 | $ endif | |
570bb66e JH |
5468 | $ d_select="define" |
5469 | $ netdb_hlen_type="int" | |
5470 | $ netdb_host_type="char *" | |
5471 | $ netdb_name_type="char *" | |
5472 | $ netdb_net_type="long" | |
5473 | $ d_gethbyaddr="define" | |
5474 | $ d_gethbyname="define" | |
5475 | $ d_getnbyaddr="define" | |
5476 | $ d_getnbyname="define" | |
5477 | $ d_getpbynumber="define" | |
5478 | $ d_getpbyname="define" | |
5479 | $ d_getsbyport="define" | |
5480 | $ d_getsbyname="define" | |
5481 | $ d_gethostprotos="define" | |
5482 | $ d_getnetprotos="define" | |
5483 | $ d_getprotoprotos="define" | |
5484 | $ d_getservprotos="define" | |
414b89cc | 5485 | $ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" |
570bb66e JH |
5486 | $ THEN |
5487 | $ socksizetype="unsigned int" | |
5488 | $ ELSE | |
5489 | $ socksizetype="int *" | |
5490 | $ ENDIF | |
5491 | $ ELSE | |
5492 | $ d_vms_do_sockets="undef" | |
5493 | $ d_htonl="undef" | |
5494 | $ d_socket="undef" | |
96021e87 | 5495 | $ d_socketpair = "undef" |
570bb66e JH |
5496 | $ d_select="undef" |
5497 | $ netdb_hlen_type="int" | |
5498 | $ netdb_host_type="char *" | |
5499 | $ netdb_name_type="char *" | |
5500 | $ netdb_net_type="long" | |
5501 | $ d_gethbyaddr="undef" | |
5502 | $ d_gethbyname="undef" | |
5503 | $ d_getnbyaddr="undef" | |
5504 | $ d_getnbyname="undef" | |
5505 | $ d_getpbynumber="undef" | |
5506 | $ d_getpbyname="undef" | |
5507 | $ d_getsbyport="undef" | |
5508 | $ d_getsbyname="undef" | |
5509 | $ d_gethostprotos="undef" | |
5510 | $ d_getnetprotos="undef" | |
5511 | $ d_getprotoprotos="undef" | |
5512 | $ d_getservprotos="undef" | |
5513 | $ socksizetype="undef" | |
5514 | $ ENDIF | |
5515 | $! Threads | |
32995a38 | 5516 | $ d_oldpthreads="undef" |
570bb66e JH |
5517 | $ IF use_threads |
5518 | $ THEN | |
5519 | $ usethreads="define" | |
5520 | $ d_pthreads_created_joinable="define" | |
570bb66e | 5521 | $ ELSE |
570bb66e JH |
5522 | $ usethreads="undef" |
5523 | $ d_pthreads_created_joinable="undef" | |
5524 | $ ENDIF | |
5525 | $! | |
5526 | $! new (5.005_62++) typedefs for primitives | |
5527 | $! | |
5528 | $ echo "Choosing the C types to be used for Perl's internal types..." | |
5529 | $ ivtype="long" | |
5530 | $ uvtype="unsigned long" | |
5531 | $ i8type="char" | |
5532 | $ u8type="unsigned char" | |
5533 | $ i16type="short" | |
5534 | $ u16type="unsigned short" | |
5535 | $ i32type="int" | |
5536 | $ u32type="unsigned int" | |
5537 | $ i64type="long long" | |
5538 | $ u64type="unsigned long long" | |
5539 | $ nvtype="double" | |
5540 | $! | |
5541 | $ IF use64bitint .OR. use64bitint .EQS. "define" | |
5542 | $ THEN | |
5543 | $ ivtype = "''i64type'" | |
5544 | $ uvtype = "''u64type'" | |
570bb66e JH |
5545 | $ ELSE |
5546 | $ i64size="undef" | |
5547 | $ u64size="undef" | |
5548 | $ ENDIF | |
5549 | $! | |
50ddda1d CB |
5550 | $ IF uselongdouble .OR. uselongdouble .EQS. "define" |
5551 | $ THEN | |
5552 | $ nvtype="long double" | |
5553 | $ ENDIF | |
5554 | $! | |
570bb66e JH |
5555 | $ tmp = "''ivtype'" |
5556 | $ GOSUB type_size_check | |
5557 | $ ivsize = tmp | |
5558 | $ IF use64bitint .OR. use64bitint .EQS. "define" THEN i64size = tmp | |
5559 | $ IF ivtype .eqs. "long" | |
5560 | $ THEN longsize = tmp | |
5561 | $ ELSE | |
5562 | $ tmp = "long" | |
5563 | $ GOSUB type_size_check | |
5564 | $ longsize = tmp | |
5565 | $ ENDIF | |
7558ebc2 | 5566 | $! |
570bb66e JH |
5567 | $ tmp = "''uvtype'" |
5568 | $ GOSUB type_size_check | |
5569 | $ uvsize = tmp | |
5570 | $ IF use64bitint .OR. use64bitint .EQS. "define" THEN u64size = tmp | |
7558ebc2 | 5571 | $! |
570bb66e JH |
5572 | $ tmp = "''i8type'" |
5573 | $ GOSUB type_size_check | |
5574 | $ i8size = tmp | |
7558ebc2 | 5575 | $! |
570bb66e JH |
5576 | $ tmp = "''u8type'" |
5577 | $ GOSUB type_size_check | |
5578 | $ u8size = tmp | |
7558ebc2 | 5579 | $! |
570bb66e JH |
5580 | $ tmp = "''i16type'" |
5581 | $ GOSUB type_size_check | |
5582 | $ i16size = tmp | |
5583 | $ IF i16type .eqs. "short" | |
5584 | $ THEN shortsize = tmp | |
5585 | $ ELSE | |
5586 | $ tmp = "short" | |
5587 | $ gosub type_size_check | |
5588 | $ shortsize = tmp | |
5589 | $ ENDIF | |
7558ebc2 | 5590 | $! |
570bb66e JH |
5591 | $ tmp = "''u16type'" |
5592 | $ GOSUB type_size_check | |
5593 | $ u16size = tmp | |
7558ebc2 | 5594 | $! |
570bb66e JH |
5595 | $ tmp = "''i32type'" |
5596 | $ GOSUB type_size_check | |
5597 | $ i32size = tmp | |
5598 | $ IF i32type .eqs. "int" | |
5599 | $ THEN intsize = tmp | |
5600 | $ ELSE | |
5601 | $ tmp = "int" | |
5602 | $ gosub type_size_check | |
5603 | $ intsize = tmp | |
5604 | $ ENDIF | |
7558ebc2 | 5605 | $! |
570bb66e JH |
5606 | $ tmp = "''u32type'" |
5607 | $ gosub type_size_check | |
5608 | $ u32size = tmp | |
7558ebc2 | 5609 | $! |
570bb66e JH |
5610 | $ tmp = "''nvtype'" |
5611 | $ GOSUB type_size_check | |
5612 | $ nvsize = tmp | |
5613 | $! | |
5614 | $ echo "(IV will be ""''ivtype'"", ''ivsize' bytes)" | |
5615 | $ echo "(UV will be ""''uvtype'"", ''uvsize' bytes)" | |
5616 | $ echo "(NV will be ""''nvtype'"", ''nvsize' bytes)" | |
5617 | $! | |
a5bd55ee CB |
5618 | $ d_nv_preserves_uv = "undef" |
5619 | $ echo4 "Checking how many bits of your UVs your NVs can preserve..." | |
570bb66e | 5620 | $ OS |
7558ebc2 PP |
5621 | $ WS "#if defined(__DECC) || defined(__DECCXX)" |
5622 | $ WS "#include <stdlib.h>" | |
5623 | $ WS "#endif" | |
5624 | $ WS "#include <stdio.h>" | |
5625 | $ WS "int main() {" | |
a5bd55ee CB |
5626 | $ WS " ''uvtype' u = 0;" |
5627 | $ WS " int n = 8 * ''uvsize';" | |
5628 | $ WS " int i;" | |
5629 | $ WS " for (i = 0; i < n; i++) {" | |
5630 | $ WS " u = u << 1 | (''uvtype')1;" | |
5631 | $ WS " if ((''uvtype')(''nvtype')u != u)" | |
5632 | $ WS " break;" | |
5633 | $ WS " }" | |
5634 | $ WS " printf(""%d\n"", i);" | |
7558ebc2 PP |
5635 | $ WS " exit(0);" |
5636 | $ WS "}" | |
570bb66e JH |
5637 | $ CS |
5638 | $ GOSUB compile | |
a5bd55ee CB |
5639 | $ nv_preserves_uv_bits = tmp |
5640 | $ IF F$INTEGER(nv_preserves_uv_bits) .GE. (F$INTEGER(uvsize) * 8) | |
5641 | $ THEN | |
570bb66e | 5642 | $ d_nv_preserves_uv = "define" |
a5bd55ee | 5643 | $ echo "Your NVs can preserve all ''nv_preserves_uv_bits' bits of your UVs." |
570bb66e | 5644 | $ ELSE |
a5bd55ee CB |
5645 | $ d_nv_preserves_uv = "undef"" |
5646 | $ echo "Your NVs can preserve only ''nv_preserves_uv_bits' bits of your UVs." | |
570bb66e | 5647 | $ ENDIF |
f2610a60 | 5648 | $! |
1e74786a CB |
5649 | $ nv_overflows_integers_at = "0" |
5650 | $ echo4 "Checking to find the largest integer value your NVs can hold..." | |
5651 | $ OS | |
5652 | $ WS "#include <stdio.h>" | |
5653 | $ WS "" | |
5654 | $ WS "typedef ''nvtype' NV;" | |
5655 | $ WS "" | |
5656 | $ WS "int" | |
5657 | $ WS "main() {" | |
5658 | $ WS " NV value = 2;" | |
5659 | $ WS " int count = 1;" | |
5660 | $ WS "" | |
5661 | $ WS " while(count < 256) {" | |
5662 | $ WS " volatile NV up = value + 1.0;" | |
5663 | $ WS " volatile NV negated = -value;" | |
5664 | $ WS " volatile NV down = negated - 1.0;" | |
5665 | $ WS " volatile NV got_up = up - value;" | |
5666 | $ WS " int up_good = got_up == 1.0;" | |
5667 | $ WS " int got_down = down - negated;" | |
5668 | $ WS " int down_good = got_down == -1.0;" | |
5669 | $ WS "" | |
5670 | $ WS " if (down_good != up_good) {" | |
5671 | $ WS " fprintf(stderr," | |
5672 | $ WS " ""Inconsistency - up %d %f; down %d %f; for 2**%d (%.20f)\n""," | |
5673 | $ WS " up_good, (double) got_up, down_good, (double) got_down," | |
5674 | $ WS " count, (double) value);" | |
5675 | $ WS " return 1;" | |
5676 | $ WS " }" | |
5677 | $ WS " if (!up_good) {" | |
5678 | $ WS " while (1) {" | |
5679 | $ WS " if (count > 8) {" | |
5680 | $ WS " count -= 8;" | |
5681 | $ WS " fputs(""256.0"", stdout);" | |
5682 | $ WS " } else {" | |
5683 | $ WS " count--;" | |
5684 | $ WS " fputs(""2.0"", stdout);" | |
5685 | $ WS " }" | |
5686 | $ WS " if (!count) {" | |
5687 | $ WS " puts("""");" | |
5688 | $ WS " return 0;" | |
5689 | $ WS " }" | |
5690 | $ WS " fputs(""*"", stdout);" | |
5691 | $ WS " }" | |
5692 | $ WS " }" | |
5693 | $ WS " value *= 2;" | |
5694 | $ WS " ++count;" | |
5695 | $ WS " }" | |
5696 | $ WS " fprintf(stderr, ""Cannot overflow integer range, even at 2**%d (%.20f)\n""," | |
5697 | $ WS " count, (double) value);" | |
5698 | $ WS " return 1;" | |
5699 | $ WS "}" | |
5700 | $ CS | |
5701 | $ GOSUB compile | |
5702 | $ IF F$LENGTH(tmp) .GT. 0 | |
5703 | $ THEN | |
5704 | $ IF F$EXTRACT(0,1,tmp) .EQS. "2" | |
5705 | $ THEN | |
5706 | $ echo "The largest integer your NVs can preserve is equal to ''tmp'" | |
5707 | $ nv_overflows_integers_at = tmp | |
5708 | $ ELSE | |
5709 | $ echo "Cannot determine the largest integer value your NVs can hold, unexpected output" | |
5710 | $ echo "''tmp'" | |
5711 | $ ENDIF | |
5712 | $ ELSE | |
5713 | $ echo "Cannot determine the largest integer value your NVs can hold" | |
5714 | $ ENDIF | |
5715 | $! | |
50ddda1d CB |
5716 | $! Check for signbit (must already know nvtype) |
5717 | $! | |
5718 | $ echo4 "Checking to see if you have signbit() available to work on ''nvtype'..." | |
5719 | $ OS | |
5720 | $ WS "#if defined(__DECC) || defined(__DECCXX)" | |
5721 | $ WS "#include <stdlib.h>" | |
5722 | $ WS "#endif" | |
5723 | $ WS "#include <fp.h>" | |
5724 | $ WS "#include <stdio.h>" | |
5725 | $ WS "int main()" | |
5726 | $ WS "{" | |
5727 | $ WS " ''nvtype' x = 0.0;" | |
5728 | $ WS " ''nvtype' y = -0.0;" | |
5729 | $ WS " if ((signbit(x) == 0) && (signbit(y) != 0))" | |
5730 | $ WS " printf(""1\n"");" | |
5731 | $ WS " else" | |
5732 | $ WS " printf(""0\n"");" | |
5733 | $ WS "}" | |
5734 | $ CS | |
5735 | $ GOSUB compile | |
5736 | $ IF tmp .EQS. "1" | |
5737 | $ THEN | |
5738 | $ d_signbit = "define" | |
5739 | $ echo4 "Yes." | |
5740 | $ ELSE | |
5741 | $ d_signbit = "undef" | |
5742 | $ echo4 "Nope." | |
5743 | $ ENDIF | |
5744 | $! | |
05c058bc | 5745 | $ echo4 "Checking if kill() uses SYS$FORCEX or can't be called from a signal handler..." |
f2610a60 CL |
5746 | $ kill_by_sigprc = "undef" |
5747 | $ OS | |
5748 | $ WS "#include <stdio.h>" | |
5749 | $ WS "#include <signal.h>" | |
37a3cbe4 | 5750 | $ WS "#include <unistd.h>" |
05c058bc CB |
5751 | $ WS "void handler1(int s) { printf(""%d"",s); kill(getpid(),2); }" |
5752 | $ WS "void handler2(int s) { printf(""%d"",s); }" | |
f2610a60 CL |
5753 | $ WS "main(){" |
5754 | $ WS " printf(""0"");" | |
05c058bc CB |
5755 | $ WS " signal(1,handler1);" |
5756 | $ WS " signal(2,handler2);" | |
5757 | $ WS " kill(getpid(),1);" | |
5758 | $ WS " sleep(1);" | |
5759 | $ WS " printf(""\n"");" | |
f2610a60 CL |
5760 | $ WS "}" |
5761 | $ CS | |
5762 | $ ON ERROR THEN CONTINUE | |
5763 | $ GOSUB compile | |
05c058bc | 5764 | $ IF tmp .NES. "012" |
f2610a60 | 5765 | $ THEN |
05c058bc CB |
5766 | $ echo4 "Yes, it has at least one of those limitations." |
5767 | $ echo4 "Checking whether we can use SYS$SIGPRC instead..." | |
f2610a60 CL |
5768 | $ OS |
5769 | $ WS "#include <stdio.h>" | |
5770 | $ WS "#include <lib$routines.h>" | |
5771 | $ WS "unsigned long code = 0;" | |
85fac3a9 CB |
5772 | $ WS "#define sys$sigprc SYS$SIGPRC" |
5773 | $ WS "#ifdef __cplusplus" | |
5774 | $ WS "extern ""C"" {" | |
5775 | $ WS "#endif" | |
5776 | $ WS " int sys$sigprc(unsigned int *,void *,unsigned int);" | |
5777 | $ WS "#ifdef __cplusplus" | |
5778 | $ WS "}" | |
5779 | $ WS "#endif" | |
f2610a60 CL |
5780 | $ WS "int handler(unsigned long *args) {" |
5781 | $ WS " code = args[1];" | |
5782 | $ WS " return 1;" | |
5783 | $ WS "}" | |
5784 | $ WS "main() { " | |
85fac3a9 | 5785 | $ WS " int iss;" |
f2610a60 CL |
5786 | $ WS " lib$establish(handler);" |
5787 | $ WS " iss = sys$sigprc(0,0,0x1234);" | |
5788 | $ WS " iss = ((iss&1)==1 && code == 0x1234);" | |
5789 | $ WS " printf(""%d\n"",iss);" | |
5790 | $ WS "}" | |
5791 | $ CS | |
dfc1d888 CB |
5792 | $ ON ERROR THEN CONTINUE |
5793 | $ GOSUB compile | |
f2610a60 CL |
5794 | $ IF tmp .EQS. "1" |
5795 | $ THEN | |
5cda9808 | 5796 | $ echo4 "Yep, we can." |
f2610a60 CL |
5797 | $ kill_by_sigprc = "define" |
5798 | $! | |
5cda9808 CB |
5799 | $ ELSE |
5800 | $ echo4 "Nope, we can't." | |
f2610a60 | 5801 | $ ENDIF |
5cda9808 CB |
5802 | $ ELSE |
5803 | $ echo4 "Nope, it doesn't." | |
f2610a60 | 5804 | $ ENDIF |
570bb66e JH |
5805 | $ DELETE/SYMBOL tmp |
5806 | $! | |
570bb66e JH |
5807 | $! Finally the composite ones. All config |
5808 | $! | |
5809 | $ myuname="''osname' ''myname' ''osvers' ''F$EDIT(hwname, "TRIM")'" | |
5810 | $! | |
414b89cc | 5811 | $ IF ccname .EQS. "DEC" |
570bb66e | 5812 | $ THEN |
a71134cc | 5813 | $ ccflags="/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=''obj_ext' ''ccflags'" |
570bb66e | 5814 | $ ENDIF |
414b89cc | 5815 | $ IF ccname .EQS. "CXX" |
7558ebc2 | 5816 | $ THEN |
a71134cc | 5817 | $ ccflags="/Include=[]/Standard=ANSI/Prefix=All/Obj=''obj_ext' ''ccflags'" |
7558ebc2 | 5818 | $ ENDIF |
570bb66e JH |
5819 | $ IF use_vmsdebug_perl |
5820 | $ THEN | |
a71134cc | 5821 | $ optimize="/List/Debug/NoOpt" |
31963e90 | 5822 | $ ldflags="/Debug/Trace/Map" |
570bb66e JH |
5823 | $ dbgprefix = "DBG" |
5824 | $ ELSE | |
a71134cc | 5825 | $ optimize= "/NoList" |
31963e90 | 5826 | $ ldflags="/NoTrace/NoMap" |
570bb66e JH |
5827 | $ dbgprefix = "" |
5828 | $ ENDIF | |
5829 | $! | |
5830 | $! Okay, we've got everything configured. Now go write out a config.sh. | |
5831 | $ basename_config_sh = F$PARSE(config_sh,,,"NAME",)+F$PARSE(config_sh,,,"TYPE",) | |
5832 | $ echo4 "Creating ''basename_config_sh'..." | |
7558ebc2 | 5833 | $ open/write CONFIG 'config_sh' |
570bb66e JH |
5834 | $ WC := write CONFIG |
5835 | $! | |
5836 | $! ##BEGIN WRITE NEW CONSTANTS HERE## | |
5837 | $! | |
5838 | $ WC "#!/bin/sh" | |
5839 | $ WC "#" | |
5840 | $ WC "# This file was produced by Configure.COM on a ''osname' system." | |
5841 | $ WC "#" | |
5842 | $ WC "# Package name : ''package'" | |
5843 | $ WC "# Source directory : ''src'" | |
5844 | $ WC "# Configuration time: " + cf_time | |
5845 | $ WC "# Configuration by : " + cf_by | |
5846 | $ WC "# Target system : " + myuname | |
5847 | $ WC "" | |
570bb66e JH |
5848 | $ WC "Makefile_SH='" + Makefile_SH + "'" |
5849 | $ WC "Mcc='" + Mcc + "'" | |
414b89cc CB |
5850 | $ WC "PERL_REVISION='" + revision + "'" |
5851 | $ WC "PERL_VERSION='" + patchlevel + "'" | |
5852 | $ WC "PERL_SUBVERSION='" + subversion + "'" | |
30629e9c | 5853 | $ WC "PERL_API_REVISION='" + api_revision + "'" |
414b89cc CB |
5854 | $ WC "PERL_API_VERSION='" + api_version + "'" |
5855 | $ WC "PERL_API_SUBVERSION='" + api_subversion + "'" | |
c4ac6101 | 5856 | $ WC "PERL_PATCHLEVEL='" + perl_patchlevel + "'" |
14c175ff | 5857 | $ WC "perl_patchlevel='" + perl_patchlevel + "'" |
8c541774 | 5858 | $ WC "PERL_CONFIG_SH='true'" |
002721d5 | 5859 | $ WC "_a='" + lib_ext + "'" |
45e8d1dd | 5860 | $ WC "_exe='" + exe_ext + "'" |
002721d5 | 5861 | $ WC "_o='" + obj_ext + "'" |
570bb66e | 5862 | $ WC "alignbytes='" + alignbytes + "'" |
414b89cc | 5863 | $ WC "aphostname='write sys$output f$edit(f$getsyi(\""SCSNODE\""),\""TRIM,LOWERCASE\"")'" |
614391c8 CB |
5864 | $ WC "api_revision='" + api_revision + "'" |
5865 | $ WC "api_subversion='" + api_subversion + "'" | |
5866 | $ WC "api_version='" + api_version + "'" | |
5867 | $ WC "api_versionstring='" + version + "'" | |
570bb66e JH |
5868 | $ WC "ar='" + "'" |
5869 | $ WC "archlib='" + archlib + "'" | |
5870 | $ WC "archlibexp='" + archlibexp + "'" | |
5871 | $ WC "archname='" + archname + "'" | |
5872 | $ WC "baserev='" + baserev + "'" | |
5873 | $ WC "bin='" + bin + "'" | |
5874 | $ WC "binexp='" + binexp + "'" | |
5875 | $ WC "builddir='" + builddir + "'" | |
5876 | $ WC "byteorder='1234'" | |
5877 | $ WC "castflags='0'" | |
5878 | $ WC "cc='" + perl_cc + "'" | |
5879 | $ WC "cccdlflags='" + cccdlflags + "'" | |
5880 | $ WC "ccdlflags='" + ccdlflags + "'" | |
e0261ef8 CB |
5881 | $ IF uselargefiles .OR. uselargefiles .EQS. "define" |
5882 | $ THEN | |
cfcfe586 JM |
5883 | $ IF usestdstat .OR. usestdstat .EQS. "define" |
5884 | $ THEN | |
5885 | $ ccdefines = "_USE_STD_STAT=1" | |
5886 | $ ELSE | |
96021e87 | 5887 | $ ccdefines = "_LARGEFILE=1" |
cfcfe586 | 5888 | $ ENDIF |
cc57629d CB |
5889 | $ ELSE |
5890 | $ ccdefines = "" | |
96021e87 JM |
5891 | $ ENDIF |
5892 | $ IF ccdefines .NES. "" | |
5893 | $ THEN | |
5894 | $ WC "ccflags='" + ccflags + "/Define=" + ccdefines + "'" | |
e0261ef8 CB |
5895 | $ ELSE |
5896 | $ WC "ccflags='" + ccflags + "'" | |
5897 | $ ENDIF | |
5898 | $ WC "ccflags_uselargefiles='" + "'" | |
414b89cc | 5899 | $ WC "ccname='" + ccname + "'" |
7558ebc2 | 5900 | $ WC "ccversion='" + ccversion + "'" |
570bb66e JH |
5901 | $ WC "cf_by='" + cf_by + "'" |
5902 | $ WC "cf_email='" + cf_email + "'" | |
5903 | $ WC "cf_time='" + cf_time + "'" | |
c193ef60 | 5904 | $ WC "charbits='8'" |
570bb66e JH |
5905 | $ WC "config_args='" + config_args + "'" |
5906 | $ WC "config_sh='" + config_sh + "'" | |
5907 | $ WC "cpp_stuff='" + cpp_stuff + "'" | |
5908 | $ WC "cpplast='" + cpplast + "'" | |
5909 | $ WC "cppminus='" + cppminus + "'" | |
5910 | $ WC "cpprun='" + cpprun + "'" | |
5911 | $ WC "cppstdin='" + cppstdin + "'" | |
79f41ce5 CB |
5912 | $ IF use64bitint .OR. use64bitint .EQS. "define" |
5913 | $ THEN | |
5914 | $! gcvt() does not work for > 16 decimal places; fallback to sprintf | |
5915 | $ WC "d_Gconvert='sprintf((b),""%.*" + (nvgformat-"""") + ",(n),(x))'" | |
5916 | $ ELSE | |
9fd42072 | 5917 | $ WC "d_Gconvert='my_gconvert(x,n,t,b)'" |
79f41ce5 | 5918 | $ ENDIF |
d677d0fc CB |
5919 | $ WC "d_PRIEUldbl='" + d_PRIEUldbl + "'" |
5920 | $ WC "d_PRIFUldbl='" + d_PRIFUldbl + "'" | |
5921 | $ WC "d_PRIGUldbl='" + d_PRIGUldbl + "'" | |
842bcadf | 5922 | $ WC "d_PRIXU64='" + d_PRIXU64 + "'" |
2ef53570 | 5923 | $ WC "d_PRId64='" + d_PRId64 + "'" |
59a27e12 | 5924 | $ WC "d_PRIeldbl='" + d_PRIeldbl + "'" |
570bb66e JH |
5925 | $ WC "d_PRIfldbl='" + d_PRIfldbl + "'" |
5926 | $ WC "d_PRIgldbl='" + d_PRIgldbl + "'" | |
186abd56 | 5927 | $ WC "d_PRIi64='" + d_PRIi64 + "'" |
570bb66e JH |
5928 | $ WC "d_PRIo64='" + d_PRIo64 + "'" |
5929 | $ WC "d_PRIu64='" + d_PRIu64 + "'" | |
5930 | $ WC "d_PRIx64='" + d_PRIx64 + "'" | |
b5ddfb46 | 5931 | $ WC "d_SCNfldbl='" + d_SCNfldbl + "'" |
2ef53570 | 5932 | $ WC "d__fwalk='undef'" |
570bb66e JH |
5933 | $ WC "d_access='" + d_access + "'" |
5934 | $ WC "d_accessx='undef'" | |
e10940c3 | 5935 | $ WC "d_aintl='undef'" |
570bb66e JH |
5936 | $ WC "d_alarm='define'" |
5937 | $ WC "d_archlib='define'" | |
96938616 | 5938 | $ WC "d_asctime64='undef'" |
570bb66e JH |
5939 | $ WC "d_atolf='" + d_atolf + "'" |
5940 | $ WC "d_atoll='" + d_atoll + "'" | |
0dbb1585 | 5941 | $ WC "d_attribute_format='" + d_attribut + "'" |
fcdf39cf | 5942 | $ WC "d_attribute_deprecated='undef'" |
0dbb1585 AL |
5943 | $ WC "d_attribute_malloc='undef'" |
5944 | $ WC "d_attribute_nonnull='undef'" | |
5945 | $ WC "d_attribute_noreturn='undef'" | |
5946 | $ WC "d_attribute_pure='undef'" | |
5947 | $ WC "d_attribute_unused='undef'" | |
5948 | $ WC "d_attribute_warn_unused_result='undef'" | |
8f13cdc7 MB |
5949 | $ WC "d_prctl='undef'" |
5950 | $ WC "d_prctl_set_name='undef'" | |
36f1aec4 | 5951 | $ WC "d_printf_format_null='undef'" |
570bb66e JH |
5952 | $ WC "d_bcmp='" + d_bcmp + "'" |
5953 | $ WC "d_bcopy='" + d_bcopy + "'" | |
5954 | $ WC "d_bincompat3='undef'" | |
570bb66e | 5955 | $! WC "d_bsdpgrp='undef'" |
2ef53570 | 5956 | $ WC "d_bsdgetpgrp='undef'" |
570bb66e | 5957 | $ WC "d_bsdsetpgrp='undef'" |
e8e09534 PP |
5958 | $ WC "d_builtin_choose_expr='undef'" ! GCC only |
5959 | $ WC "d_builtin_expect='undef'" ! GCC only | |
570bb66e JH |
5960 | $ WC "d_bzero='" + d_bzero + "'" |
5961 | $ WC "d_casti32='define'" | |
5962 | $ WC "d_castneg='define'" | |
5963 | $ WC "d_charvspr='undef'" | |
5964 | $ WC "d_chown='define'" | |
5965 | $ WC "d_chroot='undef'" | |
5966 | $ WC "d_chsize='undef'" | |
758a5d79 | 5967 | $ WC "d_class='undef'" |
570bb66e JH |
5968 | $ WC "d_cmsghdr_s='undef'" |
5969 | $ WC "d_const='define'" | |
e10940c3 | 5970 | $ WC "d_copysignl='define'" |
60f153db | 5971 | $ WC "d_cplusplus='" + d_cplusplus + "'" |
570bb66e JH |
5972 | $ WC "d_crypt='define'" |
5973 | $ WC "d_csh='undef'" | |
0b57cc8d | 5974 | $ WC "d_ctermid='define'" |
96938616 | 5975 | $ WC "d_ctime64='undef'" |
570bb66e | 5976 | $ WC "d_cuserid='define'" |
9802685f | 5977 | $ WC "d_c99_variadic_macros='undef'" |
570bb66e | 5978 | $ WC "d_dbl_dig='define'" |
2ef53570 | 5979 | $ WC "d_dbminitproto='undef'" |
570bb66e | 5980 | $ WC "d_difftime='define'" |
96938616 | 5981 | $ WC "d_difftime64='undef'" |
de52168c | 5982 | $ WC "d_dir_dd_fd='undef'" |
a838cfe5 | 5983 | $ WC "d_dirfd='undef'" |
ddcbaa1c | 5984 | $ WC "d_dirnamlen='define'" |
570bb66e JH |
5985 | $ WC "d_dlerror='undef'" |
5986 | $ WC "d_dlsymun='undef'" | |
5987 | $ WC "d_dosuid='undef'" | |
5988 | $ WC "d_drand48proto='" + d_drand48proto + "'" | |
5989 | $ WC "d_dup2='define'" | |
5990 | $ WC "d_eaccess='undef'" | |
5991 | $ WC "d_endgrent='define'" | |
5992 | $ WC "d_endhent='" + d_endhent + "'" | |
5993 | $ WC "d_endnent='" + d_endnent + "'" | |
5994 | $ WC "d_endpent='" + d_endpent + "'" | |
5995 | $ WC "d_endpwent='define'" | |
5996 | $ WC "d_endsent='" + d_endsent + "'" | |
5997 | $ WC "d_eofnblk='undef'" | |
5998 | $ WC "d_eunice='undef'" | |
5999 | $ WC "d_fchmod='undef'" | |
b363b713 | 6000 | $ WC "d_fchdir='undef'" |
570bb66e JH |
6001 | $ WC "d_fchown='undef'" |
6002 | $ WC "d_fcntl='" + d_fcntl + "'" | |
1c21a19a | 6003 | $ WC "d_fcntl_can_lock='" + d_fcntl_can_lock + "'" |
570bb66e JH |
6004 | $ WC "d_fd_set='" + d_fd_set + "'" |
6005 | $ WC "d_fgetpos='define'" | |
758a5d79 JH |
6006 | $ WC "d_finite='undef'" |
6007 | $ WC "d_finitel='undef'" | |
570bb66e JH |
6008 | $ WC "d_flexfnam='define'" |
6009 | $ WC "d_flock='undef'" | |
2ef53570 | 6010 | $ WC "d_flockproto='undef'" |
570bb66e | 6011 | $ WC "d_fork='undef'" |
758a5d79 | 6012 | $ WC "d_fp_class='undef'" |
570bb66e | 6013 | $ WC "d_fpathconf='" + d_fpathconf + "'" |
758a5d79 JH |
6014 | $ WC "d_fpclass='undef'" |
6015 | $ WC "d_fpclassify='undef'" | |
6016 | $ WC "d_fpclassl='undef'" | |
570bb66e JH |
6017 | $ WC "d_fpos64_t='" + d_fpos64_t + "'" |
6018 | $ WC "d_frexpl='" + d_frexpl + "'" | |
6019 | $ WC "d_fs_data_s='undef'" | |
e0261ef8 | 6020 | $ WC "d_fseeko='" + d_fseeko + "'" |
570bb66e JH |
6021 | $ WC "d_fsetpos='define'" |
6022 | $ WC "d_fstatfs='undef'" | |
96021e87 | 6023 | $ WC "d_fstatvfs='" + d_fstatvfs + "'" |
411ab01c | 6024 | $ WC "d_fsync='undef'" |
e0261ef8 | 6025 | $ WC "d_ftello='" + d_ftello + "'" |
eca5cfc5 | 6026 | $ WC "d_futimes='undef'" |
36ba69be CB |
6027 | $ WC "d_gdbmndbm_h_uses_prototypes='undef'" |
6028 | $ WC "d_gdbm_ndbm_h_uses_prototypes='undef'" | |
d7fba2bf | 6029 | $ WC "d_getaddrinfo='undef'" |
fea629d8 | 6030 | $ WC "d_getcwd='define'" |
570bb66e JH |
6031 | $ WC "d_getespwnam='undef'" |
6032 | $ WC "d_getfsstat='undef'" | |
6033 | $ WC "d_getgrent='define'" | |
6034 | $ WC "d_getgrps='undef'" | |
6035 | $ WC "d_gethbyaddr='" + d_gethbyaddr + "'" | |
6036 | $ WC "d_gethbyname='" + d_gethbyname + "'" | |
6037 | $ WC "d_gethent='" + d_gethent + "'" | |
6038 | $ WC "d_gethname='" + d_gethname + "'" | |
6039 | $ WC "d_gethostprotos='" + d_gethostprotos + "'" | |
10eefe7f | 6040 | $ WC "d_getitimer='" + d_getitimer + "'" |
570bb66e JH |
6041 | $ WC "d_getlogin='define'" |
6042 | $ WC "d_getmnt='undef'" | |
6043 | $ WC "d_getmntent='undef'" | |
d7fba2bf | 6044 | $ WC "d_getnameinfo='undef'" |
570bb66e JH |
6045 | $ WC "d_getnbyaddr='" + d_getnbyaddr + "'" |
6046 | $ WC "d_getnbyname='" + d_getnbyname + "'" | |
6047 | $ WC "d_getnent='" + d_getnent + "'" | |
6048 | $ WC "d_getnetprotos='" + d_getnetprotos + "'" | |
0c0643d0 | 6049 | $ WC "d_getpagsz='undef'" |
570bb66e JH |
6050 | $ WC "d_getpbyname='" + d_getpbyname + "'" |
6051 | $ WC "d_getpbynumber='" + d_getpbynumber + "'" | |
6052 | $ WC "d_getpent='" + d_getpent + "'" | |
96021e87 | 6053 | $ WC "d_getpgid='" + d_getpgid + "'" |
570bb66e | 6054 | $ WC "d_getpgrp2='undef'" |
96021e87 | 6055 | $ WC "d_getpgrp='" + d_getpgrp + "'" |
41cbbefa | 6056 | $ WC "d_getppid='" + d_getppid + "'" |
570bb66e JH |
6057 | $ WC "d_getprior='undef'" |
6058 | $ WC "d_getprotoprotos='" + d_getprotoprotos + "'" | |
6059 | $ WC "d_getprpwnam='undef'" | |
6060 | $ WC "d_getpwent='define'" | |
6061 | $ WC "d_getsbyname='" + d_getsbyname + "'" | |
6062 | $ WC "d_getsbyport='" + d_getsbyport + "'" | |
6063 | $ WC "d_getsent='" + d_getsent + "'" | |
6064 | $ WC "d_getservprotos='" + d_getservprotos + "'" | |
6065 | $ WC "d_getspnam='undef'" | |
6066 | $ WC "d_gettimeod='" + d_gettimeod + "'" | |
96938616 | 6067 | $ WC "d_gmtime64='undef'" |
570bb66e JH |
6068 | $ WC "d_gnulibc='undef'" |
6069 | $ WC "d_grpasswd='undef'" | |
6070 | $ WC "d_hasmntopt='undef'" | |
6071 | $ WC "d_htonl='" + d_htonl + "'" | |
e10940c3 | 6072 | $ WC "d_ilogbl='undef'" |
a04d9d89 | 6073 | $ WC "d_inc_version_list='undef'" |
570bb66e JH |
6074 | $ WC "d_index='" + d_index + "'" |
6075 | $ WC "d_inetaton='undef'" | |
d7fba2bf MB |
6076 | $ WC "d_inetntop='undef'" |
6077 | $ WC "d_inetpton='undef'" | |
570bb66e | 6078 | $ WC "d_int64_t='" + d_int64_t + "'" |
122b9bf4 | 6079 | $ WC "d_ip_mreq='define'" |
fd3bef80 | 6080 | $ WC "d_ipv6_mreq='define'" |
570bb66e | 6081 | $ WC "d_isascii='define'" |
269a7913 | 6082 | $ WC "d_isblank='undef'" |
758a5d79 JH |
6083 | $ WC "d_isfinite='undef'" |
6084 | $ WC "d_isinf='undef'" | |
3a491987 | 6085 | $ WC "d_isnan='" + d_isnan + "'" |
570bb66e JH |
6086 | $ WC "d_isnanl='" + d_isnanl + "'" |
6087 | $ WC "d_killpg='undef'" | |
96021e87 | 6088 | $ WC "d_lchown='" + d_lchown + "'" |
570bb66e | 6089 | $ WC "d_ldbl_dig='define'" |
5b55c156 | 6090 | $ WC "d_libm_lib_version='undef'" |
96021e87 | 6091 | $ WC "d_link='" + d_link + "'" |
570bb66e | 6092 | $ WC "d_llseek='undef'" |
96938616 | 6093 | $ WC "d_localtime64='undef'" |
570bb66e JH |
6094 | $ WC "d_locconv='" + d_locconv + "'" |
6095 | $ WC "d_lockf='undef'" | |
6096 | $ WC "d_longdbl='" + d_longdbl + "'" | |
6097 | $ WC "d_longlong='" + d_longlong + "'" | |
6098 | $ WC "d_lseekproto='define'" | |
96021e87 | 6099 | $ WC "d_lstat='" + d_lstat + "'" |
570bb66e | 6100 | $ WC "d_madvise='undef'" |
2b339242 JM |
6101 | $ WC "d_malloc_size='undef'" |
6102 | $ WC "d_malloc_good_size='undef'" | |
570bb66e JH |
6103 | $ WC "d_mblen='" + d_mblen + "'" |
6104 | $ WC "d_mbstowcs='" + d_mbstowcs + "'" | |
6105 | $ WC "d_mbtowc='" + d_mbtowc + "'" | |
6106 | $ WC "d_memchr='" + d_memchr + "'" | |
6107 | $ WC "d_memcmp='define'" | |
6108 | $ WC "d_memcpy='define'" | |
6109 | $ WC "d_memmove='define'" | |
6110 | $ WC "d_memset='define'" | |
6111 | $ WC "d_mkdir='define'" | |
6112 | $ WC "d_mkdtemp='" + d_mkdtemp + "'" | |
6113 | $ WC "d_mkfifo='undef'" | |
6114 | $ WC "d_mknod='undef'" | |
6115 | $ WC "d_mkstemp='" + d_mkstemp + "'" | |
6116 | $ WC "d_mkstemps='" + d_mkstemps + "'" | |
6117 | $ WC "d_mktime='" + d_mktime + "'" | |
96938616 | 6118 | $ WC "d_mktime64='undef'" |
10eefe7f | 6119 | $ WC "d_mmap='" + d_mmap + "'" |
570bb66e | 6120 | $ WC "d_modfl='" + d_modfl + "'" |
8725ccc4 | 6121 | $ WC "d_modflproto='" + d_modflproto + "'" |
7b826da8 | 6122 | $ WC "d_modfl_pow32_bug='undef'" |
10eefe7f | 6123 | $ WC "d_mprotect='" + d_mprotect + "'" |
570bb66e JH |
6124 | $ WC "d_msg='undef'" |
6125 | $ WC "d_msg_ctrunc='undef'" | |
6126 | $ WC "d_msg_dontroute='undef'" | |
6127 | $ WC "d_msg_oob='undef'" | |
6128 | $ WC "d_msg_peek='undef'" | |
6129 | $ WC "d_msg_proxy='undef'" | |
6130 | $ WC "d_msghdr_s='undef'" | |
10eefe7f CB |
6131 | $ WC "d_msync='" + d_msync + "'" |
6132 | $ WC "d_munmap='" + d_munmap + "'" | |
570bb66e | 6133 | $ WC "d_mymalloc='" + d_mymalloc + "'" |
02e1c2f1 | 6134 | $ WC "d_nanosleep='" + d_nanosleep + "'" |
36ba69be | 6135 | $ WC "d_ndbm_h_uses_prototypes='undef'" |
570bb66e | 6136 | $ WC "d_nice='define'" |
2765b840 | 6137 | $ WC "d_nl_langinfo='" + d_nl_langinfo + "'" |
570bb66e | 6138 | $ WC "d_nv_preserves_uv='" + d_nv_preserves_uv + "'" |
1e74786a | 6139 | $ WC "nv_overflows_integers_at='" + nv_overflows_integers_at + "'" |
53133ed1 | 6140 | $ WC "nv_preserves_uv_bits='" + nv_preserves_uv_bits + "'" |
f607920a | 6141 | $ WC "d_nv_zero_is_allbits_zero='define'" |
570bb66e JH |
6142 | $ WC "d_off64_t='" + d_off64_t + "'" |
6143 | $ WC "d_old_pthread_create_joinable='" + d_old_pthread_create_joinable + "'" | |
6144 | $ WC "d_oldarchlib='define'" | |
6145 | $ WC "d_oldpthreads='" + d_oldpthreads + "'" | |
6146 | $ WC "d_open3='define'" | |
6147 | $ WC "d_pathconf='" + d_pathconf + "'" | |
6148 | $ WC "d_pause='define'" | |
6149 | $ WC "d_perl_otherlibdirs='undef'" | |
414b89cc | 6150 | $ WC "d_phostname='" + d_phostname + "'" |
570bb66e | 6151 | $ WC "d_pipe='define'" |
d2d53deb | 6152 | $ WC "d_poll='" + d_poll + "'" |
e9a8643a | 6153 | $ WC "d_procselfexe='undef'" |
734e0e83 | 6154 | $ WC "d_pseudofork='undef'" |
d6483fcc | 6155 | $ WC "d_pthread_atfork='undef'" |
e0e3c57a | 6156 | $ WC "d_pthread_attr_setscope='" + d_pthread_attr_setscope + "'" |
570bb66e JH |
6157 | $ WC "d_pthread_yield='" + d_pthread_yield + "'" |
6158 | $ WC "d_pthreads_created_joinable='" + d_pthreads_created_joinable + "'" | |
6159 | $ WC "d_pwage='undef'" | |
6160 | $ WC "d_pwchange='undef'" | |
6161 | $ WC "d_pwclass='undef'" | |
6162 | $ WC "d_pwcomment='define'" | |
6163 | $ WC "d_pwexpire='undef'" | |
6164 | $ WC "d_pwgecos='define'" | |
6165 | $ WC "d_pwpasswd='define'" | |
6166 | $ WC "d_pwquota='undef'" | |
6167 | $ WC "d_qgcvt='undef'" | |
6168 | $ WC "d_quad='" + d_quad + "'" | |
6169 | $ WC "d_readdir='define'" | |
96021e87 | 6170 | $ WC "d_readlink='" + d_readlink + "'" |
570bb66e | 6171 | $ WC "d_readv='undef'" |
96021e87 | 6172 | $ WC "d_realpath='" + d_realpath + "'" |
570bb66e JH |
6173 | $ WC "d_recvmsg='undef'" |
6174 | $ WC "d_rename='define'" | |
6175 | $ WC "d_rewinddir='define'" | |
6176 | $ WC "d_rmdir='define'" | |
6177 | $ WC "d_safebcpy='undef'" | |
6178 | $ WC "d_safemcpy='define'" | |
6179 | $ WC "d_sanemcmp='define'" | |
414b89cc | 6180 | $ WC "d_sbrkproto='define'" |
e10940c3 | 6181 | $ WC "d_scalbnl='undef'" |
570bb66e JH |
6182 | $ WC "d_sched_yield='" + d_sched_yield + "'" |
6183 | $ WC "d_scm_rights='undef'" | |
6184 | $ WC "d_seekdir='define'" | |
6185 | $ WC "d_select='" + d_select + "'" | |
6186 | $ WC "d_sem='undef'" | |
6187 | $ WC "d_semctl_semid_ds='undef'" | |
6188 | $ WC "d_semctl_semun='undef'" | |
6189 | $ WC "d_sendmsg='undef'" | |
6190 | $ WC "d_setegid='undef'" | |
6191 | $ WC "d_setenv='" + d_setenv + "'" | |
96021e87 JM |
6192 | $ WC "d_seteuid='" + d_seteuid + "'" |
6193 | $ WC "d_setgrent='" + d_setgrent + "'" | |
570bb66e JH |
6194 | $ WC "d_setgrps='undef'" |
6195 | $ WC "d_sethent='" + d_sethent + "'" | |
10eefe7f | 6196 | $ WC "d_setitimer='" + d_setitimer + "'" |
570bb66e JH |
6197 | $ WC "d_setlinebuf='undef'" |
6198 | $ WC "d_setlocale='" + d_setlocale + "'" | |
6199 | $ WC "d_setnent='" + d_setnent + "'" | |
6200 | $ WC "d_setpent='" + d_setpent + "'" | |
96021e87 | 6201 | $ WC "d_setpgid='" + d_setpgid + "'" |
570bb66e | 6202 | $ WC "d_setpgrp2='undef'" |
96021e87 | 6203 | $ WC "d_setpgrp='" + d_setpgrp + "'" |
570bb66e JH |
6204 | $ WC "d_setprior='undef'" |
6205 | $ WC "d_setproctitle='" + d_setproctitle + "'" | |
6206 | $ WC "d_setpwent='define'" | |
96021e87 | 6207 | $ WC "d_setregid='" + d_setregid + "'" |
570bb66e JH |
6208 | $ WC "d_setresgid='undef'" |
6209 | $ WC "d_setresuid='undef'" | |
96021e87 | 6210 | $ WC "d_setreuid='" + d_setreuid + "'" |
570bb66e JH |
6211 | $ WC "d_setrgid='undef'" |
6212 | $ WC "d_setruid='undef'" | |
6213 | $ WC "d_setsent='" + d_setsent + "'" | |
96021e87 | 6214 | $ WC "d_setsid='" + d_setsid + "'" |
570bb66e JH |
6215 | $ WC "d_setvbuf='" + d_setvbuf + "'" |
6216 | $ WC "d_sfio='undef'" | |
6217 | $ WC "d_shm='undef'" | |
6218 | $ WC "d_shmatprototype='undef'" | |
6219 | $ WC "d_sigaction='" + d_sigaction + "'" | |
50ddda1d | 6220 | $ WC "d_signbit='" + d_signbit + "'" |
983dbef6 | 6221 | $ WC "d_sigprocmask='" + d_sigprocmask + "'" |
570bb66e | 6222 | $ WC "d_sigsetjmp='" + d_sigsetjmp + "'" |
d9484470 | 6223 | $ WC "d_sin6_scope_id='" + d_sin6_scope_id + "'" |
a04d9d89 | 6224 | $ WC "d_sitearch='define'" |
fd3bef80 | 6225 | $ WC "d_sockaddr_in6='define'" |
234242ca | 6226 | $ WC "d_sockaddr_sa_len='" + d_sockaddr_sa_len + "'" |
49a78c82 | 6227 | $ WC "d_sockatmark='undef'" |
2ef53570 | 6228 | $ WC "d_sockatmarkproto='undef'" |
570bb66e JH |
6229 | $ WC "d_socket='" + d_socket + "'" |
6230 | $ WC "d_socklen_t='" + d_socklen_t + "'" | |
96021e87 | 6231 | $ WC "d_sockpair='" + d_sockpair + "'" |
1b9c9cf5 | 6232 | $ WC "d_socks5_init='undef'" |
a1f21542 | 6233 | $ WC "d_sprintf_returns_strlen='define'" |
570bb66e | 6234 | $ WC "d_sqrtl='define'" |
eef837ea | 6235 | $ WC "d_sresgproto='undef'" |
2ef53570 JH |
6236 | $ WC "d_sresgproto='undef'" |
6237 | $ WC "d_sresproto='undef'" | |
f42f5b4c | 6238 | $ WC "d_sresuproto='undef'" |
570bb66e JH |
6239 | $ WC "d_statblks='undef'" |
6240 | $ WC "d_statfs_f_flags='undef'" | |
6241 | $ WC "d_statfs_s='undef'" | |
6242 | $ WC "d_statfsflags='undef'" | |
b0e839b3 | 6243 | $ WC "d_static_inline='define'" |
570bb66e JH |
6244 | $ WC "d_stdio_cnt_lval='" + d_stdio_cnt_lval + "'" |
6245 | $ WC "d_stdio_ptr_lval='" + d_stdio_ptr_lval + "'" | |
a7ffa9b9 | 6246 | $ WC "d_stdio_ptr_lval_nochange_cnt='" + d_stdio_ptr_lval_nochange_cnt + "'" |
2ef53570 | 6247 | $ WC "d_stdio_ptr_lval_sets_cnt='" + d_stdio_ptr_lval_sets_cnt + "'" |
570bb66e JH |
6248 | $ WC "d_stdio_stream_array='undef'" |
6249 | $ WC "d_stdiobase='" + d_stdiobase + "'" | |
6250 | $ WC "d_stdstdio='" + d_stdstdio + "'" | |
ea77424f | 6251 | $ WC "d_faststdio='" + d_faststdio + "'" |
570bb66e JH |
6252 | $ WC "d_strchr='define'" |
6253 | $ WC "d_strcoll='" + d_strcoll + "'" | |
6254 | $ WC "d_strctcpy='define'" | |
6255 | $ WC "d_strerrm='strerror((e),vaxc$errno)'" | |
6256 | $ WC "d_strerror='define'" | |
b3c85772 | 6257 | $ WC "d_strftime='define'" |
81aa54e6 CB |
6258 | $ WC "d_strlcat='undef'" |
6259 | $ WC "d_strlcpy='undef'" | |
570bb66e JH |
6260 | $ WC "d_strtod='define'" |
6261 | $ WC "d_strtol='define'" | |
6262 | $ WC "d_strtold='" + d_strtold + "'" | |
6263 | $ WC "d_strtoll='" + d_strtoll + "'" | |
b8c0d87f | 6264 | $ WC "d_strtoq='" + d_strtoq + "'" |
570bb66e JH |
6265 | $ WC "d_strtoul='define'" |
6266 | $ WC "d_strtoull='" + d_strtoull + "'" | |
6267 | $ WC "d_strtouq='" + d_strtouq + "'" | |
6268 | $ WC "d_strxfrm='" + d_strxfrm + "'" | |
6269 | $ WC "d_suidsafe='undef'" | |
96021e87 | 6270 | $ WC "d_symlink='" + d_symlink + "'" |
570bb66e | 6271 | $ WC "d_syscall='undef'" |
2ef53570 | 6272 | $ WC "d_syscallproto='undef'" |
570bb66e JH |
6273 | $ WC "d_sysconf='" + d_sysconf + "'" |
6274 | $ WC "d_syserrlst='undef'" | |
6275 | $ WC "d_system='define'" | |
6276 | $ WC "d_tcgetpgrp='undef'" | |
6277 | $ WC "d_tcsetpgrp='undef'" | |
6278 | $ WC "d_telldir='define'" | |
6279 | $ WC "d_telldirproto='define'" | |
8f44d1a8 | 6280 | $ WC "d_time='define'" |
597140e2 | 6281 | $ WC "d_timegm='undef'" |
570bb66e | 6282 | $ WC "d_times='define'" |
7bb28473 CB |
6283 | $ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."7.0") |
6284 | $ THEN | |
6285 | $ WC "d_tm_tm_gmtoff='define'" | |
6286 | $ WC "d_tm_tm_zone='define'" | |
6287 | $ ELSE | |
6288 | $ WC "d_tm_tm_gmtoff='undef'" | |
6289 | $ WC "d_tm_tm_zone='undef'" | |
6290 | $ ENDIF | |
570bb66e | 6291 | $ WC "d_truncate='" + d_truncate + "'" |
a3bd614a | 6292 | $ WC "d_tzname='" + d_tzname + "'" |
4e0554ec | 6293 | $ WC "d_u32align='define'" |
10eefe7f | 6294 | $ WC "d_ualarm='" + d_ualarm + "'" |
570bb66e JH |
6295 | $ WC "d_umask='define'" |
6296 | $ WC "d_uname='" + d_uname + "'" | |
6297 | $ WC "d_union_semun='undef'" | |
4adb8845 | 6298 | $ WC "d_unlink_all_versions='" + d_unlink_all_versions + "'" ! VMS-specific |
758a5d79 | 6299 | $ WC "d_unordered='undef'" |
0ee1060b | 6300 | $ WC "d_unsetenv='" + d_unsetenv + "'" |
5ff34fde | 6301 | $ WC "d_clearenv='" + d_clearenv + "'" |
10eefe7f CB |
6302 | $ WC "d_usleep='" + d_usleep + "'" |
6303 | $ WC "d_usleepproto='" + d_usleep + "'" | |
570bb66e JH |
6304 | $ WC "d_ustat='undef'" |
6305 | $ WC "d_vendorarch='undef'" | |
6306 | $ WC "d_vendorlib='undef'" | |
6307 | $ WC "d_vfork='define'" | |
6308 | $ WC "d_vms_case_sensitive_symbols='" + d_vms_be_case_sensitive + "'" ! VMS | |
6309 | $ WC "d_vms_do_sockets='" + d_vms_do_sockets + "'" ! VMS | |
1171624b | 6310 | $ WC "d_vms_shorten_long_symbols='" + d_vms_shorten_long_symbols + "'" ! VMS |
570bb66e JH |
6311 | $ WC "d_void_closedir='define'" |
6312 | $ WC "d_volatile='define'" | |
6313 | $ WC "d_vprintf='define'" | |
d00eb249 | 6314 | $ WC "d_vsnprintf='" + d_vsnprintf + "'" |
570bb66e JH |
6315 | $ WC "d_wait4='" + d_wait4 + "'" |
6316 | $ WC "d_waitpid='define'" | |
6317 | $ WC "d_wcstombs='" + d_wcstombs + "'" | |
6318 | $ WC "d_wctomb='" + d_wctomb + "'" | |
6319 | $ WC "d_writev='undef'" | |
6320 | $ WC "db_hashtype=' '" | |
6321 | $ WC "db_prefixtype=' '" | |
fcc434ad PP |
6322 | $ WC "db_version_major='" + "'" |
6323 | $ WC "db_version_minor='" + "'" | |
6324 | $ WC "db_version_patch='" + "'" | |
570bb66e JH |
6325 | $ WC "dbgprefix='" + dbgprefix + "'" |
6326 | $ WC "defvoidused='15'" | |
6327 | $ WC "devtype='" + devtype + "'" | |
6328 | $ WC "direntrytype='struct dirent'" | |
6329 | $ WC "dlext='" + dlext + "'" | |
6330 | $ WC "dlobj='" + dlobj + "'" | |
ae0a0fb2 | 6331 | $ WC "dlsrc='dl_vms.xs'" |
570bb66e JH |
6332 | $ WC "doublesize='" + doublesize + "'" |
6333 | $ WC "drand01='" + drand01 + "'" | |
83d8c294 | 6334 | $ WC "dtrace='" + "'" |
a3bd614a | 6335 | $! |
63d52911 | 6336 | $! The dynamic_ext symbol may be quite long |
a3bd614a | 6337 | $! |
63d52911 | 6338 | $ tmp = "dynamic_ext='" + dynamic_ext + "'" |
a3bd614a PP |
6339 | $ WC/symbol tmp |
6340 | $ DELETE/SYMBOL tmp | |
570bb66e JH |
6341 | $ WC "eagain=' '" |
6342 | $ WC "ebcdic='undef'" | |
9b5c8979 | 6343 | $ WC "embedmymalloc='" + usemymalloc + "'" |
570bb66e JH |
6344 | $ WC "eunicefix=':'" |
6345 | $ WC "exe_ext='" + exe_ext + "'" | |
a3bd614a | 6346 | $! |
63d52911 | 6347 | $! The extensions symbols may be quite long |
a3bd614a | 6348 | $! |
bd2aeadf | 6349 | $ WC/symbol "extensions='", nonxs_ext, " ", nonxs_ext2, " ", dynamic_ext, "'" |
570bb66e JH |
6350 | $ WC "fflushNULL='define'" |
6351 | $ WC "fflushall='undef'" | |
6352 | $ WC "fpostype='fpos_t'" | |
6353 | $ WC "freetype='void'" | |
6354 | $ WC "full_ar='" + "'" | |
6355 | $ WC "full_csh='" + " '" | |
6356 | $ WC "full_sed='_NLA0:'" | |
6357 | $ WC "gccversion='" + gccversion + "'" | |
6358 | $ WC "gidformat='lu'" | |
6359 | $ WC "gidsign='1'" | |
6360 | $ WC "gidsize='4'" | |
6361 | $ WC "gidtype='" + gidtype + "'" | |
6362 | $ WC "groupstype='Gid_t'" | |
6363 | $ WC "hint='none'" | |
6364 | $ WC "hintfile='" + "'" | |
6365 | $ WC "i16size='" + i16size + "'" | |
6366 | $ WC "i16type='" + i16type + "'" | |
6367 | $ WC "i32size='" + i32size + "'" | |
6368 | $ WC "i32type='" + i32type + "'" | |
6369 | $ WC "i64size='" + i64size + "'" | |
6370 | $ WC "i64type='" + i64type + "'" | |
6371 | $ WC "i8size='" + i8size + "'" | |
6372 | $ WC "i8type='" + i8type + "'" | |
6373 | $ WC "i_arpainet='undef'" | |
2a0de2c5 | 6374 | $ WC "i_assert='define'" |
4f93eb5d | 6375 | $ WC "i_crypt='undef'" |
fcc434ad | 6376 | $ WC "i_db='undef'" |
570bb66e | 6377 | $ WC "i_dbm='undef'" |
85fac3a9 | 6378 | $ WC "i_dirent='undef'" ! we roll our own |
570bb66e JH |
6379 | $ WC "i_dlfcn='undef'" |
6380 | $ WC "i_fcntl='" + i_fcntl + "'" | |
6381 | $ WC "i_float='define'" | |
758a5d79 JH |
6382 | $ WC "i_fp='undef'" |
6383 | $ WC "i_fp_class='undef'" | |
0b57cc8d | 6384 | $ WC "i_gdbm='undef'" |
3ab94133 AD |
6385 | $ WC "i_gdbm_ndbm='undef'" |
6386 | $ WC "i_gdbmndbm='undef'" | |
9fa802f3 | 6387 | $ WC "i_grp='" + i_grp + "'" |
570bb66e JH |
6388 | $ WC "i_ieeefp='undef'" |
6389 | $ WC "i_inttypes='" + i_inttypes + "'" | |
2765b840 | 6390 | $ WC "i_langinfo='" + i_langinfo + "'" |
570bb66e JH |
6391 | $ WC "i_libutil='" + i_libutil + "'" |
6392 | $ WC "i_limits='define'" | |
6393 | $ WC "i_locale='" + i_locale + "'" | |
6394 | $ WC "i_machcthr='undef'" | |
6395 | $ WC "i_machcthreads='undef'" | |
1cd66f7c | 6396 | $ WC "i_mallocmalloc='undef'" |
570bb66e JH |
6397 | $ WC "i_math='define'" |
6398 | $ WC "i_memory='undef'" | |
6399 | $ WC "i_mntent='undef'" | |
6400 | $ WC "i_ndbm='undef'" | |
6401 | $ WC "i_netdb='" + i_netdb + "'" | |
6402 | $ WC "i_neterrno='define'" | |
6403 | $ WC "i_netinettcp='" + i_netinettcp + "'" | |
6404 | $ WC "i_niin='" + i_niin + "'" | |
6405 | $ WC "i_poll='" + i_poll + "'" | |
6406 | $ WC "i_prot='undef'" | |
6407 | $ WC "i_pthread='define'" | |
6408 | $ WC "i_pwd='undef'" | |
6409 | $ WC "i_rpcsvcdbm='undef'" | |
6410 | $ WC "i_sfio='undef'" | |
6411 | $ WC "i_sgtty='undef'" | |
6412 | $ WC "i_shadow='" + i_shadow + "'" | |
6413 | $ WC "i_socks='" + i_socks + "'" | |
6414 | $ WC "i_stdarg='define'" | |
85fac3a9 | 6415 | $ IF ccname .EQS. "DEC" .AND. F$INTEGER(Dec_C_Version).GE.60400000 |
f29eb9c4 CB |
6416 | $ THEN |
6417 | $ WC "i_stdbool='define'" | |
6418 | $ ELSE | |
6419 | $ WC "i_stdbool='undef'" | |
6420 | $ ENDIF | |
570bb66e JH |
6421 | $ WC "i_stddef='define'" |
6422 | $ WC "i_stdlib='define'" | |
6423 | $ WC "i_string='define'" | |
6424 | $ WC "i_sunmath='undef'" | |
6425 | $ WC "i_sysaccess='" + i_sysaccess + "'" | |
6426 | $ WC "i_sysdir='undef'" | |
6427 | $ WC "i_sysfile='" + i_sysfile + "'" | |
670137c2 | 6428 | $ WC "i_sysioctl='" + i_sysioctl + "'" |
570bb66e JH |
6429 | $ WC "i_syslog='" + i_syslog + "'" |
6430 | $ WC "i_sysmman='undef'" | |
6431 | $ WC "i_sysmode='" + i_sysmode + "'" | |
6432 | $ WC "i_sysmount='undef'" | |
6433 | $ WC "i_sysndir='undef'" | |
6434 | $ WC "i_sysparam='undef'" | |
ed1b9de0 | 6435 | $ WC "i_syspoll='" + i_syspoll + "'" |
570bb66e JH |
6436 | $ WC "i_sysresrc='undef'" |
6437 | $ WC "i_syssecrt='" + i_syssecrt + "'" | |
6438 | $ WC "i_sysselct='undef'" | |
49a78c82 | 6439 | $ WC "i_syssockio='undef'" |
570bb66e JH |
6440 | $ WC "i_sysstat='define'" |
6441 | $ WC "i_sysstatfs='undef'" | |
96021e87 | 6442 | $ WC "i_sysstatvfs='" + i_sysstatvfs + "'" |
570bb66e JH |
6443 | $ WC "i_systime='undef'" |
6444 | $ WC "i_systimek='undef'" | |
6445 | $ WC "i_systimes='undef'" | |
6446 | $ WC "i_systypes='define'" | |
6447 | $ WC "i_sysuio='" + i_sysuio + "'" | |
6448 | $ WC "i_sysun='undef'" | |
6449 | $ WC "i_sysutsname='" + i_sysutsname + "'" | |
6450 | $ WC "i_sysvfs='undef'" | |
6451 | $ WC "i_syswait='undef'" | |
6452 | $ WC "i_termio='undef'" | |
6453 | $ WC "i_termios='undef'" | |
6454 | $ WC "i_time='define'" | |
6455 | $ WC "i_unistd='" + i_unistd + "'" | |
6456 | $ WC "i_ustat='undef'" | |
704c2eb3 | 6457 | $ WC "i_utime='" + i_utime + "'" |
570bb66e JH |
6458 | $ WC "i_values='undef'" |
6459 | $ WC "i_varargs='undef'" | |
6460 | $ WC "i_vfork='undef'" | |
6461 | $ WC "inc_version_list='0'" | |
6462 | $ WC "inc_version_list_init='0'" | |
6463 | $ WC "installarchlib='" + installarchlib + "'" | |
6464 | $ WC "installbin='" + installbin + "'" | |
6465 | $ WC "installman1dir='" + installman1dir + "'" | |
6466 | $ WC "installman3dir='" + installman3dir + "'" | |
ec18bc92 CB |
6467 | $ WC "installprefix='" + vms_prefix + "'" |
6468 | $ WC "installprefixexp='" + vms_prefix + ":'" | |
570bb66e JH |
6469 | $ WC "installprivlib='" + installprivlib + "'" |
6470 | $ WC "installscript='" + installscript + "'" | |
6471 | $ WC "installsitearch='" + installsitearch + "'" | |
ec18bc92 | 6472 | $ WC "installsitebin='" + sitebin + "'" |
570bb66e JH |
6473 | $ WC "installsitelib='" + installsitelib + "'" |
6474 | $ WC "installusrbinperl='undef'" | |
6475 | $ WC "intsize='" + intsize + "'" | |
6476 | $ WC "ivdformat='" + ivdformat + "'" | |
6477 | $ WC "ivsize='" + ivsize + "'" | |
6478 | $ WC "ivtype='" + ivtype + "'" | |
a3bd614a PP |
6479 | $! |
6480 | $! The known_extensions symbol may be quite long | |
6481 | $! | |
6482 | $ tmp = "known_extensions='" + known_extensions + "'" | |
6483 | $ WC/symbol tmp | |
6484 | $ DELETE/SYMBOL tmp | |
570bb66e JH |
6485 | $ WC "ld='" + ld + "'" |
6486 | $ WC "lddlflags='/Share'" | |
f24fb74c | 6487 | $ WC "ldflags='" + ldflags + "'" |
e0261ef8 | 6488 | $ WC "ldflags_uselargefiles='" + "'" |
570bb66e JH |
6489 | $ WC "lib_ext='" + lib_ext + "'" |
6490 | $ WC "libc='" + libc + "'" | |
6491 | $ WC "libpth='/sys$share /sys$library'" | |
6492 | $ WC "libs='" + libs + "'" | |
e0261ef8 CB |
6493 | $ WC "libswanted='" + "'" |
6494 | $ WC "libswanted_uselargefiles='" + "'" | |
570bb66e JH |
6495 | $ WC "longdblsize='" + longdblsize + "'" |
6496 | $ WC "longlongsize='" + longlongsize + "'" | |
6497 | $ WC "longsize='" + longsize + "'" | |
e0261ef8 CB |
6498 | $ IF uselargefiles .OR. uselargefiles .EQS. "define" |
6499 | $ THEN | |
6500 | $ WC "lseeksize='8'" | |
6501 | $ WC "lseektype='off_t'" | |
6502 | $ ELSE | |
6503 | $ WC "lseeksize='4'" | |
6504 | $ WC "lseektype='int'" | |
6505 | $ ENDIF | |
570bb66e | 6506 | $ WC "mab='" + "'" |
a724edfe | 6507 | $ WC "mad='undef'" |
570bb66e JH |
6508 | $ WC "make='" + make + "'" |
6509 | $ WC "malloctype='void *'" | |
dc8c9d5a | 6510 | $ WC "usemallocwrap='" + usemallocwrap + "'" |
570bb66e JH |
6511 | $ WC "man1ext='rno'" |
6512 | $ WC "man3ext='rno'" | |
10eefe7f | 6513 | $ WC "mmaptype='void *'" |
570bb66e JH |
6514 | $ WC "modetype='unsigned int'" |
6515 | $ WC "multiarch='undef'" | |
6516 | $ WC "mydomain='" + mydomain + "'" | |
6517 | $ WC "myhostname='" + myhostname + "'" | |
6518 | $ WC "myuname='" + myuname + "'" | |
2cc61e15 | 6519 | $ WC "need_va_copy='undef'" |
570bb66e JH |
6520 | $ WC "netdb_hlen_type='" + netdb_hlen_type + "'" |
6521 | $ WC "netdb_host_type='" + netdb_host_type + "'" | |
6522 | $ WC "netdb_name_type='" + netdb_name_type + "'" | |
6523 | $ WC "netdb_net_type='" + netdb_net_type + "'" | |
bd2aeadf | 6524 | $ WC/symbol "nonxs_ext='", nonxs_ext, " ", nonxs_ext2, "'" |
fd47df60 | 6525 | $ WC "nveformat='" + nveformat + "'" |
d677d0fc | 6526 | $ WC "nvEUformat='" + nvEUformat + "'" |
fd47df60 | 6527 | $ WC "nvfformat='" + nvfformat + "'" |
d677d0fc | 6528 | $ WC "nvFUformat='" + nvFUformat + "'" |
fd47df60 | 6529 | $ WC "nvgformat='" + nvgformat + "'" |
d677d0fc | 6530 | $ WC "nvGUformat='" + nvGUformat + "'" |
570bb66e JH |
6531 | $ WC "nvsize='" + nvsize + "'" |
6532 | $ WC "nvtype='" + nvtype + "'" | |
6533 | $ WC "o_nonblock=' '" | |
6534 | $ WC "obj_ext='" + obj_ext + "'" | |
6535 | $ WC "old_pthread_create_joinable='" + old_pthread_create_joinable + "'" | |
6536 | $ WC "oldarchlib='" + oldarchlib + "'" | |
6537 | $ WC "oldarchlibexp='" + oldarchlibexp + "'" | |
6538 | $ WC "optimize='" + optimize + "'" | |
6539 | $ WC "osname='" + osname + "'" | |
6540 | $ WC "osvers='" + osvers + "'" | |
6541 | $ WC "otherlibdirs='" + "'" | |
6542 | $ WC "package='" + package + "'" | |
6543 | $ WC "pager='" + pager + "'" | |
6544 | $ WC "patchlevel='" + patchlevel + "'" | |
6545 | $ WC "path_sep='|'" | |
6546 | $ WC "perl_root='" + perl_root + "'" ! VMS specific $trnlnm() | |
6547 | $ WC "perladmin='" + perladmin + "'" | |
94928b12 | 6548 | $ WC "perllibs='" + perllibs + "'" |
972e9305 | 6549 | $ WC "perlpath='" + "''vms_prefix':[000000]Perl''exe_ext'" + "'" |
b0e839b3 | 6550 | $ WC "perl_static_inline='static inline'" |
9b5c8979 JH |
6551 | $ WC "perl_symbol='" + perl_symbol + "'" ! VMS specific |
6552 | $ WC "perl_verb='" + perl_verb + "'" ! VMS specific | |
570bb66e JH |
6553 | $ WC "pgflquota='" + pgflquota + "'" |
6554 | $ WC "pidtype='" + pidtype + "'" | |
70c20b69 | 6555 | $ WC "prefix='" + vms_prefix + "'" |
b4558e59 | 6556 | $ WC "prefixexp='" + vms_prefix + ":'" |
570bb66e JH |
6557 | $ WC "privlib='" + privlib + "'" |
6558 | $ WC "privlibexp='" + privlibexp + "'" | |
357cef76 | 6559 | $ WC "procselfexe=' '" |
570bb66e JH |
6560 | $ WC "prototype='define'" |
6561 | $ WC "ptrsize='" + ptrsize + "'" | |
6562 | $ WC "quadkind='" + quadkind + "'" | |
6563 | $ WC "quadtype='" + quadtype + "'" | |
cd3eeb19 CB |
6564 | $ WC "randbits='" + randbits + "'" |
6565 | $ WC "randfunc='" + randfunc + "'" | |
570bb66e JH |
6566 | $ WC "randseedtype='" + randseedtype + "'" |
6567 | $ WC "ranlib='" + "'" | |
6568 | $ WC "rd_nodata=' '" | |
6569 | $ WC "revision='" + revision + "'" | |
d83484c2 | 6570 | $ WC "sGMTIME_max='4294967295'" |
96938616 | 6571 | $ WC "sGMTIME_min='0'" |
d83484c2 | 6572 | $ WC "sLOCALTIME_max='4294967295'" |
96938616 | 6573 | $ WC "sLOCALTIME_min='0'" |
570bb66e | 6574 | $ WC "sPRId64='" + sPRId64 + "'" |
d677d0fc CB |
6575 | $ WC "sPRIEUldbl='" + sPRIEUldbl + "'" |
6576 | $ WC "sPRIFUldbl='" + sPRIFUldbl + "'" | |
6577 | $ WC "sPRIGUldbl='" + sPRIGUldbl + "'" | |
6578 | $ WC "sPRIXU64='" + sPRIXU64 + "'" | |
59a27e12 | 6579 | $ WC "sPRIeldbl='" + sPRIeldbl + "'" |
570bb66e JH |
6580 | $ WC "sPRIfldbl='" + sPRIfldbl + "'" |
6581 | $ WC "sPRIgldbl='" + sPRIgldbl + "'" | |
d677d0fc | 6582 | $ WC "sPRIi64='" + sPRIi64 + "'" |
570bb66e JH |
6583 | $ WC "sPRIo64='" + sPRIo64 + "'" |
6584 | $ WC "sPRIu64='" + sPRIu64 + "'" | |
6585 | $ WC "sPRIx64='" + sPRIx64 + "'" | |
b5ddfb46 | 6586 | $ WC "sSCNfldbl='" + sSCNfldbl + "'" |
570bb66e | 6587 | $ WC "sched_yield='" + sched_yield + "'" |
f688e3ac | 6588 | $ WC "scriptdir='" + scriptdir + "'" |
86761af6 | 6589 | $ WC "scriptdirexp='" + scriptdir + "'" ! use scriptdir for now |
570bb66e JH |
6590 | $ WC "seedfunc='" + seedfunc + "'" |
6591 | $ WC "selectminbits='32'" | |
6592 | $ WC "selecttype='" + selecttype + "'" | |
6593 | $ WC "sh='MCR'" | |
58046ef3 | 6594 | $ WC "sharpbang='#!'" |
414b89cc | 6595 | $ WC "shmattype='" + " '" |
570bb66e | 6596 | $ WC "shortsize='" + shortsize + "'" |
fe1de8ce CB |
6597 | $ IF (f$length(sig_name) .GE. 244) |
6598 | $ THEN | |
6599 | $ tmp = "sig_name='" + sig_name + "'" | |
6600 | $ WC/symbol tmp | |
6601 | $ DELETE/SYMBOL tmp | |
6602 | $ ELSE | |
6603 | $ WC "sig_name='" + sig_name + "'" | |
6604 | $ ENDIF | |
6605 | $ IF (f$length(sig_name_init) .GE. 244) | |
ecd6e098 AT |
6606 | $ THEN |
6607 | $ tmp = "sig_name_init='" + sig_name_init + "'" | |
6608 | $ WC/symbol tmp | |
6609 | $ DELETE/SYMBOL tmp | |
6610 | $ ELSE | |
6611 | $ WC "sig_name_init='" + sig_name_init + "'" | |
6612 | $ ENDIF | |
570bb66e JH |
6613 | $ WC "sig_num='" + sig_num + "'" |
6614 | $ WC "sig_num_init='" + sig_num_init + "'" | |
acabf64b | 6615 | $ WC "sig_count='" + sig_count + "'" |
76d3c696 | 6616 | $ WC "sig_size='" + sig_size + "'" |
570bb66e JH |
6617 | $ WC "signal_t='" + signal_t + "'" |
6618 | $ WC "sitearch='" + sitearch + "'" | |
6619 | $ WC "sitearchexp='" + sitearchexp + "'" | |
ec18bc92 CB |
6620 | $ WC "sitebin='" + sitebin + "'" |
6621 | $ WC "sitebinexp='" + sitebin + "'" | |
570bb66e JH |
6622 | $ WC "sitelib='" + sitelib + "'" |
6623 | $ WC "sitelib_stem='" + sitelib_stem + "'" | |
6624 | $ WC "sitelibexp='" + sitelibexp + "'" | |
ec18bc92 CB |
6625 | $ WC "siteprefix='" + vms_prefix + "'" |
6626 | $ WC "siteprefixexp='" + vms_prefix + ":'" | |
570bb66e JH |
6627 | $ WC "sizesize='" + sizesize + "'" |
6628 | $ WC "sizetype='size_t'" | |
6629 | $ WC "so='" + so + "'" | |
6630 | $ WC "socksizetype='" + socksizetype + "'" | |
6631 | $ WC "spitshell='write sys$output '" | |
6632 | $ WC "src='" + src + "'" | |
6633 | $ WC "ssizetype='int'" | |
6634 | $ WC "startperl=" + startperl ! This one's special--no enclosing single quotes | |
17e8697d | 6635 | $ WC "static_ext='" + static_ext + "'" |
17660758 | 6636 | $ WC "st_ino_size='" + st_ino_size + "'" |
adf2bd28 | 6637 | $ WC "st_ino_sign='1'" |
570bb66e JH |
6638 | $ WC "stdchar='" + stdchar + "'" |
6639 | $ WC "stdio_base='((*fp)->_base)'" | |
6640 | $ WC "stdio_bufsiz='((*fp)->_cnt + (*fp)->_ptr - (*fp)->_base)'" | |
6641 | $ WC "stdio_cnt='((*fp)->_cnt)'" | |
6642 | $ WC "stdio_ptr='((*fp)->_ptr)'" | |
59a27e12 | 6643 | $ WC "stdio_stream_array=' " + "'" |
570bb66e | 6644 | $ WC "subversion='" + subversion + "'" |
d91e3179 | 6645 | $ WC "targetarch='" + "'" |
570bb66e JH |
6646 | $ WC "timetype='" + timetype + "'" |
6647 | $ WC "u16size='" + u16size + "'" | |
6648 | $ WC "u16type='" + u16type + "'" | |
6649 | $ WC "u32size='" + u32size + "'" | |
6650 | $ WC "u32type='" + u32type + "'" | |
6651 | $ WC "u64size='" + u64size + "'" | |
6652 | $ WC "u64type='" + u64type + "'" | |
6653 | $ WC "u8size='" + u8size + "'" | |
6654 | $ WC "u8type='" + u8type + "'" | |
6655 | $ WC "uidformat='lu'" | |
6656 | $ WC "uidsign='1'" | |
6657 | $ WC "uidsize='4'" | |
6658 | $ WC "uidtype='" + uidtype + "'" | |
6659 | $ WC "uquadtype='" + uquadtype + "'" | |
6660 | $ WC "use5005threads='" + use5005threads + "'" | |
6661 | $ WC "use64bitall='" + use64bitall + "'" | |
6662 | $ WC "use64bitint='" + use64bitint + "'" | |
9b5c8979 JH |
6663 | $ WC "usecasesensitive='" + be_case_sensitive + "'" ! VMS-specific |
6664 | $ WC "usedebugging_perl='"+use_debugging_perl+"'" | |
6665 | $ WC "usedefaulttypes='" + usedefaulttypes + "'" ! VMS-specific | |
5440bc8e | 6666 | $ WC "usecrosscompile='undef'" |
580410d2 | 6667 | $ WC "usedevel='" + usedevel + "'" |
570bb66e | 6668 | $ WC "usedl='" + usedl + "'" |
5ac1e9b2 | 6669 | $ WC "usedtrace='undef'" |
ea77424f | 6670 | $ WC "usefaststdio='" + usefaststdio + "'" |
9b5c8979 | 6671 | $ WC "useieee='" + useieee + "'" ! VMS-specific |
570bb66e | 6672 | $ WC "useithreads='" + useithreads + "'" |
3f39e13a | 6673 | $ WC "usekernelthreads='" + usekernelthreads + "'" ! VMS-specific |
2982a345 | 6674 | $ WC "usekernprocpathname='undef'" |
ae60cb46 | 6675 | $ WC "usensgetexecutablepath='undef'" |
570bb66e JH |
6676 | $ WC "uselargefiles='" + uselargefiles + "'" |
6677 | $ WC "uselongdouble='" + uselongdouble + "'" | |
6678 | $ WC "usemorebits='" + usemorebits + "'" | |
6679 | $ WC "usemultiplicity='" + usemultiplicity + "'" | |
6680 | $ WC "usemymalloc='" + usemymalloc + "'" | |
712b953a | 6681 | $ WC "useperlio='define'" |
570bb66e | 6682 | $ WC "useposix='false'" |
9514c62b | 6683 | $ WC "usereentrant='undef'" |
4fd0a66c | 6684 | $ WC "userelocatableinc='undef'" |
9b5c8979 | 6685 | $ WC "usesecurelog='" + usesecurelog + "'" ! VMS-specific |
1171624b | 6686 | $ WC "useshortenedsymbols='" + useshortenedsymbols + "'" ! VMS-specific |
b672680a | 6687 | $ WC "useshrplib='true'" |
79e63f36 | 6688 | $ WC "usesitecustomize='" + usesitecustomize + "'" |
570bb66e JH |
6689 | $ WC "usesocks='undef'" |
6690 | $ WC "usethreads='" + usethreads + "'" | |
3f39e13a | 6691 | $ WC "usethreadupcalls='" + usethreadupcalls + "'" ! VMS-specific |
ec18bc92 | 6692 | $ WC "usevendorprefix='" + "'" ! try to say no, though we'll be ignored as of MM 5.90_01 |
570bb66e | 6693 | $ WC "usevfork='true'" |
9b5c8979 | 6694 | $ WC "usevmsdebug='" + usevmsdebug + "'" ! VMS-specific |
570bb66e JH |
6695 | $ WC "uvoformat='" + uvoformat + "'" |
6696 | $ WC "uvsize='" + uvsize + "'" | |
6697 | $ WC "uvtype='" + uvtype + "'" | |
6698 | $ WC "uvuformat='" + uvuformat + "'" | |
6699 | $ WC "uvxformat='" + uvxformat + "'" | |
414b89cc | 6700 | $ WC "uvXUformat='" + uvXUformat + "'" |
ec18bc92 | 6701 | $ WC "vendorarch='" + "'" |
a1bd83cf | 6702 | $ WC "vaproto='define'" |
570bb66e | 6703 | $ WC "vendorarchexp='" + "'" |
ec18bc92 CB |
6704 | $ WC "vendorbin='" + "'" |
6705 | $ WC "vendorbinexp='" + "'" | |
570bb66e | 6706 | $ WC "vendorlib_stem='" + "'" |
ec18bc92 | 6707 | $ WC "vendorlib='" + "'" |
570bb66e | 6708 | $ WC "vendorlibexp='" + "'" |
ec18bc92 CB |
6709 | $ WC "vendorprefix='" + "'" |
6710 | $ WC "vendorprefixexp='" + "'" | |
570bb66e | 6711 | $ WC "version='" + version + "'" |
9ec25520 | 6712 | $ WC "version_patchlevel_string='" + version_patchlevel_string + "'" |
570bb66e JH |
6713 | $ WC "vms_cc_type='" + vms_cc_type + "'" ! VMS specific |
6714 | $ WC "vms_prefix='" + vms_prefix + "'" ! VMS specific | |
6715 | $ WC "vms_ver='" + vms_ver + "'" ! VMS specific | |
6716 | $ WC "voidflags='15'" | |
10bc17b6 JH |
6717 | $! |
6718 | $! ## The UNIXy POSIXy reentrantey thingys ## | |
8df869cb CB |
6719 | $! See "Appendix B, Version-Dependency Tables" in the C RTL |
6720 | $! manual for when assorted _r functions became available. | |
10bc17b6 | 6721 | $! |
8df869cb CB |
6722 | $ IF use_threads .AND. vms_ver .GES. "7.2" |
6723 | $ THEN | |
4f93eb5d | 6724 | $ WC "asctime_r_proto='REENTRANT_PROTO_B_SB'" |
8df869cb | 6725 | $ WC "d_asctime_r='define'" |
4f93eb5d | 6726 | $ WC "ctime_r_proto='REENTRANT_PROTO_B_SB'" |
8df869cb | 6727 | $ WC "d_ctime_r='define'" |
8df869cb CB |
6728 | $ ELSE |
6729 | $ WC "asctime_r_proto='0'" | |
6730 | $ WC "d_asctime_r='undef'" | |
4f93eb5d | 6731 | $ WC "ctime_r_proto='0'" |
8df869cb | 6732 | $ WC "d_ctime_r='undef'" |
8df869cb | 6733 | $ ENDIF |
10bc17b6 JH |
6734 | $ WC "d_crypt_r='undef'" |
6735 | $ WC "d_ctermid_r='undef'" | |
10bc17b6 JH |
6736 | $ WC "d_drand48_r='undef'" |
6737 | $ WC "d_endgrent_r='undef'" | |
6738 | $ WC "d_endhostent_r='undef'" | |
6739 | $ WC "d_endnetent_r='undef'" | |
6740 | $ WC "d_endprotoent_r='undef'" | |
6741 | $ WC "d_endpwent_r='undef'" | |
6742 | $ WC "d_endservent_r='undef'" | |
6743 | $ WC "d_getgrent_r='undef'" | |
96021e87 JM |
6744 | $ WC "d_getgrgid_r='" + d_getgrgid_r + "'" |
6745 | $ WC "d_getgrnam_r='" + d_getgrnam_r + "'" | |
10bc17b6 JH |
6746 | $ WC "d_gethostbyaddr_r='undef'" |
6747 | $ WC "d_gethostbyname_r='undef'" | |
6748 | $ WC "d_gethostent_r='undef'" | |
6749 | $ WC "d_getlogin_r='undef'" | |
6750 | $ WC "d_getnetbyaddr_r='undef'" | |
6751 | $ WC "d_getnetbyname_r='undef'" | |
6752 | $ WC "d_getnetent_r='undef'" | |
6753 | $ WC "d_getprotobyname_r='undef'" | |
6754 | $ WC "d_getprotobynumber_r='undef'" | |
6755 | $ WC "d_getprotoent_r='undef'" | |
6756 | $ WC "d_getpwent_r='undef'" | |
96021e87 JM |
6757 | $ WC "d_getpwnam_r='" + d_getpwnam_r + "'" |
6758 | $ WC "d_getpwuid_r='" + d_getpwuid_r + "'" | |
10bc17b6 JH |
6759 | $ WC "d_getservbyname_r='undef'" |
6760 | $ WC "d_getservbyport_r='undef'" | |
6761 | $ WC "d_getservent_r='undef'" | |
6762 | $ WC "d_getspnam_r='undef'" | |
4f93eb5d CB |
6763 | $ WC "d_gmtime_r='undef'" ! leave undef'd; we use my_gmtime |
6764 | $ WC "d_localtime_r='undef'" ! leave undef'd; we use my_localtime | |
f025e94b | 6765 | $ WC "d_localtime_r_needs_tzset='undef'" |
10bc17b6 | 6766 | $ WC "d_random_r='undef'" |
a9852f7c | 6767 | $ WC "d_readdir_r='define'" ! always defined; we roll our own |
10bc17b6 | 6768 | $ WC "d_readdir64_r='undef'" |
10bc17b6 JH |
6769 | $ WC "d_setgrent_r='undef'" |
6770 | $ WC "d_sethostent_r='undef'" | |
6771 | $ WC "d_setlocale_r='undef'" | |
6772 | $ WC "d_setnetent_r='undef'" | |
6773 | $ WC "d_setprotoent_r='undef'" | |
6774 | $ WC "d_setpwent_r='undef'" | |
6775 | $ WC "d_setservent_r='undef'" | |
d00eb249 | 6776 | $ WC "d_snprintf='" + d_snprintf + "'" |
10bc17b6 JH |
6777 | $ WC "d_srand48_r='undef'" |
6778 | $ WC "d_srandom_r='undef'" | |
6779 | $ WC "d_strerror_r='undef'" | |
6780 | $ WC "d_tmpnam_r='undef'" | |
96021e87 | 6781 | $ WC "d_ttyname_r='" + d_ttyname_r + "'" |
4f93eb5d CB |
6782 | $ WC "ctermid_r_proto='0'" |
6783 | $ WC "crypt_r_proto='0'" | |
10bc17b6 JH |
6784 | $ WC "drand48_r_proto='0'" |
6785 | $ WC "endgrent_r_proto='0'" | |
6786 | $ WC "endhostent_r_proto='0'" | |
6787 | $ WC "endnetent_r_proto='0'" | |
6788 | $ WC "endprotoent_r_proto='0'" | |
6789 | $ WC "endpwent_r_proto='0'" | |
6790 | $ WC "endservent_r_proto='0'" | |
6791 | $ WC "getgrent_r_proto='0'" | |
96021e87 JM |
6792 | $ WC "getgrgid_r_proto='" + getgrgid_r_proto + "'" |
6793 | $ WC "getgrnam_r_proto='" + getgrnam_r_proto + "'" | |
10bc17b6 JH |
6794 | $ WC "gethostbyaddr_r_proto='0'" |
6795 | $ WC "gethostbyname_r_proto='0'" | |
6796 | $ WC "gethostent_r_proto='0'" | |
6797 | $ WC "getlogin_r_proto='0'" | |
6798 | $ WC "getnetbyaddr_r_proto='0'" | |
6799 | $ WC "getnetbyname_r_proto='0'" | |
6800 | $ WC "getnetent_r_proto='0'" | |
6801 | $ WC "getprotobyname_r_proto='0'" | |
6802 | $ WC "getprotobynumber_r_proto='0'" | |
6803 | $ WC "getprotoent_r_proto='0'" | |
6804 | $ WC "getpwent_r_proto='0'" | |
6805 | $ WC "getpwnam_r_proto='0'" | |
6806 | $ WC "getpwuid_r_proto='0'" | |
6807 | $ WC "getservbyname_r_proto='0'" | |
6808 | $ WC "getservbyport_r_proto='0'" | |
6809 | $ WC "getservent_r_proto='0'" | |
6810 | $ WC "getspnam_r_proto='0'" | |
6811 | $ WC "gmtime_r_proto='0'" | |
10bc17b6 JH |
6812 | $ WC "localtime_r_proto='0'" |
6813 | $ WC "random_r_proto='0'" | |
a9852f7c | 6814 | $ WC "readdir_r_proto='REENTRANT_PROTO_I_TSR'" ! always defined; we roll our own |
4f93eb5d | 6815 | $ WC "readdir64_r_proto='0'" |
10bc17b6 JH |
6816 | $ WC "setgrent_r_proto='0'" |
6817 | $ WC "sethostent_r_proto='0'" | |
6818 | $ WC "setlocale_r_proto='0'" | |
6819 | $ WC "setnetent_r_proto='0'" | |
6820 | $ WC "setprotoent_r_proto='0'" | |
6821 | $ WC "setpwent_r_proto='0'" | |
6822 | $ WC "setservent_r_proto='0'" | |
6823 | $ WC "srand48_r_proto='0'" | |
6824 | $ WC "srandom_r_proto='0'" | |
6825 | $ WC "strerror_r_proto='0'" | |
6826 | $ WC "tmpnam_r_proto='0'" | |
96021e87 | 6827 | $ WC "ttyname_r_proto='" + ttyname_r_proto + "'" |
570bb66e JH |
6828 | $! |
6829 | $! ##END WRITE NEW CONSTANTS HERE## | |
6830 | $! | |
6831 | $ CLOSE CONFIG | |
6832 | $! | |
6833 | $! Okay, we've gotten here. Build munchconfig.exe | |
6834 | $ COPY/NOLOG [-.vms]munchconfig.c [] | |
7558ebc2 | 6835 | $ COPY/NOLOG [-.vms]'Makefile_SH' [] |
1632ad18 | 6836 | $ 'Perl_CC' 'ccflags' munchconfig.c |
570bb66e JH |
6837 | $ IF Needs_Opt |
6838 | $ THEN | |
6839 | $ OPEN/WRITE CONFIG []munchconfig.opt | |
414b89cc | 6840 | $ IF ccname .EQS. "GCC" |
570bb66e JH |
6841 | $ THEN |
6842 | $ WRITE CONFIG "Gnu_CC:[000000]gcclib.olb/library" | |
6843 | $ ENDIF | |
6844 | $ WRITE CONFIG "Sys$Share:VAXCRTL/Share" | |
6845 | $ CLOSE CONFIG | |
6846 | $ 'ld' munchconfig.obj,munchconfig.opt/opt | |
6847 | $ DELETE/NOLOG/NOCONFIRM munchconfig.opt; | |
6848 | $ ELSE | |
6849 | $ 'ld' munchconfig.obj | |
6850 | $ ENDIF | |
6851 | $ IF F$SEARCH("munchconfig.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.obj; | |
6852 | $ IF F$SEARCH("munchconfig.c") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.c; | |
414b89cc | 6853 | $ IF ccname .EQS. "CXX" |
570bb66e JH |
6854 | $ THEN |
6855 | $ CALL Cxx_demangler_cleanup | |
6856 | $ ENDIF | |
6857 | $! | |
6858 | $ IF alldone .EQS. "" | |
6859 | $ THEN | |
6860 | $ cat4 SYS$INPUT: | |
7558ebc2 | 6861 | $ DECK |
570bb66e JH |
6862 | |
6863 | If you'd like to make any changes to the config.sh file before I begin | |
6864 | to configure things, answer yes to the following question. | |
6865 | ||
7558ebc2 | 6866 | $ EOD |
9b5c8979 JH |
6867 | $ bool_dflt="n" |
6868 | $ rp="Do you wish to edit ''basename_config_sh'? [''bool_dflt'] " | |
570bb66e | 6869 | $ GOSUB myread |
570bb66e JH |
6870 | $ IF ans |
6871 | $ THEN | |
6872 | $ echo4 "" | |
6873 | $ echo4 "Be sure to type LOGOUT after you have edited the file," | |
6874 | $ echo4 "then this procedure will resume." | |
6875 | $ echo4 "" | |
6876 | $ default = F$ENVIRONMENT("DEFAULT") | |
7558ebc2 | 6877 | $ DIRECTORY 'config_sh' |
570bb66e JH |
6878 | $ SET DEFAULT [-] |
6879 | $ SPAWN/WAIT | |
7558ebc2 | 6880 | $ SET DEFAULT 'default' |
570bb66e JH |
6881 | $ ENDIF |
6882 | $ ENDIF | |
6883 | $! | |
6884 | $ echo "" | |
6885 | $ echo4 "Adding ''osname' specific preprocessor commands." | |
6886 | $ ! | |
6887 | $ ! we need an fdl file | |
6888 | $ CREATE [-]CONFIG.FDL | |
7558ebc2 | 6889 | $ DECK |
570bb66e JH |
6890 | RECORD |
6891 | FORMAT STREAM_LF | |
7558ebc2 | 6892 | $ EOD |
570bb66e JH |
6893 | $ CREATE /FDL=[-]CONFIG.FDL [-]CONFIG.LOCAL |
6894 | $ ! First spit out the header info with the local defines (to get | |
6895 | $ ! around the 255 character command line limit) | |
6896 | $ OPEN/APPEND CONFIG [-]config.local | |
6897 | $ IF use_debugging_perl THEN WC "#define DEBUGGING" | |
6898 | $ IF use_two_pot_malloc THEN WC "#define TWO_POT_OPTIMIZE" | |
6899 | $ IF mymalloc THEN WC "#define EMBEDMYMALLOC" | |
6900 | $ IF use_pack_malloc THEN WC "#define PACK_MALLOC" | |
6901 | $ IF use_debugmalloc THEN WC "#define DEBUGGING_MSTATS" | |
414b89cc | 6902 | $ IF ccname .EQS. "GCC" THEN WC "#define GNUC_ATTRIBUTE_CHECK" |
570bb66e JH |
6903 | $ IF (Has_Dec_C_Sockets) |
6904 | $ THEN | |
6905 | $ WC "#define VMS_DO_SOCKETS" | |
6906 | $ WC "#define DECCRTL_SOCKETS" | |
570bb66e JH |
6907 | $ ENDIF |
6908 | $! This is VMS-specific for now | |
6909 | $ WC "#''d_setenv' HAS_SETENV" | |
6910 | $ IF d_secintgenv THEN WC "#define SECURE_INTERNAL_GETENV" | |
6911 | $ IF d_alwdeftype THEN WC "#define ALWAYS_DEFTYPES" | |
6912 | $ IF use64bitint .OR. use64bitint .EQS. "define" | |
6913 | $ THEN | |
6914 | $ WC "#define USE_64_BIT_INT" | |
6915 | $ WC "#define USE_LONG_DOUBLE" | |
6916 | $ ENDIF | |
6917 | $ IF use64bitall .OR. use64bitall .EQS. "define" THEN - | |
6918 | WC "#define USE_64_BIT_ALL" | |
6919 | $ IF be_case_sensitive THEN WC "#define VMS_WE_ARE_CASE_SENSITIVE" | |
1171624b | 6920 | $ IF shorten_long_symbols THEN WC "#define VMS_SHORTEN_LONG_SYMBOLS" |
3ffb755e | 6921 | $ IF use_ieee_math THEN WC "#define USE_IEEE" |
570bb66e JH |
6922 | $ IF d_herrno .EQS. "undef" THEN WC "#define NEED_AN_H_ERRNO" |
6923 | $ WC "#define HAS_ENVGETENV" | |
6924 | $ WC "#define PERL_EXTERNAL_GLOB" | |
f2610a60 | 6925 | $ IF kill_by_sigprc .EQS. "define" then WC "#define KILL_BY_SIGPRC" |
4adb8845 CB |
6926 | $ IF unlink_all_versions .OR. unlink_all_versions .EQS. "define" THEN - |
6927 | WC "#define UNLINK_ALL_VERSIONS" | |
234242ca | 6928 | $ IF d_sockaddr_sa_len .EQS. "define" then WC "#define _SOCKADDR_LEN 1" |
85fac3a9 CB |
6929 | $ IF ccname .EQS. "CXX" then WC "#define NO_ENVIRON_ARRAY" |
6930 | $ IF ccname .EQS. "CXX" then WC "#define VMS" ! only has __VMS by default | |
570bb66e JH |
6931 | $ CLOSE CONFIG |
6932 | $! | |
6933 | $ echo4 "Doing variable substitutions on .SH files..." | |
6934 | $ echo4 "Extracting config.h (with variable substitutions)" | |
6935 | $! | |
6936 | $! Now build the normal config.h | |
6937 | $ DEFINE/USER_MODE sys$output [-]config.main | |
7558ebc2 | 6938 | $ mcr []munchconfig 'config_sh' [-]config_h.sh |
570bb66e JH |
6939 | $ ! Concatenate them together |
6940 | $ copy [-]config.local,[-]config.main [-]config.h | |
6941 | $! Clean up | |
fcc434ad PP |
6942 | $ DELETE/NOLOG/NOCONFIRM [-]CONFIG.MAIN;* |
6943 | $ DELETE/NOLOG/NOCONFIRM [-]CONFIG.LOCAL;* | |
6944 | $ DELETE/NOLOG/NOCONFIRM [-]CONFIG.FDL;* | |
570bb66e | 6945 | $! |
414b89cc | 6946 | $ IF ccname .EQS. "DEC" |
570bb66e JH |
6947 | $ THEN |
6948 | $ DECC_REPLACE = "DECC=decc=1" | |
6949 | $ ELSE | |
7558ebc2 PP |
6950 | $ DECC_REPLACE = "DECC=" |
6951 | $ ENDIF | |
414b89cc | 6952 | $ IF ccname .EQS. "CXX" |
7558ebc2 PP |
6953 | $ THEN |
6954 | $ DECCXX_REPLACE = "DECCXX=DECCXX=1" | |
6955 | $ ELSE | |
6956 | $ DECCXX_REPLACE = "DECCXX=" | |
570bb66e | 6957 | $ ENDIF |
414b89cc | 6958 | $ IF ccname .EQS. "GCC" |
570bb66e JH |
6959 | $ THEN |
6960 | $ GNUC_REPLACE = "GNUC=gnuc=1" | |
6961 | $ ELSE | |
6962 | $ GNUC_REPLACE = "GNUC=" | |
6963 | $ ENDIF | |
6964 | $ IF Has_Dec_C_Sockets | |
6965 | $ THEN | |
6966 | $ SOCKET_REPLACE = "SOCKET=DECC_SOCKETS=1" | |
6967 | $ ELSE | |
046cc26c | 6968 | $ SOCKET_REPLACE = "SOCKET=" |
570bb66e | 6969 | $ ENDIF |
a92ae878 | 6970 | $ IF use_threads |
570bb66e | 6971 | $ THEN |
32995a38 | 6972 | $ THREAD_REPLACE = "THREAD=THREADED=1" |
570bb66e JH |
6973 | $ ELSE |
6974 | $ THREAD_REPLACE = "THREAD=" | |
6975 | $ ENDIF | |
6976 | $ IF mymalloc | |
6977 | $ THEN | |
6978 | $ MALLOC_REPLACE = "MALLOC=MALLOC=1" | |
6979 | $ ELSE | |
6980 | $ MALLOC_REPLACE = "MALLOC=" | |
6981 | $ ENDIF | |
e0261ef8 CB |
6982 | $ IF uselargefiles .OR. uselargefiles .EQS. "define" |
6983 | $ THEN | |
cfcfe586 JM |
6984 | $ IF usestdstat .or. usestdstat .eqs. "define" |
6985 | $ THEN | |
6986 | $ LARGEFILE_REPLACE = "LARGEFILE=LARGEFILE=_USE_STD_STAT=1" | |
6987 | $ ELSE | |
96021e87 | 6988 | $ LARGEFILE_REPLACE = "LARGEFILE=LARGEFILE=_LARGEFILE=1" |
cfcfe586 | 6989 | $ ENDIF |
e0261ef8 CB |
6990 | $ ELSE |
6991 | $ LARGEFILE_REPLACE = "LARGEFILE=" | |
6992 | $ ENDIF | |
b8df70f4 CB |
6993 | $! |
6994 | $! In order not to stress the tiny command buffer on pre-7.3-2 systems, | |
6995 | $! we put the following substitutions in a file and pass the file to | |
6996 | $! munchconfig. | |
6997 | $! | |
6998 | $ open/write CONFIG extra_subs.txt | |
6999 | $ WC := write CONFIG | |
7000 | $ WC "''DECC_REPLACE'" | |
7001 | $ WC "''DECCXX_REPLACE'" | |
7002 | $ WC "''ARCH_TYPE'" | |
7003 | $ WC "''GNUC_REPLACE'" | |
7004 | $ WC "''SOCKET_REPLACE'" | |
7005 | $ WC "''THREAD_REPLACE'" | |
7006 | $ WC "''C_Compiler_Replace'" | |
7007 | $ WC "''MALLOC_REPLACE'" | |
7008 | $ WC "''THREAD_UPCALLS'" | |
7009 | $ WC "''THREAD_KERNEL'" | |
7010 | $ WC "PV=''version'" | |
7011 | $ WC "FLAGS=FLAGS=''extra_flags'" | |
7012 | $ WC "''LARGEFILE_REPLACE'" | |
44caa20c | 7013 | $ WC "ARCHNAME=ARCHNAME=''archname'" |
b8df70f4 CB |
7014 | $ close CONFIG |
7015 | $! | |
570bb66e | 7016 | $ echo4 "Extracting ''defmakefile' (with variable substitutions)" |
7558ebc2 | 7017 | $ DEFINE/USER_MODE sys$output 'UUmakefile' |
b8df70f4 | 7018 | $ mcr []munchconfig 'config_sh' 'Makefile_SH' -f extra_subs.txt |
7558ebc2 PP |
7019 | $! Clean up after ourselves |
7020 | $ DELETE/NOLOG/NOCONFIRM []munchconfig.exe; | |
b8df70f4 | 7021 | $ DELETE/NOLOG/NOCONFIRM []extra_subs.txt; |
a3bd614a | 7022 | $! |
414b89cc CB |
7023 | $! Note that the /key qualifier to search, as in: |
7024 | $! search README.* "=head"/key=(position=1)/window=0/output=extra.pods | |
7025 | $! is not supported on VMS V5.5-2, hence not used in extra_pods.com. | |
7026 | $! | |
7027 | $ echo4 "Extracting extra_pods.com (without variable substitutions)" | |
7028 | $ Create Sys$Disk:[-]extra_pods.com | |
7029 | $ Deck/Dollar="$EOExtra_Pods$" | |
7030 | $!++ extra_pods.com | |
7031 | $! NOTE: This file is extracted as part of the VMS configuration process. | |
7032 | $! Any changes made to it directly will be lost. If you need to make any | |
7033 | $! changes, please edit the template in Configure.Com instead. | |
7034 | $! Use FORCE if you've just podified a README.* file on VMS. | |
7035 | $ if f$search("extra.pods") .eqs. "" .or. P1 .eqs. "FORCE" then - | |
7036 | search README.* "=head"/window=0/output=extra.pods | |
7037 | $ open/read/error=extra_close EXTRA extra.pods | |
7038 | $extra_loop: | |
7039 | $ read/error=extra_close/END_OF_FILE=extra_close EXTRA file | |
1f74f634 | 7040 | $ file_type = f$edit(f$parse(file,,,"TYPE",),"LOWERCASE") - "." |
414b89cc CB |
7041 | $ if file_type .nes. "VMS" .and. file_type .nes. "vms" |
7042 | $ then | |
7043 | $ pod_file = "[.pod]perl''file_type'.pod" | |
7044 | $ file = file - "''f$parse(file,,,"VERSION",)'" | |
7045 | $ if p1 .eqs. "CLEAN" | |
7046 | $ then if f$search(pod_file) .nes. "" then delete/log 'pod_file';* | |
7047 | $ else | |
7048 | $ do_copy := false | |
7049 | $ if f$search(pod_file) .eqs. "" | |
7050 | $ then do_copy := true | |
7051 | $ else | |
7052 | $ file_rdt = f$cvtime(f$file_attributes(file,"RDT")) | |
7053 | $ pod_file_rdt = f$cvtime(f$file_attributes(pod_file,"RDT")) | |
7054 | $ if file_rdt .GTS. pod_file_rdt then do_copy := true | |
7055 | $ endif | |
1f74f634 CB |
7056 | $ ! wacky method to preserve case on ODS-5 even when parse style is traditional |
7057 | $ if do_copy then mcr sys$disk:[]miniperl.exe -e "exit 0+$^E unless File::Copy::rmscopy(q{''file'}, q{''pod_file'});" | |
414b89cc CB |
7058 | $ endif |
7059 | $ endif | |
7060 | $ goto extra_loop | |
7061 | $extra_close: | |
7062 | $ close EXTRA | |
7063 | $ if p1 .eqs. "CLEAN" .and. f$search("extra.pods;-1") .nes. "" then - | |
7064 | purge/nolog extra.pods | |
7065 | $!-- extra_pods.com | |
7066 | $EOExtra_Pods$ | |
97abc6ad | 7067 | $! |
146174a9 | 7068 | $! Warn of dangerous symbols or logical names |
a4521476 | 7069 | $! |
146174a9 CB |
7070 | $Bad_environment: SUBROUTINE |
7071 | $ Bad_env = "" | |
7072 | $ IF p2 .eqs. "SYMBOL" | |
7073 | $ THEN | |
7558ebc2 | 7074 | $ IF f$type('p1') .nes. "" THEN Bad_env := SYMBOL |
146174a9 CB |
7075 | $ ELSE |
7076 | $ IF f$trnlnm(p1) .nes. "" THEN Bad_env := LOGICAL | |
7077 | $ ENDIF | |
7078 | $ IF Bad_env .eqs. "SYMBOL" .or. Bad_env .eqs. "LOGICAL" | |
a4521476 PP |
7079 | $ THEN |
7080 | $ IF f$search("config.msg") .nes. "" | |
7081 | $ THEN | |
7082 | $ OPEN/APPEND CONFIG config.msg | |
7083 | $ ELSE | |
7084 | $ OPEN/WRITE CONFIG config.msg | |
7085 | $ ENDIF | |
146174a9 CB |
7086 | $ IF Bad_env .eqs. "SYMBOL" |
7087 | $ THEN | |
7088 | $ WRITE CONFIG "" | |
7089 | $ WRITE CONFIG "Symbol name ''p1' found in environment as " + &p1 | |
7090 | $ WRITE CONFIG " delete before building ''package' via:" | |
7091 | $ WRITE CONFIG " $ DELETE/SYMBOL/GLOBAL ''p1'" | |
7092 | $ IF f$locate("""",&p1) .ge. f$length(&p1) | |
7093 | $ THEN | |
7558ebc2 | 7094 | $ WRITE CONFIG " after building, testing, and installing ''package'" |
146174a9 CB |
7095 | $ WRITE CONFIG " restore the symbol with:" |
7096 | $ WRITE CONFIG " $ ''p1' == """ + &p1 + """" | |
7097 | $ ENDIF | |
7098 | $ ENDIF | |
7099 | $ IF Bad_env .eqs. "LOGICAL" | |
7100 | $ THEN | |
7101 | $ WRITE CONFIG "" | |
7102 | $ WRITE CONFIG "Logical name ''p1' found in environment as " + f$trnlnm(p1) | |
7103 | $ WRITE CONFIG " deassign before building ''package'" | |
7104 | $ ENDIF | |
a4521476 | 7105 | $ CLOSE CONFIG |
146174a9 | 7106 | $ Bad_env = "" |
a4521476 PP |
7107 | $ ENDIF |
7108 | $ EXIT | |
146174a9 | 7109 | $ ENDSUBROUTINE ! Bad_environment |
a4521476 | 7110 | $ echo "" |
570bb66e | 7111 | $ echo4 "Checking for dangerous pre-existing global symbols and logical names." |
b3b333bf | 7112 | $ CALL Bad_environment "COMP" |
139df077 CB |
7113 | $ CALL Bad_environment "EXT" |
7114 | $ CALL Bad_environment "FOO" | |
146174a9 | 7115 | $ CALL Bad_environment "LIB" |
139df077 CB |
7116 | $ CALL Bad_environment "LIST" |
7117 | $ CALL Bad_environment "MIME" | |
7118 | $ CALL Bad_environment "POSIX" | |
7119 | $ CALL Bad_environment "SYS" | |
146174a9 | 7120 | $ CALL Bad_environment "T" |
139df077 CB |
7121 | $ CALL Bad_environment "THREAD" |
7122 | $ CALL Bad_environment "THREADS" | |
7123 | $ CALL Bad_environment "TIME" | |
7124 | $ CALL Bad_environment "TMP" | |
7125 | $ CALL Bad_environment "UNICODE" | |
7126 | $ CALL Bad_environment "UTIL" | |
146174a9 | 7127 | $ CALL Bad_environment "TEST" "SYMBOL" |
a4521476 PP |
7128 | $ IF f$search("config.msg") .eqs. "" THEN echo "OK." |
7129 | $! | |
97abc6ad HM |
7130 | $! %Config-I-VMS, write perl_setup.com here |
7131 | $! | |
86fced14 CB |
7132 | $ IF (.NOT.perl_symbol) |
7133 | $ THEN | |
7134 | $ file_2_find = "[-]''packageup'.cld" | |
7135 | $ echo "" | |
570bb66e | 7136 | $ echo4 "The perl.cld file is now being written..." |
86fced14 | 7137 | $ OPEN/WRITE CONFIG 'file_2_find' |
c645ec3f | 7138 | $ ext = ".exe" |
2b4b3ebb CB |
7139 | $ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP") THEN ext := .AXE |
7140 | $ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_IA64") THEN ext := .IXE | |
86fced14 CB |
7141 | $ IF (use_vmsdebug_perl) |
7142 | $ THEN | |
7143 | $ WRITE CONFIG "define verb dbgperl" | |
570bb66e | 7144 | $ WRITE CONFIG F$FAO("!_!AS","image ''vms_prefix':[000000]dbgperl''ext'") |
86fced14 CB |
7145 | $ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") |
7146 | $ WRITE CONFIG "" | |
7147 | $ WRITE CONFIG "define verb perl" | |
570bb66e | 7148 | $ WRITE CONFIG F$FAO("!_!AS","image ''vms_prefix':[000000]ndbgPerl''ext'") |
86fced14 CB |
7149 | $ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") |
7150 | $ ELSE | |
7151 | $ WRITE CONFIG "define verb perl" | |
570bb66e | 7152 | $ WRITE CONFIG F$FAO("!_!AS","image ''vms_prefix':[000000]perl''ext'") |
86fced14 CB |
7153 | $ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") |
7154 | $ ENDIF | |
7155 | $ CLOSE CONFIG | |
7156 | $ ENDIF ! (.NOT.perl_symbol) | |
97abc6ad | 7157 | $ echo "" |
570bb66e | 7158 | $ echo4 "The perl_setup.com file is now being written..." |
a3ef2c6f | 7159 | $ file_2_find = "[-]perl_setup.com" |
fcc434ad PP |
7160 | $! |
7161 | $! Folks are likely to want to edit perl_setup.com. | |
7162 | $! STMLF RFM plays nicer with ported editors than does VFC. | |
7163 | $! | |
7164 | $ CREATE [-]CONFIG.FDL | |
7165 | $ DECK | |
7166 | RECORD | |
7167 | FORMAT STREAM_LF | |
7168 | $ EOD | |
7169 | $ CREATE /FDL=[-]CONFIG.FDL 'file_2_find' | |
7170 | $ OPEN/APPEND CONFIG 'file_2_find' | |
7171 | $ DELETE/NOLOG/NOCONFIRM [-]CONFIG.FDL; | |
97abc6ad HM |
7172 | $ WRITE CONFIG "$!" |
7173 | $ WRITE CONFIG "$! Perl_Setup.com ''cf_time'" | |
7174 | $ IF cf_email.NES.perladmin | |
7175 | $ THEN | |
7176 | $ WRITE CONFIG "$! perl configured by ''cf_email'" | |
7177 | $ ELSE | |
7178 | $ WRITE CONFIG "$! This perl configured & administered by ''perladmin'" | |
7179 | $ ENDIF | |
7180 | $ WRITE CONFIG "$!" | |
96021e87 JM |
7181 | $! HP hack to make distributing binaries easier |
7182 | $!---------------------------------------------- | |
7183 | $ pcsi_producer = f$trnlnm("PCSI_PRODUCER") | |
7184 | $ if pcsi_producer .eqs. "" | |
7185 | $ then | |
96021e87 JM |
7186 | $ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' ''prefix'" |
7187 | $ else | |
7188 | $ WRITE CONFIG "$ myproc = f$environment(""PROCEDURE"")" | |
7189 | $ WRITE CONFIG "$ myroot_dev = f$parse(myproc,,,""DEVICE"",""NO_CONCEAL"")" | |
7190 | $ WRITE CONFIG "$ myroot_dir = f$parse(myproc,,,""DIRECTORY"",""NO_CONCEAL"")" | |
7191 | $ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000."" - ""><000000.""" | |
7192 | $ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000]"" - ""><000000>""" | |
7193 | $ WRITE CONFIG "$ myroot_dir = myroot_dir - ""]["" - ""><""" | |
7194 | $ WRITE CONFIG "$ myroot_dir = myroot_dir - "".]"" - "".>"" - ""["" - ""]"" - ""<"" - "">""" | |
7195 | $ WRITE CONFIG "$ if f$trnlnm(""HP_BUILD_PERL_BIN_KIT"",""LNM$PROCESS_TABLE"") .EQS. """"" | |
7196 | $ WRITE CONFIG "$ then" | |
7197 | $ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' 'myroot_dev'['myroot_dir'.]" | |
7198 | $ WRITE CONFIG "$ endif" | |
7199 | $ endif | |
86fced14 | 7200 | $ WRITE CONFIG "$ ext = "".exe""" |
570bb66e | 7201 | $ IF sharedperl |
86fced14 | 7202 | $ THEN |
86da1428 CB |
7203 | $ WRITE CONFIG "$ if f$getsyi(""ARCH_TYPE"") .eq. 2 then ext = "".AXE""" |
7204 | $ WRITE CONFIG "$ if f$getsyi(""ARCH_TYPE"") .eq. 3 then ext = "".IXE""" | |
86fced14 CB |
7205 | $ ENDIF |
7206 | $ IF (perl_symbol) | |
7207 | $ THEN | |
972e9305 | 7208 | $ perl_setup_perl = "'" + "'perl'" ! triple quoted foreign command symbol |
86fced14 CB |
7209 | $ IF (use_vmsdebug_perl) |
7210 | $ THEN | |
972e9305 PP |
7211 | $ WRITE CONFIG "$ dbgperl :== $''vms_prefix':[000000]dbgperl'ext'" |
7212 | $ WRITE CONFIG "$ perl :== $''vms_prefix':[000000]ndbgperl'ext'" | |
7213 | $ WRITE CONFIG "$ define dbgperlshr ''vms_prefix':[000000]dbgperlshr'ext'" | |
86fced14 | 7214 | $ ELSE |
570bb66e | 7215 | $ WRITE CONFIG "$ perl :== $''vms_prefix':[000000]Perl'ext'" |
972e9305 | 7216 | $ WRITE CONFIG "$ define perlshr ''vms_prefix':[000000]perlshr'ext'" |
86fced14 CB |
7217 | $ ENDIF |
7218 | $ ELSE ! .NOT.perl_symbol | |
972e9305 | 7219 | $ perl_setup_perl = "perl" ! command verb |
86fced14 CB |
7220 | $ IF (use_vmsdebug_perl) |
7221 | $ THEN | |
972e9305 | 7222 | $ WRITE CONFIG "$ define dbgperlshr ''vms_prefix':[000000]dbgperlshr'ext'" |
86fced14 | 7223 | $ ELSE |
972e9305 | 7224 | $ WRITE CONFIG "$ define perlshr ''vms_prefix':[000000]perlshr'ext'" |
86fced14 CB |
7225 | $ ENDIF |
7226 | $ IF perl_verb .EQS. "PROCESS" | |
7227 | $ THEN | |
570bb66e | 7228 | $ WRITE CONFIG "$ set command ''vms_prefix':[000000]''packageup'.CLD" |
86fced14 CB |
7229 | $ ENDIF |
7230 | $ ENDIF ! perl_symbol | |
3eeba6fb | 7231 | $! |
97abc6ad HM |
7232 | $ IF (tzneedset) |
7233 | $ THEN | |
7234 | $ WRITE CONFIG "$ define SYS$TIMEZONE_DIFFERENTIAL ''tzd'" | |
7235 | $ ELSE !leave in but commented out (in case setting was from perl :-) | |
7236 | $ WRITE CONFIG "$! define SYS$TIMEZONE_DIFFERENTIAL ''tzd'" | |
7237 | $ ENDIF | |
7238 | $ WRITE CONFIG "$!" | |
9ee2021e | 7239 | $ WRITE CONFIG "$! Symbols for Perl-based utility programs:" |
97abc6ad | 7240 | $ WRITE CONFIG "$!" |
972e9305 | 7241 | $ WRITE CONFIG "$ c2ph == """ + perl_setup_perl + " ''vms_prefix':[utils]c2ph.com""" |
9ee2021e CB |
7242 | $ WRITE CONFIG "$ config_data== """ + perl_setup_perl + " ''vms_prefix':[utils]config_data.com""" |
7243 | $ WRITE CONFIG "$ corelist == """ + perl_setup_perl + " ''vms_prefix':[utils]corelist.com""" | |
972e9305 | 7244 | $ WRITE CONFIG "$ cpan == """ + perl_setup_perl + " ''vms_prefix':[utils]cpan.com""" |
9ee2021e CB |
7245 | $ WRITE CONFIG "$ cpan2dist == """ + perl_setup_perl + " ''vms_prefix':[utils]cpan2dist.com""" |
7246 | $! FIXME: "-" is an operator and illegal in a symbol name -- cpanp-run-perl can't work | |
7247 | $!$ WRITE CONFIG "$ cpanp-run-perl == """ + perl_setup_perl + " ''vms_prefix':[utils]cpanp-run-perl.com""" | |
7248 | $ WRITE CONFIG "$ cpanp == """ + perl_setup_perl + " ''vms_prefix':[utils]cpanp.com""" | |
972e9305 | 7249 | $ WRITE CONFIG "$ enc2xs == """ + perl_setup_perl + " ''vms_prefix':[utils]enc2xs.com""" |
88be34b6 | 7250 | $ WRITE CONFIG "$ find2perl == """ + perl_setup_perl + " ''vms_prefix':[utils]find2perl.com""" |
972e9305 PP |
7251 | $ WRITE CONFIG "$ h2ph == """ + perl_setup_perl + " ''vms_prefix':[utils]h2ph.com""" |
7252 | $ WRITE CONFIG "$ h2xs == """ + perl_setup_perl + " ''vms_prefix':[utils]h2xs.com""" | |
88be34b6 | 7253 | $ WRITE CONFIG "$ instmodsh == """ + perl_setup_perl + " ''vms_prefix':[utils]instmodsh.com""" |
972e9305 | 7254 | $ WRITE CONFIG "$ libnetcfg == """ + perl_setup_perl + " ''vms_prefix':[utils]libnetcfg.com""" |
e8e09534 | 7255 | $ WRITE CONFIG "$ perlbug == """ + perl_setup_perl + " ''vms_prefix':[utils]perlbug.com""" |
e8e09534 | 7256 | $ WRITE CONFIG "$ perldoc == """ + perl_setup_perl + " ''vms_prefix':[utils]perldoc.com """"-t""""""" |
972e9305 PP |
7257 | $ WRITE CONFIG "$ perlivp == """ + perl_setup_perl + " ''vms_prefix':[utils]perlivp.com""" |
7258 | $ WRITE CONFIG "$ piconv == """ + perl_setup_perl + " ''vms_prefix':[utils]piconv.com""" | |
7259 | $ WRITE CONFIG "$ pl2pm == """ + perl_setup_perl + " ''vms_prefix':[utils]pl2pm.com""" | |
e8e09534 PP |
7260 | $ WRITE CONFIG "$ pod2html == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2html.com""" |
7261 | $ WRITE CONFIG "$ pod2latex == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2latex.com""" | |
7262 | $ WRITE CONFIG "$ pod2text == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2text.com""" | |
7263 | $ WRITE CONFIG "$!pod2man == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2man.com""" | |
972e9305 PP |
7264 | $ WRITE CONFIG "$ pod2usage == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2usage.com""" |
7265 | $ WRITE CONFIG "$ podchecker == """ + perl_setup_perl + " ''vms_prefix':[utils]podchecker.com""" | |
7266 | $ WRITE CONFIG "$ podselect == """ + perl_setup_perl + " ''vms_prefix':[utils]podselect.com""" | |
20997843 | 7267 | $ WRITE CONFIG "$ prove == """ + perl_setup_perl + " ''vms_prefix':[utils]prove.com""" |
972e9305 PP |
7268 | $ WRITE CONFIG "$ psed == """ + perl_setup_perl + " ''vms_prefix':[utils]psed.com""" |
7269 | $ WRITE CONFIG "$ pstruct == """ + perl_setup_perl + " ''vms_prefix':[utils]pstruct.com""" | |
7270 | $ WRITE CONFIG "$ s2p == """ + perl_setup_perl + " ''vms_prefix':[utils]s2p.com""" | |
9ee2021e CB |
7271 | $ WRITE CONFIG "$ ptar == """ + perl_setup_perl + " ''vms_prefix':[utils]ptar.com""" |
7272 | $ WRITE CONFIG "$ ptardiff == """ + perl_setup_perl + " ''vms_prefix':[utils]ptardiff.com""" | |
deabda19 | 7273 | $ WRITE CONFIG "$ ptargrep == """ + perl_setup_perl + " ''vms_prefix':[utils]ptargrep.com""" |
9ee2021e | 7274 | $ WRITE CONFIG "$ shasum == """ + perl_setup_perl + " ''vms_prefix':[utils]shasum.com""" |
972e9305 PP |
7275 | $ WRITE CONFIG "$ splain == """ + perl_setup_perl + " ''vms_prefix':[utils]splain.com""" |
7276 | $ WRITE CONFIG "$ xsubpp == """ + perl_setup_perl + " ''vms_prefix':[utils]xsubpp.com""" | |
08ad9465 | 7277 | $ WRITE CONFIG "$ zipdetails == """ + perl_setup_perl + " ''vms_prefix':[utils]zipdetails.com""" |
97abc6ad HM |
7278 | $ CLOSE CONFIG |
7279 | $! | |
7280 | $ echo "" | |
570bb66e JH |
7281 | $ echo "The file can be found at:" |
7282 | $ echo4 " ''F$SEARCH(file_2_find)'" | |
7283 | $ echo "Add that file (or an @ call to it) to your [SY]LOGIN.COM" | |
7284 | $ echo "when you are satisfied with a successful compilation," | |
7285 | $ echo "testing, and installation of your perl." | |
97abc6ad | 7286 | $ echo "" |
86fced14 CB |
7287 | $ IF ((.NOT.perl_symbol) .AND. (perl_verb .EQS. "DCLTABLES")) |
7288 | $ THEN | |
7289 | $ file_2_find = "[-]''packageup'_install.com" | |
7558ebc2 | 7290 | $ OPEN/WRITE CONFIG 'file_2_find' |
86fced14 CB |
7291 | $ WRITE CONFIG "$ set command perl /table=sys$common:[syslib]dcltables.exe -" |
7292 | $ WRITE CONFIG " /output=sys$common:[syslib]dcltables.exe" | |
7293 | $ WRITE CONFIG "$ install replace sys$common:[syslib]dcltables.exe" | |
7294 | $ CLOSE CONFIG | |
7295 | $ echo4 "" | |
570bb66e JH |
7296 | $ echo4 "In order to install the ''packageup' verb into DCLTABLES run:" |
7297 | $ echo4 " @ ''F$SEARCH(file_2_find)'" | |
7298 | $ echo4 "after a successful build, test, and install. Do so with CMKRNL privilege." | |
86fced14 CB |
7299 | $ echo4 "" |
7300 | $ ENDIF | |
97abc6ad HM |
7301 | $! |
7302 | $!figure out where we "are" by parsing 'vms_default_directory_name' | |
7303 | $! | |
7304 | $ set_def_command = "" | |
7305 | $ dflt = F$ENVIRONMENT("DEFAULT") - ".UU]" | |
7306 | $ tmp = vms_default_directory_name - dflt - "]" | |
7307 | $ i = 0 | |
7308 | $ IF tmp .EQS. "" THEN GOTO Beyond_set_def_loop | |
7309 | $Set_def_loop: | |
7310 | $ tmp1 = F$ELEMENT(i,".",tmp) | |
7311 | $ IF tmp1 .EQS. "." THEN GOTO Beyond_set_def_loop | |
7312 | $ IF i .EQ. 0 | |
7313 | $ THEN set_def_command = "set default [-" | |
7314 | $ ELSE set_def_command = set_def_command + "-" | |
7315 | $ ENDIF | |
7316 | $ i = i + 1 | |
7317 | $ GOTO Set_def_loop | |
7318 | $Beyond_set_def_loop: | |
7319 | $ IF set_def_command.NES."" | |
7320 | $ THEN | |
7321 | $ set_def_command = set_def_command - "-" + "]" | |
7322 | $ echo4 "" | |
7323 | $ echo4 "In order to build ''package' you must now issue the commands:" | |
7324 | $ echo4 "" | |
7325 | $ echo4 " ''set_def_command'" | |
7326 | $ ELSE | |
7327 | $ echo4 "" | |
7328 | $ echo4 "In order to build ''package' you must now issue the command:" | |
7329 | $ echo4 "" | |
7330 | $ ENDIF | |
7331 | $ echo4 " ''make'''makefile'", macros | |
7332 | $ echo4 "" | |
7333 | $! | |
a4521476 PP |
7334 | $ IF ( F$SEARCH("config.msg").NES."" ) |
7335 | $ THEN | |
139df077 CB |
7336 | $ echo4 "Hmm. I also noted the following information while running:" |
7337 | $ echo4 "" | |
7338 | $ TYPE/OUTPUT=SYS$ERROR: config.msg | |
a4521476 PP |
7339 | $ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) config.msg |
7340 | $ DELETE/NOLOG/NOCONFIRM config.msg; | |
7341 | $ ENDIF | |
7342 | $! | |
97abc6ad | 7343 | $Clean_up: |
17d0565f | 7344 | $ SET NOON |
97abc6ad HM |
7345 | $ IF (silent) |
7346 | $ THEN | |
17d0565f | 7347 | $ CLOSE/NOLOG STDOUT |
97abc6ad | 7348 | $ DEASSIGN SYS$OUTPUT |
97abc6ad | 7349 | $ ENDIF |
17d0565f | 7350 | $ CLOSE/NOLOG CONFIG |
414b89cc | 7351 | $ IF F$GETJPI("","FILCNT").GT.vms_filcnt |
97abc6ad HM |
7352 | $ THEN WRITE SYS$ERROR "%Config-W-VMS, WARNING: There is a file still open" |
7353 | $ ENDIF | |
7354 | $ dflt = F$ENVIRONMENT("DEFAULT") | |
7355 | $ IF F$LOCATE("UU]",dflt).EQS.(F$LENGTH(dflt)-3) | |
7356 | $ THEN | |
1171624b CB |
7357 | $ IF ( F$SEARCH("[.CXX_REPOSITORY]*.*").NES."" ) |
7358 | $ THEN | |
7359 | $ DELETE/NOLOG/NOCONFIRM [.CXX_REPOSITORY]*.*;* | |
7360 | $ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) CXX_REPOSITORY.DIR | |
7361 | $ ENDIF | |
97abc6ad HM |
7362 | $ IF ( F$SEARCH("[]*.*").NES."" ) THEN DELETE/NOLOG/NOCONFIRM []*.*;* |
7363 | $ SET DEFAULT [-] | |
7364 | $ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) UU.DIR | |
7365 | $ DELETE/NOLOG/NOCONFIRM UU.DIR; | |
7366 | $ ENDIF | |
7367 | $ SET DEFAULT 'vms_default_directory_name' !be kind rewind | |
97abc6ad HM |
7368 | $ EXIT |
7369 | $!: End of Configure |