* INSTALL: Revised.

* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
builds/win32/w32-bccd.mk: Revised.
* include/freetype/config/ftbuild.h,
include/freetype/internal/internal.h: Revised.
* include/freetype/ftimage.h: Updated to new header inclusion scheme.


* builds/toplevel.mk (.PHONY): Adding `distclean'.
* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
`setup'.


* INSTALL: Slightly updated the quick starter documentation to
include IDE compilation, prevent against BSD Make, and specify "make
setup" instead of a single "make" for build configuration.
* include/config/ftbuild.h, include/internal/internal.h: Added new
configuration files used to determine the location of all public,
configuration, and internal header files for FreeType 2.  Modified
all headers under "include/freetype" to reflect this change.  Note
that we still need to change the library source files themselves
though.
builds/win32/detect.mk: Added new files to support compilation with
the free Borland C++ command-line compiler.  Modified the detection
rules to recognize the new "bcc32" target in "make setup bcc32".
src/truetype/ttobjs.c, src/truetype/ttgload.c,
src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
didn't really like.  Basically, this compiler complains when FT_UInt
is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
in these cases).
This commit is contained in:
Werner Lemberg 2000-12-01 17:25:58 +00:00
parent b1aabf4c5e
commit 4c80f0c9ca
17 changed files with 393 additions and 296 deletions

View File

@ -1,27 +1,44 @@
2000-12-01 Werner Lemberg <wl@gnu.org>
* INSTALL: Revised.
* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
builds/win32/w32-bccd.mk: Revised.
* include/freetype/config/ftbuild.h,
include/freetype/internal/internal.h: Revised.
* include/freetype/ftimage.h: Updated to new header inclusion scheme.
2000-11-30 Werner Lemberg <wl@gnu.org>
* builds/toplevel.mk (.PHONY): Adding `distclean'.
* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
`setup'.
2000-11-30 David Turner <david.turner@freetype.ogr>
* INSTALL: slightly updated the quick starter documentation to
include IDE compilation, prevent agains BSD Make, and specify
"make setup" instead of a single "make" for build configuration.
* INSTALL: Slightly updated the quick starter documentation to
include IDE compilation, prevent against BSD Make, and specify "make
setup" instead of a single "make" for build configuration.
* include/config/ftbuild.h, include/internal/internal.h: added
a new configuration file used to determine where are all public,
configuration and internal header files for FreeType 2. I also
modified all headers under "include/freetype" to reflect this
change. Note that we still need to change the library source
files themselves though..
* include/config/ftbuild.h, include/internal/internal.h: Added new
configuration files used to determine the location of all public,
configuration, and internal header files for FreeType 2. Modified
all headers under "include/freetype" to reflect this change. Note
that we still need to change the library source files themselves
though.
* builds/compiler/bcc.mk, builds/compiler/bcc-dev.mk,
builds/win32/w32-bcc.mk, builds/win32/w32-bccd.mk,
builds/win32/detect.mk: added new files to support compilation with
builds/win32/detect.mk: Added new files to support compilation with
the free Borland C++ command-line compiler. Modified the detection
rules to recognize the new "bcc32" target in "make setup bcc32"
rules to recognize the new "bcc32" target in "make setup bcc32".
* src/sfnt/ttcmap.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c,
src/truetype/ttobjs.c, src/truetype/ttgload.c, src/truetype/ttinterp.c:
fixed a few comparisons that Borland C++ didn't really like. Basically,
this compiler complains when a FT_UInt is compared to a FT_UShort
(apparently, it promotes the UShort to an Int in these cases)
src/truetype/ttobjs.c, src/truetype/ttgload.c,
src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
didn't really like. Basically, this compiler complains when FT_UInt
is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
in these cases).
2000-11-30 Tom Kacvinsky <tjk@ams.org>

39
INSTALL
View File

