🛠️🐜 Antkeeper superbuild with dependencies included https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1306 lines
35 KiB

  1. $! make FreeType 2 under OpenVMS
  2. $!
  3. $! Copyright (C) 2003-2022 by
  4. $! David Turner, Robert Wilhelm, and Werner Lemberg.
  5. $!
  6. $! This file is part of the FreeType project, and may only be used, modified,
  7. $! and distributed under the terms of the FreeType project license,
  8. $! LICENSE.TXT. By continuing to use, modify, or distribute this file you
  9. $! indicate that you have read the license and understand and accept it
  10. $! fully.
  11. $!
  12. $!
  13. $! External libraries (like FreeType, XPM, etc.) are supported via the
  14. $! config file VMSLIB.DAT. Please check the sample file, which is part of this
  15. $! distribution, for the information you need to provide
  16. $!
  17. $! This procedure currently does support the following commandline options
  18. $! in arbitrary order
  19. $!
  20. $! * DEBUG - Compile modules with /noopt/debug and link shareable image
  21. $! with /debug
  22. $! * LOPTS - Options to be passed to the link command
  23. $! * CCOPT - Options to be passed to the C compiler
  24. $!
  25. $! In case of problems with the install you might contact me at
  26. $! zinser@zinser.no-ip.info (preferred) or
  27. $! zinser@sysdev.deutsche-boerse.com (work)
  28. $!
  29. $! Make procedure history for FreeType 2
  30. $!
  31. $!------------------------------------------------------------------------------
  32. $! Version history
  33. $! 0.01 20040401 First version to receive a number
  34. $! 0.02 20041030 Add error handling, FreeType 2.1.9
  35. $!
  36. $ on error then goto err_exit
  37. $ true = 1
  38. $ false = 0
  39. $ tmpnam = "temp_" + f$getjpi("","pid")
  40. $ tt = tmpnam + ".txt"
  41. $ tc = tmpnam + ".c"
  42. $ th = tmpnam + ".h"
  43. $ its_decc = false
  44. $ its_vaxc = false
  45. $ its_gnuc = false
  46. $!
  47. $! Setup variables holding "config" information
  48. $!
  49. $ Make = ""
  50. $ ccopt = "/name=(as_is,short)/float=ieee"
  51. $ lopts = ""
  52. $ dnsrl = ""
  53. $ aconf_in_file = "config.hin"
  54. $ name = "Freetype2"
  55. $ mapfile = name + ".map"
  56. $ optfile = name + ".opt"
  57. $ s_case = false
  58. $ liblist = ""
  59. $!
  60. $ whoami = f$parse(f$environment("Procedure"),,,,"NO_CONCEAL")
  61. $ mydef = F$parse(whoami,,,"DEVICE")
  62. $ mydir = f$parse(whoami,,,"DIRECTORY") - "]["
  63. $ myproc = f$parse(whoami,,,"Name") + f$parse(whoami,,,"type")
  64. $!
  65. $! Check for MMK/MMS
  66. $!
  67. $ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS"
  68. $ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK"
  69. $!
  70. $! Which command parameters were given
  71. $!
  72. $ gosub check_opts
  73. $!
  74. $! Create option file
  75. $!
  76. $ open/write optf 'optfile'
  77. $!
  78. $! Pull in external libraries
  79. $!
  80. $ create libs.opt
  81. $ open/write libsf libs.opt
  82. $ gosub check_create_vmslib
  83. $!
  84. $! Create objects
  85. $!
  86. $ if libdefs .nes. ""
  87. $ then
  88. $ ccopt = ccopt + "/define=(" + f$extract(0,f$length(libdefs)-1,libdefs) + ")"
  89. $ endif
  90. $!
  91. $ if f$locate("AS_IS",f$edit(ccopt,"UPCASE")) .lt. f$length(ccopt) -
  92. then s_case = true
  93. $ gosub crea_mms
  94. $!
  95. $ 'Make' /macro=(comp_flags="''ccopt'")
  96. $ purge/nolog [...]descrip.mms
  97. $!
  98. $! Add them to options
  99. $!
  100. $FLOOP:
  101. $ file = f$edit(f$search("[...]*.obj"),"UPCASE")
  102. $ if (file .nes. "")
  103. $ then
  104. $ if f$locate("DEMOS",file) .eqs. f$length(file) then write optf file
  105. $ goto floop
  106. $ endif
  107. $!
  108. $ close optf
  109. $!
  110. $!
  111. $! Alpha gets a shareable image
  112. $!
  113. $ If f$getsyi("HW_MODEL") .gt. 1024
  114. $ Then
  115. $ write sys$output "Creating freetype2shr.exe"
  116. $ If f$getsyi("HW_MODEL") .le. 2048
  117. $ Then
  118. $ call anal_obj_axp 'optfile' _link.opt
  119. $ Else
  120. $ copy _link.opt_ia64 _link.opt
  121. $ close libsf
  122. $ copy libs.opt_ia64 libs.opt
  123. $ endif
  124. $ open/append optf 'optfile'
  125. $ if s_case then WRITE optf "case_sensitive=YES"
  126. $ close optf
  127. $ LINK_/NODEB/SHARE=[.lib]freetype2shr.exe -
  128. 'optfile'/opt,libs.opt/opt,_link.opt/opt
  129. $ endif
  130. $!
  131. $ exit
  132. $!
  133. $
  134. $ERR_LIB:
  135. $ write sys$output "Error reading config file vmslib.dat"
  136. $ goto err_exit
  137. $FT2_ERR:
  138. $ write sys$output "Could not locate FreeType 2 include files"
  139. $ goto err_exit
  140. $ERR_EXIT:
  141. $ set message/facil/ident/sever/text
  142. $ close/nolog optf
  143. $ close/nolog out
  144. $ close/nolog libdata
  145. $ close/nolog in
  146. $ close/nolog atmp
  147. $ close/nolog xtmp
  148. $ write sys$output "Exiting..."
  149. $ exit 2
  150. $!
  151. $!------------------------------------------------------------------------------
  152. $!
  153. $! If MMS/MMK are available dump out the descrip.mms if required
  154. $!
  155. $CREA_MMS:
  156. $ write sys$output "Creating descrip.mms files ..."
  157. $ write sys$output "... Main directory"
  158. $ create descrip.mms
  159. $ open/append out descrip.mms
  160. $ copy sys$input: out
  161. $ deck
  162. #
  163. # FreeType 2 build system -- top-level Makefile for OpenVMS
  164. #
  165. # Copyright 2001-2019 by
  166. # David Turner, Robert Wilhelm, and Werner Lemberg.
  167. #
  168. # This file is part of the FreeType project, and may only be used, modified,
  169. # and distributed under the terms of the FreeType project license,
  170. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  171. # indicate that you have read the license and understand and accept it
  172. # fully.
  173. $ EOD
  174. $ write out "CFLAGS = ", ccopt
  175. $ copy sys$input: out
  176. $ deck
  177. all :
  178. define config [--.include.freetype.config]
  179. define internal [--.include.freetype.internal]
  180. define autofit [-.autofit]
  181. define base [-.base]
  182. define cache [-.cache]
  183. define cff [-.cff]
  184. define cid [-.cid]
  185. define freetype [--.include.freetype]
  186. define pcf [-.pcf]
  187. define psaux [-.psaux]
  188. define psnames [-.psnames]
  189. define raster [-.raster]
  190. define sfnt [-.sfnt]
  191. define smooth [-.smooth]
  192. define truetype [-.truetype]
  193. define type1 [-.type1]
  194. define winfonts [-.winfonts]
  195. if f$search("lib.dir") .eqs. "" then create/directory [.lib]
  196. set default [.builds.vms]
  197. $(MMS)$(MMSQUALIFIERS)
  198. set default [--.src.autofit]
  199. $(MMS)$(MMSQUALIFIERS)
  200. set default [-.base]
  201. $(MMS)$(MMSQUALIFIERS)
  202. set default [-.bdf]
  203. $(MMS)$(MMSQUALIFIERS)
  204. set default [-.cache]
  205. $(MMS)$(MMSQUALIFIERS)
  206. set default [-.cff]
  207. $(MMS)$(MMSQUALIFIERS)
  208. set default [-.cid]
  209. $(MMS)$(MMSQUALIFIERS)
  210. set default [-.gxvalid]
  211. $(MMS)$(MMSQUALIFIERS)
  212. set default [-.gzip]
  213. $(MMS)$(MMSQUALIFIERS)
  214. set default [-.bzip2]
  215. $(MMS)$(MMSQUALIFIERS)
  216. set default [-.lzw]
  217. $(MMS)$(MMSQUALIFIERS)
  218. set default [-.otvalid]
  219. $(MMS)$(MMSQUALIFIERS)
  220. set default [-.pcf]
  221. $(MMS)$(MMSQUALIFIERS)
  222. set default [-.pfr]
  223. $(MMS)$(MMSQUALIFIERS)
  224. set default [-.psaux]
  225. $(MMS)$(MMSQUALIFIERS)
  226. set default [-.pshinter]
  227. $(MMS)$(MMSQUALIFIERS)
  228. set default [-.psnames]
  229. $(MMS)$(MMSQUALIFIERS)
  230. set default [-.raster]
  231. $(MMS)$(MMSQUALIFIERS)
  232. set default [-.sfnt]
  233. $(MMS)$(MMSQUALIFIERS)
  234. set default [-.smooth]
  235. $(MMS)$(MMSQUALIFIERS)
  236. set default [-.truetype]
  237. $(MMS)$(MMSQUALIFIERS)
  238. set default [-.type1]
  239. $(MMS)$(MMSQUALIFIERS)
  240. set default [-.type42]
  241. $(MMS)$(MMSQUALIFIERS)
  242. set default [-.winfonts]
  243. $(MMS)$(MMSQUALIFIERS)
  244. set default [--]
  245. # EOF
  246. $ eod
  247. $ close out
  248. $ write sys$output "... [.builds.vms] directory"
  249. $ create [.builds.vms]descrip.mms
  250. $ open/append out [.builds.vms]descrip.mms
  251. $ copy sys$input: out
  252. $ deck
  253. #
  254. # FreeType 2 system rules for VMS
  255. #
  256. # Copyright 2001-2019 by
  257. # David Turner, Robert Wilhelm, and Werner Lemberg.
  258. #
  259. # This file is part of the FreeType project, and may only be used, modified,
  260. # and distributed under the terms of the FreeType project license,
  261. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  262. # indicate that you have read the license and understand and accept it
  263. # fully.
  264. CFLAGS=$(COMP_FLAGS)$(DEBUG)/list/show=all/include=([],[--.include],[--.src.base])
  265. OBJS=ftsystem.obj
  266. all : $(OBJS)
  267. library/create [--.lib]freetype.olb $(OBJS)
  268. ftsystem.obj : ftsystem.c ftconfig.h
  269. # EOF
  270. $ eod
  271. $ close out
  272. $ write sys$output "... [.src.autofit] directory"
  273. $ create [.src.autofit]descrip.mms
  274. $ open/append out [.src.autofit]descrip.mms
  275. $ copy sys$input: out
  276. $ deck
  277. #
  278. # FreeType 2 auto-fit module compilation rules for VMS
  279. #
  280. # Copyright 2002-2019 by
  281. # David Turner, Robert Wilhelm, and Werner Lemberg.
  282. #
  283. # This file is part of the FreeType project, and may only be used, modified,
  284. # and distributed under the terms of the FreeType project license,
  285. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  286. # indicate that you have read the license and understand and accept it
  287. # fully.
  288. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.autofit])
  289. OBJS=autofit.obj
  290. all : $(OBJS)
  291. library [--.lib]freetype.olb $(OBJS)
  292. # EOF
  293. $ eod
  294. $ close out
  295. $ write sys$output "... [.src.base] directory"
  296. $ create [.src.base]descrip.mms
  297. $ open/append out [.src.base]descrip.mms
  298. $ copy sys$input: out
  299. $ deck
  300. #
  301. # FreeType 2 base layer compilation rules for VMS
  302. #
  303. # Copyright 2001-2019 by
  304. # David Turner, Robert Wilhelm, and Werner Lemberg.
  305. #
  306. # This file is part of the FreeType project, and may only be used, modified,
  307. # and distributed under the terms of the FreeType project license,
  308. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  309. # indicate that you have read the license and understand and accept it
  310. # fully.
  311. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.builds.vms],[--.include],[--.src.base])
  312. OBJS=ftbase.obj,\
  313. ftbbox.obj,\
  314. ftbdf.obj,\
  315. ftbitmap.obj,\
  316. ftcid.obj,\
  317. ftdebug.obj,\
  318. ftfstype.obj,\
  319. ftgasp.obj,\
  320. ftglyph.obj,\
  321. ftinit.obj,\
  322. ftmm.obj,\
  323. ftpfr.obj,\
  324. ftstroke.obj,\
  325. ftsynth.obj,\
  326. fttype1.obj,\
  327. ftwinfnt.obj
  328. all : $(OBJS)
  329. library [--.lib]freetype.olb $(OBJS)
  330. # EOF
  331. $ eod
  332. $ close out
  333. $ write sys$output "... [.src.bdf] directory"
  334. $ create [.src.bdf]descrip.mms
  335. $ open/append out [.src.bdf]descrip.mms
  336. $ copy sys$input: out
  337. $ deck
  338. #
  339. # FreeType 2 BDF driver compilation rules for VMS
  340. #
  341. # Copyright 2002-2019 by
  342. # David Turner, Robert Wilhelm, and Werner Lemberg.
  343. #
  344. # This file is part of the FreeType project, and may only be used, modified,
  345. # and distributed under the terms of the FreeType project license,
  346. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  347. # indicate that you have read the license and understand and accept it
  348. # fully.
  349. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.bdf])
  350. OBJS=bdf.obj
  351. all : $(OBJS)
  352. library [--.lib]freetype.olb $(OBJS)
  353. # EOF
  354. $ eod
  355. $ close out
  356. $ write sys$output "... [.src.cache] directory"
  357. $ create [.src.cache]descrip.mms
  358. $ open/append out [.src.cache]descrip.mms
  359. $ copy sys$input: out
  360. $ deck
  361. #
  362. # FreeType 2 Cache compilation rules for VMS
  363. #
  364. # Copyright 2001-2019 by
  365. # David Turner, Robert Wilhelm, and Werner Lemberg.
  366. #
  367. # This file is part of the FreeType project, and may only be used, modified,
  368. # and distributed under the terms of the FreeType project license,
  369. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  370. # indicate that you have read the license and understand and accept it
  371. # fully.
  372. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cache])/nowarn
  373. OBJS=ftcache.obj
  374. all : $(OBJS)
  375. library [--.lib]freetype.olb $(OBJS)
  376. # EOF
  377. $ eod
  378. $ close out
  379. $ write sys$output "... [.src.cff] directory"
  380. $ create [.src.cff]descrip.mms
  381. $ open/append out [.src.cff]descrip.mms
  382. $ copy sys$input: out
  383. $ deck
  384. #
  385. # FreeType 2 OpenType/CFF driver compilation rules for VMS
  386. #
  387. # Copyright 2001-2019 by
  388. # David Turner, Robert Wilhelm, and Werner Lemberg.
  389. #
  390. # This file is part of the FreeType project, and may only be used, modified,
  391. # and distributed under the terms of the FreeType project license,
  392. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  393. # indicate that you have read the license and understand and accept it
  394. # fully.
  395. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cff])
  396. OBJS=cff.obj
  397. all : $(OBJS)
  398. library [--.lib]freetype.olb $(OBJS)
  399. # EOF
  400. $ eod
  401. $ close out
  402. $ write sys$output "... [.src.cid] directory"
  403. $ create [.src.cid]descrip.mms
  404. $ open/append out [.src.cid]descrip.mms
  405. $ copy sys$input: out
  406. $ deck
  407. #
  408. # FreeType 2 CID driver compilation rules for VMS
  409. #
  410. # Copyright 2001-2019 by
  411. # David Turner, Robert Wilhelm, and Werner Lemberg.
  412. #
  413. # This file is part of the FreeType project, and may only be used, modified,
  414. # and distributed under the terms of the FreeType project license,
  415. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  416. # indicate that you have read the license and understand and accept it
  417. # fully.
  418. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cid])
  419. OBJS=type1cid.obj
  420. all : $(OBJS)
  421. library [--.lib]freetype.olb $(OBJS)
  422. # EOF
  423. $ eod
  424. $ close out
  425. $ write sys$output "... [.src.gxvalid] directory"
  426. $ create [.src.gxvalid]descrip.mms
  427. $ open/append out [.src.gxvalid]descrip.mms
  428. $ copy sys$input: out
  429. $ deck
  430. #
  431. # FreeType 2 TrueTypeGX/AAT validation driver configuration rules for VMS
  432. #
  433. # Copyright 2004-2019 by
  434. # David Turner, Robert Wilhelm, and Werner Lemberg.
  435. #
  436. # This file is part of the FreeType project, and may only be used, modified,
  437. # and distributed under the terms of the FreeType project license,
  438. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  439. # indicate that you have read the license and understand and accept it
  440. # fully.
  441. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.gxvalid])
  442. OBJS=gxvalid.obj
  443. all : $(OBJS)
  444. library [--.lib]freetype.olb $(OBJS)
  445. # EOF
  446. $ eod
  447. $ close out
  448. $ write sys$output "... [.src.gzip] directory"
  449. $ create [.src.gzip]descrip.mms
  450. $ open/append out [.src.gzip]descrip.mms
  451. $ copy sys$input: out
  452. $ deck
  453. #
  454. # FreeType 2 GZip support compilation rules for VMS
  455. #
  456. # Copyright 2002-2019 by
  457. # David Turner, Robert Wilhelm, and Werner Lemberg.
  458. #
  459. # This file is part of the FreeType project, and may only be used, modified,
  460. # and distributed under the terms of the FreeType project license,
  461. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  462. # indicate that you have read the license and understand and accept it
  463. # fully.
  464. $EOD
  465. $ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
  466. $ write out "COMP_FLAGS = ", ccopt
  467. $ copy sys$input: out
  468. $ deck
  469. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=($(LIBINCS)[--.include],[--.src.gzip])
  470. OBJS=ftgzip.obj
  471. all : $(OBJS)
  472. library [--.lib]freetype.olb $(OBJS)
  473. # EOF
  474. $ eod
  475. $ close out
  476. $ write sys$output "... [.src.bzip2] directory"
  477. $ create [.src.bzip2]descrip.mms
  478. $ open/append out [.src.bzip2]descrip.mms
  479. $ copy sys$input: out
  480. $ deck
  481. #
  482. # FreeType 2 BZIP2 support compilation rules for VMS
  483. #
  484. # Copyright 2010-2019 by
  485. # Joel Klinghed.
  486. #
  487. # based on `src/lzw/rules.mk'
  488. #
  489. # This file is part of the FreeType project, and may only be used, modified,
  490. # and distributed under the terms of the FreeType project license,
  491. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  492. # indicate that you have read the license and understand and accept it
  493. # fully.
  494. $EOD
  495. $ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
  496. $ write out "COMP_FLAGS = ", ccopt
  497. $ copy sys$input: out
  498. $ deck
  499. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.bzip2])
  500. OBJS=ftbzip2.obj
  501. all : $(OBJS)
  502. library [--.lib]freetype.olb $(OBJS)
  503. # EOF
  504. $ eod
  505. $ close out
  506. $ write sys$output "... [.src.lzw] directory"
  507. $ create [.src.lzw]descrip.mms
  508. $ open/append out [.src.lzw]descrip.mms
  509. $ copy sys$input: out
  510. $ deck
  511. #
  512. # FreeType 2 LZW support compilation rules for VMS
  513. #
  514. # Copyright 2004-2019 by
  515. # David Turner, Robert Wilhelm, and Werner Lemberg.
  516. #
  517. # This file is part of the FreeType project, and may only be used, modified,
  518. # and distributed under the terms of the FreeType project license,
  519. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  520. # indicate that you have read the license and understand and accept it
  521. # fully.
  522. $EOD
  523. $ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
  524. $ write out "COMP_FLAGS = ", ccopt
  525. $ copy sys$input: out
  526. $ deck
  527. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=($(LIBINCS)[--.include],[--.src.lzw])
  528. OBJS=ftlzw.obj
  529. all : $(OBJS)
  530. library [--.lib]freetype.olb $(OBJS)
  531. # EOF
  532. $ eod
  533. $ close out
  534. $ write sys$output "... [.src.otvalid] directory"
  535. $ create [.src.otvalid]descrip.mms
  536. $ open/append out [.src.otvalid]descrip.mms
  537. $ copy sys$input: out
  538. $ deck
  539. #
  540. # FreeType 2 OpenType validation module compilation rules for VMS
  541. #
  542. # Copyright 2004-2019 by
  543. # David Turner, Robert Wilhelm, and Werner Lemberg.
  544. #
  545. # This file is part of the FreeType project, and may only be used, modified,
  546. # and distributed under the terms of the FreeType project license,
  547. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  548. # indicate that you have read the license and understand and accept it
  549. # fully.
  550. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.otvalid])
  551. OBJS=otvalid.obj
  552. all : $(OBJS)
  553. library [--.lib]freetype.olb $(OBJS)
  554. # EOF
  555. $ eod
  556. $ close out
  557. $ write sys$output "... [.src.pcf] directory"
  558. $ create [.src.pcf]descrip.mms
  559. $ open/append out [.src.pcf]descrip.mms
  560. $ copy sys$input: out
  561. $ deck
  562. #
  563. # FreeType 2 pcf driver compilation rules for VMS
  564. #
  565. # Copyright (C) 2001, 2002 by
  566. # Francesco Zappa Nardelli
  567. #
  568. # Permission is hereby granted, free of charge, to any person obtaining a copy
  569. # of this software and associated documentation files (the "Software"), to deal
  570. # in the Software without restriction, including without limitation the rights
  571. # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  572. # copies of the Software, and to permit persons to whom the Software is
  573. # furnished to do so, subject to the following conditions:
  574. #
  575. # The above copyright notice and this permission notice shall be included in
  576. # all copies or substantial portions of the Software.
  577. #
  578. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  579. # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  580. # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  581. # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  582. # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  583. # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  584. # THE SOFTWARE.
  585. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.pcf])
  586. OBJS=pcf.obj
  587. all : $(OBJS)
  588. library [--.lib]freetype.olb $(OBJS)
  589. # EOF
  590. $ eod
  591. $ close out
  592. $ write sys$output "... [.src.pfr] directory"
  593. $ create [.src.pfr]descrip.mms
  594. $ open/append out [.src.pfr]descrip.mms
  595. $ copy sys$input: out
  596. $ deck
  597. #
  598. # FreeType 2 PFR driver compilation rules for VMS
  599. #
  600. # Copyright 2002-2019 by
  601. # David Turner, Robert Wilhelm, and Werner Lemberg.
  602. #
  603. # This file is part of the FreeType project, and may only be used, modified,
  604. # and distributed under the terms of the FreeType project license,
  605. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  606. # indicate that you have read the license and understand and accept it
  607. # fully.
  608. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.pfr])
  609. OBJS=pfr.obj
  610. all : $(OBJS)
  611. library [--.lib]freetype.olb $(OBJS)
  612. # EOF
  613. $ eod
  614. $ close out
  615. $ write sys$output "... [.src.psaux] directory"
  616. $ create [.src.psaux]descrip.mms
  617. $ open/append out [.src.psaux]descrip.mms
  618. $ copy sys$input: out
  619. $ deck
  620. #
  621. # FreeType 2 PSaux driver compilation rules for VMS
  622. #
  623. # Copyright 2001-2019 by
  624. # David Turner, Robert Wilhelm, and Werner Lemberg.
  625. #
  626. # This file is part of the FreeType project, and may only be used, modified,
  627. # and distributed under the terms of the FreeType project license,
  628. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  629. # indicate that you have read the license and understand and accept it
  630. # fully.
  631. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psaux])
  632. OBJS=psaux.obj
  633. all : $(OBJS)
  634. library [--.lib]freetype.olb $(OBJS)
  635. # EOF
  636. $ eod
  637. $ close out
  638. $ write sys$output "... [.src.pshinter] directory"
  639. $ create [.src.pshinter]descrip.mms
  640. $ open/append out [.src.pshinter]descrip.mms
  641. $ copy sys$input: out
  642. $ deck
  643. #
  644. # FreeType 2 PSHinter driver compilation rules for OpenVMS
  645. #
  646. # Copyright 2001-2019 by
  647. # David Turner, Robert Wilhelm, and Werner Lemberg.
  648. #
  649. # This file is part of the FreeType project, and may only be used, modified,
  650. # and distributed under the terms of the FreeType project license,
  651. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  652. # indicate that you have read the license and understand and accept it
  653. # fully.
  654. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psnames])
  655. OBJS=pshinter.obj
  656. all : $(OBJS)
  657. library [--.lib]freetype.olb $(OBJS)
  658. # EOF
  659. $ eod
  660. $ close out
  661. $ write sys$output "... [.src.psnames] directory"
  662. $ create [.src.psnames]descrip.mms
  663. $ open/append out [.src.psnames]descrip.mms
  664. $ copy sys$input: out
  665. $ deck
  666. #
  667. # FreeType 2 psnames driver compilation rules for VMS
  668. #
  669. # Copyright 2001-2019 by
  670. # David Turner, Robert Wilhelm, and Werner Lemberg.
  671. #
  672. # This file is part of the FreeType project, and may only be used, modified,
  673. # and distributed under the terms of the FreeType project license,
  674. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  675. # indicate that you have read the license and understand and accept it
  676. # fully.
  677. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psnames])
  678. OBJS=psnames.obj
  679. all : $(OBJS)
  680. library [--.lib]freetype.olb $(OBJS)
  681. # EOF
  682. $ eod
  683. $ close out
  684. $ write sys$output "... [.src.raster] directory"
  685. $ create [.src.raster]descrip.mms
  686. $ open/append out [.src.raster]descrip.mms
  687. $ copy sys$input: out
  688. $ deck
  689. #
  690. # FreeType 2 renderer module compilation rules for VMS
  691. #
  692. # Copyright 2001-2019 by
  693. # David Turner, Robert Wilhelm, and Werner Lemberg.
  694. #
  695. # This file is part of the FreeType project, and may only be used, modified,
  696. # and distributed under the terms of the FreeType project license,
  697. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  698. # indicate that you have read the license and understand and accept it
  699. # fully.
  700. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.raster])
  701. OBJS=raster.obj
  702. all : $(OBJS)
  703. library [--.lib]freetype.olb $(OBJS)
  704. # EOF
  705. $ eod
  706. $ close out
  707. $ write sys$output "... [.src.sfnt] directory"
  708. $ create [.src.sfnt]descrip.mms
  709. $ open/append out [.src.sfnt]descrip.mms
  710. $ copy sys$input: out
  711. $ deck
  712. #
  713. # FreeType 2 SFNT driver compilation rules for VMS
  714. #
  715. # Copyright 2001-2019 by
  716. # David Turner, Robert Wilhelm, and Werner Lemberg.
  717. #
  718. # This file is part of the FreeType project, and may only be used, modified,
  719. # and distributed under the terms of the FreeType project license,
  720. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  721. # indicate that you have read the license and understand and accept it
  722. # fully.
  723. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.sfnt])
  724. OBJS=sfnt.obj
  725. all : $(OBJS)
  726. library [--.lib]freetype.olb $(OBJS)
  727. # EOF
  728. $ eod
  729. $ close out
  730. $ write sys$output "... [.src.smooth] directory"
  731. $ create [.src.smooth]descrip.mms
  732. $ open/append out [.src.smooth]descrip.mms
  733. $ copy sys$input: out
  734. $ deck
  735. #
  736. # FreeType 2 smooth renderer module compilation rules for VMS
  737. #
  738. # Copyright 2001-2019 by
  739. # David Turner, Robert Wilhelm, and Werner Lemberg.
  740. #
  741. # This file is part of the FreeType project, and may only be used, modified,
  742. # and distributed under the terms of the FreeType project license,
  743. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  744. # indicate that you have read the license and understand and accept it
  745. # fully.
  746. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.smooth])
  747. OBJS=smooth.obj
  748. all : $(OBJS)
  749. library [--.lib]freetype.olb $(OBJS)
  750. # EOF
  751. $ eod
  752. $ close out
  753. $ write sys$output "... [.src.truetype] directory"
  754. $ create [.src.truetype]descrip.mms
  755. $ open/append out [.src.truetype]descrip.mms
  756. $ copy sys$input: out
  757. $ deck
  758. #
  759. # FreeType 2 TrueType driver compilation rules for VMS
  760. #
  761. # Copyright 2001-2019 by
  762. # David Turner, Robert Wilhelm, and Werner Lemberg.
  763. #
  764. # This file is part of the FreeType project, and may only be used, modified,
  765. # and distributed under the terms of the FreeType project license,
  766. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  767. # indicate that you have read the license and understand and accept it
  768. # fully.
  769. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.truetype])
  770. OBJS=truetype.obj
  771. all : $(OBJS)
  772. library [--.lib]freetype.olb $(OBJS)
  773. # EOF
  774. $ eod
  775. $ close out
  776. $ write sys$output "... [.src.type1] directory"
  777. $ create [.src.type1]descrip.mms
  778. $ open/append out [.src.type1]descrip.mms
  779. $ copy sys$input: out
  780. $ deck
  781. #
  782. # FreeType 2 Type1 driver compilation rules for VMS
  783. #
  784. # Copyright 1996-2019 by
  785. # David Turner, Robert Wilhelm, and Werner Lemberg.
  786. #
  787. # This file is part of the FreeType project, and may only be used, modified,
  788. # and distributed under the terms of the FreeType project license,
  789. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  790. # indicate that you have read the license and understand and accept it
  791. # fully.
  792. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type1])
  793. OBJS=type1.obj
  794. all : $(OBJS)
  795. library [--.lib]freetype.olb $(OBJS)
  796. # EOF
  797. $ eod
  798. $ close out
  799. $ write sys$output "... [.src.type42] directory"
  800. $ create [.src.type42]descrip.mms
  801. $ open/append out [.src.type42]descrip.mms
  802. $ copy sys$input: out
  803. $ deck
  804. #
  805. # FreeType 2 Type 42 driver compilation rules for VMS
  806. #
  807. # Copyright 2002-2019 by
  808. # David Turner, Robert Wilhelm, and Werner Lemberg.
  809. #
  810. # This file is part of the FreeType project, and may only be used, modified,
  811. # and distributed under the terms of the FreeType project license,
  812. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  813. # indicate that you have read the license and understand and accept it
  814. # fully.
  815. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type42])
  816. OBJS=type42.obj
  817. all : $(OBJS)
  818. library [--.lib]freetype.olb $(OBJS)
  819. # EOF
  820. $ eod
  821. $ close out
  822. $ write sys$output "... [.src.winfonts] directory"
  823. $ create [.src.winfonts]descrip.mms
  824. $ open/append out [.src.winfonts]descrip.mms
  825. $ copy sys$input: out
  826. $ deck
  827. #
  828. # FreeType 2 Windows FNT/FON driver compilation rules for VMS
  829. #
  830. # Copyright 2001-2019 by
  831. # David Turner, Robert Wilhelm, and Werner Lemberg.
  832. #
  833. # This file is part of the FreeType project, and may only be used, modified,
  834. # and distributed under the terms of the FreeType project license,
  835. # LICENSE.TXT. By continuing to use, modify, or distribute this file you
  836. # indicate that you have read the license and understand and accept it
  837. # fully.
  838. CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.winfonts])
  839. OBJS=winfnt.obj
  840. all : $(OBJS)
  841. library [--.lib]freetype.olb $(OBJS)
  842. # EOF
  843. $ eod
  844. $ close out
  845. $ return
  846. $!------------------------------------------------------------------------------
  847. $!
  848. $! Check command line options and set symbols accordingly
  849. $!
  850. $ CHECK_OPTS:
  851. $ i = 1
  852. $ OPT_LOOP:
  853. $ if i .lt. 9
  854. $ then
  855. $ cparm = f$edit(p'i',"upcase")
  856. $ if cparm .eqs. "DEBUG"
  857. $ then
  858. $ ccopt = ccopt + "/noopt/deb"
  859. $ lopts = lopts + "/deb"
  860. $ endif
  861. $ if f$locate("CCOPT=",cparm) .lt. f$length(cparm)
  862. $ then
  863. $ start = f$locate("=",cparm) + 1
  864. $ len = f$length(cparm) - start
  865. $ ccopt = ccopt + f$extract(start,len,cparm)
  866. $ endif
  867. $ if cparm .eqs. "LINK" then linkonly = true
  868. $ if f$locate("LOPTS=",cparm) .lt. f$length(cparm)
  869. $ then
  870. $ start = f$locate("=",cparm) + 1
  871. $ len = f$length(cparm) - start
  872. $ lopts = lopts + f$extract(start,len,cparm)
  873. $ endif
  874. $ if f$locate("CC=",cparm) .lt. f$length(cparm)
  875. $ then
  876. $ start = f$locate("=",cparm) + 1
  877. $ len = f$length(cparm) - start
  878. $ cc_com = f$extract(start,len,cparm)
  879. if (cc_com .nes. "DECC") .and. -
  880. (cc_com .nes. "VAXC") .and. -
  881. (cc_com .nes. "GNUC")
  882. $ then
  883. $ write sys$output "Unsupported compiler choice ''cc_com' ignored"
  884. $ write sys$output "Use DECC, VAXC, or GNUC instead"
  885. $ else
  886. $ if cc_com .eqs. "DECC" then its_decc = true
  887. $ if cc_com .eqs. "VAXC" then its_vaxc = true
  888. $ if cc_com .eqs. "GNUC" then its_gnuc = true
  889. $ endif
  890. $ endif
  891. $ if f$locate("MAKE=",cparm) .lt. f$length(cparm)
  892. $ then
  893. $ start = f$locate("=",cparm) + 1
  894. $ len = f$length(cparm) - start
  895. $ mmks = f$extract(start,len,cparm)
  896. $ if (mmks .eqs. "MMK") .or. (mmks .eqs. "MMS")
  897. $ then
  898. $ make = mmks
  899. $ else
  900. $ write sys$output "Unsupported make choice ''mmks' ignored"
  901. $ write sys$output "Use MMK or MMS instead"
  902. $ endif
  903. $ endif
  904. $ i = i + 1
  905. $ goto opt_loop
  906. $ endif
  907. $ return
  908. $!------------------------------------------------------------------------------
  909. $!
  910. $! Take care of driver file with information about external libraries
  911. $!
  912. $! Version history
  913. $! 0.01 20040220 First version to receive a number
  914. $! 0.02 20040229 Echo current procedure name; use general error exit handler
  915. $! Remove xpm hack -> Replaced by more general dnsrl handling
  916. $CHECK_CREATE_VMSLIB:
  917. $!
  918. $ if f$search("VMSLIB.DAT") .eqs. ""
  919. $ then
  920. $ type/out=vmslib.dat sys$input
  921. !
  922. ! This is a simple driver file with information used by vms_make.com to
  923. ! check if external libraries (like t1lib and FreeType) are available on
  924. ! the system.
  925. !
  926. ! Layout of the file:
  927. !
  928. ! - Lines starting with ! are treated as comments
  929. ! - Elements in a data line are separated by # signs
  930. ! - The elements need to be listed in the following order
  931. ! 1.) Name of the Library (only used for informative messages
  932. ! from vms_make.com)
  933. ! 2.) Location where the object library can be found
  934. ! 3.) Location where the include files for the library can be found
  935. ! 4.) Include file used to verify library location
  936. ! 5.) CPP define to pass to the build to indicate availability of
  937. ! the library
  938. !
  939. ! Example: The following lines show how definitions
  940. ! might look like. They are site specific and the locations of the
  941. ! library and include files need almost certainly to be changed.
  942. !
  943. ! Location: All of the libraries can be found at the following addresses
  944. !
  945. ! ZLIB: http://zinser.no-ip.info/vms/sw/zlib.htmlx
  946. !
  947. ZLIB # sys$library:libz.olb # sys$library: # zlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
  948. $ write sys$output "New driver file vmslib.dat created."
  949. $ write sys$output "Please customize library locations for your site"
  950. $ write sys$output "and afterwards re-execute ''myproc'"
  951. $ goto err_exit
  952. $ endif
  953. $!
  954. $! Init symbols used to hold CPP definitions and include path
  955. $!
  956. $ libdefs = "FT2_BUILD_LIBRARY,FT_CONFIG_OPTION_OLD_INTERNALS,"
  957. $ libincs = ""
  958. $!
  959. $! Open data file with location of libraries
  960. $!
  961. $ open/read/end=end_lib/err=err_lib libdata VMSLIB.DAT
  962. $LIB_LOOP:
  963. $ read/end=end_lib libdata libline
  964. $ libline = f$edit(libline, "UNCOMMENT,COLLAPSE")
  965. $ if libline .eqs. "" then goto LIB_LOOP ! Comment line
  966. $ libname = f$edit(f$element(0,"#",libline),"UPCASE")
  967. $ write sys$output "Processing ''libname' setup ..."
  968. $ libloc = f$element(1,"#",libline)
  969. $ libsrc = f$element(2,"#",libline)
  970. $ testinc = f$element(3,"#",libline)
  971. $ cppdef = f$element(4,"#",libline)
  972. $ old_cpp = f$locate("=1",cppdef)
  973. $ if old_cpp.lt.f$length(cppdef) then cppdef = f$extract(0,old_cpp,cppdef)
  974. $ if f$search("''libloc'").eqs. ""
  975. $ then
  976. $ write sys$output "Can not find library ''libloc' - Skipping ''libname'"
  977. $ goto LIB_LOOP
  978. $ endif
  979. $ libsrc_elem = 0
  980. $ libsrc_found = false
  981. $LIBSRC_LOOP:
  982. $ libsrcdir = f$element(libsrc_elem,",",libsrc)
  983. $ if (libsrcdir .eqs. ",") then goto END_LIBSRC
  984. $ if f$search("''libsrcdir'''testinc'") .nes. "" then libsrc_found = true
  985. $ libsrc_elem = libsrc_elem + 1
  986. $ goto LIBSRC_LOOP
  987. $END_LIBSRC:
  988. $ if .not. libsrc_found
  989. $ then
  990. $ write sys$output "Can not find includes at ''libsrc' - Skipping ''libname'"
  991. $ goto LIB_LOOP
  992. $ endif
  993. $ if (cppdef .nes. "") then libdefs = libdefs + cppdef + ","
  994. $ libincs = libincs + "," + libsrc
  995. $ lqual = "/lib"
  996. $ libtype = f$edit(f$parse(libloc,,,"TYPE"),"UPCASE")
  997. $ if f$locate("EXE",libtype) .lt. f$length(libtype) then lqual = "/share"
  998. $ write optf libloc , lqual
  999. $ if (f$trnlnm("topt") .nes. "") then write topt libloc , lqual
  1000. $!
  1001. $! Nasty hack to get the FreeType includes to work
  1002. $!
  1003. $ ft2def = false
  1004. $ if ((libname .eqs. "FREETYPE") .and. -
  1005. (f$locate("FREETYPE2",cppdef) .lt. f$length(cppdef)))
  1006. $ then
  1007. $ if ((f$search("freetype:freetype.h") .nes. "") .and. -
  1008. (f$search("freetype:[internal]ftobjs.h") .nes. ""))
  1009. $ then
  1010. $ write sys$output "Will use local definition of freetype logical"
  1011. $ else
  1012. $ ft2elem = 0
  1013. $FT2_LOOP:
  1014. $ ft2srcdir = f$element(ft2elem,",",libsrc)
  1015. $ if f$search("''ft2srcdir'''testinc'") .nes. ""
  1016. $ then
  1017. $ if f$search("''ft2srcdir'internal.dir") .nes. ""
  1018. $ then
  1019. $ ft2dev = f$parse("''ft2srcdir'",,,"device","no_conceal")
  1020. $ ft2dir = f$parse("''ft2srcdir'",,,"directory","no_conceal")
  1021. $ ft2conc = f$locate("][",ft2dir)
  1022. $ ft2len = f$length(ft2dir)
  1023. $ if ft2conc .lt. ft2len
  1024. $ then
  1025. $ ft2dir = f$extract(0,ft2conc,ft2dir) + -
  1026. f$extract(ft2conc+2,ft2len-2,ft2dir)
  1027. $ endif
  1028. $ ft2dir = ft2dir - "]" + ".]"
  1029. $ define freetype 'ft2dev''ft2dir','ft2srcdir'
  1030. $ ft2def = true
  1031. $ else
  1032. $ goto ft2_err
  1033. $ endif
  1034. $ else
  1035. $ ft2elem = ft2elem + 1
  1036. $ goto ft2_loop
  1037. $ endif
  1038. $ endif
  1039. $ endif
  1040. $ goto LIB_LOOP
  1041. $END_LIB:
  1042. $ close libdata
  1043. $ return
  1044. $!------------------------------------------------------------------------------
  1045. $!
  1046. $! Analyze Object files for OpenVMS AXP to extract Procedure and Data
  1047. $! information to build a symbol vector for a shareable image
  1048. $! All the "brains" of this logic was suggested by Hartmut Becker
  1049. $! (Hartmut.Becker@compaq.com). All the bugs were introduced by me
  1050. $! (zinser@zinser.no-ip.info), so if you do have problem reports please do not
  1051. $! bother Hartmut/HP, but get in touch with me
  1052. $!
  1053. $! Version history
  1054. $! 0.01 20040006 Skip over shareable images in option file
  1055. $!
  1056. $ ANAL_OBJ_AXP: Subroutine
  1057. $ V = 'F$Verify(0)
  1058. $ SAY := "WRITE_ SYS$OUTPUT"
  1059. $
  1060. $ IF F$SEARCH("''P1'") .EQS. ""
  1061. $ THEN
  1062. $ SAY "ANAL_OBJ_AXP-E-NOSUCHFILE: Error, inputfile ''p1' not available"
  1063. $ goto exit_aa
  1064. $ ENDIF
  1065. $ IF "''P2'" .EQS. ""
  1066. $ THEN
  1067. $ SAY "ANAL_OBJ_AXP: Error, no output file provided"
  1068. $ goto exit_aa
  1069. $ ENDIF
  1070. $
  1071. $ open/read in 'p1
  1072. $ create a.tmp
  1073. $ open/append atmp a.tmp
  1074. $ loop:
  1075. $ read/end=end_loop in line
  1076. $ if f$locate("/SHARE",f$edit(line,"upcase")) .lt. f$length(line)
  1077. $ then
  1078. $ write sys$output "ANAL_SKP_SHR-i-skipshare, ''line'"
  1079. $ goto loop
  1080. $ endif
  1081. $ if f$locate("/LIB",f$edit(line,"upcase")) .lt. f$length(line)
  1082. $ then
  1083. $ write libsf line
  1084. $ write sys$output "ANAL_SKP_LIB-i-skiplib, ''line'"
  1085. $ goto loop
  1086. $ endif
  1087. $ f= f$search(line)
  1088. $ if f .eqs. ""
  1089. $ then
  1090. $ write sys$output "ANAL_OBJ_AXP-w-nosuchfile, ''line'"
  1091. $ goto loop
  1092. $ endif
  1093. $ def/user sys$output nl:
  1094. $ def/user sys$error nl:
  1095. $ anal/obj/gsd 'f /out=x.tmp
  1096. $ open/read xtmp x.tmp
  1097. $ XLOOP:
  1098. $ read/end=end_xloop xtmp xline
  1099. $ xline = f$edit(xline,"compress")
  1100. $ write atmp xline
  1101. $ goto xloop
  1102. $ END_XLOOP:
  1103. $ close xtmp
  1104. $ goto loop
  1105. $ end_loop:
  1106. $ close in
  1107. $ close atmp
  1108. $ if f$search("a.tmp") .eqs. "" -
  1109. then $ exit
  1110. $ ! all global definitions
  1111. $ search a.tmp "symbol:","EGSY$V_DEF 1","EGSY$V_NORM 1"/out=b.tmp
  1112. $ ! all procedures
  1113. $ search b.tmp "EGSY$V_NORM 1"/wind=(0,1) /out=c.tmp
  1114. $ search c.tmp "symbol:"/out=d.tmp
  1115. $ def/user sys$output nl:
  1116. $ edito/edt/command=sys$input d.tmp
  1117. sub/symbol: "/symbol_vector=(/whole
  1118. sub/"/=PROCEDURE)/whole
  1119. exit
  1120. $ ! all data
  1121. $ search b.tmp "EGSY$V_DEF 1"/wind=(0,1) /out=e.tmp
  1122. $ search e.tmp "symbol:"/out=f.tmp
  1123. $ def/user sys$output nl:
  1124. $ edito/edt/command=sys$input f.tmp
  1125. sub/symbol: "/symbol_vector=(/whole
  1126. sub/"/=DATA)/whole
  1127. exit
  1128. $ sort/nodupl d.tmp,f.tmp 'p2'
  1129. $ delete a.tmp;*,b.tmp;*,c.tmp;*,d.tmp;*,e.tmp;*,f.tmp;*
  1130. $ if f$search("x.tmp") .nes. "" -
  1131. then $ delete x.tmp;*
  1132. $!
  1133. $ close libsf
  1134. $ EXIT_AA:
  1135. $ if V then set verify
  1136. $ endsubroutine