FreeType 1.31.1
This commit is contained in:
96
lib/arch/debugger/Makefile
Normal file
96
lib/arch/debugger/Makefile
Normal file
@@ -0,0 +1,96 @@
|
||||
# This file is part of the FreeType project.
|
||||
#
|
||||
# It builds the library and test programs for emx-gcc under OS/2 or under
|
||||
# Unix with extra debugging capabilities.
|
||||
#
|
||||
# You will need GNU make.
|
||||
#
|
||||
# Use this file while in the lib directory with the following statement:
|
||||
#
|
||||
# make -f arch/debugger/Makefile
|
||||
|
||||
ARCH = arch/debugger
|
||||
FT_MAKEFILE = $(ARCH)/Makefile
|
||||
|
||||
CC = gcc
|
||||
|
||||
#CFLAGS = -W -Wall -O0 -g -ansi -pedantic -I$(ARCH) -I. -Iextend
|
||||
|
||||
CFLAGS = -Wall -O0 -g -ansi -I$(ARCH) -I. -Iextend
|
||||
|
||||
#CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend
|
||||
|
||||
# Detect OS/2 to add the flag -DOS2 when compiling ttinterp.c
|
||||
#
|
||||
ifdef OS2_SHELL
|
||||
OS := OS2
|
||||
RM := del
|
||||
else
|
||||
OS := UNIX # Unix build otherwise
|
||||
RM := rm -f
|
||||
endif
|
||||
|
||||
TTFILE = ./ttfile.c
|
||||
TTMEMORY = ./ttmemory.c
|
||||
TTMUTEX = ./ttmutex.c
|
||||
|
||||
PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX)
|
||||
|
||||
SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \
|
||||
extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \
|
||||
extend/ftxgsub.c extend/ftxgpos.c extend/ftxopen.c \
|
||||
extend/ftxgdef.c
|
||||
OBJS_X = $(SRC_X:.c=.o)
|
||||
|
||||
SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \
|
||||
ttgload.c ttinterp.c ttload.c ttobjs.c \
|
||||
ttraster.c ttextend.c $(PORT)
|
||||
OBJS_M = $(SRC_M:.c=.o) $(OBJS_X)
|
||||
|
||||
SRC_S = $(ARCH)/freetype.c
|
||||
OBJ_S = $(SRC_S:.c=.o)
|
||||
OBJS_S = $(OBJ_S) $(OBJS_X)
|
||||
|
||||
# We place the library file in the ARCH directory, so that it doesn't
|
||||
# interfere with the normal build.
|
||||
#
|
||||
LIBTTF_A = $(ARCH)/libttf.a
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $< -D$(OS)
|
||||
|
||||
.PHONY: all debug clean distclean depend
|
||||
|
||||
|
||||
all:
|
||||
$(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S $(LIBTTF_A)
|
||||
|
||||
debug:
|
||||
$(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M $(LIBTTF_A)
|
||||
|
||||
$(OBJ_S): $(SRC_S) $(SRC_M)
|
||||
|
||||
$(LIBTTF_A): $($(LIB_FILES))
|
||||
-$(RM) $@
|
||||
ar src $@ $^
|
||||
|
||||
clean:
|
||||
ifdef OS2_SHELL
|
||||
-$(RM) $(subst /,\,$(LIBTTF_A))
|
||||
-$(RM) $(subst /,\,$(OBJS_S))
|
||||
else
|
||||
-$(RM) $(LIBTTF_A)
|
||||
-$(RM) $(OBJS_S)
|
||||
endif
|
||||
|
||||
distclean: clean
|
||||
-$(RM) dep.end
|
||||
|
||||
depend: $(SRC_S) $(SRC_M) $(SRC_X)
|
||||
$(CC) $(CFLAGS) -E -M $^ > dep.end
|
||||
|
||||
ifeq (dep.end,$(wildcard dep.end))
|
||||
include dep.end
|
||||
endif
|
||||
|
||||
# end of Makefile
|
||||
32
lib/arch/debugger/freetype.c
Normal file
32
lib/arch/debugger/freetype.c
Normal file
@@ -0,0 +1,32 @@
|
||||
/* This file is part of the FreeType project */
|
||||
|
||||
/* Single file library component for the debugging target */
|
||||
#define TT_MAKE_OPTION_SINGLE_OBJECT
|
||||
|
||||
/* first include common core components */
|
||||
|
||||
#include "ttapi.c"
|
||||
#include "ttcache.c"
|
||||
#include "ttcalc.c"
|
||||
#include "ttcmap.c"
|
||||
#include "ttdebug.c"
|
||||
#include "ttgload.c"
|
||||
#include "ttinterp.c"
|
||||
#include "ttload.c"
|
||||
#include "ttobjs.c"
|
||||
#include "ttraster.c"
|
||||
|
||||
/* then system-specific (or ANSI) components */
|
||||
|
||||
#include "ttfile.c"
|
||||
#include "ttmemory.c"
|
||||
#include "ttmutex.c"
|
||||
|
||||
/* the extensions are compiled separately, but we need to */
|
||||
/* include the file ttextend.c if we want to support them */
|
||||
|
||||
#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE
|
||||
#include "ttextend.c"
|
||||
#endif
|
||||
|
||||
/* END */
|
||||
236
lib/arch/debugger/ft_conf.h
Normal file
236
lib/arch/debugger/ft_conf.h
Normal file
@@ -0,0 +1,236 @@
|
||||
/* This file is part of the FreeType project */
|
||||
|
||||
/* ft_conf.h for a debugging build */
|
||||
|
||||
|
||||
/* we need the following because there are some typedefs in this file */
|
||||
|
||||
#ifndef FT_CONF_H
|
||||
#define FT_CONF_H
|
||||
|
||||
/* Define to empty if the keyword does not work. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define if you have a working `mmap' system call. */
|
||||
#undef HAVE_MMAP
|
||||
|
||||
/* Define if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H
|
||||
|
||||
/* Define if you have the getpagesize function. */
|
||||
#undef HAVE_GETPAGESIZE
|
||||
|
||||
/* Define if you have the memcpy function. */
|
||||
#define HAVE_MEMCPY
|
||||
|
||||
/* Define if you have the memmove function. */
|
||||
#define HAVE_MEMMOVE
|
||||
|
||||
/* Define if you have the valloc function. */
|
||||
#undef HAVE_VALLOC
|
||||
|
||||
/* Define if you have the <fcntl.h> header file. Unix-specific */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* command.com can't pipe stderr into a file; any message would be */
|
||||
/* written into the graphics screen. */
|
||||
#define HAVE_PRINT_FUNCTION 1
|
||||
|
||||
#define Print( format, ap ) vfprintf( stdout, (format), (ap) )
|
||||
|
||||
|
||||
/* The number of bytes in a int. We use the ANSI header file limits.h */
|
||||
/* for determining it since there is no easy way to guess. */
|
||||
/* */
|
||||
#include <limits.h>
|
||||
#if UINT_MAX == 0xFFFF
|
||||
#define SIZEOF_INT 2
|
||||
#elif UINT_MAX == 0xFFFFFFFF
|
||||
#define SIZEOF_INT 4
|
||||
#else
|
||||
#error "Unsupported number of bytes in `int' type!"
|
||||
#endif
|
||||
|
||||
/* We now try to guess the size of longs in the same way */
|
||||
/* */
|
||||
#if ULONG_MAX == 0xFFFFFFFF
|
||||
#define SIZEOF_LONG 4
|
||||
#elif ULONG_MAX == 0xFFFFFFFFFFFFFFFF
|
||||
#define SIZEOF_LONG 8
|
||||
#else
|
||||
#error "Unsupported number of bytes in `long' type!"
|
||||
#endif
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/* */
|
||||
/* The following configuration macros can be tweaked manually by */
|
||||
/* a developer to turn on or off certain features or options in the */
|
||||
/* TrueType engine. This may be useful to tune it for specific */
|
||||
/* purposes.. */
|
||||
/* */
|
||||
/**********************************************************************/
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* Define this if the underlying operating system uses a different */
|
||||
/* character width than 8bit for file names. You must then also supply */
|
||||
/* a typedef declaration for defining 'TT_Text'. Default is off. */
|
||||
|
||||
/* #define HAVE_TT_TEXT */
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* Define this if you want to generate code to support engine extensions */
|
||||
/* Default is on, but if you're satisfied by the basic services provided */
|
||||
/* by the engine and need no extensions, undefine this configuration */
|
||||
/* macro to save a few more bytes. */
|
||||
|
||||
#define TT_CONFIG_OPTION_EXTEND_ENGINE
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* Define this if you want to generate code to support gray-scaling, */
|
||||
/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */
|
||||
/* disable it if you don't need it. */
|
||||
|
||||
#define TT_CONFIG_OPTION_GRAY_SCALING
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* Define this if you want to completely disable the use of the bytecode */
|
||||
/* interpreter. Doing so will produce a much smaller library, but the */
|
||||
/* quality of the rendered glyphs will enormously suffer from this. */
|
||||
/* */
|
||||
/* This switch was introduced due to the Apple patents issue which */
|
||||
/* emerged recently on the FreeType lists. We still do not have Apple's */
|
||||
/* opinion on the subject and will change this as soon as we have. */
|
||||
|
||||
#undef TT_CONFIG_OPTION_NO_INTERPRETER
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* Define this if you want to use a big 'switch' statement within the */
|
||||
/* bytecode interpreter. Because some non-optimizing compilers are not */
|
||||
/* able to produce jump tables from such statements, undefining this */
|
||||
/* configuration macro will generate the appropriate C jump table in */
|
||||
/* ttinterp.c. If you use an optimizing compiler, you should leave it */
|
||||
/* defined for better performance and code compactness.. */
|
||||
/* */
|
||||
/* For debugging, we use a jump table; this allows some interesting */
|
||||
/* things during development. */
|
||||
|
||||
#undef TT_CONFIG_OPTION_INTERPRETER_SWITCH
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* Define this if you want to build a `static' version of the TrueType */
|
||||
/* bytecode interpreter. This will produce much bigger code, which */
|
||||
/* _may_ be faster on some architectures. */
|
||||
/* */
|
||||
/* Do NOT DEFINE THIS is you build a thread-safe version of the engine. */
|
||||
/* */
|
||||
/* We use a static interpreter in the debugger; this helps in setting */
|
||||
/* data breakpoints to fixed memory addresses. */
|
||||
|
||||
#define TT_CONFIG_OPTION_STATIC_INTERPRETER
|
||||
|
||||
/* an extra for the debugger */
|
||||
#define DEBUG_INTERPRETER
|
||||
|
||||
/*************************************************************************/
|
||||
/* Define this if you want to build a 'static' version of the scan-line */
|
||||
/* converter (the component which in charge of converting outlines into */
|
||||
/* bitmaps). This will produce a bigger object file for "ttraster.c", */
|
||||
/* which _may_ be faster on some architectures.. */
|
||||
/* */
|
||||
/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */
|
||||
|
||||
#define TT_CONFIG_OPTION_STATIC_RASTER
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */
|
||||
/* version of the library. */
|
||||
|
||||
#undef TT_CONFIG_OPTION_THREAD_SAFE
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/* */
|
||||
/* The following macros are used to define the debug level, as well */
|
||||
/* as individual tracing levels for each component. There are */
|
||||
/* currently three modes of operation : */
|
||||
/* */
|
||||
/* - trace mode (define DEBUG_LEVEL_TRACE) */
|
||||
/* */
|
||||
/* The engine prints all error messages, as well as tracing */
|
||||
/* ones, filtered by each component's level */
|
||||
/* */
|
||||
/* - debug mode (define DEBUG_LEVEL_ERROR) */
|
||||
/* */
|
||||
/* Disable tracing, but keeps error output and assertion */
|
||||
/* checks. */
|
||||
/* */
|
||||
/* - release mode (don't define anything) */
|
||||
/* */
|
||||
/* Don't include error-checking or tracing code in the */
|
||||
/* engine's code. Ideal for releases. */
|
||||
/* */
|
||||
/* NOTE : */
|
||||
/* */
|
||||
/* Each component's tracing level is defined in its own source. */
|
||||
/* */
|
||||
/**********************************************************************/
|
||||
|
||||
/* Define if you want to use the tracing debug mode. */
|
||||
/* Set to DEBUG_LEVEL_TRACE for the debugger. */
|
||||
#define DEBUG_LEVEL_TRACE
|
||||
|
||||
/* Define if you want to use the error debug mode - ignored if */
|
||||
/* DEBUG_LEVEL_TRACE is defined */
|
||||
#undef DEBUG_LEVEL_ERROR
|
||||
|
||||
|
||||
/**************************************************************************/
|
||||
/* Definition of various integer sizes. These types are used by ttcalc */
|
||||
/* and ttinterp (for the 64-bit integers) only.. */
|
||||
|
||||
#if SIZEOF_INT == 4
|
||||
|
||||
typedef signed int TT_Int32;
|
||||
typedef unsigned int TT_Word32;
|
||||
|
||||
#elif SIZEOF_LONG == 4
|
||||
|
||||
typedef signed long TT_Int32;
|
||||
typedef unsigned long TT_Word32;
|
||||
|
||||
#else
|
||||
#error "no 32bit type found"
|
||||
#endif
|
||||
|
||||
#if SIZEOF_LONG == 8
|
||||
|
||||
/* LONG64 must be defined when a 64-bit type is available */
|
||||
/* INT64 must then be defined to this type.. */
|
||||
#define LONG64
|
||||
#define INT64 long
|
||||
|
||||
#else
|
||||
|
||||
/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */
|
||||
/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */
|
||||
/* will produce many -ansi warnings during library compilation. */
|
||||
#ifdef TT_USE_LONG_LONG
|
||||
|
||||
#define LONG64
|
||||
#define INT64 long long
|
||||
|
||||
#endif /* TT_USE_LONG_LONG */
|
||||
#endif
|
||||
|
||||
#endif /* FT_CONF_H */
|
||||
|
||||
|
||||
/* END */
|
||||
Reference in New Issue
Block a user