2000-05-29 22:55:13 +02:00
|
|
|
#
|
|
|
|
# FreeType 2 OpenType/CFF driver configuration rules
|
|
|
|
#
|
|
|
|
|
|
|
|
|
2019-02-23 10:07:09 +01:00
|
|
|
# Copyright (C) 1996-2019 by
|
2000-05-29 22:55:13 +02:00
|
|
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
|
|
#
|
A complete revision of FreeType 2's GNU makefiles (of the library):
Tons of unnecessary stuff have been removed; only the essential rules
have been retained.
The source files now depend on all header files in include/freetype,
include/freetype/config, and include/freetype/internal. This is not
optimal, I know, and I'll try to improve this, but it is better than
before (namely no dependencies on `internal').
FTDEBUG_SRC has been added (similar to FTSYS_SRC) -- I don't know
exactly whether this is really useful, but it doesn't harm.
There is now more documentation in the makefiles itself.
io-frames.html: Use of <th>, <code>, and <var> for better tagging.
Reactivating of FT_DEBUG_LEVEL_xxx macros.
Added a lot of #include directives to make `multi' builds possible -- note
that currently the modules cid, t1, and t1z have clashing structures and
functions which means that you can only use one of these three modules for a
multi build.
Added some missing function declarations to (local) header files.
Renamed some T1_Open_Face() to CID_Open_Face() in the cid module -- a lot
of other functions should be renamed also...
Replaced many FT_xxx stuff with T1_xxx in t1z driver -- this isn't finished
yet...
Fixed FT_Free() to allow a NULL pointer without an assertion (this has
always been a valid assumption in FreeType, at least in FT 1.x).
A lot of other, minor fixes (mostly documentation).
2000-06-11 05:46:57 +02:00
|
|
|
# This file is part of the FreeType project, and may only be used, modified,
|
2000-05-29 22:55:13 +02:00
|
|
|
# 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.
|
|
|
|
|
|
|
|
|
|
|
|
# OpenType driver directory
|
|
|
|
#
|
2003-06-09 06:46:30 +02:00
|
|
|
CFF_DIR := $(SRC_DIR)/cff
|
2000-05-29 22:55:13 +02:00
|
|
|
|
|
|
|
|
2015-01-12 11:26:30 +01:00
|
|
|
CFF_COMPILE := $(CC) $(ANSIFLAGS) \
|
|
|
|
$I$(subst /,$(COMPILER_SEP),$(CFF_DIR)) \
|
|
|
|
$(INCLUDE_FLAGS) \
|
|
|
|
$(FT_CFLAGS)
|
2000-05-29 22:55:13 +02:00
|
|
|
|
|
|
|
|
2000-12-08 03:42:29 +01:00
|
|
|
# CFF driver sources (i.e., C files)
|
2000-05-29 22:55:13 +02:00
|
|
|
#
|
2011-01-03 07:11:54 +01:00
|
|
|
CFF_DRV_SRC := $(CFF_DIR)/cffcmap.c \
|
|
|
|
$(CFF_DIR)/cffdrivr.c \
|
2003-06-09 06:46:30 +02:00
|
|
|
$(CFF_DIR)/cffgload.c \
|
2011-01-03 07:11:54 +01:00
|
|
|
$(CFF_DIR)/cffload.c \
|
|
|
|
$(CFF_DIR)/cffobjs.c \
|
Remove FT_CONFIG_OPTION_PIC and related code.
*/* [FT_CONFIG_OPTION_PIC]: Remove all code guarded by this
preprocessor symbol.
*/*: Replace `XXX_GET' macros (which could be either a function in
PIC mode or an array in non-PIC mode) with `xxx' arrays.
* include/freetype/internal/ftpic.h, src/autofit/afpic.c,
src/autofit/afpic.h, src/base/basepic.c, src/base/basepic.h,
src/base/ftpic.c, src/cff/cffpic.c, src/cff/cffpic.h,
src/pshinter/pshpic.c, src/pshinter/pshpic.h, src/psnames/pspic.c,
src/psnames/pspic.h, src/raster/rastpic.c, src/raster/rastpic.h,
src/sfnt/sfntpic.c, src/sfnt/sfntpic.h, src/smooth/ftspic.c,
src/smooth/ftspic.h, src/truetype/ttpic.c, src/truetype/ttpic.h:
Removed.
2018-05-02 20:27:48 +02:00
|
|
|
$(CFF_DIR)/cffparse.c
|
[cff] Add a new Type 2 interpreter and hinter.
This work, written by Dave Arnold <darnold@adobe.com> and fully
integrated into FreeType by me, is a donation by Adobe in
collaboration with Google. It is vastly superior to the old CFF
engine, and it will replace it soon. Right now, it is still off by
default, and you have to explicitly select it using the new
`hinting-engine' property of the cff driver.
For convenience, (most of) the new files are committed separately.
* include/freetype/config/ftheader.h (FT_CFF_DRIVER_H): New macro.
* include/freetype/ftcffdrv.h: New file to access CFF driver
properties.
* include/freetype/fterrdef.h (FT_Err_Glyph_Too_Big): New error
code.
* include/freetype/internal/fttrace.h: Add `cf2blues', `cf2hints',
and `cf2interp'.
* src/cff/cffgload.h (CFF_SubFont): New member `current_subfont'.
* src/cff/cffobjs.h (CFF_DriverRec): New members `hinting_engine'
and `no_stem_darkening'.
* src/cff/cfftypes.h (CFF_FontRec): New member `cf2_instance'.
* src/cff/cff.c: Include new files.
* src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
`hinting-engine' and `no-stem-darkening' properties (only the Adobe
engine listens to them).
* src/cff/cffgload.c: Include `cf2ft.h'.
(cff_decoder_prepare): Initialize `current_subfont'.
(cff_build_add_point): Handle Adobe engine which uses 16.16
coordinates.
(cff_slot_load): Handle FT_LOAD_NO_SCALE and FT_LOAD_NO_HINTING
separately.
Choose rendering engine based on `hinting_engine' property.
* src/cff/cffload.c (cff_font_done): Call finalizer of the Adobe
engine.
* src/cff/cffobjs.c: Include FT_CFF_DRIVER_H.
(cff_driver_init): Set default property values.
* src/cff/rules.mk (CFF_DRV_SRC, CFF_DRV_H): Add new files.
* src/cff/cf2*.*: New files, containing the Adobe engine.
2013-04-13 18:53:28 +02:00
|
|
|
|
2000-05-29 22:55:13 +02:00
|
|
|
|
2000-12-08 03:42:29 +01:00
|
|
|
# CFF driver headers
|
2000-05-29 22:55:13 +02:00
|
|
|
#
|
2000-12-08 03:42:29 +01:00
|
|
|
CFF_DRV_H := $(CFF_DRV_SRC:%.c=%.h) \
|
2011-01-03 07:11:54 +01:00
|
|
|
$(CFF_DIR)/cfferrs.h \
|
Move struct declarations to `freetype/internal'.
NOTE: Does not compile!
This is so that the CFF functions moved to `psaux' can access the
same structs that they need.
* src/cff/cfftypes.h: Moved to...
* include/freetype/internal/cfftypes.h: ...Here.
* src/cff/cffobjs.h: Moved the struct declarations to...
* include/freetype/internal/cffotypes.h: ... this new file.
* include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H,
FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros.
* src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c,
src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c,
src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h,
include/freetype/internal/psaux.h,
include/freetype/internal/services/svcfftl.h: Update includes.
* src/cff/rules.mk (CFF_DRV_H): Updated.
2017-09-24 22:28:07 +02:00
|
|
|
$(CFF_DIR)/cfftoken.h
|
2000-05-29 22:55:13 +02:00
|
|
|
|
|
|
|
|
2000-12-08 03:42:29 +01:00
|
|
|
# CFF driver object(s)
|
2000-05-29 22:55:13 +02:00
|
|
|
#
|
2000-12-08 03:42:29 +01:00
|
|
|
# CFF_DRV_OBJ_M is used during `multi' builds
|
|
|
|
# CFF_DRV_OBJ_S is used during `single' builds
|
2000-05-29 22:55:13 +02:00
|
|
|
#
|
2003-06-09 06:46:30 +02:00
|
|
|
CFF_DRV_OBJ_M := $(CFF_DRV_SRC:$(CFF_DIR)/%.c=$(OBJ_DIR)/%.$O)
|
|
|
|
CFF_DRV_OBJ_S := $(OBJ_DIR)/cff.$O
|
2000-05-29 22:55:13 +02:00
|
|
|
|
2001-01-03 01:16:24 +01:00
|
|
|
# CFF driver source file for single build
|
2000-05-29 22:55:13 +02:00
|
|
|
#
|
2003-06-09 06:46:30 +02:00
|
|
|
CFF_DRV_SRC_S := $(CFF_DIR)/cff.c
|
2000-05-29 22:55:13 +02:00
|
|
|
|
|
|
|
|
2001-01-03 01:16:24 +01:00
|
|
|
# CFF driver - single object
|
2000-05-29 22:55:13 +02:00
|
|
|
#
|
2000-12-08 03:42:29 +01:00
|
|
|
$(CFF_DRV_OBJ_S): $(CFF_DRV_SRC_S) $(CFF_DRV_SRC) $(FREETYPE_H) $(CFF_DRV_H)
|
2003-06-09 06:46:30 +02:00
|
|
|
$(CFF_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(CFF_DRV_SRC_S))
|
2000-05-29 22:55:13 +02:00
|
|
|
|
|
|
|
|
2001-01-03 01:16:24 +01:00
|
|
|
# CFF driver - multiple objects
|
2000-05-29 22:55:13 +02:00
|
|
|
#
|
2003-06-09 06:46:30 +02:00
|
|
|
$(OBJ_DIR)/%.$O: $(CFF_DIR)/%.c $(FREETYPE_H) $(CFF_DRV_H)
|
|
|
|
$(CFF_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
|
2000-05-29 22:55:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
# update main driver object lists
|
|
|
|
#
|
2000-12-08 03:42:29 +01:00
|
|
|
DRV_OBJS_S += $(CFF_DRV_OBJ_S)
|
|
|
|
DRV_OBJS_M += $(CFF_DRV_OBJ_M)
|
2000-05-29 22:55:13 +02:00
|
|
|
|
2003-06-09 06:46:30 +02:00
|
|
|
|
2000-05-29 22:55:13 +02:00
|
|
|
# EOF
|