modules/freetype2/vms_make.com

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/modules/freetype2/vms_make.com	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,1286 @@
     1.4 +$! make Freetype2 under OpenVMS
     1.5 +$!
     1.6 +$! Copyright 2003, 2004, 2006, 2007, 2013 by
     1.7 +$! David Turner, Robert Wilhelm, and Werner Lemberg.
     1.8 +$!
     1.9 +$! This file is part of the FreeType project, and may only be used, modified,
    1.10 +$! and distributed under the terms of the FreeType project license,
    1.11 +$! LICENSE.TXT.  By continuing to use, modify, or distribute this file you
    1.12 +$! indicate that you have read the license and understand and accept it
    1.13 +$! fully.
    1.14 +$!
    1.15 +$!
    1.16 +$! External libraries (like Freetype, XPM, etc.) are supported via the
    1.17 +$! config file VMSLIB.DAT. Please check the sample file, which is part of this
    1.18 +$! distribution, for the information you need to provide
    1.19 +$!
    1.20 +$! This procedure currently does support the following commandline options
    1.21 +$! in arbitrary order
    1.22 +$!
    1.23 +$! * DEBUG - Compile modules with /noopt/debug and link shareable image
    1.24 +$!           with /debug
    1.25 +$! * LOPTS - Options to be passed to the link command
    1.26 +$! * CCOPT - Options to be passed to the C compiler
    1.27 +$!
    1.28 +$! In case of problems with the install you might contact me at
    1.29 +$! zinser@zinser.no-ip.info(preferred) or
    1.30 +$! zinser@sysdev.deutsche-boerse.com (work)
    1.31 +$!
    1.32 +$! Make procedure history for Freetype2
    1.33 +$!
    1.34 +$!------------------------------------------------------------------------------
    1.35 +$! Version history
    1.36 +$! 0.01 20040401 First version to receive a number
    1.37 +$! 0.02 20041030 Add error handling, Freetype 2.1.9
    1.38 +$!
    1.39 +$ on error then goto err_exit
    1.40 +$ true  = 1
    1.41 +$ false = 0
    1.42 +$ tmpnam = "temp_" + f$getjpi("","pid")
    1.43 +$ tt = tmpnam + ".txt"
    1.44 +$ tc = tmpnam + ".c"
    1.45 +$ th = tmpnam + ".h"
    1.46 +$ its_decc = false
    1.47 +$ its_vaxc = false
    1.48 +$ its_gnuc = false
    1.49 +$!
    1.50 +$! Setup variables holding "config" information
    1.51 +$!
    1.52 +$ Make    = ""
    1.53 +$ ccopt   = "/name=as_is/float=ieee"
    1.54 +$ lopts   = ""
    1.55 +$ dnsrl   = ""
    1.56 +$ aconf_in_file = "config.hin"
    1.57 +$ name    = "Freetype2"
    1.58 +$ mapfile =  name + ".map"
    1.59 +$ optfile =  name + ".opt"
    1.60 +$ s_case  = false
    1.61 +$ liblist = ""
    1.62 +$!
    1.63 +$ whoami = f$parse(f$environment("Procedure"),,,,"NO_CONCEAL")
    1.64 +$ mydef  = F$parse(whoami,,,"DEVICE")
    1.65 +$ mydir  = f$parse(whoami,,,"DIRECTORY") - "]["
    1.66 +$ myproc = f$parse(whoami,,,"Name") + f$parse(whoami,,,"type")
    1.67 +$!
    1.68 +$! Check for MMK/MMS
    1.69 +$!
    1.70 +$ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS"
    1.71 +$ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK"
    1.72 +$!
    1.73 +$! Which command parameters were given
    1.74 +$!
    1.75 +$ gosub check_opts
    1.76 +$!
    1.77 +$! Create option file
    1.78 +$!
    1.79 +$ open/write optf 'optfile'
    1.80 +$!
    1.81 +$! Pull in external libraries
    1.82 +$!
    1.83 +$ create libs.opt
    1.84 +$ open/write libsf libs.opt
    1.85 +$ gosub check_create_vmslib
    1.86 +$!
    1.87 +$! Create objects
    1.88 +$!
    1.89 +$ if libdefs .nes. ""
    1.90 +$ then
    1.91 +$   ccopt = ccopt + "/define=(" + f$extract(0,f$length(libdefs)-1,libdefs) + ")"
    1.92 +$ endif
    1.93 +$!
    1.94 +$ if f$locate("AS_IS",f$edit(ccopt,"UPCASE")) .lt. f$length(ccopt) -
    1.95 +    then s_case = true
    1.96 +$ gosub crea_mms
    1.97 +$!
    1.98 +$ 'Make' /macro=(comp_flags="''ccopt'")
    1.99 +$ purge/nolog [...]descrip.mms
   1.100 +$!
   1.101 +$! Add them to options
   1.102 +$!
   1.103 +$FLOOP:
   1.104 +$  file = f$edit(f$search("[...]*.obj"),"UPCASE")
   1.105 +$  if (file .nes. "")
   1.106 +$  then
   1.107 +$    if f$locate("DEMOS",file) .eqs. f$length(file) then write optf file
   1.108 +$    goto floop
   1.109 +$  endif
   1.110 +$!
   1.111 +$ close optf
   1.112 +$!
   1.113 +$!
   1.114 +$! Alpha gets a shareable image
   1.115 +$!
   1.116 +$ If f$getsyi("HW_MODEL") .gt. 1024
   1.117 +$ Then
   1.118 +$   write sys$output "Creating freetype2shr.exe"
   1.119 +$   call anal_obj_axp 'optfile' _link.opt
   1.120 +$   open/append  optf 'optfile'
   1.121 +$   if s_case then WRITE optf "case_sensitive=YES"
   1.122 +$   close optf
   1.123 +$   LINK_/NODEB/SHARE=[.lib]freetype2shr.exe -
   1.124 +                            'optfile'/opt,libs.opt/opt,_link.opt/opt
   1.125 +$ endif
   1.126 +$!
   1.127 +$ exit
   1.128 +$!
   1.129 +$
   1.130 +$ERR_LIB:
   1.131 +$ write sys$output "Error reading config file vmslib.dat"
   1.132 +$ goto err_exit
   1.133 +$FT2_ERR:
   1.134 +$ write sys$output "Could not locate Freetype 2 include files"
   1.135 +$ goto err_exit
   1.136 +$ERR_EXIT:
   1.137 +$ set message/facil/ident/sever/text
   1.138 +$ close/nolog optf
   1.139 +$ close/nolog out
   1.140 +$ close/nolog libdata
   1.141 +$ close/nolog in
   1.142 +$ close/nolog atmp
   1.143 +$ close/nolog xtmp
   1.144 +$ write sys$output "Exiting..."
   1.145 +$ exit 2
   1.146 +$!
   1.147 +$!------------------------------------------------------------------------------
   1.148 +$!
   1.149 +$! If MMS/MMK are available dump out the descrip.mms if required
   1.150 +$!
   1.151 +$CREA_MMS:
   1.152 +$ write sys$output "Creating descrip.mms files ..."
   1.153 +$ write sys$output "... Main directory"
   1.154 +$ create descrip.mms
   1.155 +$ open/append out descrip.mms
   1.156 +$ copy sys$input: out
   1.157 +$ deck
   1.158 +#
   1.159 +# FreeType 2 build system -- top-level Makefile for OpenVMS
   1.160 +#
   1.161 +
   1.162 +
   1.163 +# Copyright 2001 by
   1.164 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.165 +#
   1.166 +# This file is part of the FreeType project, and may only be used, modified,
   1.167 +# and distributed under the terms of the FreeType project license,
   1.168 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.169 +# indicate that you have read the license and understand and accept it
   1.170 +# fully.
   1.171 +$ EOD
   1.172 +$ write out "CFLAGS = ", ccopt
   1.173 +$ copy sys$input: out
   1.174 +$ deck
   1.175 +
   1.176 +
   1.177 +all :
   1.178 +        define freetype [--.include]
   1.179 +        define psaux [-.psaux]
   1.180 +        define autofit [-.autofit]
   1.181 +        define autohint [-.autohint]
   1.182 +        define base [-.base]
   1.183 +        define cache [-.cache]
   1.184 +        define cff [-.cff]
   1.185 +        define cid [-.cid]
   1.186 +        define pcf [-.pcf]
   1.187 +        define psnames [-.psnames]
   1.188 +        define raster [-.raster]
   1.189 +        define sfnt [-.sfnt]
   1.190 +        define smooth [-.smooth]
   1.191 +        define truetype [-.truetype]
   1.192 +        define type1 [-.type1]
   1.193 +        define winfonts [-.winfonts]
   1.194 +        if f$search("lib.dir") .eqs. "" then create/directory [.lib]
   1.195 +        set default [.builds.vms]
   1.196 +        $(MMS)$(MMSQUALIFIERS)
   1.197 +#        set default [--.src.autofit]
   1.198 +#        $(MMS)$(MMSQUALIFIERS)
   1.199 +        set default [--.src.autohint]
   1.200 +        $(MMS)$(MMSQUALIFIERS)
   1.201 +        set default [-.base]
   1.202 +        $(MMS)$(MMSQUALIFIERS)
   1.203 +        set default [-.bdf]
   1.204 +        $(MMS)$(MMSQUALIFIERS)
   1.205 +        set default [-.cache]
   1.206 +        $(MMS)$(MMSQUALIFIERS)
   1.207 +        set default [-.cff]
   1.208 +        $(MMS)$(MMSQUALIFIERS)
   1.209 +        set default [-.cid]
   1.210 +        $(MMS)$(MMSQUALIFIERS)
   1.211 +        set default [-.gzip]
   1.212 +        $(MMS)$(MMSQUALIFIERS)
   1.213 +        set default [-.lzw]
   1.214 +        $(MMS)$(MMSQUALIFIERS)
   1.215 +        set default [-.otvalid]
   1.216 +        $(MMS)$(MMSQUALIFIERS)
   1.217 +        set default [-.pcf]
   1.218 +        $(MMS)$(MMSQUALIFIERS)
   1.219 +        set default [-.pfr]
   1.220 +        $(MMS)$(MMSQUALIFIERS)
   1.221 +        set default [-.psaux]
   1.222 +        $(MMS)$(MMSQUALIFIERS)
   1.223 +        set default [-.pshinter]
   1.224 +        $(MMS)$(MMSQUALIFIERS)
   1.225 +        set default [-.psnames]
   1.226 +        $(MMS)$(MMSQUALIFIERS)
   1.227 +        set default [-.raster]
   1.228 +        $(MMS)$(MMSQUALIFIERS)
   1.229 +        set default [-.sfnt]
   1.230 +        $(MMS)$(MMSQUALIFIERS)
   1.231 +        set default [-.smooth]
   1.232 +        $(MMS)$(MMSQUALIFIERS)
   1.233 +        set default [-.truetype]
   1.234 +        $(MMS)$(MMSQUALIFIERS)
   1.235 +        set default [-.type1]
   1.236 +        $(MMS)$(MMSQUALIFIERS)
   1.237 +        set default [-.type42]
   1.238 +        $(MMS)$(MMSQUALIFIERS)
   1.239 +        set default [-.winfonts]
   1.240 +        $(MMS)$(MMSQUALIFIERS)
   1.241 +        set default [--]
   1.242 +
   1.243 +# EOF
   1.244 +$ eod
   1.245 +$ close out
   1.246 +$ write sys$output "... [.builds.vms] directory"
   1.247 +$ create [.builds.vms]descrip.mms
   1.248 +$ open/append out [.builds.vms]descrip.mms
   1.249 +$ copy sys$input: out
   1.250 +$ deck
   1.251 +#
   1.252 +# FreeType 2 system rules for VMS
   1.253 +#
   1.254 +
   1.255 +
   1.256 +# Copyright 2001 by
   1.257 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.258 +#
   1.259 +# This file is part of the FreeType project, and may only be used, modified,
   1.260 +# and distributed under the terms of the FreeType project license,
   1.261 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.262 +# indicate that you have read the license and understand and accept it
   1.263 +# fully.
   1.264 +
   1.265 +
   1.266 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([],[--.include],[--.src.base])
   1.267 +
   1.268 +OBJS=ftsystem.obj
   1.269 +
   1.270 +all : $(OBJS)
   1.271 +        library/create [--.lib]freetype.olb $(OBJS)
   1.272 +
   1.273 +ftsystem.obj : ftsystem.c ftconfig.h
   1.274 +
   1.275 +# EOF
   1.276 +$ eod
   1.277 +$ close out
   1.278 +$ write sys$output "... [.src.autofit] directory"
   1.279 +$ create [.src.autofit]descrip.mms
   1.280 +$ open/append out [.src.autofit]descrip.mms
   1.281 +$ copy sys$input: out
   1.282 +$ deck
   1.283 +#
   1.284 +# FreeType 2 auto-fit module compilation rules for VMS
   1.285 +#
   1.286 +
   1.287 +
   1.288 +# Copyright 2002 by
   1.289 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.290 +#
   1.291 +# This file is part of the FreeType project, and may only be used, modified,
   1.292 +# and distributed under the terms of the FreeType project license,
   1.293 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.294 +# indicate that you have read the license and understand and accept it
   1.295 +# fully.
   1.296 +
   1.297 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.autofit])
   1.298 +
   1.299 +OBJS=afangles.obj,afhints.obj,aflatin.obj
   1.300 +
   1.301 +all : $(OBJS)
   1.302 +        library [--.lib]freetype.olb $(OBJS)
   1.303 +
   1.304 +# EOF
   1.305 +$ eod
   1.306 +$ close out
   1.307 +$ write sys$output "... [.src.autohint] directory"
   1.308 +$ create [.src.autohint]descrip.mms
   1.309 +$ open/append out [.src.autohint]descrip.mms
   1.310 +$ copy sys$input: out
   1.311 +$ deck
   1.312 +#
   1.313 +# FreeType 2 auto-hinter module compilation rules for VMS
   1.314 +#
   1.315 +
   1.316 +
   1.317 +# Copyright 2001, 2002 Catharon Productions Inc.
   1.318 +#
   1.319 +# This file is part of the Catharon Typography Project and shall only
   1.320 +# be used, modified, and distributed under the terms of the Catharon
   1.321 +# Open Source License that should come with this file under the name
   1.322 +# `CatharonLicense.txt'.  By continuing to use, modify, or distribute
   1.323 +# this file you indicate that you have read the license and
   1.324 +# understand and accept it fully.
   1.325 +#
   1.326 +# Note that this license is compatible with the FreeType license.
   1.327 +
   1.328 +
   1.329 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/incl=([--.include],[--.src.autohint])
   1.330 +
   1.331 +OBJS=autohint.obj
   1.332 +
   1.333 +all : $(OBJS)
   1.334 +        library [--.lib]freetype.olb $(OBJS)
   1.335 +
   1.336 +# EOF
   1.337 +$ eod
   1.338 +$ close out
   1.339 +$ write sys$output "... [.src.base] directory"
   1.340 +$ create [.src.base]descrip.mms
   1.341 +$ open/append out [.src.base]descrip.mms
   1.342 +$ copy sys$input: out
   1.343 +$ deck
   1.344 +#
   1.345 +# FreeType 2 base layer compilation rules for VMS
   1.346 +#
   1.347 +
   1.348 +
   1.349 +# Copyright 2001, 2003 by
   1.350 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.351 +#
   1.352 +# This file is part of the FreeType project, and may only be used, modified,
   1.353 +# and distributed under the terms of the FreeType project license,
   1.354 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.355 +# indicate that you have read the license and understand and accept it
   1.356 +# fully.
   1.357 +
   1.358 +
   1.359 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.builds.vms],[--.include],[--.src.base])
   1.360 +
   1.361 +OBJS=ftbase.obj,ftinit.obj,ftglyph.obj,ftdebug.obj,ftbdf.obj,ftmm.obj,\
   1.362 +     fttype1.obj,ftxf86.obj,ftpfr.obj,ftstroke.obj,ftwinfnt.obj,ftbbox.obj,\
   1.363 +     ftbitmap.obj ftlcdfil.obj ftgasp.obj
   1.364 +
   1.365 +all : $(OBJS)
   1.366 +        library [--.lib]freetype.olb $(OBJS)
   1.367 +
   1.368 +# EOF
   1.369 +$ eod
   1.370 +$ close out
   1.371 +$ write sys$output "... [.src.bdf] directory"
   1.372 +$ create [.src.bdf]descrip.mms
   1.373 +$ open/append out [.src.bdf]descrip.mms
   1.374 +$ copy sys$input: out
   1.375 +$ deck
   1.376 +#
   1.377 +# FreeType 2 BDF driver compilation rules for VMS
   1.378 +#
   1.379 +
   1.380 +
   1.381 +# Copyright 2002 by
   1.382 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.383 +#
   1.384 +# This file is part of the FreeType project, and may only be used, modified,
   1.385 +# and distributed under the terms of the FreeType project license,
   1.386 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.387 +# indicate that you have read the license and understand and accept it
   1.388 +# fully.
   1.389 +
   1.390 +
   1.391 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.bdf])
   1.392 +
   1.393 +OBJS=bdf.obj
   1.394 +
   1.395 +all : $(OBJS)
   1.396 +        library [--.lib]freetype.olb $(OBJS)
   1.397 +
   1.398 +# EOF
   1.399 +$ eod
   1.400 +$ close out
   1.401 +$ write sys$output "... [.src.cache] directory"
   1.402 +$ create [.src.cache]descrip.mms
   1.403 +$ open/append out [.src.cache]descrip.mms
   1.404 +$ copy sys$input: out
   1.405 +$ deck
   1.406 +#
   1.407 +# FreeType 2 Cache compilation rules for VMS
   1.408 +#
   1.409 +
   1.410 +
   1.411 +# Copyright 2001, 2002, 2003, 2004 by
   1.412 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.413 +#
   1.414 +# This file is part of the FreeType project, and may only be used, modified,
   1.415 +# and distributed under the terms of the FreeType project license,
   1.416 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.417 +# indicate that you have read the license and understand and accept it
   1.418 +# fully.
   1.419 +
   1.420 +
   1.421 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cache])
   1.422 +
   1.423 +OBJS=ftcache.obj
   1.424 +
   1.425 +all : $(OBJS)
   1.426 +        library [--.lib]freetype.olb $(OBJS)
   1.427 +
   1.428 +ftcache.obj : ftcache.c ftcbasic.c ftccache.c ftccmap.c ftcglyph.c ftcimage.c \
   1.429 +              ftcmanag.c ftcmru.c ftcsbits.c
   1.430 +
   1.431 +# EOF
   1.432 +$ eod
   1.433 +$ close out
   1.434 +$ write sys$output "... [.src.cff] directory"
   1.435 +$ create [.src.cff]descrip.mms
   1.436 +$ open/append out [.src.cff]descrip.mms
   1.437 +$ copy sys$input: out
   1.438 +$ deck
   1.439 +#
   1.440 +# FreeType 2 OpenType/CFF driver compilation rules for VMS
   1.441 +#
   1.442 +
   1.443 +
   1.444 +# Copyright 2001, 2002 by
   1.445 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.446 +#
   1.447 +# This file is part of the FreeType project, and may only be used, modified,
   1.448 +# and distributed under the terms of the FreeType project license,
   1.449 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.450 +# indicate that you have read the license and understand and accept it
   1.451 +# fully.
   1.452 +
   1.453 +
   1.454 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cff])
   1.455 +
   1.456 +OBJS=cff.obj
   1.457 +
   1.458 +all : $(OBJS)
   1.459 +        library [--.lib]freetype.olb $(OBJS)
   1.460 +
   1.461 +# EOF
   1.462 +$ eod
   1.463 +$ close out
   1.464 +$ write sys$output "... [.src.cid] directory"
   1.465 +$ create [.src.cid]descrip.mms
   1.466 +$ open/append out [.src.cid]descrip.mms
   1.467 +$ copy sys$input: out
   1.468 +$ deck
   1.469 +#
   1.470 +# FreeType 2 CID driver compilation rules for VMS
   1.471 +#
   1.472 +
   1.473 +
   1.474 +# Copyright 2001 by
   1.475 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.476 +#
   1.477 +# This file is part of the FreeType project, and may only be used, modified,
   1.478 +# and distributed under the terms of the FreeType project license,
   1.479 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.480 +# indicate that you have read the license and understand and accept it
   1.481 +# fully.
   1.482 +
   1.483 +
   1.484 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cid])
   1.485 +
   1.486 +OBJS=type1cid.obj
   1.487 +
   1.488 +all : $(OBJS)
   1.489 +        library [--.lib]freetype.olb $(OBJS)
   1.490 +
   1.491 +# EOF
   1.492 +$ eod
   1.493 +$ close out
   1.494 +$ write sys$output "... [.src.gzip] directory"
   1.495 +$ create [.src.gzip]descrip.mms
   1.496 +$ open/append out [.src.gzip]descrip.mms
   1.497 +$ copy sys$input: out
   1.498 +$ deck
   1.499 +#
   1.500 +# FreeType 2 GZip support compilation rules for VMS
   1.501 +#
   1.502 +
   1.503 +
   1.504 +# Copyright 2002 by
   1.505 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.506 +#
   1.507 +# This file is part of the FreeType project, and may only be used, modified,
   1.508 +# and distributed under the terms of the FreeType project license,
   1.509 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.510 +# indicate that you have read the license and understand and accept it
   1.511 +# fully.
   1.512 +$EOD
   1.513 +$ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
   1.514 +$ write out "COMP_FLAGS = ", ccopt
   1.515 +$ copy sys$input: out
   1.516 +$ deck
   1.517 +
   1.518 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=($(LIBINCS)[--.include],[--.src.gzip])
   1.519 +
   1.520 +OBJS=ftgzip.obj
   1.521 +
   1.522 +all : $(OBJS)
   1.523 +        library [--.lib]freetype.olb $(OBJS)
   1.524 +
   1.525 +# EOF
   1.526 +$ eod
   1.527 +$ close out
   1.528 +$ write sys$output "... [.src.lzw] directory"
   1.529 +$ create [.src.lzw]descrip.mms
   1.530 +$ open/append out [.src.lzw]descrip.mms
   1.531 +$ copy sys$input: out
   1.532 +$ deck
   1.533 +#
   1.534 +# FreeType 2 LZW support compilation rules for VMS
   1.535 +#
   1.536 +
   1.537 +
   1.538 +# Copyright 2004 by
   1.539 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.540 +#
   1.541 +# This file is part of the FreeType project, and may only be used, modified,
   1.542 +# and distributed under the terms of the FreeType project license,
   1.543 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.544 +# indicate that you have read the license and understand and accept it
   1.545 +# fully.
   1.546 +$EOD
   1.547 +$ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
   1.548 +$ write out "COMP_FLAGS = ", ccopt
   1.549 +$ copy sys$input: out
   1.550 +$ deck
   1.551 +
   1.552 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=($(LIBINCS)[--.include],[--.src.lzw])
   1.553 +
   1.554 +OBJS=ftlzw.obj
   1.555 +
   1.556 +all : $(OBJS)
   1.557 +        library [--.lib]freetype.olb $(OBJS)
   1.558 +
   1.559 +# EOF
   1.560 +$ eod
   1.561 +$ close out
   1.562 +$ write sys$output "... [.src.otlayout] directory"
   1.563 +$ create [.src.otlayout]descrip.mms
   1.564 +$ open/append out [.src.otlayout]descrip.mms
   1.565 +$ copy sys$input: out
   1.566 +$ deck
   1.567 +#
   1.568 +# FreeType 2 OT layout compilation rules for VMS
   1.569 +#
   1.570 +
   1.571 +
   1.572 +# Copyright 2004 by
   1.573 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.574 +#
   1.575 +# This file is part of the FreeType project, and may only be used, modified,
   1.576 +# and distributed under the terms of the FreeType project license,
   1.577 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.578 +# indicate that you have read the license and understand and accept it
   1.579 +# fully.
   1.580 +
   1.581 +
   1.582 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.otlayout])
   1.583 +
   1.584 +OBJS=otlbase.obj,otlcommn.obj,otlgdef.obj,otlgpos.obj,otlgsub.obj,\
   1.585 +     otljstf.obj,otlparse.obj
   1.586 +
   1.587 +all : $(OBJS)
   1.588 +        library [--.lib]freetype.olb $(OBJS)
   1.589 +
   1.590 +
   1.591 +# EOF
   1.592 +$ eod
   1.593 +$ close out
   1.594 +$ write sys$output "... [.src.otvalid] directory"
   1.595 +$ create [.src.otvalid]descrip.mms
   1.596 +$ open/append out [.src.otvalid]descrip.mms
   1.597 +$ copy sys$input: out
   1.598 +$ deck
   1.599 +#
   1.600 +# FreeType 2 OpenType validation module compilation rules for VMS
   1.601 +#
   1.602 +
   1.603 +
   1.604 +# Copyright 2004 by
   1.605 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.606 +#
   1.607 +# This file is part of the FreeType project, and may only be used, modified,
   1.608 +# and distributed under the terms of the FreeType project license,
   1.609 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.610 +# indicate that you have read the license and understand and accept it
   1.611 +# fully.
   1.612 +
   1.613 +
   1.614 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.otvalid])
   1.615 +
   1.616 +OBJS=otvalid.obj
   1.617 +
   1.618 +all : $(OBJS)
   1.619 +        library [--.lib]freetype.olb $(OBJS)
   1.620 +
   1.621 +# EOF
   1.622 +$ eod
   1.623 +$ close out
   1.624 +$ write sys$output "... [.src.pcf] directory"
   1.625 +$ create [.src.pcf]descrip.mms
   1.626 +$ open/append out [.src.pcf]descrip.mms
   1.627 +$ copy sys$input: out
   1.628 +$ deck
   1.629 +#
   1.630 +# FreeType 2 pcf driver compilation rules for VMS
   1.631 +#
   1.632 +
   1.633 +
   1.634 +# Copyright (C) 2001, 2002 by
   1.635 +# Francesco Zappa Nardelli
   1.636 +#
   1.637 +# Permission is hereby granted, free of charge, to any person obtaining a copy
   1.638 +# of this software and associated documentation files (the "Software"), to deal
   1.639 +# in the Software without restriction, including without limitation the rights
   1.640 +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   1.641 +# copies of the Software, and to permit persons to whom the Software is
   1.642 +# furnished to do so, subject to the following conditions:
   1.643 +#
   1.644 +# The above copyright notice and this permission notice shall be included in
   1.645 +# all copies or substantial portions of the Software.
   1.646 +#
   1.647 +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   1.648 +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   1.649 +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
   1.650 +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   1.651 +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   1.652 +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
   1.653 +# THE SOFTWARE.
   1.654 +
   1.655 +
   1.656 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.pcf])
   1.657 +
   1.658 +OBJS=pcf.obj
   1.659 +
   1.660 +all : $(OBJS)
   1.661 +        library [--.lib]freetype.olb $(OBJS)
   1.662 +
   1.663 +# EOF
   1.664 +$ eod
   1.665 +$ close out
   1.666 +$ write sys$output "... [.src.pfr] directory"
   1.667 +$ create [.src.pfr]descrip.mms
   1.668 +$ open/append out [.src.pfr]descrip.mms
   1.669 +$ copy sys$input: out
   1.670 +$ deck
   1.671 +#
   1.672 +# FreeType 2 PFR driver compilation rules for VMS
   1.673 +#
   1.674 +
   1.675 +
   1.676 +# Copyright 2002 by
   1.677 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.678 +#
   1.679 +# This file is part of the FreeType project, and may only be used, modified,
   1.680 +# and distributed under the terms of the FreeType project license,
   1.681 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.682 +# indicate that you have read the license and understand and accept it
   1.683 +# fully.
   1.684 +
   1.685 +
   1.686 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.pfr])
   1.687 +
   1.688 +OBJS=pfr.obj
   1.689 +
   1.690 +all : $(OBJS)
   1.691 +        library [--.lib]freetype.olb $(OBJS)
   1.692 +
   1.693 +# EOF
   1.694 +$ eod
   1.695 +$ close out
   1.696 +$ write sys$output "... [.src.psaux] directory"
   1.697 +$ create [.src.psaux]descrip.mms
   1.698 +$ open/append out [.src.psaux]descrip.mms
   1.699 +$ copy sys$input: out
   1.700 +$ deck
   1.701 +#
   1.702 +# FreeType 2 PSaux driver compilation rules for VMS
   1.703 +#
   1.704 +
   1.705 +
   1.706 +# Copyright 2001, 2002 by
   1.707 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.708 +#
   1.709 +# This file is part of the FreeType project, and may only be used, modified,
   1.710 +# and distributed under the terms of the FreeType project license,
   1.711 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.712 +# indicate that you have read the license and understand and accept it
   1.713 +# fully.
   1.714 +
   1.715 +
   1.716 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psaux])
   1.717 +
   1.718 +OBJS=psaux.obj
   1.719 +
   1.720 +all : $(OBJS)
   1.721 +        library [--.lib]freetype.olb $(OBJS)
   1.722 +
   1.723 +# EOF
   1.724 +$ eod
   1.725 +$ close out
   1.726 +$ write sys$output "... [.src.pshinter] directory"
   1.727 +$ create [.src.pshinter]descrip.mms
   1.728 +$ open/append out [.src.pshinter]descrip.mms
   1.729 +$ copy sys$input: out
   1.730 +$ deck
   1.731 +#
   1.732 +# FreeType 2 PSHinter driver compilation rules for OpenVMS
   1.733 +#
   1.734 +
   1.735 +
   1.736 +# Copyright 2001, 2002 by
   1.737 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.738 +#
   1.739 +# This file is part of the FreeType project, and may only be used, modified,
   1.740 +# and distributed under the terms of the FreeType project license,
   1.741 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.742 +# indicate that you have read the license and understand and accept it
   1.743 +# fully.
   1.744 +
   1.745 +
   1.746 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psnames])
   1.747 +
   1.748 +OBJS=pshinter.obj
   1.749 +
   1.750 +all : $(OBJS)
   1.751 +        library [--.lib]freetype.olb $(OBJS)
   1.752 +
   1.753 +# EOF
   1.754 +$ eod
   1.755 +$ close out
   1.756 +$ write sys$output "... [.src.psnames] directory"
   1.757 +$ create [.src.psnames]descrip.mms
   1.758 +$ open/append out [.src.psnames]descrip.mms
   1.759 +$ copy sys$input: out
   1.760 +$ deck
   1.761 +#
   1.762 +# FreeType 2 PSNames driver compilation rules for VMS
   1.763 +#
   1.764 +
   1.765 +
   1.766 +# Copyright 2001, 2002 by
   1.767 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.768 +#
   1.769 +# This file is part of the FreeType project, and may only be used, modified,
   1.770 +# and distributed under the terms of the FreeType project license,
   1.771 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.772 +# indicate that you have read the license and understand and accept it
   1.773 +# fully.
   1.774 +
   1.775 +
   1.776 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psnames])
   1.777 +
   1.778 +OBJS=psnames.obj
   1.779 +
   1.780 +all : $(OBJS)
   1.781 +        library [--.lib]freetype.olb $(OBJS)
   1.782 +
   1.783 +# EOF
   1.784 +$ eod
   1.785 +$ close out
   1.786 +$ write sys$output "... [.src.raster] directory"
   1.787 +$ create [.src.raster]descrip.mms
   1.788 +$ open/append out [.src.raster]descrip.mms
   1.789 +$ copy sys$input: out
   1.790 +$ deck
   1.791 +#
   1.792 +# FreeType 2 renderer module compilation rules for VMS
   1.793 +#
   1.794 +
   1.795 +
   1.796 +# Copyright 2001 by
   1.797 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.798 +#
   1.799 +# This file is part of the FreeType project, and may only be used, modified,
   1.800 +# and distributed under the terms of the FreeType project license,
   1.801 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.802 +# indicate that you have read the license and understand and accept it
   1.803 +# fully.
   1.804 +
   1.805 +
   1.806 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.raster])
   1.807 +
   1.808 +OBJS=raster.obj
   1.809 +
   1.810 +all : $(OBJS)
   1.811 +        library [--.lib]freetype.olb $(OBJS)
   1.812 +
   1.813 +# EOF
   1.814 +$ eod
   1.815 +$ close out
   1.816 +$ write sys$output "... [.src.sfnt] directory"
   1.817 +$ create [.src.sfnt]descrip.mms
   1.818 +$ open/append out [.src.sfnt]descrip.mms
   1.819 +$ copy sys$input: out
   1.820 +$ deck
   1.821 +#
   1.822 +# FreeType 2 SFNT driver compilation rules for VMS
   1.823 +#
   1.824 +
   1.825 +
   1.826 +# Copyright 2001, 2002 by
   1.827 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.828 +#
   1.829 +# This file is part of the FreeType project, and may only be used, modified,
   1.830 +# and distributed under the terms of the FreeType project license,
   1.831 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.832 +# indicate that you have read the license and understand and accept it
   1.833 +# fully.
   1.834 +
   1.835 +
   1.836 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.sfnt])
   1.837 +
   1.838 +OBJS=sfnt.obj
   1.839 +
   1.840 +all : $(OBJS)
   1.841 +        library [--.lib]freetype.olb $(OBJS)
   1.842 +
   1.843 +# EOF
   1.844 +$ eod
   1.845 +$ close out
   1.846 +$ write sys$output "... [.src.smooth] directory"
   1.847 +$ create [.src.smooth]descrip.mms
   1.848 +$ open/append out [.src.smooth]descrip.mms
   1.849 +$ copy sys$input: out
   1.850 +$ deck
   1.851 +#
   1.852 +# FreeType 2 smooth renderer module compilation rules for VMS
   1.853 +#
   1.854 +
   1.855 +
   1.856 +# Copyright 2001 by
   1.857 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.858 +#
   1.859 +# This file is part of the FreeType project, and may only be used, modified,
   1.860 +# and distributed under the terms of the FreeType project license,
   1.861 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.862 +# indicate that you have read the license and understand and accept it
   1.863 +# fully.
   1.864 +
   1.865 +
   1.866 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.smooth])
   1.867 +
   1.868 +OBJS=smooth.obj
   1.869 +
   1.870 +all : $(OBJS)
   1.871 +        library [--.lib]freetype.olb $(OBJS)
   1.872 +
   1.873 +# EOF
   1.874 +$ eod
   1.875 +$ close out
   1.876 +$ write sys$output "... [.src.truetype] directory"
   1.877 +$ create [.src.truetype]descrip.mms
   1.878 +$ open/append out [.src.truetype]descrip.mms
   1.879 +$ copy sys$input: out
   1.880 +$ deck
   1.881 +#
   1.882 +# FreeType 2 TrueType driver compilation rules for VMS
   1.883 +#
   1.884 +
   1.885 +
   1.886 +# Copyright 2001, 2002 by
   1.887 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.888 +#
   1.889 +# This file is part of the FreeType project, and may only be used, modified,
   1.890 +# and distributed under the terms of the FreeType project license,
   1.891 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.892 +# indicate that you have read the license and understand and accept it
   1.893 +# fully.
   1.894 +
   1.895 +
   1.896 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.truetype])
   1.897 +
   1.898 +OBJS=truetype.obj
   1.899 +
   1.900 +all : $(OBJS)
   1.901 +        library [--.lib]freetype.olb $(OBJS)
   1.902 +
   1.903 +# EOF
   1.904 +$ eod
   1.905 +$ close out
   1.906 +$ write sys$output "... [.src.type1] directory"
   1.907 +$ create [.src.type1]descrip.mms
   1.908 +$ open/append out [.src.type1]descrip.mms
   1.909 +$ copy sys$input: out
   1.910 +$ deck
   1.911 +#
   1.912 +# FreeType 2 Type1 driver compilation rules for VMS
   1.913 +#
   1.914 +
   1.915 +
   1.916 +# Copyright 1996-2000, 2002 by
   1.917 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.918 +#
   1.919 +# This file is part of the FreeType project, and may only be used, modified,
   1.920 +# and distributed under the terms of the FreeType project license,
   1.921 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.922 +# indicate that you have read the license and understand and accept it
   1.923 +# fully.
   1.924 +
   1.925 +
   1.926 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type1])
   1.927 +
   1.928 +OBJS=type1.obj
   1.929 +
   1.930 +all : $(OBJS)
   1.931 +        library [--.lib]freetype.olb $(OBJS)
   1.932 +
   1.933 +type1.obj : type1.c t1parse.c t1load.c t1objs.c t1driver.c t1gload.c t1afm.c
   1.934 +
   1.935 +# EOF
   1.936 +$ eod
   1.937 +$ close out
   1.938 +$ write sys$output "... [.src.type42] directory"
   1.939 +$ create [.src.type42]descrip.mms
   1.940 +$ open/append out [.src.type42]descrip.mms
   1.941 +$ copy sys$input: out
   1.942 +$ deck
   1.943 +#
   1.944 +# FreeType 2 Type 42 driver compilation rules for VMS
   1.945 +#
   1.946 +
   1.947 +
   1.948 +# Copyright 2002 by
   1.949 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.950 +#
   1.951 +# This file is part of the FreeType project, and may only be used, modified,
   1.952 +# and distributed under the terms of the FreeType project license,
   1.953 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.954 +# indicate that you have read the license and understand and accept it
   1.955 +# fully.
   1.956 +
   1.957 +
   1.958 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type42])
   1.959 +
   1.960 +OBJS=type42.obj
   1.961 +
   1.962 +all : $(OBJS)
   1.963 +        library [--.lib]freetype.olb $(OBJS)
   1.964 +
   1.965 +# EOF
   1.966 +$ eod
   1.967 +$ close out
   1.968 +$ write sys$output "... [.src.winfonts] directory"
   1.969 +$ create [.src.winfonts]descrip.mms
   1.970 +$ open/append out [.src.winfonts]descrip.mms
   1.971 +$ copy sys$input: out
   1.972 +$ deck
   1.973 +#
   1.974 +# FreeType 2 Windows FNT/FON driver compilation rules for VMS
   1.975 +#
   1.976 +
   1.977 +
   1.978 +# Copyright 2001, 2002 by
   1.979 +# David Turner, Robert Wilhelm, and Werner Lemberg.
   1.980 +#
   1.981 +# This file is part of the FreeType project, and may only be used, modified,
   1.982 +# and distributed under the terms of the FreeType project license,
   1.983 +# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   1.984 +# indicate that you have read the license and understand and accept it
   1.985 +# fully.
   1.986 +
   1.987 +
   1.988 +CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.winfonts])
   1.989 +
   1.990 +OBJS=winfnt.obj
   1.991 +
   1.992 +all : $(OBJS)
   1.993 +        library [--.lib]freetype.olb $(OBJS)
   1.994 +
   1.995 +# EOF
   1.996 +$ eod
   1.997 +$ close out
   1.998 +$ return
   1.999 +$!------------------------------------------------------------------------------
  1.1000 +$!
  1.1001 +$! Check command line options and set symbols accordingly
  1.1002 +$!
  1.1003 +$ CHECK_OPTS:
  1.1004 +$ i = 1
  1.1005 +$ OPT_LOOP:
  1.1006 +$ if i .lt. 9
  1.1007 +$ then
  1.1008 +$   cparm = f$edit(p'i',"upcase")
  1.1009 +$   if cparm .eqs. "DEBUG"
  1.1010 +$   then
  1.1011 +$     ccopt = ccopt + "/noopt/deb"
  1.1012 +$     lopts = lopts + "/deb"
  1.1013 +$   endif
  1.1014 +$   if f$locate("CCOPT=",cparm) .lt. f$length(cparm)
  1.1015 +$   then
  1.1016 +$     start = f$locate("=",cparm) + 1
  1.1017 +$     len   = f$length(cparm) - start
  1.1018 +$     ccopt = ccopt + f$extract(start,len,cparm)
  1.1019 +$   endif
  1.1020 +$   if cparm .eqs. "LINK" then linkonly = true
  1.1021 +$   if f$locate("LOPTS=",cparm) .lt. f$length(cparm)
  1.1022 +$   then
  1.1023 +$     start = f$locate("=",cparm) + 1
  1.1024 +$     len   = f$length(cparm) - start
  1.1025 +$     lopts = lopts + f$extract(start,len,cparm)
  1.1026 +$   endif
  1.1027 +$   if f$locate("CC=",cparm) .lt. f$length(cparm)
  1.1028 +$   then
  1.1029 +$     start  = f$locate("=",cparm) + 1
  1.1030 +$     len    = f$length(cparm) - start
  1.1031 +$     cc_com = f$extract(start,len,cparm)
  1.1032 +      if (cc_com .nes. "DECC") .and. -
  1.1033 +         (cc_com .nes. "VAXC") .and. -
  1.1034 +	 (cc_com .nes. "GNUC")
  1.1035 +$     then
  1.1036 +$       write sys$output "Unsupported compiler choice ''cc_com' ignored"
  1.1037 +$       write sys$output "Use DECC, VAXC, or GNUC instead"
  1.1038 +$     else
  1.1039 +$     	if cc_com .eqs. "DECC" then its_decc = true
  1.1040 +$     	if cc_com .eqs. "VAXC" then its_vaxc = true
  1.1041 +$     	if cc_com .eqs. "GNUC" then its_gnuc = true
  1.1042 +$     endif
  1.1043 +$   endif
  1.1044 +$   if f$locate("MAKE=",cparm) .lt. f$length(cparm)
  1.1045 +$   then
  1.1046 +$     start  = f$locate("=",cparm) + 1
  1.1047 +$     len    = f$length(cparm) - start
  1.1048 +$     mmks = f$extract(start,len,cparm)
  1.1049 +$     if (mmks .eqs. "MMK") .or. (mmks .eqs. "MMS")
  1.1050 +$     then
  1.1051 +$       make = mmks
  1.1052 +$     else
  1.1053 +$       write sys$output "Unsupported make choice ''mmks' ignored"
  1.1054 +$       write sys$output "Use MMK or MMS instead"
  1.1055 +$     endif
  1.1056 +$   endif
  1.1057 +$   i = i + 1
  1.1058 +$   goto opt_loop
  1.1059 +$ endif
  1.1060 +$ return
  1.1061 +$!------------------------------------------------------------------------------
  1.1062 +$!
  1.1063 +$! Take care of driver file with information about external libraries
  1.1064 +$!
  1.1065 +$! Version history
  1.1066 +$! 0.01 20040220 First version to receive a number
  1.1067 +$! 0.02 20040229 Echo current procedure name; use general error exit handler
  1.1068 +$!               Remove xpm hack -> Replaced by more general dnsrl handling
  1.1069 +$CHECK_CREATE_VMSLIB:
  1.1070 +$!
  1.1071 +$ if f$search("VMSLIB.DAT") .eqs. ""
  1.1072 +$ then
  1.1073 +$   type/out=vmslib.dat sys$input
  1.1074 +!
  1.1075 +! This is a simple driver file with information used by vms_make.com to
  1.1076 +! check if external libraries (like t1lib and freetype) are available on
  1.1077 +! the system.
  1.1078 +!
  1.1079 +! Layout of the file:
  1.1080 +!
  1.1081 +!    - Lines starting with ! are treated as comments
  1.1082 +!    - Elements in a data line are separated by # signs
  1.1083 +!    - The elements need to be listed in the following order
  1.1084 +!      1.) Name of the Library (only used for informative messages
  1.1085 +!                               from vms_make.com)
  1.1086 +!      2.) Location where the object library can be found
  1.1087 +!      3.) Location where the include files for the library can be found
  1.1088 +!      4.) Include file used to verify library location
  1.1089 +!      5.) CPP define to pass to the build to indicate availability of
  1.1090 +!          the library
  1.1091 +!
  1.1092 +! Example: The following lines show how definitions
  1.1093 +!          might look like. They are site specific and the locations of the
  1.1094 +!          library and include files need almost certainly to be changed.
  1.1095 +!
  1.1096 +! Location: All of the libaries can be found at the following addresses
  1.1097 +!
  1.1098 +!   ZLIB:     http://zinser.no-ip.info/vms/sw/zlib.htmlx
  1.1099 +!
  1.1100 +ZLIB # sys$library:libz.olb # sys$library: # zlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
  1.1101 +$   write sys$output "New driver file vmslib.dat created."
  1.1102 +$   write sys$output "Please customize libary locations for your site"
  1.1103 +$   write sys$output "and afterwards re-execute ''myproc'"
  1.1104 +$   goto err_exit
  1.1105 +$ endif
  1.1106 +$!
  1.1107 +$! Init symbols used to hold CPP definitions and include path
  1.1108 +$!
  1.1109 +$ libdefs = ""
  1.1110 +$ libincs = ""
  1.1111 +$!
  1.1112 +$! Open data file with location of libraries
  1.1113 +$!
  1.1114 +$ open/read/end=end_lib/err=err_lib libdata VMSLIB.DAT
  1.1115 +$LIB_LOOP:
  1.1116 +$ read/end=end_lib libdata libline
  1.1117 +$ libline = f$edit(libline, "UNCOMMENT,COLLAPSE")
  1.1118 +$ if libline .eqs. "" then goto LIB_LOOP ! Comment line
  1.1119 +$ libname = f$edit(f$element(0,"#",libline),"UPCASE")
  1.1120 +$ write sys$output "Processing ''libname' setup ..."
  1.1121 +$ libloc  = f$element(1,"#",libline)
  1.1122 +$ libsrc  = f$element(2,"#",libline)
  1.1123 +$ testinc = f$element(3,"#",libline)
  1.1124 +$ cppdef  = f$element(4,"#",libline)
  1.1125 +$ old_cpp = f$locate("=1",cppdef)
  1.1126 +$ if old_cpp.lt.f$length(cppdef) then cppdef = f$extract(0,old_cpp,cppdef)
  1.1127 +$ if f$search("''libloc'").eqs. ""
  1.1128 +$ then
  1.1129 +$   write sys$output "Can not find library ''libloc' - Skipping ''libname'"
  1.1130 +$   goto LIB_LOOP
  1.1131 +$ endif
  1.1132 +$ libsrc_elem = 0
  1.1133 +$ libsrc_found = false
  1.1134 +$LIBSRC_LOOP:
  1.1135 +$ libsrcdir = f$element(libsrc_elem,",",libsrc)
  1.1136 +$ if (libsrcdir .eqs. ",") then goto END_LIBSRC
  1.1137 +$ if f$search("''libsrcdir'''testinc'") .nes. "" then libsrc_found = true
  1.1138 +$ libsrc_elem = libsrc_elem + 1
  1.1139 +$ goto LIBSRC_LOOP
  1.1140 +$END_LIBSRC:
  1.1141 +$ if .not. libsrc_found
  1.1142 +$ then
  1.1143 +$   write sys$output "Can not find includes at ''libsrc' - Skipping ''libname'"
  1.1144 +$   goto LIB_LOOP
  1.1145 +$ endif
  1.1146 +$ if (cppdef .nes. "") then libdefs = libdefs +  cppdef + ","
  1.1147 +$ libincs = libincs + "," + libsrc
  1.1148 +$ lqual = "/lib"
  1.1149 +$ libtype = f$edit(f$parse(libloc,,,"TYPE"),"UPCASE")
  1.1150 +$ if f$locate("EXE",libtype) .lt. f$length(libtype) then lqual = "/share"
  1.1151 +$ write optf libloc , lqual
  1.1152 +$ if (f$trnlnm("topt") .nes. "") then write topt libloc , lqual
  1.1153 +$!
  1.1154 +$! Nasty hack to get the freetype includes to work
  1.1155 +$!
  1.1156 +$ ft2def = false
  1.1157 +$ if ((libname .eqs. "FREETYPE") .and. -
  1.1158 +      (f$locate("FREETYPE2",cppdef) .lt. f$length(cppdef)))
  1.1159 +$ then
  1.1160 +$   if ((f$search("freetype:freetype.h") .nes. "") .and. -
  1.1161 +        (f$search("freetype:[internal]ftobjs.h") .nes. ""))
  1.1162 +$   then
  1.1163 +$     write sys$output "Will use local definition of freetype logical"
  1.1164 +$   else
  1.1165 +$     ft2elem = 0
  1.1166 +$FT2_LOOP:
  1.1167 +$     ft2srcdir = f$element(ft2elem,",",libsrc)
  1.1168 +$     if f$search("''ft2srcdir'''testinc'") .nes. ""
  1.1169 +$     then
  1.1170 +$        if f$search("''ft2srcdir'internal.dir") .nes. ""
  1.1171 +$        then
  1.1172 +$          ft2dev  = f$parse("''ft2srcdir'",,,"device","no_conceal")
  1.1173 +$          ft2dir  = f$parse("''ft2srcdir'",,,"directory","no_conceal")
  1.1174 +$          ft2conc = f$locate("][",ft2dir)
  1.1175 +$          ft2len  = f$length(ft2dir)
  1.1176 +$          if ft2conc .lt. ft2len
  1.1177 +$          then
  1.1178 +$             ft2dir = f$extract(0,ft2conc,ft2dir) + -
  1.1179 +                       f$extract(ft2conc+2,ft2len-2,ft2dir)
  1.1180 +$          endif
  1.1181 +$          ft2dir = ft2dir - "]" + ".]"
  1.1182 +$          define freetype 'ft2dev''ft2dir','ft2srcdir'
  1.1183 +$          ft2def = true
  1.1184 +$        else
  1.1185 +$          goto ft2_err
  1.1186 +$        endif
  1.1187 +$     else
  1.1188 +$       ft2elem = ft2elem + 1
  1.1189 +$       goto ft2_loop
  1.1190 +$     endif
  1.1191 +$   endif
  1.1192 +$ endif
  1.1193 +$ goto LIB_LOOP
  1.1194 +$END_LIB:
  1.1195 +$ close libdata
  1.1196 +$ return
  1.1197 +$!------------------------------------------------------------------------------
  1.1198 +$!
  1.1199 +$! Analyze Object files for OpenVMS AXP to extract Procedure and Data
  1.1200 +$! information to build a symbol vector for a shareable image
  1.1201 +$! All the "brains" of this logic was suggested by Hartmut Becker
  1.1202 +$! (Hartmut.Becker@compaq.com). All the bugs were introduced by me
  1.1203 +$! (zinser@decus.de), so if you do have problem reports please do not
  1.1204 +$! bother Hartmut/HP, but get in touch with me
  1.1205 +$!
  1.1206 +$! Version history
  1.1207 +$! 0.01 20040006 Skip over shareable images in option file
  1.1208 +$!
  1.1209 +$ ANAL_OBJ_AXP: Subroutine
  1.1210 +$ V = 'F$Verify(0)
  1.1211 +$ SAY := "WRITE_ SYS$OUTPUT"
  1.1212 +$
  1.1213 +$ IF F$SEARCH("''P1'") .EQS. ""
  1.1214 +$ THEN
  1.1215 +$    SAY "ANAL_OBJ_AXP-E-NOSUCHFILE:  Error, inputfile ''p1' not available"
  1.1216 +$    goto exit_aa
  1.1217 +$ ENDIF
  1.1218 +$ IF "''P2'" .EQS. ""
  1.1219 +$ THEN
  1.1220 +$    SAY "ANAL_OBJ_AXP:  Error, no output file provided"
  1.1221 +$    goto exit_aa
  1.1222 +$ ENDIF
  1.1223 +$
  1.1224 +$ open/read in 'p1
  1.1225 +$ create a.tmp
  1.1226 +$ open/append atmp a.tmp
  1.1227 +$ loop:
  1.1228 +$ read/end=end_loop in line
  1.1229 +$ if f$locate("/SHARE",f$edit(line,"upcase")) .lt. f$length(line)
  1.1230 +$ then
  1.1231 +$   write sys$output "ANAL_SKP_SHR-i-skipshare, ''line'"
  1.1232 +$   goto loop
  1.1233 +$ endif
  1.1234 +$ if f$locate("/LIB",f$edit(line,"upcase")) .lt. f$length(line)
  1.1235 +$ then
  1.1236 +$   write libsf line
  1.1237 +$   write sys$output "ANAL_SKP_LIB-i-skiplib, ''line'"
  1.1238 +$   goto loop
  1.1239 +$ endif
  1.1240 +$ f= f$search(line)
  1.1241 +$ if f .eqs. ""
  1.1242 +$ then
  1.1243 +$	write sys$output "ANAL_OBJ_AXP-w-nosuchfile, ''line'"
  1.1244 +$	goto loop
  1.1245 +$ endif
  1.1246 +$ def/user sys$output nl:
  1.1247 +$ def/user sys$error nl:
  1.1248 +$ anal/obj/gsd 'f /out=x.tmp
  1.1249 +$ open/read xtmp x.tmp
  1.1250 +$ XLOOP:
  1.1251 +$ read/end=end_xloop xtmp xline
  1.1252 +$ xline = f$edit(xline,"compress")
  1.1253 +$ write atmp xline
  1.1254 +$ goto xloop
  1.1255 +$ END_XLOOP:
  1.1256 +$ close xtmp
  1.1257 +$ goto loop
  1.1258 +$ end_loop:
  1.1259 +$ close in
  1.1260 +$ close atmp
  1.1261 +$ if f$search("a.tmp") .eqs. "" -
  1.1262 +	then $ exit
  1.1263 +$ ! all global definitions
  1.1264 +$ search a.tmp "symbol:","EGSY$V_DEF 1","EGSY$V_NORM 1"/out=b.tmp
  1.1265 +$ ! all procedures
  1.1266 +$ search b.tmp "EGSY$V_NORM 1"/wind=(0,1) /out=c.tmp
  1.1267 +$ search c.tmp "symbol:"/out=d.tmp
  1.1268 +$ def/user sys$output nl:
  1.1269 +$ edito/edt/command=sys$input d.tmp
  1.1270 +sub/symbol: "/symbol_vector=(/whole
  1.1271 +sub/"/=PROCEDURE)/whole
  1.1272 +exit
  1.1273 +$ ! all data
  1.1274 +$ search b.tmp "EGSY$V_DEF 1"/wind=(0,1) /out=e.tmp
  1.1275 +$ search e.tmp "symbol:"/out=f.tmp
  1.1276 +$ def/user sys$output nl:
  1.1277 +$ edito/edt/command=sys$input f.tmp
  1.1278 +sub/symbol: "/symbol_vector=(/whole
  1.1279 +sub/"/=DATA)/whole
  1.1280 +exit
  1.1281 +$ sort/nodupl d.tmp,f.tmp 'p2'
  1.1282 +$ delete a.tmp;*,b.tmp;*,c.tmp;*,d.tmp;*,e.tmp;*,f.tmp;*
  1.1283 +$ if f$search("x.tmp") .nes. "" -
  1.1284 +	then $ delete x.tmp;*
  1.1285 +$!
  1.1286 +$ close libsf
  1.1287 +$ EXIT_AA:
  1.1288 +$ if V then set verify
  1.1289 +$ endsubroutine

mercurial