@ -5,18 +5,18 @@ I. From the command line:
You need to have GNU Make installed on your system to compile the
library from the command line. This will _not_ work with other
Make tools (including the BSD ones !!)
make tools (including BSD make)!
- Go to the 'freetype2' directory
- Go to the `freetype2' directory.
- on Unix (any C compiler should work):
- On Unix (any C compiler should work):
- make setup (don't worry, this will invoke a configure script)
- make
- make install
alternatively, you can pass parameters to the configure script
with the CFG variable, as in:
Alternatively, you can pass parameters to the configure script
within the CFG variable, as in:
- make setup CFG="--prefix=/usr"
- make
@ -24,25 +24,25 @@ I. From the command line:
- On Windows:
we provide a version of GNU Make for Win32 on the FreeType site.
See http://www.freetype.org/download.html for details..
We provide a version of GNU Make for Win32 on the FreeType site.
See http://www.freetype.org/download.html for details.
o if you're using gcc:
If you are using gcc:
- make setup
- make
o if you're using Visual C++:
If you are using Visual C++:
- make setup visualc
- make
o if you're using Win32-lCC:
If you are using Win32-lCC:
- make setup lcc
- make
o if you're using the Borland C++ Builder compiler:
If you are using the Borland C++ Builder compiler:
- make setup bcc32
- make
@ -50,10 +50,10 @@ I. From the command line:
II. In your own environment (IDE):
you need to add the directories "freetype2/include" and "freetype2/src"
You need to add the directories "freetype2/include" and "freetype2/src"
to your include path when compiling the library.
compile each library component through the following files:
Compile each library component through the following files:
-- base components (required)
@ -80,11 +80,14 @@ II. In your own environment (IDE):
src/cid/type1cid.c -- Type 1 CID-keyed font driver
src/winfonts/winfonts.c -- Windows FONT / FNT font driver
note that:
Note:
'truetype.c' needs 'sfnt.c' and 'psnames.c'
'type1.c' needs 'psaux.c' and 'psnames.c'
'type1cid.c' needs 'psaux.c' and 'psnames.c'
'cff.c' needs 'sfnt.c', 'psaux.c' and 'psnames.c'
`truetype.c' needs `sfnt.c' and `psnames.c'
`type1.c' needs `psaux.c' and `psnames.c'
`type1cid.c' needs `psaux.c' and `psnames.c'
`cff.c' needs `sfnt.c', `psaux.c', and `psnames.c'
etc.
--- end of INSTALL --

View File

@ -1,9 +1,20 @@
# Copyright 2000 David Turner
#
# Borland C++-specific with NO OPTIMISATIONS + DEBUGGING
# FreeType 2 Borland C++-specific with NO OPTIMIZATIONS + DEBUGGING
#
# Copyright 1996-2000 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.
# Compiler command line name
#
CC := bcc32
# The object file extension (for standard and static libraries). This can be
@ -26,7 +37,7 @@ I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually is `-D' like in `-DDEBUG'.
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
@ -37,7 +48,7 @@ D := -D
L :=
# Target flag. - no trailing space
# Target flag -- no trailing space.
#
T := -o
@ -61,7 +72,8 @@ ANSIFLAGS := -A
# Library linking
#
ifndef CLEAN_LIBRARY
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) $(NO_OUTPUT)
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) \
$(NO_OUTPUT)
endif
TARGET_OBJECTS = $(subst $(SEP),\\,$(OBJECTS_LIST))
LINK_LIBRARY = tlib /u $(subst $(SEP),\\,$@) $(TARGET_OBJECTS:%=+%)

View File

@ -1,9 +1,20 @@
# Copyright 2000 David Turner
#
# Borland C++-specific rules
# FreeType 2 Borland C++-specific rules
#
# Copyright 1996-2000 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.
# Compiler command line name
#
CC := bcc32
# The object file extension (for standard and static libraries). This can be
@ -26,7 +37,7 @@ I := -I
# C flag used to define a macro before the compilation of a given source
# object. Usually is `-D' like in `-DDEBUG'.
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := -D
@ -37,7 +48,7 @@ D := -D
L :=
# Target flag. - no trailing space
# Target flag -- no trailing space.
#
T := -o
@ -61,7 +72,8 @@ ANSIFLAGS := -A
# Library linking
#
ifndef CLEAN_LIBRARY
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) $(NO_OUTPUT)
CLEAN_LIBRARY = $(DELETE) $(subst $(SEP),$(HOSTSEP),$(PROJECT_LIBRARY)) \
$(NO_OUTPUT)
endif
TARGET_OBJECTS = $(subst $(SEP),\\,$(OBJECTS_LIST))
LINK_LIBRARY = tlib /u $(subst $(SEP),\\,$@) $(TARGET_OBJECTS:%=+%)

View File

@ -39,7 +39,7 @@ I := /I
# C flag used to define a macro before the compilation of a given source
# object. Usually is `-D' like in `-DDEBUG'.
# object. Usually it is `-D' like in `-DDEBUG'.
#
D := /D

View File

@ -34,7 +34,7 @@
# details on host platform detection and library builds.
.PHONY: setup
.PHONY: setup distclean
# The `space' variable is used to avoid trailing spaces in defining the
# `T' variable later.

