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