Update VMS installation support.

This commit is contained in:
Jouk Jansen 2023-03-10 16:50:20 +01:00 committed by Werner Lemberg
parent 49c74ac021
commit 24d2523cdd
6 changed files with 435 additions and 317 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,28 +0,0 @@
!
! This is a simple driver file with information used by make.com to
! check if external libraries (like t1lib and freetype) are available on
! the system.
!
! Layout of the file:
!
! - Lines starting with ! are treated as comments
! - Elements in a data line are separated by # signs
! - The elements need to be listed in the following order
! 1.) Name of the Library
! 2.) Location where the object library can be found
! 3.) Location where the include files for the library can be found
! 4.) Include file used to verify library location
! 5.) CPP define to pass to the build to indicate availability of
! the library
!
! Example: The following lines show how definitions
! might look like. They are site specific and the locations of the
! library and include files need almost certainly to be changed.
!
! Location: All of the libaries can be found at the following addresses
!
! ZLIB: http://www.decus.de:8080/www/vms/sw/zlib.htmlx
!
BZ2LIB # sys$library:libbz2.olb # decc$user_include: # bzlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
PNGLIB # sys$library:libpng.olb # sys$library: # png.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
ZLIB # sys$library:libz.olb # sys$library: # zlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB

View File

@ -1,23 +1,23 @@
How to build the FreeType 2 library on VMS
-----------------------------------------
How to build the FreeType library on VMS
----------------------------------------
It is actually very straightforward to install the FreeType 2 library.
Just execute vms_make.com from the toplevel directory to build the
It is actually very straightforward to install the FreeType library.
Just execute `vms_make.com from` the toplevel directory to build the
library. This procedure currently accepts the following options:
DEBUG
* `DEBUG`
Build the library with debug information and without optimization.
lopts=<value>
Options to pass to the link command e.g. lopts=/traceback
* `lopts=<value>`
Options to pass to the link command, e.g., `lopts=/traceback`.
ccopt=<value>
Options to pass to the C compiler e.g. ccopt=/float=ieee
* `ccopt=<value>`
Options to pass to the C compiler, e.g., `ccopt=/float=ieee`.
In case you did download the demos, place them in a separate directory
sharing the same top level as the directory of FreeType 2 and follow
the same instructions as above for the demos from there. The build
process relies on this to figure out the location of the FreeType 2
sharing the same top level as the directory of FreeType and follow the
same instructions as above for the demos from there. The build
process relies on this to figure out the location of the FreeType
include files.
@ -28,24 +28,31 @@ The library is available in the directory
[.LIB]
To compile applications using FreeType 2 you have to define the
logical FREETYPE pointing to the directory
To compile applications using FreeType you have to define the logical
`FREETYPE` pointing to the directory
[.INCLUDE.FREETYPE]
i.e., if the directory in which this INSTALL.VMS file is located is
$disk:[freetype] then define the logical with
i.e., if the directory in which this `INSTALL.VMS` file is located is
`$disk:[freetype.docs]`, then define the logical with
define freetype $disk:[freetype.include.freetype]
This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha
V7.2-1.
See http://nchrem.tnw.tudelft.nl/openvms/software2.html#Freetype for
the packages FreeType depends on.
The latest versions were tested using
- VSI C V7.4-002 and DECWindows V1.7-F on OpenVMS Alpha V8.4-2L1
- VSI C V7.4-001 and DECWindows V1.7-E on OpenVMS IA64 V8.4-2L3
Any problems can be reported to
Any problems can be reported to
Jouk Jansen <joukj@hrem.stm.tudelft.nl> or
Martin P.J. Zinser <zinser@zinser.no-ip.info>
Jouk Jansen <joukj@hrem.nano.tudelft.nl> or
Orginal version of the build procedures was created by
Martin P.J. Zinser <zinser@zinser.no-ip.info>
------------------------------------------------------------------------

View File

