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