[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Devel] New freetype2 make for OpenVMS and zlib
From: |
Jacob (=Jouk) Jansen |
Subject: |
[Devel] New freetype2 make for OpenVMS and zlib |
Date: |
Wed, 13 Nov 2002 13:36:08 +0100 (MET) |
Hi all,
I tested Martin's new makeprocedures for freetype2 and the new zlib options
by David.
They work fine. I had to twiggle a little. The changed files are included in
this mail:
vms_make.com : -I prefer to compile with /float=ieee/name=(as_is,short)
so I had to change:
-ccopt
-add case sensitivity in the .opt file
-I moved the shareable image to the [.lib] directory
(it is convenient that the .olb also is there since I
normally link freetype into another shareable image
which needs no outside callsto it
-I added support for zlib as external library
(maybe this should be optional)
src/gzip/descrip.mms : added the /define=("FT_CONFIG_OPTION_SYSTEM_ZLIB=1")
src/gzip/ftgzip.c : ensure that the right zlib.h is included
I think something of this kind should be merged into the CVS.
Jouk
>------------------------------Cut here src/gzip/ftgzip.c
>(difference)------------
***********
File $DISK6:[JOUKJ.PUBLIC.FREETYPE.FREETYPE.FREETYPE2.SRC.GZIP]FTGZIP.C;4
32 #ifdef __VMS
33 # include "sys$library:zlib.h"
34 #else
35 # include "zlib.h"
36 #endif
37
******
File $DISK6:[JOUKJ.PUBLIC.FREETYPE.FREETYPE.FREETYPE2.SRC.GZIP]FTGZIP.C;2
32 # include "zlib.h"
33
************
Number of difference sections found: 1
Number of difference records found: 5
DIFFERENCES /IGNORE=()/MERGED=1-
$DISK6:[JOUKJ.PUBLIC.FREETYPE.FREETYPE.FREETYPE2.SRC.GZIP]FTGZIP.C;4-
$DISK6:[JOUKJ.PUBLIC.FREETYPE.FREETYPE.FREETYPE2.SRC.GZIP]FTGZIP.C;2
>------------------------------Cut here src/gzip/ftgzip.c
>(difference)------------
>------------------------------Cut here src/gzip/descrip.mms
><-----------------------
#
# FreeType 2 GZip support compilation rules for VMS
#
# Copyright 2002 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.gzip])\
/define=("FT_CONFIG_OPTION_SYSTEM_ZLIB=1")
OBJS=ftgzip.obj
all : $(OBJS)
library [--.lib]freetype.olb $(OBJS)
# EOF
>------------------------------Cut here src/gzip/descrip.mms
><-----------------------
>------------------------------Cut here vms_make.com <-----------------------
$!---------------vms_make.com for Freetype2------------------------------------
$! make Freetype2 under OpenVMS
$!
$! In case of problems with the build you might want to contact me at
$! address@hidden(preferred) or address@hidden (Work)
$!
$!------------------------------------------------------------------------------
$!
$! Just some general constants
$!
$ true = 1
$ false = 0
$ Make = ""
$!
$! Setup variables holding "config" information
$!
$ name = "Freetype2"
$ mapfile = name + ".map"
$ optfile = name + ".opt"
$ ccopt = "/name=(as_is,short)/float=ieee"
$ lopts = ""
$!
$! Check for MMK/MMS
$!
$ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS"
$ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK"
$!
$! Which command parameters were given
$!
$ gosub check_opts
$!
$ gosub crea_mms
$ 'Make' /macro=(comp_flags="''ccopt'")
$ delete/nolog/noconf ccop.mms;*,descrip.fdl;*
$ purge/nolog descrip.mms
$!
$! Create option file
$!
$ open/write optf 'optfile'
$FLOOP:
$ file = f$search("[...]*.obj")
$ if (file .nes. "")
$ then
$ if f$locate("FT2DEMOS",file) .eqs. f$length(file) then write optf file
$ goto floop
$ endif
$ close optf
$!
$!
$! Alpha gets a shareable image
$!
$ If f$getsyi("HW_MODEL") .gt. 1024
$ Then
$!! switch off messages to supress linking warnings when compiling without
$!! all the libraries
$ set mess/notext/nofac/noid/nosev
$ LINK_/noinf/NODEB/NOSHARE/NOEXE/MAP='mapfile'/full 'optfile'/opt
$ set mess/text/fac/id/sev
$ call anal_map_axp 'mapfile' _link.opt
$ open/append optf 'optfile'
$ write optf "sys$library:libz.olb/lib"
$ close optf
$ LINK_/NODEB/SHARE=[.lib]freetype2shr.exe 'optfile'/opt,_link.opt/opt
$ dele/noconf 'mapfile';*
$ endif
$!
$ exit
$!
$!------------------------------------------------------------------------------
$!
$! If MMS/MMK are available dump out the descrip.mms if required
$!
$CREA_MMS:
$ write sys$output "Creating descrip.mms..."
$ copy sys$input: descrip.mms
$ deck
#
# FreeType 2 build system -- top-level Makefile for OpenVMS
#
# Copyright 2001 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.
all :
define freetype [--.include.freetype]
define psaux [-.psaux]
define autohint [-.autohint]
define base [-.base]
define cache [-.cache]
define cff [-.cff]
define cid [-.cid]
define pcf [-.pcf]
define psnames [-.psnames]
define raster [-.raster]
define sfnt [-.sfnt]
define smooth [-.smooth]
define truetype [-.truetype]
define type1 [-.type1]
define winfonts [-.winfonts]
if f$search("lib.dir") .eqs. "" then create/directory [.lib]
set default [.builds.vms]
$(MMS)$(MMSQUALIFIERS)
set default [--.src.autohint]
$(MMS)$(MMSQUALIFIERS)
set default [-.base]
$(MMS)$(MMSQUALIFIERS)
set default [-.bdf]
$(MMS)$(MMSQUALIFIERS)
set default [-.cache]
$(MMS)$(MMSQUALIFIERS)
set default [-.cff]
$(MMS)$(MMSQUALIFIERS)
set default [-.cid]
$(MMS)$(MMSQUALIFIERS)
set default [-.gzip]
$(MMS)$(MMSQUALIFIERS)
set default [-.pcf]
$(MMS)$(MMSQUALIFIERS)
set default [-.pfr]
$(MMS)$(MMSQUALIFIERS)
set default [-.psaux]
$(MMS)$(MMSQUALIFIERS)
set default [-.pshinter]
$(MMS)$(MMSQUALIFIERS)
set default [-.psnames]
$(MMS)$(MMSQUALIFIERS)
set default [-.raster]
$(MMS)$(MMSQUALIFIERS)
set default [-.sfnt]
$(MMS)$(MMSQUALIFIERS)
set default [-.smooth]
$(MMS)$(MMSQUALIFIERS)
set default [-.truetype]
$(MMS)$(MMSQUALIFIERS)
set default [-.type1]
$(MMS)$(MMSQUALIFIERS)
set default [-.type42]
$(MMS)$(MMSQUALIFIERS)
set default [-.winfonts]
$(MMS)$(MMSQUALIFIERS)
set default [--]
# EOF
$ eod
$ anal/rms/fdl descrip.mms
$ open/write mmsf ccop.mms
$ write mmsf "CFLAGS = ", ccopt
$ close mmsf
$ convert/fdl=descrip.fdl ccop.mms ccop.mms
$ copy ccop.mms,descrip.mms;-1 descrip.mms
$ return
$!------------------------------------------------------------------------------
$!
$! Check command line options and set symbols accordingly
$!
$ CHECK_OPTS:
$ i = 1
$ OPT_LOOP:
$ if i .lt. 9
$ then
$ cparm = f$edit(p'i',"upcase")
$ if cparm .eqs. "DEBUG"
$ then
$ ccopt = ccopt + "/noopt/deb"
$ lopts = lopts + "/deb"
$ endif
$! if cparm .eqs. "LINK" then linkonly = true
$ if f$locate("LOPTS",cparm) .lt. f$length(cparm)
$ then
$ start = f$locate("=",cparm) + 1
$ len = f$length(cparm) - start
$ lopts = lopts + f$extract(start,len,cparm)
$ endif
$ if f$locate("CCOPT",cparm) .lt. f$length(cparm)
$ then
$ start = f$locate("=",cparm) + 1
$ len = f$length(cparm) - start
$ ccopt = ccopt + f$extract(start,len,cparm)
$ endif
$ i = i + 1
$ goto opt_loop
$ endif
$ return
$!------------------------------------------------------------------------------
$!
$! Analyze Map for OpenVMS AXP
$!
$ ANAL_MAP_AXP: Subroutine
$ V = 'F$Verify(0)
$ SET SYMBOL/GENERAL/SCOPE=(NOLOCAL,NOGLOBAL)
$ SAY := "WRITE_ SYS$OUTPUT"
$
$ IF F$SEARCH("''P1'") .EQS. ""
$ THEN
$ SAY " ANAL_MAP_AXP: Error, no mapfile provided"
$ goto exit_aa
$ ENDIF
$ IF "''P2'" .EQS. ""
$ THEN
$ SAY " ANALYZE_MAP_AXP: Error, no output file provided"
$ goto exit_aa
$ ENDIF
$
$ LINK_TMP =
F$PARSE(P2,,,"DEVICE")+F$PARSE(P2,,,"DIRECTORY")+F$PARSE(P2,,,"NAME")+".TMP"
$
$ SAY " creating PSECT list in ''P2'"
$ OPEN_/READ IN 'P1'
$ OPEN_/WRITE OUT 'P2'
$ WRITE_ OUT "case_sensitive=YES"
$ WRITE_ OUT "!"
$ WRITE_ OUT "! ### PSECT list extracted from ''P1'"
$ WRITE_ OUT "!"
$ LOOP_PSECT_SEARCH:
$ READ_/END=EOF_PSECT IN REC
$ if F$EXTRACT(0,5,REC) .nes. "$DATA" then goto LOOP_PSECT_SEARCH
$ LAST = ""
$ LOOP_PSECT:
$ READ_/END=EOF_PSECT IN REC
$ if F$EXTRACT(0,1,REC) .eqs. "$" .and. F$EXTRACT(0,5,REC) .nes. "$DATA"
then goto EOF_PSECT
$ if REC - "NOPIC,OVR,REL,GBL,NOSHR,NOEXE, WRT,NOVEC" .nes. REC
$ then
$ J = F$LOCATE(" ",REC)
$ S = F$EXTRACT(0,J,REC)
$ IF S .EQS. LAST THEN GOTO LOOP_PSECT
$ WRITE_ OUT "symbol_vector = (" + S + " = PSECT)"
$ P$_'S= 1
$ LAST = S
$ endif
$ GOTO LOOP_PSECT
$
$ EOF_PSECT:
$ CLOSE_ IN
$ CLOSE_ OUT
$!
$ OPEN_/READ IN 'P1'
$ OPEN_/APPEND OUT 'P2'
$ WRITE_ OUT "!"
$ WRITE_ OUT "! ### Global definition list extracted from ''P1'"
$ WRITE_ OUT "!"
$ LOOP_DATA_SEARCH:
$ READ_/END=EOF_DATA IN REC
$ if f$locate("NOPIC,OVR,REL,GBL,NOSHR,NOEXE",rec) .eq. f$length(rec) -
then goto LOOP_DATA_SEARCH
$ s = f$element(0," ",rec)
$! write_ out "symbol_vector = (" + s + " = DATA)"
$ p$_'s' =1
$ goto loop_data_search
$ EOF_DATA:
$ CLOSE_ IN
$ CLOSE_ OUT
$ SAY " appending list of UNIVERSAL procedures to ''P2'"
$ SEARCH_/NOHIGH/WINDOW=(0,0) 'P1' " R-"/OUT='LINK_TMP
$ OPEN_/READ IN 'LINK_TMP
$ OPEN_/APPEND OUT 'P2'
$ WRITE_ OUT "!"
$ WRITE_ OUT "! ### UNIVERSAL procedures and global definitions extracted from
''P1'"
$ WRITE_ OUT "!"
$ LOOP_UNIVERSAL:
$ READ_/END=EOF_UNIVERSAL IN REC
$ data = 0
$ J = F$LOCATE(" R-",REC)
$ S = F$EXTRACT(J+3,F$length(rec),REC)
$ IF (F$TYPE(P$_'S').EQS."").and.(data.ne.1)
$ THEN
$ WRITE_ OUT "symbol_vector = ("+S+" = PROCEDURE)"
$ ELSE
$ WRITE_ OUT "symbol_vector = ("+S+" = DATA)"
$ ENDIF
$ GOTO LOOP_UNIVERSAL
$ EOF_UNIVERSAL:
$ CLOSE_ IN
$ CLOSE_ OUT
$ if f$search("''LINK_TMP'") .nes. "" then DELETE_/NOLOG/NOCONFIRM
'LINK_TMP';*
$
$ EXIT_AA:
$ if V then set verify
$ endsubroutine
>------------------------------Cut here vms_make.com <-----------------------
Bush : All votes are equal but some votes are more equal than others.
>------------------------------------------------------------------------------<
Jouk Jansen
address@hidden
Technische Universiteit Delft tttttttttt uu uu ddddddd
Nationaal centrum voor HREM tttttttttt uu uu dd dd
Rotterdamseweg 137 tt uu uu dd dd
2628 AL Delft tt uu uu dd dd
Nederland tt uu uu dd dd
tel. 31-15-2782272 tt uuuuuuu ddddddd
>------------------------------------------------------------------------------<
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Devel] New freetype2 make for OpenVMS and zlib,
Jacob (=Jouk) Jansen <=