@ -71,18 +71,19 @@ $! Which command parameters were given
$!
$ gosub check_opts
$!
$! Create option file
$!
$ open/write optf 'optfile'
$!
$! Pull in external libraries
$!
$ create libs.opt
$ open/write libsf libs.opt
$ gosub check_create_vmslib
$ write libsf "sys$library:libpng.olb/lib"
$ write libsf "sys$library:libbz2.olb/lib"
$ write libsf "sys$library:libz.olb/lib"
$ close libsf
$!
$! Create objects
$!
$ libdefs = "FT2_BUILD_LIBRARY,FT_CONFIG_OPTION_OLD_INTERNALS,FT_CONFIG_OPTION_USE_BZIP2=1,FT_CONFIG_OPTION_USE_PNG=1,FT_CONFIG_OPTION_SYSTEM_ZLIB=1"
$ if libdefs .nes. ""
$ then
$ ccopt = ccopt + "/define=(" + f$extract(0,f$length(libdefs)-1,libdefs) + ")"
@ -95,48 +96,38 @@ $!
$ 'Make' /macro=(comp_flags="''ccopt'")
$ purge/nolog [...]descrip.mms
$!
$! Add them to options
$!
$FLOOP:
$ file = f$edit(f$search("[...]*.obj"),"UPCASE")
$ if (file .nes. "")
$ then
$ if f$locate("DEMOS",file) .eqs. f$length(file) then write optf file
$ goto floop
$ endif
$!
$ close optf
$!
$!
$! Alpha gets a shareable image
$! Alpha & Itanium get a shareable image
$!
$ If f$getsyi("HW_MODEL") .gt. 1024
$ Then
$ write sys$output "Creating freetype2shr.exe"
$ If f$getsyi("HW_MODEL") .le. 2048
$ Then
$ call anal_obj_axp 'optfile' _link.opt
$ Else
$ copy _link.opt_ia64 _link.opt
$ close libsf
$ copy libs.opt_ia64 libs.opt
$ endif
$ open/append optf 'optfile'
$ if s_case then WRITE optf "case_sensitive=YES"
$ close optf
$ LINK_/NODEB/SHARE=[.lib]freetype2shr.exe -
'optfile'/opt,libs.opt/opt,_link.opt/opt
$ library/extract=* [.lib]freetype.olb
$ pipe link/nodeb/noshare/noexe/map=libfreetype.map/full freetype.obj | copy sys$input nl:
$ set def [.src.tools]
$ cc apinames.c
$ link apinames
$ set def [--]
$ pur [.include.freetype]ftmac.h
$ rename [.include.freetype]ftmac.h [.include.freetype]ftmac.h_tmp
$ bash builds/vms/apinames_vms.bash
$ rename [.include.freetype]ftmac.h_tmp [.include.freetype]ftmac.h
$ open/write file libfreetype.opt
$ write file "!"
$ write file "! libfreetype.opt generated by vms_make.com"
$ write file "!"
$ write file "IDENTIFICATION=""freetype2 2.0"""
$ write file "GSMATCH=LEQUAL,2,0
$ write file "freetype.obj"
$ close file
$ link/nodeb/share=[.lib]freetype2shr.exe/map=libfreetype.map/full -
libfreetype/opt,freetype_vms/opt,libs/opt
$ delete freetype.obj;*
$ endif
$!
$ exit
$!
$
$ERR_LIB:
$ write sys$output "Error reading config file vmslib.dat"
$ goto err_exit
$FT2_ERR:
$ write sys$output "Could not locate FreeType 2 include files"
$ goto err_exit
$ERR_EXIT:
$ set message/facil/ident/sever/text
$ close/nolog optf
@ -237,6 +228,8 @@ all :
$(MMS)$(MMSQUALIFIERS)
set default [-.smooth]
$(MMS)$(MMSQUALIFIERS)
set default [-.svg]
$(MMS)$(MMSQUALIFIERS)
set default [-.truetype]
$(MMS)$(MMSQUALIFIERS)
set default [-.type1]
@ -245,6 +238,8 @@ all :
$(MMS)$(MMSQUALIFIERS)
set default [-.winfonts]
$(MMS)$(MMSQUALIFIERS)
set default [-.sdf]
$(MMS)$(MMSQUALIFIERS)
set default [--]
# EOF
@ -272,10 +267,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/list/show=all/include=([],[--.include],[--.src.base])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/point=64/obj=$(MMS$TARGET_NAME)_64.obj\
$(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=ftsystem.obj
OBJS64=ftsystem_64.obj
all : $(OBJS)
library/create [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
ftsystem.obj : ftsystem.c ftconfig.h
@ -303,10 +309,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.autofit])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=autofit.obj
OBJS64=autofit_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -333,6 +350,14 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.builds.vms],[--.include],[--.src.base])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=ftbase.obj,\
ftbbox.obj,\
ftbdf.obj,\
@ -348,10 +373,33 @@ OBJS=ftbase.obj,\
ftstroke.obj,\
ftsynth.obj,\
fttype1.obj,\
ftwinfnt.obj
ftwinfnt.obj,ftpatent.obj,ftgxval.obj,ftotval.obj
OBJS64=ftbase_64.obj,\
ftbbox_64.obj,\
ftbdf_64.obj,\
ftbitmap_64.obj,\
ftcid_64.obj,\
ftdebug_64.obj,\
ftfstype_64.obj,\
ftgasp_64.obj,\
ftglyph_64.obj,\
ftinit_64.obj,\
ftmm_64.obj,\
ftpfr_64.obj,\
ftstroke_64.obj,\
ftsynth_64.obj,\
fttype1_64.obj,\
ftwinfnt_64.obj,ftpatent_64.obj,ftgxval_64.obj,ftotval_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
ftbase.obj : ftbase.c ftadvanc.c ftcalc.c ftcolor.c ftdbgmem.c fterrors.c\
ftfntfmt.c ftgloadr.c fthash.c ftlcdfil.c ftmac.c ftobjs.c ftoutln.c\
ftpsprop.c ftrfork.c ftsnames.c ftstream.c fttrigon.c ftutil.c
# EOF
$ eod
@ -378,10 +426,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.bdf])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/point=64/obj=$(MMS$TARGET_NAME)_64.obj\
$(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=bdf.obj
OBJS64=bdf_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -408,10 +467,24 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cache])/nowarn
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/point=64/obj=$(MMS$TARGET_NAME)_64.obj\
$(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=ftcache.obj
OBJS64=ftcache_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
ftcache.obj : ftcache.c ftcbasic.c ftccache.c ftccmap.c ftcglyph.c ftcimage.c \
ftcmanag.c ftcmru.c ftcsbits.c
# EOF
$ eod
@ -438,10 +511,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cff])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=cff.obj
OBJS64=cff_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -468,10 +552,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cid])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=type1cid.obj
OBJS64=type1cid_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -498,10 +593,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.gxvalid])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=gxvalid.obj
OBJS64=gxvalid_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -525,17 +631,27 @@ $ deck
# indicate that you have read the license and understand and accept it
# fully.
$EOD
$ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
$ write out "COMP_FLAGS = ", ccopt
$ copy sys$input: out
$ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=($(LIBINCS)[--.include],[--.src.gzip])
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.gzip])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=ftgzip.obj
OBJS64=ftgzip_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -561,17 +677,27 @@ $ deck
# indicate that you have read the license and understand and accept it
# fully.
$EOD
$ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
$ write out "COMP_FLAGS = ", ccopt
$ copy sys$input: out
$ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.bzip2])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=ftbzip2.obj
OBJS64=ftbzip2_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -595,17 +721,27 @@ $ deck
# indicate that you have read the license and understand and accept it
# fully.
$EOD
$ if libincs .nes. "" then write out "LIBINCS = ", libincs - ",", ","
$ write out "COMP_FLAGS = ", ccopt
$ copy sys$input: out
$ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=($(LIBINCS)[--.include],[--.src.lzw])
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.lzw])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=ftlzw.obj
OBJS64=ftlzw_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -632,10 +768,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.otvalid])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=otvalid.obj
OBJS64=otvalid_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -674,10 +821,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.pcf])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=pcf.obj
OBJS64=pcf_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -704,10 +862,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.pfr])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=pfr.obj
OBJS64=pfr_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -734,10 +903,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psaux])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=psaux.obj
OBJS64=psaux_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -764,10 +944,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psnames])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=pshinter.obj
OBJS64=pshinter_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -794,10 +985,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psnames])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=psnames.obj
OBJS64=psnames_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -824,10 +1026,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.raster])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=raster.obj
OBJS64=raster_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -854,10 +1067,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.sfnt])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=sfnt.obj
OBJS64=sfnt_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -884,10 +1108,62 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.smooth])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/point=64/obj=$(MMS$TARGET_NAME)_64.obj\
$(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=smooth.obj
OBJS64=smooth_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
$ close out
$ write sys$output "... [.src.svg] directory"
$ create [.src.svg]descrip.mms
$ open/append out [.src.svg]descrip.mms
$ copy sys$input: out
$ deck
#
# FreeType 2 smooth renderer module compilation rules for VMS
#
# Copyright 2001-2019 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.svg])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/point=64/obj=$(MMS$TARGET_NAME)_64.obj\
$(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=svg.obj
OBJS64=svg_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -914,10 +1190,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.truetype])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=truetype.obj
OBJS64=truetype_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -944,10 +1231,66 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type1])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=type1.obj
OBJS64=type1_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
type1.obj : type1.c t1parse.c t1load.c t1objs.c t1driver.c t1gload.c t1afm.c
# EOF
$ eod
$ close out
$ write sys$output "... [.src.sdf] directory"
$ create [.src.sdf]descrip.mms
$ open/append out [.src.sdf]descrip.mms
$ copy sys$input: out
$ deck
#
# FreeType 2 sdf driver compilation rules for VMS
#
# Copyright 1996-2019 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
# and distributed under the terms of the FreeType project license,
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
# indicate that you have read the license and understand and accept it
# fully.
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type1])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=sdf.obj
OBJS64=sdf_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
sdf.obj : sdf.c ftbsdf.c ftsdf.c ftsdfcommon.c ftsdfrend.c
# EOF
$ eod
@ -974,10 +1317,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type42])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=type42.obj
OBJS64=type42_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -1004,10 +1358,21 @@ $ deck
CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.winfonts])
.c.obj :
cc$(CFLAGS)/point=32/list/show=all $(MMS$TARGET_NAME).c
pipe link/map/full/exec=nl: $(MMS$TARGET_NAME).obj | copy sys$input nl:
mc sys$library:vms_auto64 $(MMS$TARGET_NAME).map
cc$(CFLAGS)/warn=disable=(MAYLOSEDATA3)/point=64\
/obj=$(MMS$TARGET_NAME)_64.obj $(MMS$TARGET_NAME)_64.c
delete $(MMS$TARGET_NAME)_64.c;*
OBJS=winfnt.obj
OBJS64=winfnt_64.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
library [--.lib]freetype.olb $(OBJS64)
# EOF
$ eod
@ -1077,230 +1442,4 @@ $ endif
$ return
$!------------------------------------------------------------------------------
$!
$! Take care of driver file with information about external libraries
$!
$! Version history
$! 0.01 20040220 First version to receive a number
$! 0.02 20040229 Echo current procedure name; use general error exit handler
$! Remove xpm hack -> Replaced by more general dnsrl handling
$CHECK_CREATE_VMSLIB:
$!
$ if f$search("VMSLIB.DAT") .eqs. ""
$ then
$ type/out=vmslib.dat sys$input
!
! This is a simple driver file with information used by vms_make.com to
! check if external libraries (like t1lib and FreeType) are available on
! the system.
!
! Layout of the file:
!
! - Lines starting with ! are treated as comments
! - Elements in a data line are separated by # signs
! - The elements need to be listed in the following order
! 1.) Name of the Library (only used for informative messages
! from vms_make.com)
! 2.) Location where the object library can be found
! 3.) Location where the include files for the library can be found
! 4.) Include file used to verify library location
! 5.) CPP define to pass to the build to indicate availability of
! the library
!
! Example: The following lines show how definitions
! might look like. They are site specific and the locations of the
! library and include files need almost certainly to be changed.
!
! Location: All of the libraries can be found at the following addresses
!
! ZLIB: http://zinser.no-ip.info/vms/sw/zlib.htmlx
!
ZLIB # sys$library:libz.olb # sys$library: # zlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
$ write sys$output "New driver file vmslib.dat created."
$ write sys$output "Please customize library locations for your site"
$ write sys$output "and afterwards re-execute ''myproc'"
$ goto err_exit
$ endif
$!
$! Init symbols used to hold CPP definitions and include path
$!
$ libdefs = "FT2_BUILD_LIBRARY,FT_CONFIG_OPTION_OLD_INTERNALS,"
$ libincs = ""
$!
$! Open data file with location of libraries
$!
$ open/read/end=end_lib/err=err_lib libdata VMSLIB.DAT
$LIB_LOOP:
$ read/end=end_lib libdata libline
$ libline = f$edit(libline, "UNCOMMENT,COLLAPSE")
$ if libline .eqs. "" then goto LIB_LOOP ! Comment line
$ libname = f$edit(f$element(0,"#",libline),"UPCASE")
$ write sys$output "Processing ''libname' setup ..."
$ libloc = f$element(1,"#",libline)
$ libsrc = f$element(2,"#",libline)
$ testinc = f$element(3,"#",libline)
$ cppdef = f$element(4,"#",libline)
$ old_cpp = f$locate("=1",cppdef)
$ if old_cpp.lt.f$length(cppdef) then cppdef = f$extract(0,old_cpp,cppdef)
$ if f$search("''libloc'").eqs. ""
$ then
$ write sys$output "Can not find library ''libloc' - Skipping ''libname'"
$ goto LIB_LOOP
$ endif
$ libsrc_elem = 0
$ libsrc_found = false
$LIBSRC_LOOP:
$ libsrcdir = f$element(libsrc_elem,",",libsrc)
$ if (libsrcdir .eqs. ",") then goto END_LIBSRC
$ if f$search("''libsrcdir'''testinc'") .nes. "" then libsrc_found = true
$ libsrc_elem = libsrc_elem + 1
$ goto LIBSRC_LOOP
$END_LIBSRC:
$ if .not. libsrc_found
$ then
$ write sys$output "Can not find includes at ''libsrc' - Skipping ''libname'"
$ goto LIB_LOOP
$ endif
$ if (cppdef .nes. "") then libdefs = libdefs + cppdef + ","
$ libincs = libincs + "," + libsrc
$ lqual = "/lib"
$ libtype = f$edit(f$parse(libloc,,,"TYPE"),"UPCASE")
$ if f$locate("EXE",libtype) .lt. f$length(libtype) then lqual = "/share"
$ write optf libloc , lqual
$ if (f$trnlnm("topt") .nes. "") then write topt libloc , lqual
$!
$! Nasty hack to get the FreeType includes to work
$!
$ ft2def = false
$ if ((libname .eqs. "FREETYPE") .and. -
(f$locate("FREETYPE2",cppdef) .lt. f$length(cppdef)))
$ then
$ if ((f$search("freetype:freetype.h") .nes. "") .and. -
(f$search("freetype:[internal]ftobjs.h") .nes. ""))
$ then
$ write sys$output "Will use local definition of freetype logical"
$ else
$ ft2elem = 0
$FT2_LOOP:
$ ft2srcdir = f$element(ft2elem,",",libsrc)
$ if f$search("''ft2srcdir'''testinc'") .nes. ""
$ then
$ if f$search("''ft2srcdir'internal.dir") .nes. ""
$ then
$ ft2dev = f$parse("''ft2srcdir'",,,"device","no_conceal")
$ ft2dir = f$parse("''ft2srcdir'",,,"directory","no_conceal")
$ ft2conc = f$locate("][",ft2dir)
$ ft2len = f$length(ft2dir)
$ if ft2conc .lt. ft2len
$ then
$ ft2dir = f$extract(0,ft2conc,ft2dir) + -
f$extract(ft2conc+2,ft2len-2,ft2dir)
$ endif
$ ft2dir = ft2dir - "]" + ".]"
$ define freetype 'ft2dev''ft2dir','ft2srcdir'
$ ft2def = true
$ else
$ goto ft2_err
$ endif
$ else
$ ft2elem = ft2elem + 1
$ goto ft2_loop
$ endif
$ endif
$ endif
$ goto LIB_LOOP
$END_LIB:
$ close libdata
$ return
$!------------------------------------------------------------------------------
$!
$! Analyze Object files for OpenVMS AXP to extract Procedure and Data
$! information to build a symbol vector for a shareable image
$! All the "brains" of this logic was suggested by Hartmut Becker
$! (Hartmut.Becker@compaq.com). All the bugs were introduced by me
$! (zinser@zinser.no-ip.info), so if you do have problem reports please do not
$! bother Hartmut/HP, but get in touch with me
$!
$! Version history
$! 0.01 20040006 Skip over shareable images in option file
$!
$ ANAL_OBJ_AXP: Subroutine
$ V = 'F$Verify(0)
$ SAY := "WRITE_ SYS$OUTPUT"
$
$ IF F$SEARCH("''P1'") .EQS. ""
$ THEN
$ SAY "ANAL_OBJ_AXP-E-NOSUCHFILE: Error, inputfile ''p1' not available"
$ goto exit_aa
$ ENDIF
$ IF "''P2'" .EQS. ""
$ THEN
$ SAY "ANAL_OBJ_AXP: Error, no output file provided"
$ goto exit_aa
$ ENDIF
$
$ open/read in 'p1
$ create a.tmp
$ open/append atmp a.tmp
$ loop:
$ read/end=end_loop in line
$ if f$locate("/SHARE",f$edit(line,"upcase")) .lt. f$length(line)
$ then
$ write sys$output "ANAL_SKP_SHR-i-skipshare, ''line'"
$ goto loop
$ endif
$ if f$locate("/LIB",f$edit(line,"upcase")) .lt. f$length(line)
$ then
$ write libsf line
$ write sys$output "ANAL_SKP_LIB-i-skiplib, ''line'"
$ goto loop
$ endif
$ f= f$search(line)
$ if f .eqs. ""
$ then
$ write sys$output "ANAL_OBJ_AXP-w-nosuchfile, ''line'"
$ goto loop
$ endif
$ def/user sys$output nl:
$ def/user sys$error nl:
$ anal/obj/gsd 'f /out=x.tmp
$ open/read xtmp x.tmp
$ XLOOP:
$ read/end=end_xloop xtmp xline
$ xline = f$edit(xline,"compress")
$ write atmp xline
$ goto xloop
$ END_XLOOP:
$ close xtmp
$ goto loop
$ end_loop:
$ close in
$ close atmp
$ if f$search("a.tmp") .eqs. "" -
then $ exit
$ ! all global definitions
$ search a.tmp "symbol:","EGSY$V_DEF 1","EGSY$V_NORM 1"/out=b.tmp
$ ! all procedures
$ search b.tmp "EGSY$V_NORM 1"/wind=(0,1) /out=c.tmp
$ search c.tmp "symbol:"/out=d.tmp
$ def/user sys$output nl:
$ edito/edt/command=sys$input d.tmp
sub/symbol: "/symbol_vector=(/whole
sub/"/=PROCEDURE)/whole
exit
$ ! all data
$ search b.tmp "EGSY$V_DEF 1"/wind=(0,1) /out=e.tmp
$ search e.tmp "symbol:"/out=f.tmp
$ def/user sys$output nl:
$ edito/edt/command=sys$input f.tmp
sub/symbol: "/symbol_vector=(/whole
sub/"/=DATA)/whole
exit
$ sort/nodupl d.tmp,f.tmp 'p2'
$ delete a.tmp;*,b.tmp;*,c.tmp;*,d.tmp;*,e.tmp;*,f.tmp;*
$ if f$search("x.tmp") .nes. "" -
then $ delete x.tmp;*
$!
$ close libsf
$ EXIT_AA:
$ if V then set verify
$ endsubroutine