vms_make.com 35 KB

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