View File

@ -12,6 +12,7 @@
# indicate that you have read the license and understand and accept it
# fully.
.PHONY: devel lcc setup unix
ifeq ($(PLATFORM),ansi)

View File

@ -1,7 +1,18 @@
#
# Borland C++ on Win32
# FreeType 2 Borland C++ on Win32
#
# Copyright 1996-2000 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.
SEP := /
include $(TOP)/builds/win32/win32-def.mk
include $(TOP)/builds/compiler/bcc.mk

View File

@ -1,7 +1,18 @@
#
# Borland C++ on Win32 + debugging
# FreeType 2 Borland C++ on Win32 + debugging
#
# Copyright 1996-2000 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.
SEP := /
include $(TOP)/builds/win32/win32-def.mk
include $(TOP)/builds/compiler/bcc-dev.mk

View File

@ -139,42 +139,29 @@ FT_BEGIN_HEADER
} FT_LruRec;
FT_EXPORT( FT_Error )
FT_Lru_New( const FT_Lru_Class* clazz,
FT_EXPORT( FT_Error ) FT_Lru_New( const FT_Lru_Class* clazz,
FT_UInt max_elements,
FT_Pointer user_data,
FT_Memory memory,
FT_Bool pre_alloc,
FT_Lru *anlru );
FT_EXPORT( void ) FT_Lru_Reset( FT_Lru lru );
FT_EXPORT( void )
FT_Lru_Reset( FT_Lru lru );
FT_EXPORT( void ) FT_Lru_Done ( FT_Lru lru );
FT_EXPORT( void )
FT_Lru_Done ( FT_Lru lru );
FT_EXPORT( FT_Error )
FT_Lru_Lookup_Node( FT_Lru lru,
FT_EXPORT( FT_Error ) FT_Lru_Lookup_Node( FT_Lru lru,
FT_LruKey key,
FT_LruNode *anode );
FT_EXPORT( FT_Error )
FT_Lru_Lookup( FT_Lru lru,
FT_EXPORT( FT_Error ) FT_Lru_Lookup( FT_Lru lru,
FT_LruKey key,
FT_Pointer *anobject );
FT_EXPORT( void )
FT_Lru_Remove_Node( FT_Lru lru,
FT_EXPORT( void ) FT_Lru_Remove_Node( FT_Lru lru,
FT_LruNode node );
FT_EXPORT( void )
FT_Lru_Remove_Selection( FT_Lru lru,
FT_EXPORT( void ) FT_Lru_Remove_Selection( FT_Lru lru,
FT_Lru_Selector selector,
FT_Pointer data );

View File

@ -2,8 +2,7 @@
/* */
/* ftbuild.h */
/* */
/* This file is used to define important macros needed to */
/* perform a build of the FreeType 2 library.. */
/* Build macros of the FreeType 2 library. */
/* */
/* Copyright 1996-2000 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
@ -16,96 +15,102 @@
/* */
/***************************************************************************/
#ifndef __FT_BUILD_H__
#define __FT_BUILD_H__
/****************************************************************************
*
* the macro FT_ROOT is used to define the root of all public header
* files for FreeType 2. By default, it is set to "freetype", which
* means that all public files should be included with a line like:
*
* #include <freetype/....>
*
* you can re-define it to something different, depending on the way
* you installed the library on your system.
*
*/
/*************************************************************************/
/* */
/* The macro FT_ROOT is used to define the root of all public header */
/* files for FreeType 2. By default, it is set to "freetype", which */
/* means that all public files should be included with a line like: */
/* */
/* #include <freetype/...> */
/* */
/* Redefine it to something different if necessary, depending where the */
/* library is installed on the particular system. */
/* */
#ifndef FT_ROOT
#define FT_ROOT freetype
#endif
/****************************************************************************
*
* the macro FT_CONFIG_ROOT is used to define the root of all configuration
* header files for FreeType 2. By default, it is set to "freetype/config",
* which means that all config files should be included with a line like:
*
* #include <freetype/config/...>
*
* you can re-define it to something different, depending on the way
* you installed the library on your system.
*
*/
/*************************************************************************/
/* */
/* The macro FT_CONFIG_ROOT is used to define the root of all */
/* configuration header files for FreeType 2. By default, it is set to */
/* "freetype/config", which means that all config files should be */
/* include with a line like: */
/* */
/* #include <freetype/config/...> */
/* */
/* Redefine it to something different, depending where the library is */
/* installed on the particular system. */
/* */
#ifndef FT_CONFIG_ROOT
#define FT_CONFIG_ROOT FT_ROOT/config
#endif
/****************************************************************************
*
* the macro FT_PUBLIC_FILE is used to include a FreeType 2 public file
* its parameter is the file pathname, relative to the public root of a
* given header file.
*/
/*************************************************************************/
/* */
/* The macro FT_PUBLIC_FILE is used to include a FreeType 2 public file. */
/* Its parameter is the file pathname, relative to the public root of a */
/* given header file. */
/* */
#define FT_PUBLIC_FILE( x ) <FT_ROOT/x>
/****************************************************************************
*
* the macro FT_CONFIG_FILE is used to include a FreeType 2 config file
* its parameter is the file pathname, relative to the configurationroot of a
* given header file.
*/
/*************************************************************************/
/* */
/* The macro FT_CONFIG_FILE is used to include a FreeType 2 config file. */
/* Its parameter is the file pathname, relative to the configuration */
/* root directory of a given header file. */
/* */
#define FT_CONFIG_FILE( x ) <FT_CONFIG_ROOT/x>
/****************************************************************************
*
* the macro FT_INTERNAL_FILE is used to include a FreeType 2 internal file
* its parameter is the file pathname, relative to the configurationroot of a
* given header file.
*/
/*************************************************************************/
/* */
/* The macro FT_INTERNAL_FILE is used to include a FreeType 2 internal */
/* file. Its parameter is the file pathname, relative to the */
/* configuration root directory of a given header file. */
/* */
#define FT_INTERNAL_FILE( x ) <FT_ROOT/internal/x>
/****************************************************************************
*
* the macro FT_COMPONENT_FILE is used to include a given FreeType 2 component
* source file (be it a header, a C source file, or an included file).
*
* it's first argument is the component/module's directory according to
* the normal FT2 source directory hierarchy, and the second one the
* file name.
*
* note that you can also put all library source files in a single
* directory and compile them normally by defining the macro
* FT_FLAT_COMPILATION
*/
/*************************************************************************/
/* */
/* The macro FT_COMPONENT_FILE is used to include a given FreeType 2 */
/* component source file (be it a header, a C source file, or an */
/* included file). */
/* */
/* Its first argument is the component/module's directory according to */
/* the normal FreeType 2 source directory hierarchy, and the second one */
/* the file name. */
/* */
/* Note that you can also put all library source files in a single */
/* directory and compile them normally by defining the macro */
/* FT_FLAT_COMPILATION. */
/* */
#define FT_COMPONENT_FILE( d, x ) <FT_ROOT/d/x>
/****************************************************************************
*
* the macro FT_SOURCE_FILE is used to include a given FreeType 2 component
* source file (be it a header, a C source file, or an included file).
*
* it's first argument is the component/module's directory according to
* the normal FT2 source directory hierarchy, and the second one the
* file name.
*
* note that you can also put all library source files in a single
* directory and compile them normally by defining the macro
* FT_FLAT_COMPILATION
*/
/*************************************************************************/
/* */
/* The macro FT_SOURCE_FILE is used to include a given FreeType 2 */
/* component source file (be it a header, a C source file, or an */
/* included file). */
/* */
/* Its first argument is the component/module's directory according to */
/* the normal FreeType 2 source directory hierarchy, and the second one */
/* the file name. */
/* */
/* Note that you can also put all library source files in a single */
/* directory and compile them normally by defining the macro */
/* FT_FLAT_COMPILATION. */
/* */
#ifdef FT_FLAT_COMPILATION
#define FT_SOURCE_FILE( d, x ) <d/x>
#else
@ -113,42 +118,49 @@
#endif
/****************************************************************************
*
* <Macro> FT_BEGIN_HEADER
*
* <Description>
* this macro is used in association with @FT_END_HEADER in header
* files to ensure that the declarations within are properly encapsulated
* in an 'extern "C" { .. }' block when included from a C++ compiler
*/
/*************************************************************************/
/* */
/* <Macro> */
/* FT_BEGIN_HEADER */
/* */
/* <Description> */
/* This macro is used in association with @FT_END_HEADER in header */
/* files to ensure that the declarations within are properly */
/* encapsulated in an `extern "C" { .. }' block when included from a */
/* C++ compiler. */
/* */
#ifdef __cplusplus
#define FT_BEGIN_HEADER extern "C" {
#else
#define FT_BEGIN_HEADER /* nothing */
#endif
/****************************************************************************
*
* <Macro> FT_END_HEADER
*
* <Description>
* this macro is used in association with @FT_BEGIN_HEADER in header
* files to ensure that the declarations within are properly encapsulated
* in an 'extern "C" { .. }' block when included from a C++ compiler
*/
/*************************************************************************/
/* */
/* <Macro> */
/* FT_END_HEADER */
/* */
/* <Description> */
/* This macro is used in association with @FT_BEGIN_HEADER in header */
/* files to ensure that the declarations within are properly */
/* encapsulated in an `extern "C" { .. }' block when included from a */
/* C++ compiler. */
/* */
#ifdef __cplusplus
#define FT_END_HEADER }
#else
#define FT_END_HEADER /* nothing */
#endif
/****************************************************************************
*
* we will now define several aliases for the FreeType 2 public and
* configuration files..
*
*/
/*************************************************************************/
/* */
/* Aliases for the FreeType 2 public and configuration files. */
/* */
/*************************************************************************/
/* don't add spaces around arguments to FT_CONFIG_FILE! */
/* configuration files */
#define FT_CONFIG_CONFIG_H FT_CONFIG_FILE(ftconfig.h)
@ -179,8 +191,12 @@
#define FT_TRUETYPE_TABLES_H FT_PUBLIC_FILE(tttables.h)
#define FT_TRUETYPE_TAGS_H FT_PUBLIC_FILE(tttags.h)
/* now include internal headers definitions from <freetype/internal/..>*/
/* now include internal headers definitions from <freetype/internal/...> */
#include FT_PUBLIC_FILE(internal/internal.h)
#endif /* __FT_BUILD_H__ */
/* END */

View File

@ -24,13 +24,16 @@
/*************************************************************************/
#ifndef FTIMAGE_H
#define FTIMAGE_H
#ifndef __FTIMAGE_H__
#define __FTIMAGE_H__
#ifdef __cplusplus
extern "C" {
#ifndef FT_BUILD_H
# define FT_BUILD_H <freetype/config/ftbuild.h>
#endif
#include FT_BUILD_H
FT_BEGIN_HEADER
/*************************************************************************/
@ -992,12 +995,10 @@
} FT_Raster_Funcs;
#ifdef __cplusplus
}
#endif
FT_END_HEADER
#endif /* FTIMAGE_H */
#endif /* __FTIMAGE_H__ */
/* END */

View File

@ -1,7 +1,31 @@
/* this file is automatically included by <freetype/config/ftbuild.h> */
/* do not include it manually !! */
/***************************************************************************/
/* */
/* internal.h */
/* */
/* Internal header files (specification only). */
/* */
/* Copyright 1996-2000 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. */
/* */
/***************************************************************************/
/*************************************************************************/
/* */
/* This file is automatically included by `ftbuild.h'. */
/* Do not include it manually! */
/* */
/*************************************************************************/
/* don't add spaces around the argument of FT_INTERNAL_FILE! */
/* internal header files */
#define FT_INTERNAL_OBJECTS_H FT_INTERNAL_FILE(ftobjs.h)
#define FT_INTERNAL_STREAM_H FT_INTERNAL_FILE(ftstream.h)
#define FT_INTERNAL_MEMORY_H FT_INTERNAL_FILE(ftmemory.h)
@ -27,3 +51,5 @@
#define FT_INTERNAL_AUTOHINT_H FT_INTERNAL_FILE(autohint.h)
#define FT_INTERNAL_FNT_TYPES_H FT_INTERNAL_FILE(fnttypes.h)
/* END */

View File

@ -49,7 +49,7 @@ FT_BEGIN_HEADER
/* T1_Encoding */
/* */
/* <Description> */
/* A structure modeling a custom encoding */
/* A structure modeling a custom encoding. */
/* */
/* <Fields> */
/* num_chars :: The number of character codes in the encoding. */

View File

@ -38,7 +38,7 @@ FT_BEGIN_HEADER
/* A structure used to model a CFF Index table. */
/* */
/* <Fields> */
/* stream :: source input stream */
/* stream :: The source input stream. */
/* */
/* count :: The number of elements in the index. */
/* */
@ -47,7 +47,7 @@ FT_BEGIN_HEADER
/* data_offset :: The position of first data byte in the index's */
/* bytes. */
/* */
/* offsets :: table of element offsets in the index */
/* offsets :: A table of element offsets in the index. */
/* */
/* bytes :: If the index is loaded in memory, its bytes. */
/* */