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