mirror of https://github.com/RT-Thread/rt-thread
Update CRLF
This commit is contained in:
parent
85d0f41067
commit
86623c945f
|
@ -1,128 +1,128 @@
|
||||||
OUTPUT_ARCH(powerpc)
|
OUTPUT_ARCH(powerpc)
|
||||||
|
|
||||||
/* Do we need any of these for elf?
|
/* Do we need any of these for elf?
|
||||||
__DYNAMIC = 0; */
|
__DYNAMIC = 0; */
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
.resetvec 0xFFFFFFFC :
|
.resetvec 0xFFFFFFFC :
|
||||||
{
|
{
|
||||||
*(.resetvec)
|
*(.resetvec)
|
||||||
} = 0xffff
|
} = 0xffff
|
||||||
|
|
||||||
/* Read-only sections, merged into text segment: */
|
/* Read-only sections, merged into text segment: */
|
||||||
. = + SIZEOF_HEADERS;
|
. = + SIZEOF_HEADERS;
|
||||||
.interp : { *(.interp) }
|
.interp : { *(.interp) }
|
||||||
.hash : { *(.hash) }
|
.hash : { *(.hash) }
|
||||||
.dynsym : { *(.dynsym) }
|
.dynsym : { *(.dynsym) }
|
||||||
.dynstr : { *(.dynstr) }
|
.dynstr : { *(.dynstr) }
|
||||||
.rel.text : { *(.rel.text) }
|
.rel.text : { *(.rel.text) }
|
||||||
.rela.text : { *(.rela.text) }
|
.rela.text : { *(.rela.text) }
|
||||||
.rel.data : { *(.rel.data) }
|
.rel.data : { *(.rel.data) }
|
||||||
.rela.data : { *(.rela.data) }
|
.rela.data : { *(.rela.data) }
|
||||||
.rel.rodata : { *(.rel.rodata) }
|
.rel.rodata : { *(.rel.rodata) }
|
||||||
.rela.rodata : { *(.rela.rodata) }
|
.rela.rodata : { *(.rela.rodata) }
|
||||||
.rel.got : { *(.rel.got) }
|
.rel.got : { *(.rel.got) }
|
||||||
.rela.got : { *(.rela.got) }
|
.rela.got : { *(.rela.got) }
|
||||||
.rel.ctors : { *(.rel.ctors) }
|
.rel.ctors : { *(.rel.ctors) }
|
||||||
.rela.ctors : { *(.rela.ctors) }
|
.rela.ctors : { *(.rela.ctors) }
|
||||||
.rel.dtors : { *(.rel.dtors) }
|
.rel.dtors : { *(.rel.dtors) }
|
||||||
.rela.dtors : { *(.rela.dtors) }
|
.rela.dtors : { *(.rela.dtors) }
|
||||||
.rel.bss : { *(.rel.bss) }
|
.rel.bss : { *(.rel.bss) }
|
||||||
.rela.bss : { *(.rela.bss) }
|
.rela.bss : { *(.rela.bss) }
|
||||||
.rel.plt : { *(.rel.plt) }
|
.rel.plt : { *(.rel.plt) }
|
||||||
.rela.plt : { *(.rela.plt) }
|
.rela.plt : { *(.rela.plt) }
|
||||||
/* .init : { *(.init) } */
|
/* .init : { *(.init) } */
|
||||||
.plt : { *(.plt) }
|
.plt : { *(.plt) }
|
||||||
|
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
KEEP(build\libcpu\ppc\ppc405\start_gcc.o (.text))
|
KEEP(build\libcpu\ppc\ppc405\start_gcc.o (.text))
|
||||||
|
|
||||||
*(.text)
|
*(.text)
|
||||||
*(.fixup)
|
*(.fixup)
|
||||||
*(.got1)
|
*(.got1)
|
||||||
}
|
}
|
||||||
_etext = .;
|
_etext = .;
|
||||||
PROVIDE (etext = .);
|
PROVIDE (etext = .);
|
||||||
.rodata :
|
.rodata :
|
||||||
{
|
{
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
|
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
|
||||||
/* section information for finsh shell */
|
/* section information for finsh shell */
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__fsymtab_start = .;
|
__fsymtab_start = .;
|
||||||
KEEP(*(FSymTab))
|
KEEP(*(FSymTab))
|
||||||
__fsymtab_end = .;
|
__fsymtab_end = .;
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
__vsymtab_start = .;
|
__vsymtab_start = .;
|
||||||
KEEP(*(VSymTab))
|
KEEP(*(VSymTab))
|
||||||
__vsymtab_end = .;
|
__vsymtab_end = .;
|
||||||
}
|
}
|
||||||
.fini : { *(.fini) } =0
|
.fini : { *(.fini) } =0
|
||||||
.ctors : { *(.ctors) }
|
.ctors : { *(.ctors) }
|
||||||
.dtors : { *(.dtors) }
|
.dtors : { *(.dtors) }
|
||||||
|
|
||||||
/* Read-write section, merged into data segment: */
|
/* Read-write section, merged into data segment: */
|
||||||
. = (. + 0x00FF) & 0xFFFFFF00;
|
. = (. + 0x00FF) & 0xFFFFFF00;
|
||||||
_erotext = .;
|
_erotext = .;
|
||||||
PROVIDE (erotext = .);
|
PROVIDE (erotext = .);
|
||||||
.reloc :
|
.reloc :
|
||||||
{
|
{
|
||||||
*(.got)
|
*(.got)
|
||||||
_GOT2_TABLE_ = .;
|
_GOT2_TABLE_ = .;
|
||||||
*(.got2)
|
*(.got2)
|
||||||
_FIXUP_TABLE_ = .;
|
_FIXUP_TABLE_ = .;
|
||||||
*(.fixup)
|
*(.fixup)
|
||||||
}
|
}
|
||||||
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
|
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
|
||||||
__fixup_entries = (. - _FIXUP_TABLE_)>>2;
|
__fixup_entries = (. - _FIXUP_TABLE_)>>2;
|
||||||
|
|
||||||
.data :
|
.data :
|
||||||
{
|
{
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data1)
|
*(.data1)
|
||||||
*(.sdata)
|
*(.sdata)
|
||||||
*(.sdata2)
|
*(.sdata2)
|
||||||
*(.dynamic)
|
*(.dynamic)
|
||||||
CONSTRUCTORS
|
CONSTRUCTORS
|
||||||
}
|
}
|
||||||
_edata = .;
|
_edata = .;
|
||||||
PROVIDE (edata = .);
|
PROVIDE (edata = .);
|
||||||
|
|
||||||
. = .;
|
. = .;
|
||||||
__start___ex_table = .;
|
__start___ex_table = .;
|
||||||
__ex_table : { *(__ex_table) }
|
__ex_table : { *(__ex_table) }
|
||||||
__stop___ex_table = .;
|
__stop___ex_table = .;
|
||||||
|
|
||||||
. = ALIGN(256);
|
. = ALIGN(256);
|
||||||
__init_begin = .;
|
__init_begin = .;
|
||||||
.text.init : { *(.text.init) }
|
.text.init : { *(.text.init) }
|
||||||
.data.init : { *(.data.init) }
|
.data.init : { *(.data.init) }
|
||||||
. = ALIGN(256);
|
. = ALIGN(256);
|
||||||
__init_end = .;
|
__init_end = .;
|
||||||
|
|
||||||
__bss_start = .;
|
__bss_start = .;
|
||||||
.bss (NOLOAD) :
|
.bss (NOLOAD) :
|
||||||
{
|
{
|
||||||
*(.sbss) *(.scommon)
|
*(.sbss) *(.scommon)
|
||||||
*(.dynbss)
|
*(.dynbss)
|
||||||
*(.bss)
|
*(.bss)
|
||||||
*(COMMON)
|
*(COMMON)
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
}
|
}
|
||||||
__bss_end = .;
|
__bss_end = .;
|
||||||
|
|
||||||
. = ALIGN(256);
|
. = ALIGN(256);
|
||||||
|
|
||||||
PROVIDE(__stack_bottom = .);
|
PROVIDE(__stack_bottom = .);
|
||||||
. += 0x100000; /* 1MB */
|
. += 0x100000; /* 1MB */
|
||||||
PROVIDE(__stack_top = .);
|
PROVIDE(__stack_top = .);
|
||||||
|
|
||||||
. = ALIGN(256);
|
. = ALIGN(256);
|
||||||
PROVIDE (__heap_start = .);
|
PROVIDE (__heap_start = .);
|
||||||
. += 0x500000; /* 5MB */
|
. += 0x500000; /* 5MB */
|
||||||
PROVIDE(__heap_end = .);
|
PROVIDE(__heap_end = .);
|
||||||
|
|
||||||
_end = . ;
|
_end = . ;
|
||||||
PROVIDE (end = .);
|
PROVIDE (end = .);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,157 +1,157 @@
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// XLINK command file template for V850E microcontroller uPD70F3454.
|
// XLINK command file template for V850E microcontroller uPD70F3454.
|
||||||
//
|
//
|
||||||
// This file can be used to link object files from the V850E
|
// This file can be used to link object files from the V850E
|
||||||
// Assembler, AV850, and the C/C++ compiler ICCV850.
|
// Assembler, AV850, and the C/C++ compiler ICCV850.
|
||||||
//
|
//
|
||||||
// This file is generated from the device file:
|
// This file is generated from the device file:
|
||||||
// DF3454.800
|
// DF3454.800
|
||||||
// Copyright (C) NEC Corporation 2007
|
// Copyright (C) NEC Corporation 2007
|
||||||
// Format version 2.20, File version 1.00
|
// Format version 2.20, File version 1.00
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// The following segments are defined in this template link file:
|
// The following segments are defined in this template link file:
|
||||||
//
|
//
|
||||||
// INTVEC -- Interrupt vectors.
|
// INTVEC -- Interrupt vectors.
|
||||||
// TRAPVEC -- Trap vector.
|
// TRAPVEC -- Trap vector.
|
||||||
// CLTVEC -- Calltable vectors.
|
// CLTVEC -- Calltable vectors.
|
||||||
// CSTART -- The C/C++ startup code.
|
// CSTART -- The C/C++ startup code.
|
||||||
// RCODE -- Code used by C/C++ run-time library.
|
// RCODE -- Code used by C/C++ run-time library.
|
||||||
// ICODE -- Code used by interrupt functions.
|
// ICODE -- Code used by interrupt functions.
|
||||||
// CLTCODE -- Code of calltable functions.
|
// CLTCODE -- Code of calltable functions.
|
||||||
// CODE -- Program code.
|
// CODE -- Program code.
|
||||||
// DIFUNCT -- Dynamic initialization vector used by C++
|
// DIFUNCT -- Dynamic initialization vector used by C++
|
||||||
// CSTACK -- The stack used by C/C++ programs.
|
// CSTACK -- The stack used by C/C++ programs.
|
||||||
// HEAP -- The heap used for malloc and free
|
// HEAP -- The heap used for malloc and free
|
||||||
// SADDR7_x -- Variables used by __saddr (128 byte offset).
|
// SADDR7_x -- Variables used by __saddr (128 byte offset).
|
||||||
// SADDR8_x -- Variables used by __saddr (256 byte offset).
|
// SADDR8_x -- Variables used by __saddr (256 byte offset).
|
||||||
// NEAR_x -- Variables used by __near (must be +- 32KB from address 0).
|
// NEAR_x -- Variables used by __near (must be +- 32KB from address 0).
|
||||||
// BREL_x -- Variables used by __brel.
|
// BREL_x -- Variables used by __brel.
|
||||||
// HUGE_x -- Variables used by __huge.
|
// HUGE_x -- Variables used by __huge.
|
||||||
//
|
//
|
||||||
// Where _x could be one of:
|
// Where _x could be one of:
|
||||||
//
|
//
|
||||||
// _BASE -- An empty placeholder segment that should be placed
|
// _BASE -- An empty placeholder segment that should be placed
|
||||||
// in front of the other segments (SADDR and BREL).
|
// in front of the other segments (SADDR and BREL).
|
||||||
// _CBASE -- An empty placeholder segment that should be placed
|
// _CBASE -- An empty placeholder segment that should be placed
|
||||||
// in front of the other segments (BREL_C).
|
// in front of the other segments (BREL_C).
|
||||||
// _Z -- Initialized data (initvalue = 0 or without init value).
|
// _Z -- Initialized data (initvalue = 0 or without init value).
|
||||||
// _I -- Initialized data (initvalue != 0).
|
// _I -- Initialized data (initvalue != 0).
|
||||||
// _ID -- The inial values of _I.
|
// _ID -- The inial values of _I.
|
||||||
// _N -- Uninitialized data, used by __no_init.
|
// _N -- Uninitialized data, used by __no_init.
|
||||||
// _C -- Constants.
|
// _C -- Constants.
|
||||||
//
|
//
|
||||||
// NOTE: Be sure to use end values for the defined addresses.
|
// NOTE: Be sure to use end values for the defined addresses.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// Define CPU
|
// Define CPU
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
-cv850
|
-cv850
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// Size of the stack.
|
// Size of the stack.
|
||||||
// Remove comment and modify number if used from command line.
|
// Remove comment and modify number if used from command line.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
//-D_CSTACK_SIZE=400
|
//-D_CSTACK_SIZE=400
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// Size of the heap.
|
// Size of the heap.
|
||||||
// Remove comment and modify number if used from command line.
|
// Remove comment and modify number if used from command line.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
//-D_HEAP_SIZE=400
|
//-D_HEAP_SIZE=400
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// Define the format functions used by printf/scanf.
|
// Define the format functions used by printf/scanf.
|
||||||
// Default is full formatting.
|
// Default is full formatting.
|
||||||
// Remove appropriate comment(s) to get reduced formatting
|
// Remove appropriate comment(s) to get reduced formatting
|
||||||
// if used from command line.
|
// if used from command line.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
//-e_PrintfTiny=_Printf
|
//-e_PrintfTiny=_Printf
|
||||||
//-e_PrintfSmall=_Printf
|
//-e_PrintfSmall=_Printf
|
||||||
//-e_PrintfLarge=_Printf
|
//-e_PrintfLarge=_Printf
|
||||||
|
|
||||||
//-e_ScanfSmall=_Scanf
|
//-e_ScanfSmall=_Scanf
|
||||||
//-e_ScanfLarge=_Scanf
|
//-e_ScanfLarge=_Scanf
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// Define if row buffering should be used by terminal output.
|
// Define if row buffering should be used by terminal output.
|
||||||
// Default is no buffering.
|
// Default is no buffering.
|
||||||
// Remove comment to get buffered terminal output if used from command line.
|
// Remove comment to get buffered terminal output if used from command line.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
//-e__write_buffered=__write
|
//-e__write_buffered=__write
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// Allocate the read only segments that are mapped to ROM.
|
// Allocate the read only segments that are mapped to ROM.
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
-Z(CODE)INTVEC=00000000-000007CF
|
-Z(CODE)INTVEC=00000000-000007CF
|
||||||
-Z(CONST)SECUID=00000070-00000079
|
-Z(CONST)SECUID=00000070-00000079
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// BREL_CBASE is an empty placeholer segment, it should be placed in
|
// BREL_CBASE is an empty placeholer segment, it should be placed in
|
||||||
// front of the BREL_C segments holding constant data.
|
// front of the BREL_C segments holding constant data.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
-Z(CONST)NEAR_C=000007D0-00007FFF
|
-Z(CONST)NEAR_C=000007D0-00007FFF
|
||||||
-Z(CONST)BREL_CBASE,BREL_C=000007D0-0000FFFF
|
-Z(CONST)BREL_CBASE,BREL_C=000007D0-0000FFFF
|
||||||
-Z(CONST)HUGE_C=000007D0-0003FFFB
|
-Z(CONST)HUGE_C=000007D0-0003FFFB
|
||||||
-Z(CODE)CSTART,RCODE,ICODE,TRAPVEC,DIFUNCT=000007D0-0003FFFB
|
-Z(CODE)CSTART,RCODE,ICODE,TRAPVEC,DIFUNCT=000007D0-0003FFFB
|
||||||
-Z(CONST)SADDR7_ID,SADDR8_ID,NEAR_ID,BREL_ID,HUGE_ID=000007D0-0003FFFB
|
-Z(CONST)SADDR7_ID,SADDR8_ID,NEAR_ID,BREL_ID,HUGE_ID=000007D0-0003FFFB
|
||||||
-Z(CONST)CLTVEC=000007D0-0003FFFB
|
-Z(CONST)CLTVEC=000007D0-0003FFFB
|
||||||
|
|
||||||
-Z(CODE)CLTCODE,CODE=000007D0-0003FFFB
|
-Z(CODE)CLTCODE,CODE=000007D0-0003FFFB
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// The CHECKSUM segment must be defined when ROM checksum should
|
// The CHECKSUM segment must be defined when ROM checksum should
|
||||||
// be generated.
|
// be generated.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
-Z(CONST)CHECKSUM=0003FFFC-0003FFFF
|
-Z(CONST)CHECKSUM=0003FFFC-0003FFFF
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// Allocate the read/write segments that are mapped to RAM.
|
// Allocate the read/write segments that are mapped to RAM.
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// Short loads relative from EP with 7 and 8 bit offset.
|
// Short loads relative from EP with 7 and 8 bit offset.
|
||||||
//
|
//
|
||||||
// SADDR_BASE is an empty segment that mark the beginning of the saddr
|
// SADDR_BASE is an empty segment that mark the beginning of the saddr
|
||||||
// data segments.
|
// data segments.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
-Z(DATA)SADDR_BASE=FFFFC000
|
-Z(DATA)SADDR_BASE=FFFFC000
|
||||||
-Z(DATA)SADDR7_I,SADDR7_Z,SADDR7_N=FFFFC000-FFFFC07F
|
-Z(DATA)SADDR7_I,SADDR7_Z,SADDR7_N=FFFFC000-FFFFC07F
|
||||||
-Z(DATA)SADDR8_I,SADDR8_Z,SADDR8_N=FFFFC000-FFFFC0FF
|
-Z(DATA)SADDR8_I,SADDR8_Z,SADDR8_N=FFFFC000-FFFFC0FF
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// 16-bit access from GP.
|
// 16-bit access from GP.
|
||||||
// BREL_BASE is an empty placeholer segment, it should be placed in
|
// BREL_BASE is an empty placeholer segment, it should be placed in
|
||||||
// front of the DATA (i.e. RAM) BREL segments.
|
// front of the DATA (i.e. RAM) BREL segments.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
-Z(DATA)BREL_BASE,BREL_I,BREL_Z,BREL_N=FFFFC000-FFFFEFFF
|
-Z(DATA)BREL_BASE,BREL_I,BREL_Z,BREL_N=FFFFC000-FFFFEFFF
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// Global and 32-bit offset from GP.
|
// Global and 32-bit offset from GP.
|
||||||
// The rest of the external memory (all external memory not used
|
// The rest of the external memory (all external memory not used
|
||||||
// by BREL segment variables) is addressed with HUGE memory model.
|
// by BREL segment variables) is addressed with HUGE memory model.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
-Z(DATA)HUGE_I,HUGE_Z,HUGE_N=FFFFBFFC-FFFFBFFC // No memory availabale
|
-Z(DATA)HUGE_I,HUGE_Z,HUGE_N=FFFFBFFC-FFFFBFFC // No memory availabale
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// Data relative from zero with 16 bit offset.
|
// Data relative from zero with 16 bit offset.
|
||||||
// This segment is for TINY data model. All internal memory, SFR,
|
// This segment is for TINY data model. All internal memory, SFR,
|
||||||
// and CONST variables in area 0000-7FFF may be accessed.
|
// and CONST variables in area 0000-7FFF may be accessed.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
-Z(DATA)NEAR_Z,NEAR_I,NEAR_N=FFFFC000-FFFFEFFF
|
-Z(DATA)NEAR_Z,NEAR_I,NEAR_N=FFFFC000-FFFFEFFF
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// The stack and the heap.
|
// The stack and the heap.
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
-Z(DATA)CSTACK+_CSTACK_SIZE,HEAP+_HEAP_SIZE=FFFFC000-FFFFEFFF
|
-Z(DATA)CSTACK+_CSTACK_SIZE,HEAP+_HEAP_SIZE=FFFFC000-FFFFEFFF
|
||||||
|
|
||||||
// Set up near RT_HEAP
|
// Set up near RT_HEAP
|
||||||
//fify 20100505 HEAP for RTT
|
//fify 20100505 HEAP for RTT
|
||||||
-Z(DATA)RT_HEAP+800=FFFFC000-FFFFEFFF
|
-Z(DATA)RT_HEAP+800=FFFFC000-FFFFEFFF
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// End of File
|
// End of File
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1 +1 @@
|
||||||
Ricky Zheng <ricky_gz_zheng@yahoo.co.nz>
|
Ricky Zheng <ricky_gz_zheng@yahoo.co.nz>
|
||||||
|
|
|
@ -1,339 +1,339 @@
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
Preamble
|
Preamble
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
The licenses for most software are designed to take away your
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
License is intended to guarantee your freedom to share and change free
|
License is intended to guarantee your freedom to share and change free
|
||||||
software--to make sure the software is free for all its users. This
|
software--to make sure the software is free for all its users. This
|
||||||
General Public License applies to most of the Free Software
|
General Public License applies to most of the Free Software
|
||||||
Foundation's software and to any other program whose authors commit to
|
Foundation's software and to any other program whose authors commit to
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
the GNU Lesser General Public License instead.) You can apply it to
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
your programs, too.
|
your programs, too.
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
When we speak of free software, we are referring to freedom, not
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
have the freedom to distribute copies of free software (and charge for
|
have the freedom to distribute copies of free software (and charge for
|
||||||
this service if you wish), that you receive source code or can get it
|
this service if you wish), that you receive source code or can get it
|
||||||
if you want it, that you can change the software or use pieces of it
|
if you want it, that you can change the software or use pieces of it
|
||||||
in new free programs; and that you know you can do these things.
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
To protect your rights, we need to make restrictions that forbid
|
||||||
anyone to deny you these rights or to ask you to surrender the rights.
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
These restrictions translate to certain responsibilities for you if you
|
These restrictions translate to certain responsibilities for you if you
|
||||||
distribute copies of the software, or if you modify it.
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
For example, if you distribute copies of such a program, whether
|
||||||
gratis or for a fee, you must give the recipients all the rights that
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
you have. You must make sure that they, too, receive or can get the
|
you have. You must make sure that they, too, receive or can get the
|
||||||
source code. And you must show them these terms so they know their
|
source code. And you must show them these terms so they know their
|
||||||
rights.
|
rights.
|
||||||
|
|
||||||
We protect your rights with two steps: (1) copyright the software, and
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
(2) offer you this license which gives you legal permission to copy,
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
distribute and/or modify the software.
|
distribute and/or modify the software.
|
||||||
|
|
||||||
Also, for each author's protection and ours, we want to make certain
|
Also, for each author's protection and ours, we want to make certain
|
||||||
that everyone understands that there is no warranty for this free
|
that everyone understands that there is no warranty for this free
|
||||||
software. If the software is modified by someone else and passed on, we
|
software. If the software is modified by someone else and passed on, we
|
||||||
want its recipients to know that what they have is not the original, so
|
want its recipients to know that what they have is not the original, so
|
||||||
that any problems introduced by others will not reflect on the original
|
that any problems introduced by others will not reflect on the original
|
||||||
authors' reputations.
|
authors' reputations.
|
||||||
|
|
||||||
Finally, any free program is threatened constantly by software
|
Finally, any free program is threatened constantly by software
|
||||||
patents. We wish to avoid the danger that redistributors of a free
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
program will individually obtain patent licenses, in effect making the
|
program will individually obtain patent licenses, in effect making the
|
||||||
program proprietary. To prevent this, we have made it clear that any
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
patent must be licensed for everyone's free use or not licensed at all.
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
0. This License applies to any program or other work which contains
|
||||||
a notice placed by the copyright holder saying it may be distributed
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
under the terms of this General Public License. The "Program", below,
|
under the terms of this General Public License. The "Program", below,
|
||||||
refers to any such program or work, and a "work based on the Program"
|
refers to any such program or work, and a "work based on the Program"
|
||||||
means either the Program or any derivative work under copyright law:
|
means either the Program or any derivative work under copyright law:
|
||||||
that is to say, a work containing the Program or a portion of it,
|
that is to say, a work containing the Program or a portion of it,
|
||||||
either verbatim or with modifications and/or translated into another
|
either verbatim or with modifications and/or translated into another
|
||||||
language. (Hereinafter, translation is included without limitation in
|
language. (Hereinafter, translation is included without limitation in
|
||||||
the term "modification".) Each licensee is addressed as "you".
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
Activities other than copying, distribution and modification are not
|
||||||
covered by this License; they are outside its scope. The act of
|
covered by this License; they are outside its scope. The act of
|
||||||
running the Program is not restricted, and the output from the Program
|
running the Program is not restricted, and the output from the Program
|
||||||
is covered only if its contents constitute a work based on the
|
is covered only if its contents constitute a work based on the
|
||||||
Program (independent of having been made by running the Program).
|
Program (independent of having been made by running the Program).
|
||||||
Whether that is true depends on what the Program does.
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Program's
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
source code as you receive it, in any medium, provided that you
|
source code as you receive it, in any medium, provided that you
|
||||||
conspicuously and appropriately publish on each copy an appropriate
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
copyright notice and disclaimer of warranty; keep intact all the
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
notices that refer to this License and to the absence of any warranty;
|
notices that refer to this License and to the absence of any warranty;
|
||||||
and give any other recipients of the Program a copy of this License
|
and give any other recipients of the Program a copy of this License
|
||||||
along with the Program.
|
along with the Program.
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy, and
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
you may at your option offer warranty protection in exchange for a fee.
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Program or any portion
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
of it, thus forming a work based on the Program, and copy and
|
of it, thus forming a work based on the Program, and copy and
|
||||||
distribute such modifications or work under the terms of Section 1
|
distribute such modifications or work under the terms of Section 1
|
||||||
above, provided that you also meet all of these conditions:
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
a) You must cause the modified files to carry prominent notices
|
a) You must cause the modified files to carry prominent notices
|
||||||
stating that you changed the files and the date of any change.
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
b) You must cause any work that you distribute or publish, that in
|
b) You must cause any work that you distribute or publish, that in
|
||||||
whole or in part contains or is derived from the Program or any
|
whole or in part contains or is derived from the Program or any
|
||||||
part thereof, to be licensed as a whole at no charge to all third
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
parties under the terms of this License.
|
parties under the terms of this License.
|
||||||
|
|
||||||
c) If the modified program normally reads commands interactively
|
c) If the modified program normally reads commands interactively
|
||||||
when run, you must cause it, when started running for such
|
when run, you must cause it, when started running for such
|
||||||
interactive use in the most ordinary way, to print or display an
|
interactive use in the most ordinary way, to print or display an
|
||||||
announcement including an appropriate copyright notice and a
|
announcement including an appropriate copyright notice and a
|
||||||
notice that there is no warranty (or else, saying that you provide
|
notice that there is no warranty (or else, saying that you provide
|
||||||
a warranty) and that users may redistribute the program under
|
a warranty) and that users may redistribute the program under
|
||||||
these conditions, and telling the user how to view a copy of this
|
these conditions, and telling the user how to view a copy of this
|
||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
themselves, then this License, and its terms, do not apply to those
|
themselves, then this License, and its terms, do not apply to those
|
||||||
sections when you distribute them as separate works. But when you
|
sections when you distribute them as separate works. But when you
|
||||||
distribute the same sections as part of a whole which is a work based
|
distribute the same sections as part of a whole which is a work based
|
||||||
on the Program, the distribution of the whole must be on the terms of
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
this License, whose permissions for other licensees extend to the
|
this License, whose permissions for other licensees extend to the
|
||||||
entire whole, and thus to each and every part regardless of who wrote it.
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
exercise the right to control the distribution of derivative or
|
exercise the right to control the distribution of derivative or
|
||||||
collective works based on the Program.
|
collective works based on the Program.
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Program
|
In addition, mere aggregation of another work not based on the Program
|
||||||
with the Program (or with a work based on the Program) on a volume of
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
a storage or distribution medium does not bring the other work under
|
a storage or distribution medium does not bring the other work under
|
||||||
the scope of this License.
|
the scope of this License.
|
||||||
|
|
||||||
3. You may copy and distribute the Program (or a work based on it,
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
under Section 2) in object code or executable form under the terms of
|
under Section 2) in object code or executable form under the terms of
|
||||||
Sections 1 and 2 above provided that you also do one of the following:
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
a) Accompany it with the complete corresponding machine-readable
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
source code, which must be distributed under the terms of Sections
|
source code, which must be distributed under the terms of Sections
|
||||||
1 and 2 above on a medium customarily used for software interchange; or,
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
b) Accompany it with a written offer, valid for at least three
|
b) Accompany it with a written offer, valid for at least three
|
||||||
years, to give any third party, for a charge no more than your
|
years, to give any third party, for a charge no more than your
|
||||||
cost of physically performing source distribution, a complete
|
cost of physically performing source distribution, a complete
|
||||||
machine-readable copy of the corresponding source code, to be
|
machine-readable copy of the corresponding source code, to be
|
||||||
distributed under the terms of Sections 1 and 2 above on a medium
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
customarily used for software interchange; or,
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
c) Accompany it with the information you received as to the offer
|
c) Accompany it with the information you received as to the offer
|
||||||
to distribute corresponding source code. (This alternative is
|
to distribute corresponding source code. (This alternative is
|
||||||
allowed only for noncommercial distribution and only if you
|
allowed only for noncommercial distribution and only if you
|
||||||
received the program in object code or executable form with such
|
received the program in object code or executable form with such
|
||||||
an offer, in accord with Subsection b above.)
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
The source code for a work means the preferred form of the work for
|
The source code for a work means the preferred form of the work for
|
||||||
making modifications to it. For an executable work, complete source
|
making modifications to it. For an executable work, complete source
|
||||||
code means all the source code for all modules it contains, plus any
|
code means all the source code for all modules it contains, plus any
|
||||||
associated interface definition files, plus the scripts used to
|
associated interface definition files, plus the scripts used to
|
||||||
control compilation and installation of the executable. However, as a
|
control compilation and installation of the executable. However, as a
|
||||||
special exception, the source code distributed need not include
|
special exception, the source code distributed need not include
|
||||||
anything that is normally distributed (in either source or binary
|
anything that is normally distributed (in either source or binary
|
||||||
form) with the major components (compiler, kernel, and so on) of the
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
operating system on which the executable runs, unless that component
|
operating system on which the executable runs, unless that component
|
||||||
itself accompanies the executable.
|
itself accompanies the executable.
|
||||||
|
|
||||||
If distribution of executable or object code is made by offering
|
If distribution of executable or object code is made by offering
|
||||||
access to copy from a designated place, then offering equivalent
|
access to copy from a designated place, then offering equivalent
|
||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
void, and will automatically terminate your rights under this License.
|
void, and will automatically terminate your rights under this License.
|
||||||
However, parties who have received copies, or rights, from you under
|
However, parties who have received copies, or rights, from you under
|
||||||
this License will not have their licenses terminated so long as such
|
this License will not have their licenses terminated so long as such
|
||||||
parties remain in full compliance.
|
parties remain in full compliance.
|
||||||
|
|
||||||
5. You are not required to accept this License, since you have not
|
5. You are not required to accept this License, since you have not
|
||||||
signed it. However, nothing else grants you permission to modify or
|
signed it. However, nothing else grants you permission to modify or
|
||||||
distribute the Program or its derivative works. These actions are
|
distribute the Program or its derivative works. These actions are
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
modifying or distributing the Program (or any work based on the
|
modifying or distributing the Program (or any work based on the
|
||||||
Program), you indicate your acceptance of this License to do so, and
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
all its terms and conditions for copying, distributing or modifying
|
all its terms and conditions for copying, distributing or modifying
|
||||||
the Program or works based on it.
|
the Program or works based on it.
|
||||||
|
|
||||||
6. Each time you redistribute the Program (or any work based on the
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
Program), the recipient automatically receives a license from the
|
Program), the recipient automatically receives a license from the
|
||||||
original licensor to copy, distribute or modify the Program subject to
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
these terms and conditions. You may not impose any further
|
these terms and conditions. You may not impose any further
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
You are not responsible for enforcing compliance by third parties to
|
You are not responsible for enforcing compliance by third parties to
|
||||||
this License.
|
this License.
|
||||||
|
|
||||||
7. If, as a consequence of a court judgment or allegation of patent
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
infringement or for any other reason (not limited to patent issues),
|
infringement or for any other reason (not limited to patent issues),
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
excuse you from the conditions of this License. If you cannot
|
excuse you from the conditions of this License. If you cannot
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
License and any other pertinent obligations, then as a consequence you
|
License and any other pertinent obligations, then as a consequence you
|
||||||
may not distribute the Program at all. For example, if a patent
|
may not distribute the Program at all. For example, if a patent
|
||||||
license would not permit royalty-free redistribution of the Program by
|
license would not permit royalty-free redistribution of the Program by
|
||||||
all those who receive copies directly or indirectly through you, then
|
all those who receive copies directly or indirectly through you, then
|
||||||
the only way you could satisfy both it and this License would be to
|
the only way you could satisfy both it and this License would be to
|
||||||
refrain entirely from distribution of the Program.
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under
|
If any portion of this section is held invalid or unenforceable under
|
||||||
any particular circumstance, the balance of the section is intended to
|
any particular circumstance, the balance of the section is intended to
|
||||||
apply and the section as a whole is intended to apply in other
|
apply and the section as a whole is intended to apply in other
|
||||||
circumstances.
|
circumstances.
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
It is not the purpose of this section to induce you to infringe any
|
||||||
patents or other property right claims or to contest validity of any
|
patents or other property right claims or to contest validity of any
|
||||||
such claims; this section has the sole purpose of protecting the
|
such claims; this section has the sole purpose of protecting the
|
||||||
integrity of the free software distribution system, which is
|
integrity of the free software distribution system, which is
|
||||||
implemented by public license practices. Many people have made
|
implemented by public license practices. Many people have made
|
||||||
generous contributions to the wide range of software distributed
|
generous contributions to the wide range of software distributed
|
||||||
through that system in reliance on consistent application of that
|
through that system in reliance on consistent application of that
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
to distribute software through any other system and a licensee cannot
|
to distribute software through any other system and a licensee cannot
|
||||||
impose that choice.
|
impose that choice.
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
may add an explicit geographical distribution limitation excluding
|
may add an explicit geographical distribution limitation excluding
|
||||||
those countries, so that distribution is permitted only in or among
|
those countries, so that distribution is permitted only in or among
|
||||||
countries not thus excluded. In such case, this License incorporates
|
countries not thus excluded. In such case, this License incorporates
|
||||||
the limitation as if written in the body of this License.
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
9. The Free Software Foundation may publish revised and/or new versions
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
of the General Public License from time to time. Such new versions will
|
of the General Public License from time to time. Such new versions will
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
address new problems or concerns.
|
address new problems or concerns.
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Program
|
Each version is given a distinguishing version number. If the Program
|
||||||
specifies a version number of this License which applies to it and "any
|
specifies a version number of this License which applies to it and "any
|
||||||
later version", you have the option of following the terms and conditions
|
later version", you have the option of following the terms and conditions
|
||||||
either of that version or of any later version published by the Free
|
either of that version or of any later version published by the Free
|
||||||
Software Foundation. If the Program does not specify a version number of
|
Software Foundation. If the Program does not specify a version number of
|
||||||
this License, you may choose any version ever published by the Free Software
|
this License, you may choose any version ever published by the Free Software
|
||||||
Foundation.
|
Foundation.
|
||||||
|
|
||||||
10. If you wish to incorporate parts of the Program into other free
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
programs whose distribution conditions are different, write to the author
|
programs whose distribution conditions are different, write to the author
|
||||||
to ask for permission. For software which is copyrighted by the Free
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
make exceptions for this. Our decision will be guided by the two goals
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
of preserving the free status of all derivatives of our free software and
|
of preserving the free status of all derivatives of our free software and
|
||||||
of promoting the sharing and reuse of software generally.
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
NO WARRANTY
|
NO WARRANTY
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
REPAIR OR CORRECTION.
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
If you develop a new program, and you want it to be of the greatest
|
||||||
possible use to the public, the best way to achieve this is to make it
|
possible use to the public, the best way to achieve this is to make it
|
||||||
free software which everyone can redistribute and change under these terms.
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
To do so, attach the following notices to the program. It is safest
|
||||||
to attach them to the start of each source file to most effectively
|
to attach them to the start of each source file to most effectively
|
||||||
convey the exclusion of warranty; and each file should have at least
|
convey the exclusion of warranty; and each file should have at least
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
Copyright (C) <year> <name of author>
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
If the program is interactive, make it output a short notice like this
|
||||||
when it starts in an interactive mode:
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
parts of the General Public License. Of course, the commands you use may
|
parts of the General Public License. Of course, the commands you use may
|
||||||
be called something other than `show w' and `show c'; they could even be
|
be called something other than `show w' and `show c'; they could even be
|
||||||
mouse-clicks or menu items--whatever suits your program.
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
You should also get your employer (if you work as a programmer) or your
|
||||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
necessary. Here is a sample; alter the names:
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1989
|
<signature of Ty Coon>, 1 April 1989
|
||||||
Ty Coon, President of Vice
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
This General Public License does not permit incorporating your program into
|
This General Public License does not permit incorporating your program into
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
consider it more useful to permit linking proprietary applications with the
|
consider it more useful to permit linking proprietary applications with the
|
||||||
library. If this is what you want to do, use the GNU Lesser General
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License.
|
Public License instead of this License.
|
||||||
|
|
|
@ -1,275 +1,275 @@
|
||||||
# Doxyfile 1.4.1-KDevelop
|
# Doxyfile 1.4.1-KDevelop
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Project related configuration options
|
# Project related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
PROJECT_NAME = uffs-doc
|
PROJECT_NAME = uffs-doc
|
||||||
PROJECT_NUMBER = 0.1
|
PROJECT_NUMBER = 0.1
|
||||||
OUTPUT_DIRECTORY = doc/doxygen-doc
|
OUTPUT_DIRECTORY = doc/doxygen-doc
|
||||||
CREATE_SUBDIRS = NO
|
CREATE_SUBDIRS = NO
|
||||||
OUTPUT_LANGUAGE = English
|
OUTPUT_LANGUAGE = English
|
||||||
USE_WINDOWS_ENCODING = NO
|
USE_WINDOWS_ENCODING = NO
|
||||||
BRIEF_MEMBER_DESC = YES
|
BRIEF_MEMBER_DESC = YES
|
||||||
REPEAT_BRIEF = YES
|
REPEAT_BRIEF = YES
|
||||||
ABBREVIATE_BRIEF = "The $name class" \
|
ABBREVIATE_BRIEF = "The $name class" \
|
||||||
"The $name widget" \
|
"The $name widget" \
|
||||||
"The $name file" \
|
"The $name file" \
|
||||||
is \
|
is \
|
||||||
provides \
|
provides \
|
||||||
specifies \
|
specifies \
|
||||||
contains \
|
contains \
|
||||||
represents \
|
represents \
|
||||||
a \
|
a \
|
||||||
an \
|
an \
|
||||||
the
|
the
|
||||||
ALWAYS_DETAILED_SEC = NO
|
ALWAYS_DETAILED_SEC = NO
|
||||||
INLINE_INHERITED_MEMB = NO
|
INLINE_INHERITED_MEMB = NO
|
||||||
FULL_PATH_NAMES = YES
|
FULL_PATH_NAMES = YES
|
||||||
STRIP_FROM_PATH = ./
|
STRIP_FROM_PATH = ./
|
||||||
STRIP_FROM_INC_PATH =
|
STRIP_FROM_INC_PATH =
|
||||||
SHORT_NAMES = NO
|
SHORT_NAMES = NO
|
||||||
JAVADOC_AUTOBRIEF = NO
|
JAVADOC_AUTOBRIEF = NO
|
||||||
MULTILINE_CPP_IS_BRIEF = NO
|
MULTILINE_CPP_IS_BRIEF = NO
|
||||||
DETAILS_AT_TOP = NO
|
DETAILS_AT_TOP = NO
|
||||||
INHERIT_DOCS = YES
|
INHERIT_DOCS = YES
|
||||||
DISTRIBUTE_GROUP_DOC = NO
|
DISTRIBUTE_GROUP_DOC = NO
|
||||||
TAB_SIZE = 4
|
TAB_SIZE = 4
|
||||||
ALIASES =
|
ALIASES =
|
||||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
OPTIMIZE_OUTPUT_JAVA = NO
|
OPTIMIZE_OUTPUT_JAVA = NO
|
||||||
SUBGROUPING = YES
|
SUBGROUPING = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Build related configuration options
|
# Build related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
EXTRACT_ALL = YES
|
EXTRACT_ALL = YES
|
||||||
EXTRACT_PRIVATE = NO
|
EXTRACT_PRIVATE = NO
|
||||||
EXTRACT_STATIC = NO
|
EXTRACT_STATIC = NO
|
||||||
EXTRACT_LOCAL_CLASSES = NO
|
EXTRACT_LOCAL_CLASSES = NO
|
||||||
EXTRACT_LOCAL_METHODS = NO
|
EXTRACT_LOCAL_METHODS = NO
|
||||||
HIDE_UNDOC_MEMBERS = NO
|
HIDE_UNDOC_MEMBERS = NO
|
||||||
HIDE_UNDOC_CLASSES = NO
|
HIDE_UNDOC_CLASSES = NO
|
||||||
HIDE_FRIEND_COMPOUNDS = YES
|
HIDE_FRIEND_COMPOUNDS = YES
|
||||||
HIDE_IN_BODY_DOCS = NO
|
HIDE_IN_BODY_DOCS = NO
|
||||||
INTERNAL_DOCS = YES
|
INTERNAL_DOCS = YES
|
||||||
CASE_SENSE_NAMES = NO
|
CASE_SENSE_NAMES = NO
|
||||||
HIDE_SCOPE_NAMES = NO
|
HIDE_SCOPE_NAMES = NO
|
||||||
SHOW_INCLUDE_FILES = YES
|
SHOW_INCLUDE_FILES = YES
|
||||||
INLINE_INFO = YES
|
INLINE_INFO = YES
|
||||||
SORT_MEMBER_DOCS = YES
|
SORT_MEMBER_DOCS = YES
|
||||||
SORT_BRIEF_DOCS = YES
|
SORT_BRIEF_DOCS = YES
|
||||||
SORT_BY_SCOPE_NAME = YES
|
SORT_BY_SCOPE_NAME = YES
|
||||||
GENERATE_TODOLIST = YES
|
GENERATE_TODOLIST = YES
|
||||||
GENERATE_TESTLIST = YES
|
GENERATE_TESTLIST = YES
|
||||||
GENERATE_BUGLIST = YES
|
GENERATE_BUGLIST = YES
|
||||||
GENERATE_DEPRECATEDLIST= YES
|
GENERATE_DEPRECATEDLIST= YES
|
||||||
ENABLED_SECTIONS =
|
ENABLED_SECTIONS =
|
||||||
MAX_INITIALIZER_LINES = 30
|
MAX_INITIALIZER_LINES = 30
|
||||||
SHOW_USED_FILES = YES
|
SHOW_USED_FILES = YES
|
||||||
SHOW_DIRECTORIES = YES
|
SHOW_DIRECTORIES = YES
|
||||||
FILE_VERSION_FILTER =
|
FILE_VERSION_FILTER =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to warning and progress messages
|
# configuration options related to warning and progress messages
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
QUIET = NO
|
QUIET = NO
|
||||||
WARNINGS = YES
|
WARNINGS = YES
|
||||||
WARN_IF_UNDOCUMENTED = YES
|
WARN_IF_UNDOCUMENTED = YES
|
||||||
WARN_IF_DOC_ERROR = YES
|
WARN_IF_DOC_ERROR = YES
|
||||||
WARN_NO_PARAMDOC = NO
|
WARN_NO_PARAMDOC = NO
|
||||||
WARN_FORMAT = "$file:$line: $text"
|
WARN_FORMAT = "$file:$line: $text"
|
||||||
WARN_LOGFILE =
|
WARN_LOGFILE =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the input files
|
# configuration options related to the input files
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
INPUT = ./src
|
INPUT = ./src
|
||||||
FILE_PATTERNS = *.c \
|
FILE_PATTERNS = *.c \
|
||||||
*.cc \
|
*.cc \
|
||||||
*.cxx \
|
*.cxx \
|
||||||
*.cpp \
|
*.cpp \
|
||||||
*.c++ \
|
*.c++ \
|
||||||
*.java \
|
*.java \
|
||||||
*.ii \
|
*.ii \
|
||||||
*.ixx \
|
*.ixx \
|
||||||
*.ipp \
|
*.ipp \
|
||||||
*.i++ \
|
*.i++ \
|
||||||
*.inl \
|
*.inl \
|
||||||
*.h \
|
*.h \
|
||||||
*.hh \
|
*.hh \
|
||||||
*.hxx \
|
*.hxx \
|
||||||
*.hpp \
|
*.hpp \
|
||||||
*.h++ \
|
*.h++ \
|
||||||
*.idl \
|
*.idl \
|
||||||
*.odl \
|
*.odl \
|
||||||
*.cs \
|
*.cs \
|
||||||
*.php \
|
*.php \
|
||||||
*.php3 \
|
*.php3 \
|
||||||
*.inc \
|
*.inc \
|
||||||
*.m \
|
*.m \
|
||||||
*.mm \
|
*.mm \
|
||||||
*.dox \
|
*.dox \
|
||||||
*.C \
|
*.C \
|
||||||
*.CC \
|
*.CC \
|
||||||
*.C++ \
|
*.C++ \
|
||||||
*.II \
|
*.II \
|
||||||
*.I++ \
|
*.I++ \
|
||||||
*.H \
|
*.H \
|
||||||
*.HH \
|
*.HH \
|
||||||
*.H++ \
|
*.H++ \
|
||||||
*.CS \
|
*.CS \
|
||||||
*.PHP \
|
*.PHP \
|
||||||
*.PHP3 \
|
*.PHP3 \
|
||||||
*.M \
|
*.M \
|
||||||
*.MM \
|
*.MM \
|
||||||
*.C \
|
*.C \
|
||||||
*.H \
|
*.H \
|
||||||
*.tlh \
|
*.tlh \
|
||||||
*.diff \
|
*.diff \
|
||||||
*.patch \
|
*.patch \
|
||||||
*.moc \
|
*.moc \
|
||||||
*.xpm \
|
*.xpm \
|
||||||
*.dox
|
*.dox
|
||||||
RECURSIVE = YES
|
RECURSIVE = YES
|
||||||
EXCLUDE =
|
EXCLUDE =
|
||||||
EXCLUDE_SYMLINKS = NO
|
EXCLUDE_SYMLINKS = NO
|
||||||
EXCLUDE_PATTERNS =
|
EXCLUDE_PATTERNS =
|
||||||
EXAMPLE_PATH =
|
EXAMPLE_PATH =
|
||||||
EXAMPLE_PATTERNS = *
|
EXAMPLE_PATTERNS = *
|
||||||
EXAMPLE_RECURSIVE = NO
|
EXAMPLE_RECURSIVE = NO
|
||||||
IMAGE_PATH =
|
IMAGE_PATH =
|
||||||
INPUT_FILTER =
|
INPUT_FILTER =
|
||||||
FILTER_PATTERNS =
|
FILTER_PATTERNS =
|
||||||
FILTER_SOURCE_FILES = NO
|
FILTER_SOURCE_FILES = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to source browsing
|
# configuration options related to source browsing
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
SOURCE_BROWSER = YES
|
SOURCE_BROWSER = YES
|
||||||
INLINE_SOURCES = NO
|
INLINE_SOURCES = NO
|
||||||
STRIP_CODE_COMMENTS = YES
|
STRIP_CODE_COMMENTS = YES
|
||||||
REFERENCED_BY_RELATION = YES
|
REFERENCED_BY_RELATION = YES
|
||||||
REFERENCES_RELATION = YES
|
REFERENCES_RELATION = YES
|
||||||
VERBATIM_HEADERS = YES
|
VERBATIM_HEADERS = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the alphabetical class index
|
# configuration options related to the alphabetical class index
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
ALPHABETICAL_INDEX = YES
|
ALPHABETICAL_INDEX = YES
|
||||||
COLS_IN_ALPHA_INDEX = 5
|
COLS_IN_ALPHA_INDEX = 5
|
||||||
IGNORE_PREFIX =
|
IGNORE_PREFIX =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the HTML output
|
# configuration options related to the HTML output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_HTML = YES
|
GENERATE_HTML = YES
|
||||||
HTML_OUTPUT = html
|
HTML_OUTPUT = html
|
||||||
HTML_FILE_EXTENSION = .html
|
HTML_FILE_EXTENSION = .html
|
||||||
HTML_HEADER =
|
HTML_HEADER =
|
||||||
HTML_FOOTER =
|
HTML_FOOTER =
|
||||||
HTML_STYLESHEET =
|
HTML_STYLESHEET =
|
||||||
HTML_ALIGN_MEMBERS = YES
|
HTML_ALIGN_MEMBERS = YES
|
||||||
GENERATE_HTMLHELP = NO
|
GENERATE_HTMLHELP = NO
|
||||||
CHM_FILE =
|
CHM_FILE =
|
||||||
HHC_LOCATION =
|
HHC_LOCATION =
|
||||||
GENERATE_CHI = NO
|
GENERATE_CHI = NO
|
||||||
BINARY_TOC = NO
|
BINARY_TOC = NO
|
||||||
TOC_EXPAND = NO
|
TOC_EXPAND = NO
|
||||||
DISABLE_INDEX = NO
|
DISABLE_INDEX = NO
|
||||||
ENUM_VALUES_PER_LINE = 4
|
ENUM_VALUES_PER_LINE = 4
|
||||||
GENERATE_TREEVIEW = YES
|
GENERATE_TREEVIEW = YES
|
||||||
TREEVIEW_WIDTH = 250
|
TREEVIEW_WIDTH = 250
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the LaTeX output
|
# configuration options related to the LaTeX output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_LATEX = NO
|
GENERATE_LATEX = NO
|
||||||
LATEX_OUTPUT = latex
|
LATEX_OUTPUT = latex
|
||||||
LATEX_CMD_NAME = latex
|
LATEX_CMD_NAME = latex
|
||||||
MAKEINDEX_CMD_NAME = makeindex
|
MAKEINDEX_CMD_NAME = makeindex
|
||||||
COMPACT_LATEX = NO
|
COMPACT_LATEX = NO
|
||||||
PAPER_TYPE = a4wide
|
PAPER_TYPE = a4wide
|
||||||
EXTRA_PACKAGES =
|
EXTRA_PACKAGES =
|
||||||
LATEX_HEADER =
|
LATEX_HEADER =
|
||||||
PDF_HYPERLINKS = NO
|
PDF_HYPERLINKS = NO
|
||||||
USE_PDFLATEX = NO
|
USE_PDFLATEX = NO
|
||||||
LATEX_BATCHMODE = NO
|
LATEX_BATCHMODE = NO
|
||||||
LATEX_HIDE_INDICES = NO
|
LATEX_HIDE_INDICES = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the RTF output
|
# configuration options related to the RTF output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_RTF = NO
|
GENERATE_RTF = NO
|
||||||
RTF_OUTPUT = rtf
|
RTF_OUTPUT = rtf
|
||||||
COMPACT_RTF = NO
|
COMPACT_RTF = NO
|
||||||
RTF_HYPERLINKS = NO
|
RTF_HYPERLINKS = NO
|
||||||
RTF_STYLESHEET_FILE =
|
RTF_STYLESHEET_FILE =
|
||||||
RTF_EXTENSIONS_FILE =
|
RTF_EXTENSIONS_FILE =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the man page output
|
# configuration options related to the man page output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_MAN = NO
|
GENERATE_MAN = NO
|
||||||
MAN_OUTPUT = man
|
MAN_OUTPUT = man
|
||||||
MAN_EXTENSION = .3
|
MAN_EXTENSION = .3
|
||||||
MAN_LINKS = NO
|
MAN_LINKS = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the XML output
|
# configuration options related to the XML output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_XML = NO
|
GENERATE_XML = NO
|
||||||
XML_OUTPUT = xml
|
XML_OUTPUT = xml
|
||||||
XML_SCHEMA =
|
XML_SCHEMA =
|
||||||
XML_DTD =
|
XML_DTD =
|
||||||
XML_PROGRAMLISTING = YES
|
XML_PROGRAMLISTING = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options for the AutoGen Definitions output
|
# configuration options for the AutoGen Definitions output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_AUTOGEN_DEF = NO
|
GENERATE_AUTOGEN_DEF = NO
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the Perl module output
|
# configuration options related to the Perl module output
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
GENERATE_PERLMOD = NO
|
GENERATE_PERLMOD = NO
|
||||||
PERLMOD_LATEX = NO
|
PERLMOD_LATEX = NO
|
||||||
PERLMOD_PRETTY = YES
|
PERLMOD_PRETTY = YES
|
||||||
PERLMOD_MAKEVAR_PREFIX =
|
PERLMOD_MAKEVAR_PREFIX =
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the preprocessor
|
# Configuration options related to the preprocessor
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
ENABLE_PREPROCESSING = YES
|
ENABLE_PREPROCESSING = YES
|
||||||
MACRO_EXPANSION = NO
|
MACRO_EXPANSION = NO
|
||||||
EXPAND_ONLY_PREDEF = NO
|
EXPAND_ONLY_PREDEF = NO
|
||||||
SEARCH_INCLUDES = YES
|
SEARCH_INCLUDES = YES
|
||||||
INCLUDE_PATH =
|
INCLUDE_PATH =
|
||||||
INCLUDE_FILE_PATTERNS =
|
INCLUDE_FILE_PATTERNS =
|
||||||
PREDEFINED =
|
PREDEFINED =
|
||||||
EXPAND_AS_DEFINED =
|
EXPAND_AS_DEFINED =
|
||||||
SKIP_FUNCTION_MACROS = YES
|
SKIP_FUNCTION_MACROS = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration::additions related to external references
|
# Configuration::additions related to external references
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
TAGFILES =
|
TAGFILES =
|
||||||
GENERATE_TAGFILE = uffs.tag
|
GENERATE_TAGFILE = uffs.tag
|
||||||
ALLEXTERNALS = NO
|
ALLEXTERNALS = NO
|
||||||
EXTERNAL_GROUPS = YES
|
EXTERNAL_GROUPS = YES
|
||||||
PERL_PATH = /usr/bin/perl
|
PERL_PATH = /usr/bin/perl
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to the dot tool
|
# Configuration options related to the dot tool
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
CLASS_DIAGRAMS = YES
|
CLASS_DIAGRAMS = YES
|
||||||
HIDE_UNDOC_RELATIONS = YES
|
HIDE_UNDOC_RELATIONS = YES
|
||||||
HAVE_DOT = NO
|
HAVE_DOT = NO
|
||||||
CLASS_GRAPH = YES
|
CLASS_GRAPH = YES
|
||||||
COLLABORATION_GRAPH = YES
|
COLLABORATION_GRAPH = YES
|
||||||
GROUP_GRAPHS = YES
|
GROUP_GRAPHS = YES
|
||||||
UML_LOOK = NO
|
UML_LOOK = NO
|
||||||
TEMPLATE_RELATIONS = NO
|
TEMPLATE_RELATIONS = NO
|
||||||
INCLUDE_GRAPH = YES
|
INCLUDE_GRAPH = YES
|
||||||
INCLUDED_BY_GRAPH = YES
|
INCLUDED_BY_GRAPH = YES
|
||||||
CALL_GRAPH = NO
|
CALL_GRAPH = NO
|
||||||
GRAPHICAL_HIERARCHY = YES
|
GRAPHICAL_HIERARCHY = YES
|
||||||
DIRECTORY_GRAPH = YES
|
DIRECTORY_GRAPH = YES
|
||||||
DOT_IMAGE_FORMAT = png
|
DOT_IMAGE_FORMAT = png
|
||||||
DOT_PATH =
|
DOT_PATH =
|
||||||
DOTFILE_DIRS =
|
DOTFILE_DIRS =
|
||||||
MAX_DOT_GRAPH_WIDTH = 1024
|
MAX_DOT_GRAPH_WIDTH = 1024
|
||||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||||
MAX_DOT_GRAPH_DEPTH = 1000
|
MAX_DOT_GRAPH_DEPTH = 1000
|
||||||
DOT_TRANSPARENT = NO
|
DOT_TRANSPARENT = NO
|
||||||
DOT_MULTI_TARGETS = NO
|
DOT_MULTI_TARGETS = NO
|
||||||
GENERATE_LEGEND = YES
|
GENERATE_LEGEND = YES
|
||||||
DOT_CLEANUP = YES
|
DOT_CLEANUP = YES
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration::additions related to the search engine
|
# Configuration::additions related to the search engine
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
SEARCHENGINE = NO
|
SEARCHENGINE = NO
|
||||||
|
|
|
@ -1,275 +1,275 @@
|
||||||
UFFS: Ultra-low-cost Flash File System
|
UFFS: Ultra-low-cost Flash File System
|
||||||
|
|
||||||
Project: http://uffs.sf.net/
|
Project: http://uffs.sf.net/
|
||||||
Blog: http://all-about-uffs.blogspot.com/
|
Blog: http://all-about-uffs.blogspot.com/
|
||||||
Q/A: http://groups.google.com/group/uffs/
|
Q/A: http://groups.google.com/group/uffs/
|
||||||
|
|
||||||
Author: Ricky Zheng <ricky_gz_zheng@yahoo.co.nz>
|
Author: Ricky Zheng <ricky_gz_zheng@yahoo.co.nz>
|
||||||
|
|
||||||
INTRODUCTION
|
INTRODUCTION
|
||||||
------------
|
------------
|
||||||
|
|
||||||
UFFS is a nand flash file system designed for embedded system.
|
UFFS is a nand flash file system designed for embedded system.
|
||||||
|
|
||||||
UFFS have some unique and advanced features:
|
UFFS have some unique and advanced features:
|
||||||
* Low cost: e.g. it needs only 41K bytes RAM for 64MB NAND flash (page size 2048).
|
* Low cost: e.g. it needs only 41K bytes RAM for 64MB NAND flash (page size 2048).
|
||||||
|
|
||||||
* Fast booting: it reads only a few spares from each block, typically
|
* Fast booting: it reads only a few spares from each block, typically
|
||||||
mounting a fully filled file system (Gbits) within one second.
|
mounting a fully filled file system (Gbits) within one second.
|
||||||
|
|
||||||
* Superb Reliability:
|
* Superb Reliability:
|
||||||
- The file system is designed for the embedded system which may
|
- The file system is designed for the embedded system which may
|
||||||
frequently lost power/reset without care.
|
frequently lost power/reset without care.
|
||||||
- Journal file system, the file system will automatically rollback
|
- Journal file system, the file system will automatically rollback
|
||||||
to the last state when lost power on the middle of flash programing.
|
to the last state when lost power on the middle of flash programing.
|
||||||
- When 'write' return without error, the data is guarenteed been
|
- When 'write' return without error, the data is guarenteed been
|
||||||
saved on flash.
|
saved on flash.
|
||||||
|
|
||||||
* Fast file create/read/write/seek.
|
* Fast file create/read/write/seek.
|
||||||
* Bad-block tolerant, ECC enable and good ware-leveling.
|
* Bad-block tolerant, ECC enable and good ware-leveling.
|
||||||
* There is no garbage collection needed for UFFS.
|
* There is no garbage collection needed for UFFS.
|
||||||
* Support multiple NAND flash class in one system.
|
* Support multiple NAND flash class in one system.
|
||||||
* Support bare flash hardware, no operating system needed.
|
* Support bare flash hardware, no operating system needed.
|
||||||
* Support static memory allocation (works without 'malloc').
|
* Support static memory allocation (works without 'malloc').
|
||||||
* Fully simulated on PC (Windows/Linux) platform.
|
* Fully simulated on PC (Windows/Linux) platform.
|
||||||
|
|
||||||
Disadvantage:
|
Disadvantage:
|
||||||
* space inefficency for small files: UFFS use at least one
|
* space inefficency for small files: UFFS use at least one
|
||||||
'block'(the minial erase unit for NAND flash, e.g. 16K ) for a file.
|
'block'(the minial erase unit for NAND flash, e.g. 16K ) for a file.
|
||||||
* maximum supported blocks: 2^16 = 65535
|
* maximum supported blocks: 2^16 = 65535
|
||||||
|
|
||||||
Memory consuming example:
|
Memory consuming example:
|
||||||
For page size = 512:
|
For page size = 512:
|
||||||
[VARY]Tree nodes: 16 * total_blocks
|
[VARY]Tree nodes: 16 * total_blocks
|
||||||
[CONST]Page Bufs: MAX_CACHED_BUFFERS(10) * (40 + pageSize(512)) = 5.4K
|
[CONST]Page Bufs: MAX_CACHED_BUFFERS(10) * (40 + pageSize(512)) = 5.4K
|
||||||
[CONST]Block Info caches: (24 + 14 * pages_per_block (32)) * MAX_CACHED_BLOCK_INFO (10) = 4.6K
|
[CONST]Block Info caches: (24 + 14 * pages_per_block (32)) * MAX_CACHED_BLOCK_INFO (10) = 4.6K
|
||||||
|
|
||||||
Example 1: 128M bytes NAND, 8192 blocks, total memory cost:
|
Example 1: 128M bytes NAND, 8192 blocks, total memory cost:
|
||||||
(16 * 8192)128K + 5.4K + 4.6K = 138K bytes.
|
(16 * 8192)128K + 5.4K + 4.6K = 138K bytes.
|
||||||
|
|
||||||
Example 2: 32M Bytes NAND, 2048 blocks, total memory cost:
|
Example 2: 32M Bytes NAND, 2048 blocks, total memory cost:
|
||||||
(16 * 2048)32K + 5.4K + 4.6K = 42K bytes.
|
(16 * 2048)32K + 5.4K + 4.6K = 42K bytes.
|
||||||
|
|
||||||
Example 3: 16M bytes NAND, 1024 blocks, total memory cost:
|
Example 3: 16M bytes NAND, 1024 blocks, total memory cost:
|
||||||
(16 * 1024)16K + 5.4K + 4.6K = 26K bytes.
|
(16 * 1024)16K + 5.4K + 4.6K = 26K bytes.
|
||||||
|
|
||||||
For page size = 2048:
|
For page size = 2048:
|
||||||
[VARY]Tree nodes: 16 * total_blocks
|
[VARY]Tree nodes: 16 * total_blocks
|
||||||
[CONST]Page Bufs: MAX_CACHED_BUFFERS(10) * (40 + pageSize(2048)) = 20.4K
|
[CONST]Page Bufs: MAX_CACHED_BUFFERS(10) * (40 + pageSize(2048)) = 20.4K
|
||||||
[CONST]Block Info caches: (24 + 14 * pages_per_block (32)) * MAX_CACHED_BLOCK_INFO (10) = 4.6K
|
[CONST]Block Info caches: (24 + 14 * pages_per_block (32)) * MAX_CACHED_BLOCK_INFO (10) = 4.6K
|
||||||
|
|
||||||
Example 1: 512M bytes NAND, 8192 blocks, total memory cost:
|
Example 1: 512M bytes NAND, 8192 blocks, total memory cost:
|
||||||
(16 * 8192)128K + 20.4K + 4.6K = 153K bytes.
|
(16 * 8192)128K + 20.4K + 4.6K = 153K bytes.
|
||||||
|
|
||||||
Example 2: 128M Bytes NAND, 2048 blocks, total memory cost:
|
Example 2: 128M Bytes NAND, 2048 blocks, total memory cost:
|
||||||
(16 * 2048)32K + 20.4K + 4.6K = 57K bytes.
|
(16 * 2048)32K + 20.4K + 4.6K = 57K bytes.
|
||||||
|
|
||||||
Example 3: 64M bytes NAND, 1024 blocks, total memory cost:
|
Example 3: 64M bytes NAND, 1024 blocks, total memory cost:
|
||||||
(16 * 1024)16K + 20.4K + 4.6K = 41K bytes.
|
(16 * 1024)16K + 20.4K + 4.6K = 41K bytes.
|
||||||
|
|
||||||
|
|
||||||
BUILD SIMULATOR REQUIREMENT
|
BUILD SIMULATOR REQUIREMENT
|
||||||
---------------------------
|
---------------------------
|
||||||
From V1.2.0, build uffs simulator requires 'cmake'.
|
From V1.2.0, build uffs simulator requires 'cmake'.
|
||||||
'cmake' can be downloaded from: http://www.cmake.org/
|
'cmake' can be downloaded from: http://www.cmake.org/
|
||||||
|
|
||||||
or, under Debian/Ubuntu:
|
or, under Debian/Ubuntu:
|
||||||
sudo apt-get install cmake
|
sudo apt-get install cmake
|
||||||
|
|
||||||
BUILD SIMULATOR ON LINUX
|
BUILD SIMULATOR ON LINUX
|
||||||
------------------------
|
------------------------
|
||||||
1) create a 'build' dir:
|
1) create a 'build' dir:
|
||||||
|
|
||||||
mkdir -p ~/build/uffs
|
mkdir -p ~/build/uffs
|
||||||
|
|
||||||
2) create Makefiles and build:
|
2) create Makefiles and build:
|
||||||
cd ~/build/uffs
|
cd ~/build/uffs
|
||||||
cmake <path_to_uffs>
|
cmake <path_to_uffs>
|
||||||
make
|
make
|
||||||
|
|
||||||
5) run simulator (interactive mode):
|
5) run simulator (interactive mode):
|
||||||
src/utils/mkuffs
|
src/utils/mkuffs
|
||||||
|
|
||||||
|
|
||||||
BUILD SIMULATOR ON WINDOWS
|
BUILD SIMULATOR ON WINDOWS
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
1) create a 'build' dir along with uffs source dir,
|
1) create a 'build' dir along with uffs source dir,
|
||||||
d:\build\uffs
|
d:\build\uffs
|
||||||
|
|
||||||
2) Create VC project files:
|
2) Create VC project files:
|
||||||
cd build\uffs
|
cd build\uffs
|
||||||
cmake <path_to_uffs>
|
cmake <path_to_uffs>
|
||||||
|
|
||||||
3) Open uffs.dsw (or uffs.sln for VC > 6 ), compile & run.
|
3) Open uffs.dsw (or uffs.sln for VC > 6 ), compile & run.
|
||||||
|
|
||||||
|
|
||||||
LATEST SOURCE CODE
|
LATEST SOURCE CODE
|
||||||
------------------
|
------------------
|
||||||
You can get the latest source code from git repository:
|
You can get the latest source code from git repository:
|
||||||
git clone git://uffs.git.sourceforge.net/gitroot/uffs/uffs
|
git clone git://uffs.git.sourceforge.net/gitroot/uffs/uffs
|
||||||
|
|
||||||
|
|
||||||
CURRENT STATUS
|
CURRENT STATUS
|
||||||
--------------
|
--------------
|
||||||
UFFS 0.1.x is a working version on PC simulator, also has been ported to
|
UFFS 0.1.x is a working version on PC simulator, also has been ported to
|
||||||
uBase embedded OS as a 'real world' product for thousands of copies,
|
uBase embedded OS as a 'real world' product for thousands of copies,
|
||||||
it works fine so far.
|
it works fine so far.
|
||||||
|
|
||||||
UFFS 0.2.0 implementes full directory.
|
UFFS 0.2.0 implementes full directory.
|
||||||
|
|
||||||
UFFS 1.0.0 is the first stable release at sf.net.
|
UFFS 1.0.0 is the first stable release at sf.net.
|
||||||
|
|
||||||
UFFS 1.1.0: support NAND flash with large page size (up to 2K).
|
UFFS 1.1.0: support NAND flash with large page size (up to 2K).
|
||||||
|
|
||||||
UFFS 1.1.1: bug fixes. a tool for making uffs disk image.
|
UFFS 1.1.1: bug fixes. a tool for making uffs disk image.
|
||||||
|
|
||||||
UFFS 1.1.2: bug fixes. add more Flash Class. change Licence from GNU GPLv2 to GNU LGPLv2
|
UFFS 1.1.2: bug fixes. add more Flash Class. change Licence from GNU GPLv2 to GNU LGPLv2
|
||||||
|
|
||||||
UFFS 1.2.0:
|
UFFS 1.2.0:
|
||||||
- eliminate 'current path' and relatives. Now you should use absolute path in all
|
- eliminate 'current path' and relatives. Now you should use absolute path in all
|
||||||
uffs APIs. For dir, the fullname should end with '/'.
|
uffs APIs. For dir, the fullname should end with '/'.
|
||||||
- allow using static memory allocation, 'malloc' is no longer needed.
|
- allow using static memory allocation, 'malloc' is no longer needed.
|
||||||
- using cmake for building simulator.
|
- using cmake for building simulator.
|
||||||
- bug fixes & minor changes.
|
- bug fixes & minor changes.
|
||||||
|
|
||||||
UFFS 1.2.1:
|
UFFS 1.2.1:
|
||||||
- improve bad block management
|
- improve bad block management
|
||||||
- bug fixes
|
- bug fixes
|
||||||
- change Licence to modified GNU GPLv2.
|
- change Licence to modified GNU GPLv2.
|
||||||
|
|
||||||
UFFS 1.3.0:
|
UFFS 1.3.0:
|
||||||
- improved flash interface
|
- improved flash interface
|
||||||
- support hardware ECC
|
- support hardware ECC
|
||||||
- support user defined spare layout (for customized NAND flash controller)
|
- support user defined spare layout (for customized NAND flash controller)
|
||||||
- support 4K page size
|
- support 4K page size
|
||||||
- no partial page program required, support MLC NAND flash
|
- no partial page program required, support MLC NAND flash
|
||||||
- reduced buffer flushes by grouping buffers
|
- reduced buffer flushes by grouping buffers
|
||||||
- structual improvments and bug fixes
|
- structual improvments and bug fixes
|
||||||
|
|
||||||
UFFS v1.3.1:
|
UFFS v1.3.1:
|
||||||
- Tidy up three memory allocators: static, native and system.
|
- Tidy up three memory allocators: static, native and system.
|
||||||
- Fix bugs in flash interface example.
|
- Fix bugs in flash interface example.
|
||||||
- Fix memory allocation bugs when using static memory allocator.
|
- Fix memory allocation bugs when using static memory allocator.
|
||||||
- Add flash driver interface 'WriteFullPage()'.
|
- Add flash driver interface 'WriteFullPage()'.
|
||||||
- Fix compilation errors for BlackFin DSP compiler.
|
- Fix compilation errors for BlackFin DSP compiler.
|
||||||
|
|
||||||
UFFS v1.3.2:
|
UFFS v1.3.2:
|
||||||
- Add POSIX like file system APIs.
|
- Add POSIX like file system APIs.
|
||||||
- Bug fixes.
|
- Bug fixes.
|
||||||
|
|
||||||
UFFS v1.3.3:
|
UFFS v1.3.3:
|
||||||
- Change Flash Interface, simplify interface.
|
- Change Flash Interface, simplify interface.
|
||||||
- Improved bad block handling.
|
- Improved bad block handling.
|
||||||
- Better support for MLC NAND flash.
|
- Better support for MLC NAND flash.
|
||||||
- Added hardware ECC and RS-ECC controller emulator.
|
- Added hardware ECC and RS-ECC controller emulator.
|
||||||
- Bug fixes.
|
- Bug fixes.
|
||||||
|
|
||||||
UFFS v1.3.4
|
UFFS v1.3.4
|
||||||
- New UO_NOECC option for skipping ECC (fast reading).
|
- New UO_NOECC option for skipping ECC (fast reading).
|
||||||
- POSIX compliance uffs_seek().
|
- POSIX compliance uffs_seek().
|
||||||
- Improved unclean page detection (add new 'seal' byte in spare area).
|
- Improved unclean page detection (add new 'seal' byte in spare area).
|
||||||
- Optional page data CRC.
|
- Optional page data CRC.
|
||||||
- Bug fixes.
|
- Bug fixes.
|
||||||
- Other improvements.
|
- Other improvements.
|
||||||
|
|
||||||
LICENCE
|
LICENCE
|
||||||
-------
|
-------
|
||||||
From v1.2.1, UFFS is released under a modified GNU GPLv2. (the same as eCos Licence)
|
From v1.2.1, UFFS is released under a modified GNU GPLv2. (the same as eCos Licence)
|
||||||
The full licence text can be found in the header of source files:
|
The full licence text can be found in the header of source files:
|
||||||
|
|
||||||
UFFS is free software; you can redistribute it and/or modify it under
|
UFFS is free software; you can redistribute it and/or modify it under
|
||||||
the GNU Library General Public License as published by the Free Software
|
the GNU Library General Public License as published by the Free Software
|
||||||
Foundation; either version 2 of the License, or (at your option) any
|
Foundation; either version 2 of the License, or (at your option) any
|
||||||
later version.
|
later version.
|
||||||
|
|
||||||
UFFS is distributed in the hope that it will be useful, but WITHOUT
|
UFFS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
or GNU Library General Public License, as applicable, for more details.
|
or GNU Library General Public License, as applicable, for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
and GNU Library General Public License along with UFFS; if not, write
|
and GNU Library General Public License along with UFFS; if not, write
|
||||||
to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
Boston, MA 02110-1301, USA.
|
Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
As a special exception, if other files instantiate templates or use
|
As a special exception, if other files instantiate templates or use
|
||||||
macros or inline functions from this file, or you compile this file
|
macros or inline functions from this file, or you compile this file
|
||||||
and link it with other works to produce a work based on this file,
|
and link it with other works to produce a work based on this file,
|
||||||
this file does not by itself cause the resulting work to be covered
|
this file does not by itself cause the resulting work to be covered
|
||||||
by the GNU General Public License. However the source code for this
|
by the GNU General Public License. However the source code for this
|
||||||
file must still be made available in accordance with section (3) of
|
file must still be made available in accordance with section (3) of
|
||||||
the GNU General Public License v2.
|
the GNU General Public License v2.
|
||||||
|
|
||||||
This exception does not invalidate any other reasons why a work based
|
This exception does not invalidate any other reasons why a work based
|
||||||
on this file might be covered by the GNU General Public License.
|
on this file might be covered by the GNU General Public License.
|
||||||
|
|
||||||
|
|
||||||
TESTING UFFS WITH SQLITE3 REGRESSION TEST CASES
|
TESTING UFFS WITH SQLITE3 REGRESSION TEST CASES
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
UFFS can be tested with sqlite3 regression test cases (on Linux).
|
UFFS can be tested with sqlite3 regression test cases (on Linux).
|
||||||
|
|
||||||
1) install tcl8.5-dev on host PC:
|
1) install tcl8.5-dev on host PC:
|
||||||
apt-get install tcl8.5 tcl8.5-dev
|
apt-get install tcl8.5 tcl8.5-dev
|
||||||
|
|
||||||
# make sure your Linux is using tcl8.5 as the default tclsh:
|
# make sure your Linux is using tcl8.5 as the default tclsh:
|
||||||
sudo update-alternatives --config tclsh
|
sudo update-alternatives --config tclsh
|
||||||
(select "tclsh8.5" from the list.)
|
(select "tclsh8.5" from the list.)
|
||||||
|
|
||||||
2) build uffs:
|
2) build uffs:
|
||||||
mkdir -p ~/build/uffs
|
mkdir -p ~/build/uffs
|
||||||
cd ~/build/uffs
|
cd ~/build/uffs
|
||||||
cmake <path_to_uffs>
|
cmake <path_to_uffs>
|
||||||
|
|
||||||
3) build sqlite3:
|
3) build sqlite3:
|
||||||
cd <path_to_uffs>/src/test/sqlite3/sqlite-src-3070900
|
cd <path_to_uffs>/src/test/sqlite3/sqlite-src-3070900
|
||||||
./configure # create some build support files
|
./configure # create some build support files
|
||||||
git checkout -f Makefile config.h # restore modified Makefile and config.h
|
git checkout -f Makefile config.h # restore modified Makefile and config.h
|
||||||
make test # start build 'testfixture' program.
|
make test # start build 'testfixture' program.
|
||||||
|
|
||||||
# now you'll see something like:
|
# now you'll see something like:
|
||||||
Connect: Connection refused
|
Connect: Connection refused
|
||||||
Assert (uffs_ret == ret && ret == bak_ret) fail at /home/.../src/test/api_test/os_uffs.c:os_unlink:329: unlink("/home/.../src/test/sqlite3/sqlite-src-3070900/./test.db-journal"), unix return 0, uffs return -1, bak return -1
|
Assert (uffs_ret == ret && ret == bak_ret) fail at /home/.../src/test/api_test/os_uffs.c:os_unlink:329: unlink("/home/.../src/test/sqlite3/sqlite-src-3070900/./test.db-journal"), unix return 0, uffs return -1, bak return -1
|
||||||
make: *** [test] Error 1
|
make: *** [test] Error 1
|
||||||
|
|
||||||
4) run test cases:
|
4) run test cases:
|
||||||
Open two terminals.
|
Open two terminals.
|
||||||
on termional A:
|
on termional A:
|
||||||
cd ~/build/uffs
|
cd ~/build/uffs
|
||||||
src/utils/mkuffs -t 1024
|
src/utils/mkuffs -t 1024
|
||||||
|
|
||||||
#on uffs simulator command line, enter:
|
#on uffs simulator command line, enter:
|
||||||
format /
|
format /
|
||||||
apisrv
|
apisrv
|
||||||
|
|
||||||
on terminal B:
|
on terminal B:
|
||||||
cd <path_to_uffs>/src/test/sqlite3/sqlite-src-3070900
|
cd <path_to_uffs>/src/test/sqlite3/sqlite-src-3070900
|
||||||
./test-uffs.sh
|
./test-uffs.sh
|
||||||
|
|
||||||
Note: if you want to run mkuffs on another PC, for example, a Windows PC, you need to specify the IP address in test-uffs.sh.
|
Note: if you want to run mkuffs on another PC, for example, a Windows PC, you need to specify the IP address in test-uffs.sh.
|
||||||
|
|
||||||
The test will take 1~4 hours, depends on how fast your Linux box is.
|
The test will take 1~4 hours, depends on how fast your Linux box is.
|
||||||
|
|
||||||
|
|
||||||
ACKNOWLEDGMENT
|
ACKNOWLEDGMENT
|
||||||
---------------
|
---------------
|
||||||
Special thanks for your contributions to:
|
Special thanks for your contributions to:
|
||||||
(list in no particular order)
|
(list in no particular order)
|
||||||
|
|
||||||
* Chen Jun <chj@nlscan.com>
|
* Chen Jun <chj@nlscan.com>
|
||||||
* Michail <digiolog@mail.ru>
|
* Michail <digiolog@mail.ru>
|
||||||
* Sjpu <sjpu@163.com>
|
* Sjpu <sjpu@163.com>
|
||||||
* RobertGray <xennex@hotmail.com>
|
* RobertGray <xennex@hotmail.com>
|
||||||
* Dongbo <dongbo@ftsafe.com>
|
* Dongbo <dongbo@ftsafe.com>
|
||||||
* Cag <seucag@hotmail.com>
|
* Cag <seucag@hotmail.com>
|
||||||
* Sergey <s_sazonov@m2m-t.ru>
|
* Sergey <s_sazonov@m2m-t.ru>
|
||||||
* Chris Conrad <chris.conrad@halliburton.com>
|
* Chris Conrad <chris.conrad@halliburton.com>
|
||||||
* Vladimir <decoder@rambler.ru>
|
* Vladimir <decoder@rambler.ru>
|
||||||
* Thien Pham <thienpham2008@yahoo.com>
|
* Thien Pham <thienpham2008@yahoo.com>
|
||||||
* Emmanuel Blot <eblot.ml@gmail.com>
|
* Emmanuel Blot <eblot.ml@gmail.com>
|
||||||
* Michael <yowong2@gmail.com>
|
* Michael <yowong2@gmail.com>
|
||||||
* Mick D <mick-eng@sourceforge.net>
|
* Mick D <mick-eng@sourceforge.net>
|
||||||
* Paul <paulr227@gmail.com>
|
* Paul <paulr227@gmail.com>
|
||||||
* Rogerz <rogerz.zhang@gmail.com>
|
* Rogerz <rogerz.zhang@gmail.com>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
TODO list for v1.3:
|
TODO list for v1.3:
|
||||||
|
|
||||||
* New API: int uffs_SkipObject(uffs_Object *obj, int size);
|
* New API: int uffs_SkipObject(uffs_Object *obj, int size);
|
||||||
* Introduce buffer group
|
* Introduce buffer group
|
||||||
* Interface to Linux MTD
|
* Interface to Linux MTD
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
config.mk
|
config.mk
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,71 +1,71 @@
|
||||||
# FreeType 2 JamRules.
|
# FreeType 2 JamRules.
|
||||||
#
|
#
|
||||||
# Copyright 2001, 2002, 2003 by
|
# Copyright 2001, 2002, 2003 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
# and distributed under the terms of the FreeType project license,
|
# and distributed under the terms of the FreeType project license,
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
# indicate that you have read the license and understand and accept it
|
# indicate that you have read the license and understand and accept it
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
# This file contains the Jam rules needed to build the FreeType 2 library.
|
# This file contains the Jam rules needed to build the FreeType 2 library.
|
||||||
# It is shared by all Jamfiles and is included only once in the build
|
# It is shared by all Jamfiles and is included only once in the build
|
||||||
# process.
|
# process.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Call SubDirHdrs on a list of directories.
|
# Call SubDirHdrs on a list of directories.
|
||||||
#
|
#
|
||||||
rule AddSubDirHdrs
|
rule AddSubDirHdrs
|
||||||
{
|
{
|
||||||
local x ;
|
local x ;
|
||||||
|
|
||||||
for x in $(<)
|
for x in $(<)
|
||||||
{
|
{
|
||||||
SubDirHdrs $(x) ;
|
SubDirHdrs $(x) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Determine prefix of library file. We must use "libxxxxx" on Unix systems,
|
# Determine prefix of library file. We must use "libxxxxx" on Unix systems,
|
||||||
# while all other simply use the real name.
|
# while all other simply use the real name.
|
||||||
#
|
#
|
||||||
if $(UNIX)
|
if $(UNIX)
|
||||||
{
|
{
|
||||||
LIBPREFIX ?= lib ;
|
LIBPREFIX ?= lib ;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LIBPREFIX ?= "" ;
|
LIBPREFIX ?= "" ;
|
||||||
}
|
}
|
||||||
|
|
||||||
# FT2_TOP contains the location of the FreeType source directory. You can
|
# FT2_TOP contains the location of the FreeType source directory. You can
|
||||||
# set it to a specific value if you want to compile the library as part of a
|
# set it to a specific value if you want to compile the library as part of a
|
||||||
# larger project.
|
# larger project.
|
||||||
#
|
#
|
||||||
FT2_TOP ?= $(DOT) ;
|
FT2_TOP ?= $(DOT) ;
|
||||||
|
|
||||||
# Define a new rule used to declare a sub directory of the Nirvana source
|
# Define a new rule used to declare a sub directory of the Nirvana source
|
||||||
# tree.
|
# tree.
|
||||||
#
|
#
|
||||||
rule FT2_SubDir
|
rule FT2_SubDir
|
||||||
{
|
{
|
||||||
if $(FT2_TOP) = $(DOT)
|
if $(FT2_TOP) = $(DOT)
|
||||||
{
|
{
|
||||||
return [ FDirName $(<) ] ;
|
return [ FDirName $(<) ] ;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return [ FDirName $(FT2_TOP) $(<) ] ;
|
return [ FDirName $(FT2_TOP) $(<) ] ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# We also set ALL_LOCATE_TARGET in order to place all object and library
|
# We also set ALL_LOCATE_TARGET in order to place all object and library
|
||||||
# files in "objs".
|
# files in "objs".
|
||||||
#
|
#
|
||||||
ALL_LOCATE_TARGET ?= [ FT2_SubDir objs ] ;
|
ALL_LOCATE_TARGET ?= [ FT2_SubDir objs ] ;
|
||||||
|
|
||||||
|
|
||||||
# end of Jamrules
|
# end of Jamrules
|
||||||
|
|
|
@ -1,64 +1,64 @@
|
||||||
Special notes to Unix users
|
Special notes to Unix users
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
Please read the file `docs/UPGRADE.UNIX'. It contains important
|
Please read the file `docs/UPGRADE.UNIX'. It contains important
|
||||||
information regarding the installation of FreeType on Unix systems,
|
information regarding the installation of FreeType on Unix systems,
|
||||||
especially GNU based operating systems like GNU/Linux.
|
especially GNU based operating systems like GNU/Linux.
|
||||||
|
|
||||||
FreeType 2's library is called `libfreetype', FreeType 1's library
|
FreeType 2's library is called `libfreetype', FreeType 1's library
|
||||||
is called `libttf'. They are *not* compatible!
|
is called `libttf'. They are *not* compatible!
|
||||||
|
|
||||||
|
|
||||||
FreeType 2.3.12
|
FreeType 2.3.12
|
||||||
===============
|
===============
|
||||||
|
|
||||||
Please read the docs/CHANGES file, it contains IMPORTANT
|
Please read the docs/CHANGES file, it contains IMPORTANT
|
||||||
INFORMATION.
|
INFORMATION.
|
||||||
|
|
||||||
Read the files `docs/INSTALL' for installation instructions.
|
Read the files `docs/INSTALL' for installation instructions.
|
||||||
|
|
||||||
The FreeType 2 API reference is located in `docs/reference'; use the
|
The FreeType 2 API reference is located in `docs/reference'; use the
|
||||||
file `ft2-doc.html' as the top entry point. Additional
|
file `ft2-doc.html' as the top entry point. Additional
|
||||||
documentation is available as a separate package from our sites. Go
|
documentation is available as a separate package from our sites. Go
|
||||||
to
|
to
|
||||||
|
|
||||||
http://download.savannah.gnu.org/releases/freetype/
|
http://download.savannah.gnu.org/releases/freetype/
|
||||||
|
|
||||||
and download one of the following files.
|
and download one of the following files.
|
||||||
|
|
||||||
freetype-doc-2.3.12.tar.bz2
|
freetype-doc-2.3.12.tar.bz2
|
||||||
freetype-doc-2.3.12.tar.gz
|
freetype-doc-2.3.12.tar.gz
|
||||||
ftdoc2312.zip
|
ftdoc2312.zip
|
||||||
|
|
||||||
|
|
||||||
Bugs
|
Bugs
|
||||||
====
|
====
|
||||||
|
|
||||||
Please report bugs by e-mail to `freetype-devel@nongnu.org'. Don't
|
Please report bugs by e-mail to `freetype-devel@nongnu.org'. Don't
|
||||||
forget to send a detailed explanation of the problem -- there is
|
forget to send a detailed explanation of the problem -- there is
|
||||||
nothing worse than receiving a terse message that only says `it
|
nothing worse than receiving a terse message that only says `it
|
||||||
doesn't work'.
|
doesn't work'.
|
||||||
|
|
||||||
Alternatively, you may submit a bug report at
|
Alternatively, you may submit a bug report at
|
||||||
|
|
||||||
https://savannah.nongnu.org/bugs/?group=freetype
|
https://savannah.nongnu.org/bugs/?group=freetype
|
||||||
|
|
||||||
|
|
||||||
Enjoy!
|
Enjoy!
|
||||||
|
|
||||||
|
|
||||||
The FreeType Team
|
The FreeType Team
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2006, 2007, 2008, 2009, 2010 by
|
Copyright 2006, 2007, 2008, 2009, 2010 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
this file you indicate that you have read the license and understand
|
this file you indicate that you have read the license and understand
|
||||||
and accept it fully.
|
and accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of README ---
|
--- end of README ---
|
||||||
|
|
|
@ -1,46 +1,46 @@
|
||||||
The git archive doesn't contain pre-built configuration scripts for
|
The git archive doesn't contain pre-built configuration scripts for
|
||||||
UNIXish platforms. To generate them say
|
UNIXish platforms. To generate them say
|
||||||
|
|
||||||
sh autogen.sh
|
sh autogen.sh
|
||||||
|
|
||||||
which in turn depends on the following packages:
|
which in turn depends on the following packages:
|
||||||
|
|
||||||
automake (1.10.1)
|
automake (1.10.1)
|
||||||
libtool (2.2.4)
|
libtool (2.2.4)
|
||||||
autoconf (2.62)
|
autoconf (2.62)
|
||||||
|
|
||||||
The versions given in parentheses are known to work. Newer versions
|
The versions given in parentheses are known to work. Newer versions
|
||||||
should work too, of course. Note that autogen.sh also sets up proper
|
should work too, of course. Note that autogen.sh also sets up proper
|
||||||
file permissions for the `configure' and auxiliary scripts.
|
file permissions for the `configure' and auxiliary scripts.
|
||||||
|
|
||||||
The autogen.sh script now checks the version of above three packages
|
The autogen.sh script now checks the version of above three packages
|
||||||
whether they match the numbers above. Otherwise it will complain and
|
whether they match the numbers above. Otherwise it will complain and
|
||||||
suggest either upgrading or using an environment variable to point to
|
suggest either upgrading or using an environment variable to point to
|
||||||
a more recent version of the required tool(s).
|
a more recent version of the required tool(s).
|
||||||
|
|
||||||
Note that `aclocal' is provided by the `automake' package on Linux,
|
Note that `aclocal' is provided by the `automake' package on Linux,
|
||||||
and that `libtoolize' is called `glibtoolize' on Darwin (OS X).
|
and that `libtoolize' is called `glibtoolize' on Darwin (OS X).
|
||||||
|
|
||||||
|
|
||||||
For static builds which don't use platform specific optimizations, no
|
For static builds which don't use platform specific optimizations, no
|
||||||
configure script is necessary at all; saying
|
configure script is necessary at all; saying
|
||||||
|
|
||||||
make setup ansi
|
make setup ansi
|
||||||
make
|
make
|
||||||
|
|
||||||
should work on all platforms which have GNU make (or makepp).
|
should work on all platforms which have GNU make (or makepp).
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2005, 2006, 2007, 2008, 2009 by
|
Copyright 2005, 2006, 2007, 2008, 2009 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
this file you indicate that you have read the license and understand
|
this file you indicate that you have read the license and understand
|
||||||
and accept it fully.
|
and accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of README.CVS ---
|
--- end of README.CVS ---
|
||||||
|
|
|
@ -1,110 +1,110 @@
|
||||||
|
|
||||||
README for the builds/amiga subdirectory.
|
README for the builds/amiga subdirectory.
|
||||||
|
|
||||||
Copyright 2005 by
|
Copyright 2005 by
|
||||||
Werner Lemberg and Detlef Würkner.
|
Werner Lemberg and Detlef Würkner.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used, modified,
|
This file is part of the FreeType project, and may only be used, modified,
|
||||||
and distributed under the terms of the FreeType project license,
|
and distributed under the terms of the FreeType project license,
|
||||||
LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
indicate that you have read the license and understand and accept it
|
indicate that you have read the license and understand and accept it
|
||||||
fully.
|
fully.
|
||||||
|
|
||||||
|
|
||||||
The makefile.os4 is for the AmigaOS4 SDK. To use it, type
|
The makefile.os4 is for the AmigaOS4 SDK. To use it, type
|
||||||
"make -f makefile.os4", it produces a link library libft2_ppc.a.
|
"make -f makefile.os4", it produces a link library libft2_ppc.a.
|
||||||
|
|
||||||
The makefile is for ppc-morphos-gcc-2.95.3-bin.tgz (gcc 2.95.3 hosted on
|
The makefile is for ppc-morphos-gcc-2.95.3-bin.tgz (gcc 2.95.3 hosted on
|
||||||
68k-Amiga producing MorphOS-PPC-binaries from http://www.morphos.de).
|
68k-Amiga producing MorphOS-PPC-binaries from http://www.morphos.de).
|
||||||
To use it, type "make assign", then "make"; it produces a link library
|
To use it, type "make assign", then "make"; it produces a link library
|
||||||
libft2_ppc.a.
|
libft2_ppc.a.
|
||||||
|
|
||||||
The smakefile is a makefile for Amiga SAS/C 6.58 (no longer available,
|
The smakefile is a makefile for Amiga SAS/C 6.58 (no longer available,
|
||||||
latest sold version was 6.50, updates can be found in Aminet). It is
|
latest sold version was 6.50, updates can be found in Aminet). It is
|
||||||
based on the version found in the sourcecode of ttf.library 0.83b for
|
based on the version found in the sourcecode of ttf.library 0.83b for
|
||||||
FreeType 1.3.1 from Richard Griffith (ragriffi@sprynet.com,
|
FreeType 1.3.1 from Richard Griffith (ragriffi@sprynet.com,
|
||||||
http://ragriffi.home.sprynet.com).
|
http://ragriffi.home.sprynet.com).
|
||||||
|
|
||||||
You will also need the latest include files and amiga.lib from the
|
You will also need the latest include files and amiga.lib from the
|
||||||
Amiga web site (http://www.amiga.com/3.9/download/NDK3.9.lha) for
|
Amiga web site (http://www.amiga.com/3.9/download/NDK3.9.lha) for
|
||||||
AmigaOS 3.9; the generated code should work under AmigaOS 2.04 and up.
|
AmigaOS 3.9; the generated code should work under AmigaOS 2.04 and up.
|
||||||
|
|
||||||
To use it, call "smake assign" and then "smake" from the builds/amiga
|
To use it, call "smake assign" and then "smake" from the builds/amiga
|
||||||
directory. The results are:
|
directory. The results are:
|
||||||
|
|
||||||
- A link library "ft2_680x0.lib" (where x depends on the setting of
|
- A link library "ft2_680x0.lib" (where x depends on the setting of
|
||||||
the CPU entry in the smakefile) containing all FreeType2 parts
|
the CPU entry in the smakefile) containing all FreeType2 parts
|
||||||
except of the init code, debugging code, and the system interface
|
except of the init code, debugging code, and the system interface
|
||||||
code.
|
code.
|
||||||
|
|
||||||
- ftsystem.o, an object module containing the standard version of the
|
- ftsystem.o, an object module containing the standard version of the
|
||||||
system interface code which uses fopen() fclose() fread() fseek()
|
system interface code which uses fopen() fclose() fread() fseek()
|
||||||
ftell() malloc() realloc() and free() from lib:sc.lib (not pure).
|
ftell() malloc() realloc() and free() from lib:sc.lib (not pure).
|
||||||
|
|
||||||
- ftsystempure.o, an object module containing the pure version of the
|
- ftsystempure.o, an object module containing the pure version of the
|
||||||
system interface code which uses Open() Close() Read() Seek()
|
system interface code which uses Open() Close() Read() Seek()
|
||||||
ExamineFH() AsmAllocPooled() AsmFreePooled() etc. This version can
|
ExamineFH() AsmAllocPooled() AsmFreePooled() etc. This version can
|
||||||
be used in both normal programs and in Amiga run-time shared system
|
be used in both normal programs and in Amiga run-time shared system
|
||||||
librarys (can be linked with lib:libinit.o, no copying of DATA and
|
librarys (can be linked with lib:libinit.o, no copying of DATA and
|
||||||
BSS hunks for each OpenLibrary() necessary). Source code is in
|
BSS hunks for each OpenLibrary() necessary). Source code is in
|
||||||
src/base/ftsystem.c.
|
src/base/ftsystem.c.
|
||||||
|
|
||||||
- ftdebug.o, an object module containing the standard version of the
|
- ftdebug.o, an object module containing the standard version of the
|
||||||
debugging code which uses vprintf() and exit() (not pure).
|
debugging code which uses vprintf() and exit() (not pure).
|
||||||
Debugging can be turned on in FT:include/freetype/config/ftoption.h
|
Debugging can be turned on in FT:include/freetype/config/ftoption.h
|
||||||
and with FT_SetTraceLevel().
|
and with FT_SetTraceLevel().
|
||||||
|
|
||||||
- ftdebugpure.o, an object module containing the pure version of the
|
- ftdebugpure.o, an object module containing the pure version of the
|
||||||
debugging code which uses KVPrintf() from lib:debug.lib and no
|
debugging code which uses KVPrintf() from lib:debug.lib and no
|
||||||
exit(). For debugging of Amiga run-time shared system libraries.
|
exit(). For debugging of Amiga run-time shared system libraries.
|
||||||
Source code is in src/base/ftdebug.c.
|
Source code is in src/base/ftdebug.c.
|
||||||
|
|
||||||
- NO ftinit.o. Because linking with a link library should result in
|
- NO ftinit.o. Because linking with a link library should result in
|
||||||
linking only the needed object modules in it, but standard
|
linking only the needed object modules in it, but standard
|
||||||
ftsystem.o would force ALL FreeType2 modules to be linked to your
|
ftsystem.o would force ALL FreeType2 modules to be linked to your
|
||||||
program, I decided to use a different scheme: You must #include
|
program, I decided to use a different scheme: You must #include
|
||||||
FT:src/base/ftinit.c in your sourcecode and specify with #define
|
FT:src/base/ftinit.c in your sourcecode and specify with #define
|
||||||
statements which modules you need. See
|
statements which modules you need. See
|
||||||
include/freetype/config/ftmodule.h.
|
include/freetype/config/ftmodule.h.
|
||||||
|
|
||||||
|
|
||||||
To use in your own programs:
|
To use in your own programs:
|
||||||
|
|
||||||
- Insert the #define and #include statements from top of
|
- Insert the #define and #include statements from top of
|
||||||
include/freetype/config/ftmodule.h in your source code and uncomment
|
include/freetype/config/ftmodule.h in your source code and uncomment
|
||||||
the #define statements for the FreeType2 modules you need.
|
the #define statements for the FreeType2 modules you need.
|
||||||
|
|
||||||
- You can use either PARAMETERS=REGISTER or PARAMETERS=STACK for
|
- You can use either PARAMETERS=REGISTER or PARAMETERS=STACK for
|
||||||
calling the FreeType2 functions, because the link library and the
|
calling the FreeType2 functions, because the link library and the
|
||||||
object files are compiled with PARAMETERS=BOTH.
|
object files are compiled with PARAMETERS=BOTH.
|
||||||
|
|
||||||
- "smake assign" (assign "FT:" to the FreeType2 main directory).
|
- "smake assign" (assign "FT:" to the FreeType2 main directory).
|
||||||
|
|
||||||
- Compile your program.
|
- Compile your program.
|
||||||
|
|
||||||
- Link with either ftsystem.o or ftsystempure.o, if debugging enabled
|
- Link with either ftsystem.o or ftsystempure.o, if debugging enabled
|
||||||
with either ftdebug.o or (ftdebugpure.o and lib:debug.lib), and with
|
with either ftdebug.o or (ftdebugpure.o and lib:debug.lib), and with
|
||||||
ft2_680x0.lib as link library.
|
ft2_680x0.lib as link library.
|
||||||
|
|
||||||
|
|
||||||
To adapt to other compilers:
|
To adapt to other compilers:
|
||||||
|
|
||||||
- The standard ANSI C maximum length of 31 significant characters in
|
- The standard ANSI C maximum length of 31 significant characters in
|
||||||
identifiers is not enough for FreeType2. Check if your compiler has
|
identifiers is not enough for FreeType2. Check if your compiler has
|
||||||
a minimum length of 40 significant characters or can be switched to
|
a minimum length of 40 significant characters or can be switched to
|
||||||
it. "idlen=40" is the option for SAS/C. Setting #define
|
it. "idlen=40" is the option for SAS/C. Setting #define
|
||||||
HAVE_LIMIT_ON_IDENTS in an include file may also work (not tested).
|
HAVE_LIMIT_ON_IDENTS in an include file may also work (not tested).
|
||||||
|
|
||||||
- Make sure that the include directory in builds/amiga is searched
|
- Make sure that the include directory in builds/amiga is searched
|
||||||
before the normal FreeType2 include directory, so you are able to
|
before the normal FreeType2 include directory, so you are able to
|
||||||
replace problematic include files with your own version (same may be
|
replace problematic include files with your own version (same may be
|
||||||
useful for the src directory).
|
useful for the src directory).
|
||||||
|
|
||||||
- An example of how to replace/workaround a problematic include file
|
- An example of how to replace/workaround a problematic include file
|
||||||
is include/config/ftconfig.h; it changes a #define that would
|
is include/config/ftconfig.h; it changes a #define that would
|
||||||
prevent SAS/C from generating XDEF's where it should do that and
|
prevent SAS/C from generating XDEF's where it should do that and
|
||||||
then includes the standard FreeType2 include file.
|
then includes the standard FreeType2 include file.
|
||||||
|
|
||||||
Local Variables:
|
Local Variables:
|
||||||
coding: latin-1
|
coding: latin-1
|
||||||
End:
|
End:
|
||||||
|
|
|
@ -1,297 +1,297 @@
|
||||||
#
|
#
|
||||||
# Makefile for FreeType2 link library using gcc 4.0.3 from the
|
# Makefile for FreeType2 link library using gcc 4.0.3 from the
|
||||||
# AmigaOS4 SDK
|
# AmigaOS4 SDK
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright 2005, 2006, 2007, 2009 by
|
# Copyright 2005, 2006, 2007, 2009 by
|
||||||
# Werner Lemberg and Detlef Würkner.
|
# Werner Lemberg and Detlef Würkner.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
# and distributed under the terms of the FreeType project license,
|
# and distributed under the terms of the FreeType project license,
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
# indicate that you have read the license and understand and accept it
|
# indicate that you have read the license and understand and accept it
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
# to build from the builds/amiga directory call
|
# to build from the builds/amiga directory call
|
||||||
#
|
#
|
||||||
# make -f makefile.os4
|
# make -f makefile.os4
|
||||||
#
|
#
|
||||||
# Your programs source code should start with this
|
# Your programs source code should start with this
|
||||||
# (uncomment the parts you do not need to keep the program small):
|
# (uncomment the parts you do not need to keep the program small):
|
||||||
# ---8<---
|
# ---8<---
|
||||||
#define FT_USE_AUTOFIT // autofitter
|
#define FT_USE_AUTOFIT // autofitter
|
||||||
#define FT_USE_RASTER // monochrome rasterizer
|
#define FT_USE_RASTER // monochrome rasterizer
|
||||||
#define FT_USE_SMOOTH // anti-aliasing rasterizer
|
#define FT_USE_SMOOTH // anti-aliasing rasterizer
|
||||||
#define FT_USE_TT // truetype font driver
|
#define FT_USE_TT // truetype font driver
|
||||||
#define FT_USE_T1 // type1 font driver
|
#define FT_USE_T1 // type1 font driver
|
||||||
#define FT_USE_T42 // type42 font driver
|
#define FT_USE_T42 // type42 font driver
|
||||||
#define FT_USE_T1CID // cid-keyed type1 font driver
|
#define FT_USE_T1CID // cid-keyed type1 font driver
|
||||||
#define FT_USE_CFF // opentype font driver
|
#define FT_USE_CFF // opentype font driver
|
||||||
#define FT_USE_BDF // bdf bitmap font driver
|
#define FT_USE_BDF // bdf bitmap font driver
|
||||||
#define FT_USE_PCF // pcf bitmap font driver
|
#define FT_USE_PCF // pcf bitmap font driver
|
||||||
#define FT_USE_PFR // pfr font driver
|
#define FT_USE_PFR // pfr font driver
|
||||||
#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver
|
#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver
|
||||||
#define FT_USE_OTV // opentype validator
|
#define FT_USE_OTV // opentype validator
|
||||||
#define FT_USE_GXV // truetype gx validator
|
#define FT_USE_GXV // truetype gx validator
|
||||||
#include "FT:src/base/ftinit.c"
|
#include "FT:src/base/ftinit.c"
|
||||||
# ---8<---
|
# ---8<---
|
||||||
#
|
#
|
||||||
# link your programs with libft2_ppc.a and either ftsystem.ppc.o or ftsystempure.ppc.o
|
# link your programs with libft2_ppc.a and either ftsystem.ppc.o or ftsystempure.ppc.o
|
||||||
# (and either ftdebug.ppc.o or ftdebugpure.ppc.o if you enabled FT_DEBUG_LEVEL_ERROR or
|
# (and either ftdebug.ppc.o or ftdebugpure.ppc.o if you enabled FT_DEBUG_LEVEL_ERROR or
|
||||||
# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
|
# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
|
||||||
|
|
||||||
all: assign libft2_ppc.a ftsystem.ppc.o ftsystempure.ppc.o
|
all: assign libft2_ppc.a ftsystem.ppc.o ftsystempure.ppc.o
|
||||||
|
|
||||||
assign:
|
assign:
|
||||||
assign FT: //
|
assign FT: //
|
||||||
|
|
||||||
CC = ppc-amigaos-gcc
|
CC = ppc-amigaos-gcc
|
||||||
AR = ppc-amigaos-ar
|
AR = ppc-amigaos-ar
|
||||||
RANLIB = ppc-amigaos-ranlib
|
RANLIB = ppc-amigaos-ranlib
|
||||||
|
|
||||||
DIRFLAGS = -Iinclude -I/FT/src -I/FT/include -I/SDK/include
|
DIRFLAGS = -Iinclude -I/FT/src -I/FT/include -I/SDK/include
|
||||||
|
|
||||||
WARNINGS = -Wall -W -Wundef -Wpointer-arith -Wbad-function-cast \
|
WARNINGS = -Wall -W -Wundef -Wpointer-arith -Wbad-function-cast \
|
||||||
-Waggregate-return -Wwrite-strings -Wshadow
|
-Waggregate-return -Wwrite-strings -Wshadow
|
||||||
|
|
||||||
OPTIONS = -DFT2_BUILD_LIBRARY -DNDEBUG -fno-builtin
|
OPTIONS = -DFT2_BUILD_LIBRARY -DNDEBUG -fno-builtin
|
||||||
OPTIMIZE = -O2 -fomit-frame-pointer -fstrength-reduce -finline-functions
|
OPTIMIZE = -O2 -fomit-frame-pointer -fstrength-reduce -finline-functions
|
||||||
|
|
||||||
CFLAGS = -mcrt=clib2 $(DIRFLAGS) $(WARNINGS) $(FT2FLAGS) $(OPTIONS) $(OPTIMIZE)
|
CFLAGS = -mcrt=clib2 $(DIRFLAGS) $(WARNINGS) $(FT2FLAGS) $(OPTIONS) $(OPTIMIZE)
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library base
|
# FreeType2 library base
|
||||||
#
|
#
|
||||||
ftbase.ppc.o: FT:src/base/ftbase.c
|
ftbase.ppc.o: FT:src/base/ftbase.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbase.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbase.c
|
||||||
|
|
||||||
ftinit.ppc.o: FT:src/base/ftinit.c
|
ftinit.ppc.o: FT:src/base/ftinit.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftinit.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftinit.c
|
||||||
|
|
||||||
ftsystem.ppc.o: FT:src/base/ftsystem.c
|
ftsystem.ppc.o: FT:src/base/ftsystem.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftsystem.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftsystem.c
|
||||||
|
|
||||||
# pure version for use in run-time library etc
|
# pure version for use in run-time library etc
|
||||||
ftsystempure.ppc.o: src/base/ftsystem.c
|
ftsystempure.ppc.o: src/base/ftsystem.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ src/base/ftsystem.c
|
$(CC) -c $(CFLAGS) -o $@ src/base/ftsystem.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library base extensions
|
# FreeType2 library base extensions
|
||||||
#
|
#
|
||||||
ftbbox.ppc.o: FT:src/base/ftbbox.c
|
ftbbox.ppc.o: FT:src/base/ftbbox.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbbox.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbbox.c
|
||||||
|
|
||||||
ftbdf.ppc.o: FT:src/base/ftbdf.c
|
ftbdf.ppc.o: FT:src/base/ftbdf.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbdf.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbdf.c
|
||||||
|
|
||||||
ftbitmap.ppc.o: FT:src/base/ftbitmap.c
|
ftbitmap.ppc.o: FT:src/base/ftbitmap.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbitmap.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftbitmap.c
|
||||||
|
|
||||||
ftcid.ppc.o: FT:src/base/ftcid.c
|
ftcid.ppc.o: FT:src/base/ftcid.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftcid.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftcid.c
|
||||||
|
|
||||||
ftdebug.ppc.o: FT:src/base/ftdebug.c
|
ftdebug.ppc.o: FT:src/base/ftdebug.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftdebug.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftdebug.c
|
||||||
|
|
||||||
# pure version for use in run-time library etc
|
# pure version for use in run-time library etc
|
||||||
ftdebugpure.ppc.o: src/base/ftdebug.c
|
ftdebugpure.ppc.o: src/base/ftdebug.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ src/base/ftdebug.c
|
$(CC) -c $(CFLAGS) -o $@ src/base/ftdebug.c
|
||||||
|
|
||||||
ftfstype.ppc.o: FT:src/base/ftfstype.c
|
ftfstype.ppc.o: FT:src/base/ftfstype.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftfstype.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftfstype.c
|
||||||
|
|
||||||
ftgasp.ppc.o: FT:src/base/ftgasp.c
|
ftgasp.ppc.o: FT:src/base/ftgasp.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgasp.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgasp.c
|
||||||
|
|
||||||
ftglyph.ppc.o: FT:src/base/ftglyph.c
|
ftglyph.ppc.o: FT:src/base/ftglyph.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftglyph.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftglyph.c
|
||||||
|
|
||||||
ftgxval.ppc.o: FT:src/base/ftgxval.c
|
ftgxval.ppc.o: FT:src/base/ftgxval.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgxval.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftgxval.c
|
||||||
|
|
||||||
ftlcdfil.ppc.o: FT:src/base/ftlcdfil.c
|
ftlcdfil.ppc.o: FT:src/base/ftlcdfil.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftlcdfil.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftlcdfil.c
|
||||||
|
|
||||||
ftmm.ppc.o: FT:src/base/ftmm.c
|
ftmm.ppc.o: FT:src/base/ftmm.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftmm.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftmm.c
|
||||||
|
|
||||||
ftotval.ppc.o: FT:src/base/ftotval.c
|
ftotval.ppc.o: FT:src/base/ftotval.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftotval.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftotval.c
|
||||||
|
|
||||||
ftpatent.ppc.o: FT:src/base/ftpatent.c
|
ftpatent.ppc.o: FT:src/base/ftpatent.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftpatent.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftpatent.c
|
||||||
|
|
||||||
ftpfr.ppc.o: FT:src/base/ftpfr.c
|
ftpfr.ppc.o: FT:src/base/ftpfr.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftpfr.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftpfr.c
|
||||||
|
|
||||||
ftstroke.ppc.o: FT:src/base/ftstroke.c
|
ftstroke.ppc.o: FT:src/base/ftstroke.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftstroke.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftstroke.c
|
||||||
|
|
||||||
ftsynth.ppc.o: FT:src/base/ftsynth.c
|
ftsynth.ppc.o: FT:src/base/ftsynth.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftsynth.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftsynth.c
|
||||||
|
|
||||||
fttype1.ppc.o: FT:src/base/fttype1.c
|
fttype1.ppc.o: FT:src/base/fttype1.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/fttype1.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/fttype1.c
|
||||||
|
|
||||||
ftwinfnt.ppc.o: FT:src/base/ftwinfnt.c
|
ftwinfnt.ppc.o: FT:src/base/ftwinfnt.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftwinfnt.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftwinfnt.c
|
||||||
|
|
||||||
ftxf86.ppc.o: FT:src/base/ftxf86.c
|
ftxf86.ppc.o: FT:src/base/ftxf86.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftxf86.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/base/ftxf86.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library autofitting module
|
# FreeType2 library autofitting module
|
||||||
#
|
#
|
||||||
autofit.ppc.o: FT:src/autofit/autofit.c
|
autofit.ppc.o: FT:src/autofit/autofit.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/autofit/autofit.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/autofit/autofit.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library postscript hinting module
|
# FreeType2 library postscript hinting module
|
||||||
#
|
#
|
||||||
pshinter.ppc.o: FT:src/pshinter/pshinter.c
|
pshinter.ppc.o: FT:src/pshinter/pshinter.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/pshinter/pshinter.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/pshinter/pshinter.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library PS support module
|
# FreeType2 library PS support module
|
||||||
#
|
#
|
||||||
psaux.ppc.o: FT:src/psaux/psaux.c
|
psaux.ppc.o: FT:src/psaux/psaux.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/psaux/psaux.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/psaux/psaux.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library PS glyph names module
|
# FreeType2 library PS glyph names module
|
||||||
#
|
#
|
||||||
psnames.ppc.o: FT:src/psnames/psnames.c
|
psnames.ppc.o: FT:src/psnames/psnames.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/psnames/psnames.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/psnames/psnames.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library monochrome raster module
|
# FreeType2 library monochrome raster module
|
||||||
#
|
#
|
||||||
raster.ppc.o: FT:src/raster/raster.c
|
raster.ppc.o: FT:src/raster/raster.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/raster/raster.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/raster/raster.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library anti-aliasing raster module
|
# FreeType2 library anti-aliasing raster module
|
||||||
#
|
#
|
||||||
smooth.ppc.o: FT:src/smooth/smooth.c
|
smooth.ppc.o: FT:src/smooth/smooth.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/smooth/smooth.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/smooth/smooth.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library 'sfnt' module
|
# FreeType2 library 'sfnt' module
|
||||||
#
|
#
|
||||||
sfnt.ppc.o: FT:src/sfnt/sfnt.c
|
sfnt.ppc.o: FT:src/sfnt/sfnt.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/sfnt/sfnt.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/sfnt/sfnt.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library glyph and image caching system
|
# FreeType2 library glyph and image caching system
|
||||||
#
|
#
|
||||||
ftcache.ppc.o: FT:src/cache/ftcache.c
|
ftcache.ppc.o: FT:src/cache/ftcache.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/cache/ftcache.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/cache/ftcache.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library OpenType font driver
|
# FreeType2 library OpenType font driver
|
||||||
#
|
#
|
||||||
cff.ppc.o: FT:src/cff/cff.c
|
cff.ppc.o: FT:src/cff/cff.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/cff/cff.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/cff/cff.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library TrueType font driver
|
# FreeType2 library TrueType font driver
|
||||||
#
|
#
|
||||||
truetype.ppc.o: FT:src/truetype/truetype.c
|
truetype.ppc.o: FT:src/truetype/truetype.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/truetype/truetype.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/truetype/truetype.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library Type1 font driver
|
# FreeType2 library Type1 font driver
|
||||||
#
|
#
|
||||||
type1.ppc.o: FT:src/type1/type1.c
|
type1.ppc.o: FT:src/type1/type1.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/type1/type1.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/type1/type1.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library Type42 font driver
|
# FreeType2 library Type42 font driver
|
||||||
#
|
#
|
||||||
type42.ppc.o: FT:src/type42/type42.c
|
type42.ppc.o: FT:src/type42/type42.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/type42/type42.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/type42/type42.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library CID-keyed Type1 font driver
|
# FreeType2 library CID-keyed Type1 font driver
|
||||||
#
|
#
|
||||||
type1cid.ppc.o: FT:src/cid/type1cid.c
|
type1cid.ppc.o: FT:src/cid/type1cid.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/cid/type1cid.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/cid/type1cid.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library BDF bitmap font driver
|
# FreeType2 library BDF bitmap font driver
|
||||||
#
|
#
|
||||||
bdf.ppc.o: FT:src/bdf/bdf.c
|
bdf.ppc.o: FT:src/bdf/bdf.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/bdf/bdf.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/bdf/bdf.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library PCF bitmap font driver
|
# FreeType2 library PCF bitmap font driver
|
||||||
#
|
#
|
||||||
pcf.ppc.o: FT:src/pcf/pcf.c
|
pcf.ppc.o: FT:src/pcf/pcf.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/pcf/pcf.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/pcf/pcf.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library gzip support for compressed PCF bitmap fonts
|
# FreeType2 library gzip support for compressed PCF bitmap fonts
|
||||||
#
|
#
|
||||||
gzip.ppc.o: FT:src/gzip/ftgzip.c
|
gzip.ppc.o: FT:src/gzip/ftgzip.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/gzip/ftgzip.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/gzip/ftgzip.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library compress support for compressed PCF bitmap fonts
|
# FreeType2 library compress support for compressed PCF bitmap fonts
|
||||||
#
|
#
|
||||||
lzw.ppc.o: FT:src/lzw/ftlzw.c
|
lzw.ppc.o: FT:src/lzw/ftlzw.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/lzw/ftlzw.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/lzw/ftlzw.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library PFR font driver
|
# FreeType2 library PFR font driver
|
||||||
#
|
#
|
||||||
pfr.ppc.o: FT:src/pfr/pfr.c
|
pfr.ppc.o: FT:src/pfr/pfr.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/pfr/pfr.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/pfr/pfr.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library Windows FNT/FON bitmap font driver
|
# FreeType2 library Windows FNT/FON bitmap font driver
|
||||||
#
|
#
|
||||||
winfnt.ppc.o: FT:src/winfonts/winfnt.c
|
winfnt.ppc.o: FT:src/winfonts/winfnt.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/winfonts/winfnt.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/winfonts/winfnt.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library TrueTypeGX Validator
|
# FreeType2 library TrueTypeGX Validator
|
||||||
#
|
#
|
||||||
gxvalid.ppc.o: FT:src/gxvalid/gxvalid.c
|
gxvalid.ppc.o: FT:src/gxvalid/gxvalid.c
|
||||||
$(CC) -c $(CFLAGS) -Wno-aggregate-return -o $@ /FT/src/gxvalid/gxvalid.c
|
$(CC) -c $(CFLAGS) -Wno-aggregate-return -o $@ /FT/src/gxvalid/gxvalid.c
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library OpenType validator
|
# FreeType2 library OpenType validator
|
||||||
#
|
#
|
||||||
otvalid.ppc.o: FT:src/otvalid/otvalid.c
|
otvalid.ppc.o: FT:src/otvalid/otvalid.c
|
||||||
$(CC) -c $(CFLAGS) -o $@ /FT/src/otvalid/otvalid.c
|
$(CC) -c $(CFLAGS) -o $@ /FT/src/otvalid/otvalid.c
|
||||||
|
|
||||||
BASE = ftbase.ppc.o ftbbox.ppc.o ftbdf.ppc.o ftbitmap.ppc.o ftcid.ppc.o \
|
BASE = ftbase.ppc.o ftbbox.ppc.o ftbdf.ppc.o ftbitmap.ppc.o ftcid.ppc.o \
|
||||||
ftfstype.ppc.o ftgasp.ppc.o ftglyph.ppc.o ftgxval.ppc.o \
|
ftfstype.ppc.o ftgasp.ppc.o ftglyph.ppc.o ftgxval.ppc.o \
|
||||||
ftlcdfil.ppc.o ftmm.ppc.o ftotval.ppc.o ftpatent.ppc.o ftpfr.ppc.o \
|
ftlcdfil.ppc.o ftmm.ppc.o ftotval.ppc.o ftpatent.ppc.o ftpfr.ppc.o \
|
||||||
ftstroke.ppc.o ftsynth.ppc.o fttype1.ppc.o ftwinfnt.ppc.o \
|
ftstroke.ppc.o ftsynth.ppc.o fttype1.ppc.o ftwinfnt.ppc.o \
|
||||||
ftxf86.ppc.o
|
ftxf86.ppc.o
|
||||||
|
|
||||||
DEBUG = ftdebug.ppc.o ftdebugpure.ppc.o
|
DEBUG = ftdebug.ppc.o ftdebugpure.ppc.o
|
||||||
|
|
||||||
AFIT = autofit.ppc.o
|
AFIT = autofit.ppc.o
|
||||||
|
|
||||||
GXV = gxvalid.ppc.o
|
GXV = gxvalid.ppc.o
|
||||||
|
|
||||||
OTV = otvalid.ppc.o
|
OTV = otvalid.ppc.o
|
||||||
|
|
||||||
PS = psaux.ppc.o psnames.ppc.o pshinter.ppc.o
|
PS = psaux.ppc.o psnames.ppc.o pshinter.ppc.o
|
||||||
|
|
||||||
RASTER = raster.ppc.o smooth.ppc.o
|
RASTER = raster.ppc.o smooth.ppc.o
|
||||||
|
|
||||||
FONTD = cff.ppc.o type1.ppc.o type42.ppc.o type1cid.ppc.o truetype.ppc.o\
|
FONTD = cff.ppc.o type1.ppc.o type42.ppc.o type1cid.ppc.o truetype.ppc.o\
|
||||||
bdf.ppc.o pcf.ppc.o pfr.ppc.o winfnt.ppc.o
|
bdf.ppc.o pcf.ppc.o pfr.ppc.o winfnt.ppc.o
|
||||||
|
|
||||||
libft2_ppc.a: $(BASE) $(AFIT) $(GXV) $(OTV) $(PS) $(RASTER) sfnt.ppc.o ftcache.ppc.o $(FONTD) gzip.ppc.o lzw.ppc.o
|
libft2_ppc.a: $(BASE) $(AFIT) $(GXV) $(OTV) $(PS) $(RASTER) sfnt.ppc.o ftcache.ppc.o $(FONTD) gzip.ppc.o lzw.ppc.o
|
||||||
$(AR) r $@ $(BASE) $(AFIT) $(GXV) $(OTV) $(PS) $(RASTER) sfnt.ppc.o ftcache.ppc.o $(FONTD) gzip.ppc.o lzw.ppc.o
|
$(AR) r $@ $(BASE) $(AFIT) $(GXV) $(OTV) $(PS) $(RASTER) sfnt.ppc.o ftcache.ppc.o $(FONTD) gzip.ppc.o lzw.ppc.o
|
||||||
$(RANLIB) $@
|
$(RANLIB) $@
|
||||||
|
|
||||||
#Local Variables:
|
#Local Variables:
|
||||||
#coding: latin-1
|
#coding: latin-1
|
||||||
#End:
|
#End:
|
||||||
|
|
|
@ -1,297 +1,297 @@
|
||||||
#
|
#
|
||||||
# Makefile for FreeType2 link library using Amiga SAS/C 6.58
|
# Makefile for FreeType2 link library using Amiga SAS/C 6.58
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
# Copyright 2005,2006, 2007, 2009 by
|
# Copyright 2005,2006, 2007, 2009 by
|
||||||
# Werner Lemberg and Detlef Würkner.
|
# Werner Lemberg and Detlef Würkner.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
# and distributed under the terms of the FreeType project license,
|
# and distributed under the terms of the FreeType project license,
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
# indicate that you have read the license and understand and accept it
|
# indicate that you have read the license and understand and accept it
|
||||||
# fully.
|
# fully.
|
||||||
|
|
||||||
|
|
||||||
# to build from the builds/amiga directory call
|
# to build from the builds/amiga directory call
|
||||||
#
|
#
|
||||||
# smake assign
|
# smake assign
|
||||||
# smake
|
# smake
|
||||||
#
|
#
|
||||||
# Your programs source code should start with this
|
# Your programs source code should start with this
|
||||||
# (uncomment the parts you do not need to keep the program small):
|
# (uncomment the parts you do not need to keep the program small):
|
||||||
# ---8<---
|
# ---8<---
|
||||||
#define FT_USE_AUTOFIT // autofitter
|
#define FT_USE_AUTOFIT // autofitter
|
||||||
#define FT_USE_RASTER // monochrome rasterizer
|
#define FT_USE_RASTER // monochrome rasterizer
|
||||||
#define FT_USE_SMOOTH // anti-aliasing rasterizer
|
#define FT_USE_SMOOTH // anti-aliasing rasterizer
|
||||||
#define FT_USE_TT // truetype font driver
|
#define FT_USE_TT // truetype font driver
|
||||||
#define FT_USE_T1 // type1 font driver
|
#define FT_USE_T1 // type1 font driver
|
||||||
#define FT_USE_T42 // type42 font driver
|
#define FT_USE_T42 // type42 font driver
|
||||||
#define FT_USE_T1CID // cid-keyed type1 font driver
|
#define FT_USE_T1CID // cid-keyed type1 font driver
|
||||||
#define FT_USE_CFF // opentype font driver
|
#define FT_USE_CFF // opentype font driver
|
||||||
#define FT_USE_BDF // bdf bitmap font driver
|
#define FT_USE_BDF // bdf bitmap font driver
|
||||||
#define FT_USE_PCF // pcf bitmap font driver
|
#define FT_USE_PCF // pcf bitmap font driver
|
||||||
#define FT_USE_PFR // pfr font driver
|
#define FT_USE_PFR // pfr font driver
|
||||||
#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver
|
#define FT_USE_WINFNT // windows .fnt|.fon bitmap font driver
|
||||||
#define FT_USE_OTV // opentype validator
|
#define FT_USE_OTV // opentype validator
|
||||||
#define FT_USE_GXV // truetype gx validator
|
#define FT_USE_GXV // truetype gx validator
|
||||||
#include "FT:src/base/ftinit.c"
|
#include "FT:src/base/ftinit.c"
|
||||||
# ---8<---
|
# ---8<---
|
||||||
#
|
#
|
||||||
# link your programs with ft2_680x0.lib and either ftsystem.o or ftsystempure.o
|
# link your programs with ft2_680x0.lib and either ftsystem.o or ftsystempure.o
|
||||||
# (and either ftdebug.o or ftdebugpure.o if you enabled FT_DEBUG_LEVEL_ERROR or
|
# (and either ftdebug.o or ftdebugpure.o if you enabled FT_DEBUG_LEVEL_ERROR or
|
||||||
# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
|
# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
|
||||||
|
|
||||||
OBJBASE = ftbase.o ftbbox.o ftbdf.o ftbitmap.o ftcid.o ftfstype.o ftgasp.o \
|
OBJBASE = ftbase.o ftbbox.o ftbdf.o ftbitmap.o ftcid.o ftfstype.o ftgasp.o \
|
||||||
ftglyph.o ftgxval.o ftlcdfil.o ftmm.o ftotval.o ftpatent.o ftpfr.o \
|
ftglyph.o ftgxval.o ftlcdfil.o ftmm.o ftotval.o ftpatent.o ftpfr.o \
|
||||||
ftstroke.o ftsynth.o fttype1.o ftwinfnt.o ftxf86.o
|
ftstroke.o ftsynth.o fttype1.o ftwinfnt.o ftxf86.o
|
||||||
|
|
||||||
OBJSYSTEM = ftsystem.o ftsystempure.o
|
OBJSYSTEM = ftsystem.o ftsystempure.o
|
||||||
|
|
||||||
OBJDEBUG = ftdebug.o ftdebugpure.o
|
OBJDEBUG = ftdebug.o ftdebugpure.o
|
||||||
|
|
||||||
OBJAFIT = autofit.o
|
OBJAFIT = autofit.o
|
||||||
|
|
||||||
OBJGXV = gxvalid.o
|
OBJGXV = gxvalid.o
|
||||||
|
|
||||||
OBJOTV = otvalid.o
|
OBJOTV = otvalid.o
|
||||||
|
|
||||||
OBJPS = psaux.o psnames.o pshinter.o
|
OBJPS = psaux.o psnames.o pshinter.o
|
||||||
|
|
||||||
OBJRASTER = raster.o smooth.o
|
OBJRASTER = raster.o smooth.o
|
||||||
|
|
||||||
OBJSFNT = sfnt.o
|
OBJSFNT = sfnt.o
|
||||||
|
|
||||||
OBJCACHE = ftcache.o
|
OBJCACHE = ftcache.o
|
||||||
|
|
||||||
OBJFONTD = cff.o type1.o type42.o type1cid.o\
|
OBJFONTD = cff.o type1.o type42.o type1cid.o\
|
||||||
truetype.o winfnt.o bdf.o pcf.o pfr.o
|
truetype.o winfnt.o bdf.o pcf.o pfr.o
|
||||||
|
|
||||||
CORE = FT:src/
|
CORE = FT:src/
|
||||||
|
|
||||||
CPU = 68000
|
CPU = 68000
|
||||||
#CPU = 68020
|
#CPU = 68020
|
||||||
#CPU = 68030
|
#CPU = 68030
|
||||||
#CPU = 68040
|
#CPU = 68040
|
||||||
#CPU = 68060
|
#CPU = 68060
|
||||||
|
|
||||||
OPTIMIZER = optinlocal
|
OPTIMIZER = optinlocal
|
||||||
|
|
||||||
SCFLAGS = optimize opttime optsched strmerge data=faronly idlen=50 cpu=$(CPU)\
|
SCFLAGS = optimize opttime optsched strmerge data=faronly idlen=50 cpu=$(CPU)\
|
||||||
idir=include/ idir=$(CORE) idir=FT:include/ nostackcheck nochkabort\
|
idir=include/ idir=$(CORE) idir=FT:include/ nostackcheck nochkabort\
|
||||||
noicons ignore=79,85,110,306 parameters=both define=FT2_BUILD_LIBRARY
|
noicons ignore=79,85,110,306 parameters=both define=FT2_BUILD_LIBRARY
|
||||||
|
|
||||||
LIB = ft2_$(CPU).lib
|
LIB = ft2_$(CPU).lib
|
||||||
|
|
||||||
# sample linker options
|
# sample linker options
|
||||||
OPTS = link lib=$(LIB),lib:sc.lib,lib:amiga.lib,lib:debug.lib\
|
OPTS = link lib=$(LIB),lib:sc.lib,lib:amiga.lib,lib:debug.lib\
|
||||||
smallcode smalldata noicons utillib
|
smallcode smalldata noicons utillib
|
||||||
|
|
||||||
# sample program entry
|
# sample program entry
|
||||||
#myprog: myprog.c ftsystem.o $(LIB)
|
#myprog: myprog.c ftsystem.o $(LIB)
|
||||||
# sc $< programname=$@ ftsystem.o $(SCFLAGS) $(OPTS)
|
# sc $< programname=$@ ftsystem.o $(SCFLAGS) $(OPTS)
|
||||||
|
|
||||||
all: $(LIB) $(OBJSYSTEM) $(OBJDEBUG)
|
all: $(LIB) $(OBJSYSTEM) $(OBJDEBUG)
|
||||||
|
|
||||||
assign:
|
assign:
|
||||||
assign FT: //
|
assign FT: //
|
||||||
|
|
||||||
# uses separate object modules in lib to make for easier debugging
|
# uses separate object modules in lib to make for easier debugging
|
||||||
# also, can make smaller programs if entire engine is not used
|
# also, can make smaller programs if entire engine is not used
|
||||||
ft2_$(CPU).lib: $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o
|
ft2_$(CPU).lib: $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o
|
||||||
oml $@ r $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o
|
oml $@ r $(OBJBASE) $(OBJAFIT) $(OBJOTV) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD) lzw.o gzip.o
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-delete \#?.o
|
-delete \#?.o
|
||||||
|
|
||||||
realclean: clean
|
realclean: clean
|
||||||
-delete ft2$(CPU).lib
|
-delete ft2$(CPU).lib
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library base
|
# freetype library base
|
||||||
#
|
#
|
||||||
ftbase.o: $(CORE)base/ftbase.c
|
ftbase.o: $(CORE)base/ftbase.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftinit.o: $(CORE)base/ftinit.c
|
ftinit.o: $(CORE)base/ftinit.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftsystem.o: $(CORE)base/ftsystem.c
|
ftsystem.o: $(CORE)base/ftsystem.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftsystempure.o: src/base/ftsystem.c ## pure version for use in run-time library etc
|
ftsystempure.o: src/base/ftsystem.c ## pure version for use in run-time library etc
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftdebug.o: $(CORE)base/ftdebug.c
|
ftdebug.o: $(CORE)base/ftdebug.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftdebugpure.o: src/base/ftdebug.c ## pure version for use in run-time library etc
|
ftdebugpure.o: src/base/ftdebug.c ## pure version for use in run-time library etc
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
#
|
#
|
||||||
# freetype library base extensions
|
# freetype library base extensions
|
||||||
#
|
#
|
||||||
ftbbox.o: $(CORE)base/ftbbox.c
|
ftbbox.o: $(CORE)base/ftbbox.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftbdf.o: $(CORE)base/ftbdf.c
|
ftbdf.o: $(CORE)base/ftbdf.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftbitmap.o: $(CORE)base/ftbitmap.c
|
ftbitmap.o: $(CORE)base/ftbitmap.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftcid.o: $(CORE)base/ftcid.c
|
ftcid.o: $(CORE)base/ftcid.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftfstype.o: $(CORE)base/ftfstype.c
|
ftfstype.o: $(CORE)base/ftfstype.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftgasp.o: $(CORE)base/ftgasp.c
|
ftgasp.o: $(CORE)base/ftgasp.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftglyph.o: $(CORE)base/ftglyph.c
|
ftglyph.o: $(CORE)base/ftglyph.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftgxval.o: $(CORE)base/ftgxval.c
|
ftgxval.o: $(CORE)base/ftgxval.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftlcdfil.o: $(CORE)base/ftlcdfil.c
|
ftlcdfil.o: $(CORE)base/ftlcdfil.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftmm.o: $(CORE)base/ftmm.c
|
ftmm.o: $(CORE)base/ftmm.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftotval.o: $(CORE)base/ftotval.c
|
ftotval.o: $(CORE)base/ftotval.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftpatent.o: $(CORE)base/ftpatent.c
|
ftpatent.o: $(CORE)base/ftpatent.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftpfr.o: $(CORE)base/ftpfr.c
|
ftpfr.o: $(CORE)base/ftpfr.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftstroke.o: $(CORE)base/ftstroke.c
|
ftstroke.o: $(CORE)base/ftstroke.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftsynth.o: $(CORE)base/ftsynth.c
|
ftsynth.o: $(CORE)base/ftsynth.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
fttype1.o: $(CORE)base/fttype1.c
|
fttype1.o: $(CORE)base/fttype1.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftwinfnt.o: $(CORE)base/ftwinfnt.c
|
ftwinfnt.o: $(CORE)base/ftwinfnt.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
ftxf86.o: $(CORE)base/ftxf86.c
|
ftxf86.o: $(CORE)base/ftxf86.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library autofitter module
|
# freetype library autofitter module
|
||||||
#
|
#
|
||||||
autofit.o: $(CORE)autofit/autofit.c
|
autofit.o: $(CORE)autofit/autofit.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library PS hinting module
|
# freetype library PS hinting module
|
||||||
#
|
#
|
||||||
pshinter.o: $(CORE)pshinter/pshinter.c
|
pshinter.o: $(CORE)pshinter/pshinter.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
#
|
#
|
||||||
# freetype library PS support module
|
# freetype library PS support module
|
||||||
#
|
#
|
||||||
psaux.o: $(CORE)psaux/psaux.c
|
psaux.o: $(CORE)psaux/psaux.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library PS glyph names module
|
# freetype library PS glyph names module
|
||||||
#
|
#
|
||||||
psnames.o: $(CORE)psnames/psnames.c
|
psnames.o: $(CORE)psnames/psnames.c
|
||||||
sc $(SCFLAGS) code=far objname=$@ $<
|
sc $(SCFLAGS) code=far objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library monochrome raster module
|
# freetype library monochrome raster module
|
||||||
#
|
#
|
||||||
raster.o: $(CORE)raster/raster.c
|
raster.o: $(CORE)raster/raster.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library anti-aliasing raster module
|
# freetype library anti-aliasing raster module
|
||||||
#
|
#
|
||||||
smooth.o: $(CORE)smooth/smooth.c
|
smooth.o: $(CORE)smooth/smooth.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library 'sfnt' module
|
# freetype library 'sfnt' module
|
||||||
#
|
#
|
||||||
sfnt.o: $(CORE)sfnt/sfnt.c
|
sfnt.o: $(CORE)sfnt/sfnt.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library glyph and image caching system (still experimental)
|
# freetype library glyph and image caching system (still experimental)
|
||||||
#
|
#
|
||||||
ftcache.o: $(CORE)cache/ftcache.c
|
ftcache.o: $(CORE)cache/ftcache.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library OpenType font driver
|
# freetype library OpenType font driver
|
||||||
#
|
#
|
||||||
cff.o: $(CORE)cff/cff.c
|
cff.o: $(CORE)cff/cff.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library TrueType font driver
|
# freetype library TrueType font driver
|
||||||
#
|
#
|
||||||
truetype.o: $(CORE)truetype/truetype.c
|
truetype.o: $(CORE)truetype/truetype.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library Type1 font driver
|
# freetype library Type1 font driver
|
||||||
#
|
#
|
||||||
type1.o: $(CORE)type1/type1.c
|
type1.o: $(CORE)type1/type1.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# FreeType2 library Type42 font driver
|
# FreeType2 library Type42 font driver
|
||||||
#
|
#
|
||||||
type42.o: $(CORE)type42/type42.c
|
type42.o: $(CORE)type42/type42.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library CID-keyed Type1 font driver
|
# freetype library CID-keyed Type1 font driver
|
||||||
#
|
#
|
||||||
type1cid.o: $(CORE)cid/type1cid.c
|
type1cid.o: $(CORE)cid/type1cid.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
#
|
#
|
||||||
# freetype library CID-keyed Type1 font driver extensions
|
# freetype library CID-keyed Type1 font driver extensions
|
||||||
#
|
#
|
||||||
#cidafm.o: $(CORE)cid/cidafm.c
|
#cidafm.o: $(CORE)cid/cidafm.c
|
||||||
# sc $(SCFLAGS) objname=$@ $<
|
# sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library BDF bitmap font driver
|
# freetype library BDF bitmap font driver
|
||||||
#
|
#
|
||||||
bdf.o: $(CORE)bdf/bdf.c
|
bdf.o: $(CORE)bdf/bdf.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library PCF bitmap font driver
|
# freetype library PCF bitmap font driver
|
||||||
#
|
#
|
||||||
pcf.o: $(CORE)pcf/pcf.c
|
pcf.o: $(CORE)pcf/pcf.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library gzip support for compressed PCF bitmap fonts
|
# freetype library gzip support for compressed PCF bitmap fonts
|
||||||
#
|
#
|
||||||
gzip.o: $(CORE)gzip/ftgzip.c
|
gzip.o: $(CORE)gzip/ftgzip.c
|
||||||
sc $(SCFLAGS) define FAR objname=$@ $<
|
sc $(SCFLAGS) define FAR objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library compress support for compressed PCF bitmap fonts
|
# freetype library compress support for compressed PCF bitmap fonts
|
||||||
#
|
#
|
||||||
lzw.o: $(CORE)lzw/ftlzw.c
|
lzw.o: $(CORE)lzw/ftlzw.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library PFR font driver
|
# freetype library PFR font driver
|
||||||
#
|
#
|
||||||
pfr.o: $(CORE)pfr/pfr.c
|
pfr.o: $(CORE)pfr/pfr.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library Windows FNT/FON bitmap font driver
|
# freetype library Windows FNT/FON bitmap font driver
|
||||||
#
|
#
|
||||||
winfnt.o: $(CORE)winfonts/winfnt.c
|
winfnt.o: $(CORE)winfonts/winfnt.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library TrueTypeGX validator
|
# freetype library TrueTypeGX validator
|
||||||
#
|
#
|
||||||
gxvalid.o: $(CORE)gxvalid/gxvalid.c
|
gxvalid.o: $(CORE)gxvalid/gxvalid.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#
|
#
|
||||||
# freetype library OpenType validator
|
# freetype library OpenType validator
|
||||||
#
|
#
|
||||||
otvalid.o: $(CORE)otvalid/otvalid.c
|
otvalid.o: $(CORE)otvalid/otvalid.c
|
||||||
sc $(SCFLAGS) objname=$@ $<
|
sc $(SCFLAGS) objname=$@ $<
|
||||||
|
|
||||||
#Local Variables:
|
#Local Variables:
|
||||||
#coding: latin-1
|
#coding: latin-1
|
||||||
#End:
|
#End:
|
||||||
|
|
|
@ -1,37 +1,37 @@
|
||||||
/* the following changes file names for PureC projects */
|
/* the following changes file names for PureC projects */
|
||||||
|
|
||||||
if (argc > 0)
|
if (argc > 0)
|
||||||
{
|
{
|
||||||
ordner = argv[0];
|
ordner = argv[0];
|
||||||
if (basename(ordner) == "") /* ist Ordner */
|
if (basename(ordner) == "") /* ist Ordner */
|
||||||
{
|
{
|
||||||
ChangeFilenames(ordner);
|
ChangeFilenames(ordner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
proc ChangeFilenames(folder)
|
proc ChangeFilenames(folder)
|
||||||
local i,entries,directory,file;
|
local i,entries,directory,file;
|
||||||
{
|
{
|
||||||
entries = filelist(directory,folder);
|
entries = filelist(directory,folder);
|
||||||
for (i = 0; i < entries; ++i)
|
for (i = 0; i < entries; ++i)
|
||||||
{
|
{
|
||||||
file = directory[i,0];
|
file = directory[i,0];
|
||||||
if ((directory[i,3]&16) > 0) /* subdirectory */
|
if ((directory[i,3]&16) > 0) /* subdirectory */
|
||||||
{
|
{
|
||||||
ChangeFilenames(folder+file+"\\");
|
ChangeFilenames(folder+file+"\\");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((stricmp(suffix(file),".h")==0)|(stricmp(suffix(file),".c")==0))
|
if ((stricmp(suffix(file),".h")==0)|(stricmp(suffix(file),".c")==0))
|
||||||
ChangeFilename(folder,file);
|
ChangeFilename(folder,file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
proc ChangeFilename(path,datei)
|
proc ChangeFilename(path,datei)
|
||||||
local newfile,err;
|
local newfile,err;
|
||||||
{
|
{
|
||||||
newfile=datei;
|
newfile=datei;
|
||||||
newfile[0]=(newfile[0] | 32) ^ 32;
|
newfile[0]=(newfile[0] | 32) ^ 32;
|
||||||
err=files.rename("-q",path+datei,newfile);
|
err=files.rename("-q",path+datei,newfile);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
;FreeType project file
|
;FreeType project file
|
||||||
|
|
||||||
FREETYPE.LIB
|
FREETYPE.LIB
|
||||||
|
|
||||||
.C [-K -P -R -A]
|
.C [-K -P -R -A]
|
||||||
.L [-J -V]
|
.L [-J -V]
|
||||||
.S
|
.S
|
||||||
|
|
||||||
=
|
=
|
||||||
|
|
||||||
..\..\src\base\ftsystem.c
|
..\..\src\base\ftsystem.c
|
||||||
..\..\src\base\ftdebug.c
|
..\..\src\base\ftdebug.c
|
||||||
|
|
||||||
..\..\src\base\ftinit.c
|
..\..\src\base\ftinit.c
|
||||||
..\..\src\base\ftglyph.c
|
..\..\src\base\ftglyph.c
|
||||||
..\..\src\base\ftmm
|
..\..\src\base\ftmm
|
||||||
..\..\src\base\ftbbox
|
..\..\src\base\ftbbox
|
||||||
|
|
||||||
..\..\src\base\ftbase.c
|
..\..\src\base\ftbase.c
|
||||||
..\..\src\autohint\autohint.c
|
..\..\src\autohint\autohint.c
|
||||||
;..\..\src\cache\ftcache.c
|
;..\..\src\cache\ftcache.c
|
||||||
..\..\src\cff\cff.c
|
..\..\src\cff\cff.c
|
||||||
..\..\src\cid\type1cid.c
|
..\..\src\cid\type1cid.c
|
||||||
..\..\src\psaux\psaux.c
|
..\..\src\psaux\psaux.c
|
||||||
..\..\src\pshinter\pshinter.c
|
..\..\src\pshinter\pshinter.c
|
||||||
..\..\src\psnames\psnames.c
|
..\..\src\psnames\psnames.c
|
||||||
..\..\src\raster\raster.c
|
..\..\src\raster\raster.c
|
||||||
..\..\src\sfnt\sfnt.c
|
..\..\src\sfnt\sfnt.c
|
||||||
..\..\src\smooth\smooth.c
|
..\..\src\smooth\smooth.c
|
||||||
..\..\src\truetype\truetype.c
|
..\..\src\truetype\truetype.c
|
||||||
..\..\src\type1\type1.c
|
..\..\src\type1\type1.c
|
||||||
..\..\src\type42\type42.c
|
..\..\src\type42\type42.c
|
||||||
|
|
|
@ -1,181 +1,181 @@
|
||||||
#!/usr/bin/env awk
|
#!/usr/bin/env awk
|
||||||
|
|
||||||
|
|
||||||
function shift( array, \
|
function shift( array, \
|
||||||
junk, elm0, l )
|
junk, elm0, l )
|
||||||
{
|
{
|
||||||
elm0 = array[0]
|
elm0 = array[0]
|
||||||
for ( l = 0; l < asorti( array, junk ) - 1; l++ )
|
for ( l = 0; l < asorti( array, junk ) - 1; l++ )
|
||||||
array[l] = array[l+1];
|
array[l] = array[l+1];
|
||||||
delete array[l]
|
delete array[l]
|
||||||
return elm0
|
return elm0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function init_cpp_src_line()
|
function init_cpp_src_line()
|
||||||
{
|
{
|
||||||
logical_line = ""
|
logical_line = ""
|
||||||
delete break_pos
|
delete break_pos
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function shift_valid_bp( array, \
|
function shift_valid_bp( array, \
|
||||||
junk, elm )
|
junk, elm )
|
||||||
{
|
{
|
||||||
elm = -1
|
elm = -1
|
||||||
|
|
||||||
if ( 0 < asorti( array, junk ) )
|
if ( 0 < asorti( array, junk ) )
|
||||||
do {
|
do {
|
||||||
elm = shift( array )
|
elm = shift( array )
|
||||||
} while ( 0 > elm );
|
} while ( 0 > elm );
|
||||||
|
|
||||||
return elm
|
return elm
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function check_cpp_src_line_break_pos( \
|
function check_cpp_src_line_break_pos( \
|
||||||
i, junk )
|
i, junk )
|
||||||
{
|
{
|
||||||
printf( "break_pos:" )
|
printf( "break_pos:" )
|
||||||
for ( i = 0; i < asorti( break_pos, junk ); i++ )
|
for ( i = 0; i < asorti( break_pos, junk ); i++ )
|
||||||
printf( " %d", break_pos[i] );
|
printf( " %d", break_pos[i] );
|
||||||
printf( "\n" )
|
printf( "\n" )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function check_cpp_src_line()
|
function check_cpp_src_line()
|
||||||
{
|
{
|
||||||
printf( "logical_line[%s]\n", logical_line )
|
printf( "logical_line[%s]\n", logical_line )
|
||||||
check_cpp_src_line_break_pos()
|
check_cpp_src_line_break_pos()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function append_line( phys_line, \
|
function append_line( phys_line, \
|
||||||
filt_line, bp_len )
|
filt_line, bp_len )
|
||||||
{
|
{
|
||||||
filt_line = phys_line
|
filt_line = phys_line
|
||||||
sub( /\\$/, " ", filt_line )
|
sub( /\\$/, " ", filt_line )
|
||||||
logical_line = logical_line filt_line
|
logical_line = logical_line filt_line
|
||||||
bp_len = asorti( break_pos, junk )
|
bp_len = asorti( break_pos, junk )
|
||||||
break_pos[bp_len] = length( logical_line ) - 1
|
break_pos[bp_len] = length( logical_line ) - 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function print_line( \
|
function print_line( \
|
||||||
c0, c1, i, junk, part_str )
|
c0, c1, i, junk, part_str )
|
||||||
{
|
{
|
||||||
c0 = 0
|
c0 = 0
|
||||||
|
|
||||||
while( asorti( break_pos, junk ) > 1 )
|
while( asorti( break_pos, junk ) > 1 )
|
||||||
{
|
{
|
||||||
if ( ( c1 = shift_valid_bp( break_pos ) ) < 1 )
|
if ( ( c1 = shift_valid_bp( break_pos ) ) < 1 )
|
||||||
{
|
{
|
||||||
part_str = substr( logical_line, c0 + 1 )
|
part_str = substr( logical_line, c0 + 1 )
|
||||||
printf( "%s\n", part_str )
|
printf( "%s\n", part_str )
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
part_str = substr( logical_line, c0 + 1, c1 - c0 + 1 )
|
part_str = substr( logical_line, c0 + 1, c1 - c0 + 1 )
|
||||||
gsub( / $/, "\\", part_str )
|
gsub( / $/, "\\", part_str )
|
||||||
printf( "%s\n", part_str )
|
printf( "%s\n", part_str )
|
||||||
c0 = c1 + 1
|
c0 = c1 + 1
|
||||||
}
|
}
|
||||||
|
|
||||||
part_str = substr( logical_line, c0 + 1 )
|
part_str = substr( logical_line, c0 + 1 )
|
||||||
printf( "%s\n", part_str )
|
printf( "%s\n", part_str )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function shrink_spaces( pos, \
|
function shrink_spaces( pos, \
|
||||||
tail, removed_length, k )
|
tail, removed_length, k )
|
||||||
{
|
{
|
||||||
tail = substr( logical_line, pos )
|
tail = substr( logical_line, pos )
|
||||||
sub( /^[ \t]+/, " ", tail )
|
sub( /^[ \t]+/, " ", tail )
|
||||||
removed_length = length( logical_line ) - pos - length( tail ) + 1
|
removed_length = length( logical_line ) - pos - length( tail ) + 1
|
||||||
logical_line = substr( logical_line, 0, pos - 1 ) tail
|
logical_line = substr( logical_line, 0, pos - 1 ) tail
|
||||||
|
|
||||||
|
|
||||||
for ( k = 0; k < asorti( break_pos, junk ); k++ )
|
for ( k = 0; k < asorti( break_pos, junk ); k++ )
|
||||||
if ( ( pos + removed_length ) <= break_pos[k] )
|
if ( ( pos + removed_length ) <= break_pos[k] )
|
||||||
break_pos[k] = break_pos[k] - removed_length;
|
break_pos[k] = break_pos[k] - removed_length;
|
||||||
else if ( pos <= break_pos[k] )
|
else if ( pos <= break_pos[k] )
|
||||||
break_pos[k] = -1;
|
break_pos[k] = -1;
|
||||||
|
|
||||||
return removed_length
|
return removed_length
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function shrink_spaces_to_linebreak( pos, \
|
function shrink_spaces_to_linebreak( pos, \
|
||||||
junk, part_str, removed_length, i )
|
junk, part_str, removed_length, i )
|
||||||
{
|
{
|
||||||
for ( i = 0; i < asorti( break_pos, junk ) && break_pos[i] < pos ; i++ )
|
for ( i = 0; i < asorti( break_pos, junk ) && break_pos[i] < pos ; i++ )
|
||||||
;
|
;
|
||||||
|
|
||||||
if ( break_pos[i] < 1 )
|
if ( break_pos[i] < 1 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
part_str = substr( logical_line, pos, break_pos[i] - pos + 1 )
|
part_str = substr( logical_line, pos, break_pos[i] - pos + 1 )
|
||||||
sub( /^[ \t]+/, " ", part_str )
|
sub( /^[ \t]+/, " ", part_str )
|
||||||
removed_length = ( break_pos[i] - pos + 1 ) - length( part_str )
|
removed_length = ( break_pos[i] - pos + 1 ) - length( part_str )
|
||||||
|
|
||||||
tail = substr( logical_line, pos + removed_length )
|
tail = substr( logical_line, pos + removed_length )
|
||||||
logical_line = substr( logical_line, 0, pos - 1 ) tail
|
logical_line = substr( logical_line, 0, pos - 1 ) tail
|
||||||
|
|
||||||
for ( ; i < asorti( break_pos, junk ); i++ )
|
for ( ; i < asorti( break_pos, junk ); i++ )
|
||||||
break_pos[i] -= removed_length;
|
break_pos[i] -= removed_length;
|
||||||
|
|
||||||
return removed_length
|
return removed_length
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function delete_linebreaks_in_2nd_token( \
|
function delete_linebreaks_in_2nd_token( \
|
||||||
tail, paren_depth, junk, i, j, k, l )
|
tail, paren_depth, junk, i, j, k, l )
|
||||||
{
|
{
|
||||||
if ( logical_line ~ /^[ \t]*#[ \t]*define[ \t]+[0-9A-Za-z_]+\(/ )
|
if ( logical_line ~ /^[ \t]*#[ \t]*define[ \t]+[0-9A-Za-z_]+\(/ )
|
||||||
{
|
{
|
||||||
tail = logical_line
|
tail = logical_line
|
||||||
sub( /^[ \t]*#[ \t]*define[ \t]+[0-9A-Za-z_]+/, "", tail )
|
sub( /^[ \t]*#[ \t]*define[ \t]+[0-9A-Za-z_]+/, "", tail )
|
||||||
|
|
||||||
paren_depth = 0
|
paren_depth = 0
|
||||||
l = 0
|
l = 0
|
||||||
i = length( logical_line ) - length( tail ) + 1 # seek to the 1st op paren
|
i = length( logical_line ) - length( tail ) + 1 # seek to the 1st op paren
|
||||||
j = i
|
j = i
|
||||||
do {
|
do {
|
||||||
if ( substr( logical_line, j, 2 ) ~ /[ \t][ \t]/ )
|
if ( substr( logical_line, j, 2 ) ~ /[ \t][ \t]/ )
|
||||||
l = shrink_spaces( j );
|
l = shrink_spaces( j );
|
||||||
else if ( substr( logical_line, j, 1 ) == "(" )
|
else if ( substr( logical_line, j, 1 ) == "(" )
|
||||||
paren_depth += 1;
|
paren_depth += 1;
|
||||||
else if ( substr( logical_line, j, 1 ) == ")" )
|
else if ( substr( logical_line, j, 1 ) == ")" )
|
||||||
paren_depth -= 1;
|
paren_depth -= 1;
|
||||||
j += 1
|
j += 1
|
||||||
} while ( j < length( logical_line ) && paren_depth != 0 )
|
} while ( j < length( logical_line ) && paren_depth != 0 )
|
||||||
|
|
||||||
for ( k = 0; k < asorti( break_pos, junk ); k++ )
|
for ( k = 0; k < asorti( break_pos, junk ); k++ )
|
||||||
if ( i <= break_pos[k] && break_pos[k] < j )
|
if ( i <= break_pos[k] && break_pos[k] < j )
|
||||||
break_pos[k] = -1;
|
break_pos[k] = -1;
|
||||||
|
|
||||||
if ( l > 0 )
|
if ( l > 0 )
|
||||||
shrink_spaces_to_linebreak( j );
|
shrink_spaces_to_linebreak( j );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BEGIN{
|
BEGIN{
|
||||||
init_cpp_src_line()
|
init_cpp_src_line()
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
append_line( $0 )
|
append_line( $0 )
|
||||||
if ( $0 !~ /\\$/ )
|
if ( $0 !~ /\\$/ )
|
||||||
{
|
{
|
||||||
delete_linebreaks_in_2nd_token()
|
delete_linebreaks_in_2nd_token()
|
||||||
print_line()
|
print_line()
|
||||||
init_cpp_src_line()
|
init_cpp_src_line()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
END{
|
END{
|
||||||
if ( 0 < length( logical_line ) )
|
if ( 0 < length( logical_line ) )
|
||||||
{
|
{
|
||||||
delete_linebreaks_in_2nd_token()
|
delete_linebreaks_in_2nd_token()
|
||||||
print_line()
|
print_line()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,403 +1,403 @@
|
||||||
This folder contains
|
This folder contains
|
||||||
|
|
||||||
* Makefile skeltons for Apple MPW (Macintosh's Programmers Workshop)
|
* Makefile skeltons for Apple MPW (Macintosh's Programmers Workshop)
|
||||||
|
|
||||||
* Python script to generate MPW makefile from skelton
|
* Python script to generate MPW makefile from skelton
|
||||||
|
|
||||||
* Metrowerks CodeWarrior 9.0 project file in XML format
|
* Metrowerks CodeWarrior 9.0 project file in XML format
|
||||||
|
|
||||||
------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
|
|
||||||
1. What is this
|
1. What is this
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
Files in this directory are designed to build FreeType
|
Files in this directory are designed to build FreeType
|
||||||
running on classic MacOS. To build FreeType running on
|
running on classic MacOS. To build FreeType running on
|
||||||
Mac OS X, build as the system is UNIX.
|
Mac OS X, build as the system is UNIX.
|
||||||
|
|
||||||
However, Mac OS X is most useful to manipulate files in
|
However, Mac OS X is most useful to manipulate files in
|
||||||
vanilla FreeType to fit classic MacOS.
|
vanilla FreeType to fit classic MacOS.
|
||||||
|
|
||||||
The information about MacOS specific API is written in
|
The information about MacOS specific API is written in
|
||||||
appendix of this document.
|
appendix of this document.
|
||||||
|
|
||||||
2. Requirement
|
2. Requirement
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
You can use MPW: a free-charged developer environment
|
You can use MPW: a free-charged developer environment
|
||||||
by Apple, or CodeWarrior: a commercial developer
|
by Apple, or CodeWarrior: a commercial developer
|
||||||
environment by Metrowerks. GCC for MPW and Symantec
|
environment by Metrowerks. GCC for MPW and Symantec
|
||||||
"Think C" are not tested at present.
|
"Think C" are not tested at present.
|
||||||
|
|
||||||
|
|
||||||
2-1. Apple MPW
|
2-1. Apple MPW
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
Following C compilers are tested:
|
Following C compilers are tested:
|
||||||
|
|
||||||
m68k target: Apple SC 8.9.0d3e1
|
m68k target: Apple SC 8.9.0d3e1
|
||||||
ppc target: Apple MrC 5.0.0d3c1
|
ppc target: Apple MrC 5.0.0d3c1
|
||||||
|
|
||||||
The final MPW-GM (official release on 1999/Dec) is too
|
The final MPW-GM (official release on 1999/Dec) is too
|
||||||
old and cannot compile FreeType, because bundled C
|
old and cannot compile FreeType, because bundled C
|
||||||
compilers cannot search header files in sub directories.
|
compilers cannot search header files in sub directories.
|
||||||
Updating by the final MPW-PR (pre-release on 2001/Feb)
|
Updating by the final MPW-PR (pre-release on 2001/Feb)
|
||||||
is required.
|
is required.
|
||||||
|
|
||||||
Required files are downloadable from:
|
Required files are downloadable from:
|
||||||
|
|
||||||
http://developer.apple.com/tools/mpw-tools/index.html
|
http://developer.apple.com/tools/mpw-tools/index.html
|
||||||
|
|
||||||
Also you can find documents how to update by MPW-PR.
|
Also you can find documents how to update by MPW-PR.
|
||||||
|
|
||||||
Python is required to restore MPW makefiles from the
|
Python is required to restore MPW makefiles from the
|
||||||
skeltons. Python bundled to Mac OS X is enough. For
|
skeltons. Python bundled to Mac OS X is enough. For
|
||||||
classic MacOS, MacPython is available:
|
classic MacOS, MacPython is available:
|
||||||
|
|
||||||
http://homepages.cwi.nl/~jack/macpython/
|
http://homepages.cwi.nl/~jack/macpython/
|
||||||
|
|
||||||
MPW requires all files are typed by resource fork.
|
MPW requires all files are typed by resource fork.
|
||||||
ResEdit bundled to MPW is enough. In Mac OS X,
|
ResEdit bundled to MPW is enough. In Mac OS X,
|
||||||
/Developer/Tools/SetFile of DevTool is useful to
|
/Developer/Tools/SetFile of DevTool is useful to
|
||||||
manipulate from commandline.
|
manipulate from commandline.
|
||||||
|
|
||||||
2-2. Metrowerks CodeWarrior
|
2-2. Metrowerks CodeWarrior
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
XML project file is generated and tested by
|
XML project file is generated and tested by
|
||||||
CodeWarrior 9.0. Older versions are not tested
|
CodeWarrior 9.0. Older versions are not tested
|
||||||
at all. At present, static library for ppc target
|
at all. At present, static library for ppc target
|
||||||
is available in the project file.
|
is available in the project file.
|
||||||
|
|
||||||
|
|
||||||
3. How to build
|
3. How to build
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
3-1. Apple MPW
|
3-1. Apple MPW
|
||||||
--------------
|
--------------
|
||||||
Detailed building procedure by Apple MPW is
|
Detailed building procedure by Apple MPW is
|
||||||
described in following.
|
described in following.
|
||||||
|
|
||||||
3-1-1. Generate MPW makefiles from the skeltons
|
3-1-1. Generate MPW makefiles from the skeltons
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
Here are 4 skeltons for following targets are
|
Here are 4 skeltons for following targets are
|
||||||
included.
|
included.
|
||||||
|
|
||||||
- FreeType.m68k_far.make.txt
|
- FreeType.m68k_far.make.txt
|
||||||
Ancient 32bit binary executable format for
|
Ancient 32bit binary executable format for
|
||||||
m68k MacOS: System 6, with 32bit addressing
|
m68k MacOS: System 6, with 32bit addressing
|
||||||
mode (far-pointer-model) So-called "Toolbox"
|
mode (far-pointer-model) So-called "Toolbox"
|
||||||
API is used.
|
API is used.
|
||||||
|
|
||||||
- FreeType.m68k_cfm.make.txt
|
- FreeType.m68k_cfm.make.txt
|
||||||
CFM binary executable format for m68k MacOS:
|
CFM binary executable format for m68k MacOS:
|
||||||
System 7. So-called "Toolbox" API is used.
|
System 7. So-called "Toolbox" API is used.
|
||||||
|
|
||||||
- FreeType.ppc_classic.make.txt
|
- FreeType.ppc_classic.make.txt
|
||||||
CFM binary executable format for ppc MacOS:
|
CFM binary executable format for ppc MacOS:
|
||||||
System 7, MacOS 8, MacOS 9. So-called "Toolbox"
|
System 7, MacOS 8, MacOS 9. So-called "Toolbox"
|
||||||
API is used.
|
API is used.
|
||||||
|
|
||||||
- FreeType.ppc_carbon.make.txt
|
- FreeType.ppc_carbon.make.txt
|
||||||
CFM binary executable format for ppc MacOS:
|
CFM binary executable format for ppc MacOS:
|
||||||
MacOS 9. Carbon API is used.
|
MacOS 9. Carbon API is used.
|
||||||
|
|
||||||
At present, static library is only supported,
|
At present, static library is only supported,
|
||||||
although targets except of m68k_far are capable
|
although targets except of m68k_far are capable
|
||||||
to use shared library.
|
to use shared library.
|
||||||
|
|
||||||
MPW makefile syntax uses 8bit characters. To keep
|
MPW makefile syntax uses 8bit characters. To keep
|
||||||
from violating them during version control, here
|
from violating them during version control, here
|
||||||
we store skeltons in pure ASCII format. You must
|
we store skeltons in pure ASCII format. You must
|
||||||
generate MPW makefile by Python script ascii2mpw.py.
|
generate MPW makefile by Python script ascii2mpw.py.
|
||||||
|
|
||||||
In Mac OS X terminal, you can convert as:
|
In Mac OS X terminal, you can convert as:
|
||||||
|
|
||||||
python builds/mac/ascii2mpw.py \
|
python builds/mac/ascii2mpw.py \
|
||||||
< builds/mac/FreeType.m68k_far.make.txt \
|
< builds/mac/FreeType.m68k_far.make.txt \
|
||||||
> FreeType.m68k_far.make
|
> FreeType.m68k_far.make
|
||||||
|
|
||||||
The skeltons are designed to use in the top
|
The skeltons are designed to use in the top
|
||||||
directory where there are builds, include, src etc.
|
directory where there are builds, include, src etc.
|
||||||
You must name the generated MPW makefile by removing
|
You must name the generated MPW makefile by removing
|
||||||
".txt" from source skelton name.
|
".txt" from source skelton name.
|
||||||
|
|
||||||
3-1-2. Add resource forks to related files
|
3-1-2. Add resource forks to related files
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
MPW's Make and C compilers cannot recognize files
|
MPW's Make and C compilers cannot recognize files
|
||||||
without resource fork. You have to add resource
|
without resource fork. You have to add resource
|
||||||
fork to the files that MPW uses. In Mac OS X
|
fork to the files that MPW uses. In Mac OS X
|
||||||
terminal of the system, you can do as:
|
terminal of the system, you can do as:
|
||||||
|
|
||||||
find . -name '*.[ch]' -exec \
|
find . -name '*.[ch]' -exec \
|
||||||
/Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \;
|
/Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \;
|
||||||
|
|
||||||
find . -name '*.make' -exec \
|
find . -name '*.make' -exec \
|
||||||
/Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \;
|
/Developer/Tools/SetFile -a l -c "MPS " -t TEXT \{\} \;
|
||||||
|
|
||||||
|
|
||||||
3-1-3. Open MPW shell and build
|
3-1-3. Open MPW shell and build
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
Open MPW shell and go to the top directory that
|
Open MPW shell and go to the top directory that
|
||||||
FreeType sources are extracted (MPW makefile must
|
FreeType sources are extracted (MPW makefile must
|
||||||
be located in there), from "Set Directory" in
|
be located in there), from "Set Directory" in
|
||||||
"Directory" menu.
|
"Directory" menu.
|
||||||
|
|
||||||
Choose "Build" from "Build" menu, and type the
|
Choose "Build" from "Build" menu, and type the
|
||||||
name of project by removing ".make" from MPW
|
name of project by removing ".make" from MPW
|
||||||
makefile, as: FreeType.m68k_far
|
makefile, as: FreeType.m68k_far
|
||||||
|
|
||||||
If building is successfully finished, you can find
|
If building is successfully finished, you can find
|
||||||
built library in objs/ directory.
|
built library in objs/ directory.
|
||||||
|
|
||||||
|
|
||||||
3-2. Metrowerks CodeWarrior
|
3-2. Metrowerks CodeWarrior
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
Detailed building procedure by Metrowerks
|
Detailed building procedure by Metrowerks
|
||||||
CodeWarrior (CW) 9.0 is described in following.
|
CodeWarrior (CW) 9.0 is described in following.
|
||||||
|
|
||||||
3-2-1. Import XML project file
|
3-2-1. Import XML project file
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
CW XML project file is not ready for double-
|
CW XML project file is not ready for double-
|
||||||
click. Start CodeWarrior IDE, and choose
|
click. Start CodeWarrior IDE, and choose
|
||||||
"Import project" in "File" menu. Choose XML
|
"Import project" in "File" menu. Choose XML
|
||||||
project file: builds/mac/ftlib.prj.xml.
|
project file: builds/mac/ftlib.prj.xml.
|
||||||
In next, you will be asked where to save CW
|
In next, you will be asked where to save CW
|
||||||
native project file: you must choose
|
native project file: you must choose
|
||||||
"builds/mac/ftlib.prj". The project file is
|
"builds/mac/ftlib.prj". The project file is
|
||||||
designed with relative path from there. After
|
designed with relative path from there. After
|
||||||
CW native project file is generated, it is
|
CW native project file is generated, it is
|
||||||
automatically loaded, small project window
|
automatically loaded, small project window
|
||||||
titled "ftlib.prj" is displayed.
|
titled "ftlib.prj" is displayed.
|
||||||
|
|
||||||
3-2-2. Building
|
3-2-2. Building
|
||||||
---------------
|
---------------
|
||||||
Choose "Make" from "Project" menu. If building
|
Choose "Make" from "Project" menu. If building
|
||||||
is successfully finished, you can find built
|
is successfully finished, you can find built
|
||||||
library at objs/FreeTypeLib.
|
library at objs/FreeTypeLib.
|
||||||
|
|
||||||
4. TODO
|
4. TODO
|
||||||
-------
|
-------
|
||||||
|
|
||||||
4-1. All modules should be included
|
4-1. All modules should be included
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
At present, MPW makefiles and CW project file are
|
At present, MPW makefiles and CW project file are
|
||||||
just updated versions of these by Leonard. Some
|
just updated versions of these by Leonard. Some
|
||||||
modules are added after the last maintenance, they
|
modules are added after the last maintenance, they
|
||||||
are not included.
|
are not included.
|
||||||
|
|
||||||
4-2. Working test with ftdemos
|
4-2. Working test with ftdemos
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
At present, MPW makefiles and CW project file can
|
At present, MPW makefiles and CW project file can
|
||||||
build FreeType for classic MacOS. But their working
|
build FreeType for classic MacOS. But their working
|
||||||
behaviours are not tested at all. Building ftdemos
|
behaviours are not tested at all. Building ftdemos
|
||||||
for classic MacOS and working test is required.
|
for classic MacOS and working test is required.
|
||||||
|
|
||||||
4-3. Porting Jam onto MPW
|
4-3. Porting Jam onto MPW
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
FreeType uses Jam (and FT-Jam) for unified cross-
|
FreeType uses Jam (and FT-Jam) for unified cross-
|
||||||
platform building tool. At present, Jam is not ported
|
platform building tool. At present, Jam is not ported
|
||||||
to MPW. To update classic MacOS support easily,
|
to MPW. To update classic MacOS support easily,
|
||||||
building by Jam is expected on MPW.
|
building by Jam is expected on MPW.
|
||||||
|
|
||||||
|
|
||||||
APPENDIX I
|
APPENDIX I
|
||||||
----------
|
----------
|
||||||
|
|
||||||
A-1. Framework dependencies
|
A-1. Framework dependencies
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
src/base/ftmac.c adds two Mac-specific features to
|
src/base/ftmac.c adds two Mac-specific features to
|
||||||
FreeType. These features are based on MacOS libraries.
|
FreeType. These features are based on MacOS libraries.
|
||||||
|
|
||||||
* accessing resource-fork font
|
* accessing resource-fork font
|
||||||
The fonts for classic MacOS store their graphical data
|
The fonts for classic MacOS store their graphical data
|
||||||
in resource forks which cannot be accessed via ANSI C
|
in resource forks which cannot be accessed via ANSI C
|
||||||
functions. FreeType2 provides functions to handle such
|
functions. FreeType2 provides functions to handle such
|
||||||
resource fork fonts, they are based on File Manager
|
resource fork fonts, they are based on File Manager
|
||||||
framework of MacOS. In addition, HFS and HFS+ file
|
framework of MacOS. In addition, HFS and HFS+ file
|
||||||
system driver of Linux is supported. Following
|
system driver of Linux is supported. Following
|
||||||
functions are for this purpose.
|
functions are for this purpose.
|
||||||
|
|
||||||
FT_New_Face_From_Resource()
|
FT_New_Face_From_Resource()
|
||||||
FT_New_Face_From_FSSpec()
|
FT_New_Face_From_FSSpec()
|
||||||
FT_New_Face_From_FSRef()
|
FT_New_Face_From_FSRef()
|
||||||
|
|
||||||
* resolving font name to font file
|
* resolving font name to font file
|
||||||
The font menu of MacOS application prefers font name
|
The font menu of MacOS application prefers font name
|
||||||
written in FOND resource than sfnt resource. FreeType2
|
written in FOND resource than sfnt resource. FreeType2
|
||||||
provides functions to find font file by name in MacOS
|
provides functions to find font file by name in MacOS
|
||||||
application, they are based on QuickDraw Font Manager
|
application, they are based on QuickDraw Font Manager
|
||||||
and Apple Type Service framework of MacOS.
|
and Apple Type Service framework of MacOS.
|
||||||
|
|
||||||
FT_GetFile_From_Mac_Name()
|
FT_GetFile_From_Mac_Name()
|
||||||
FT_GetFile_From_Mac_ATS_Name()
|
FT_GetFile_From_Mac_ATS_Name()
|
||||||
|
|
||||||
Working functions for each MacOS are summarized as
|
Working functions for each MacOS are summarized as
|
||||||
following.
|
following.
|
||||||
|
|
||||||
upto MacOS 6:
|
upto MacOS 6:
|
||||||
not tested (you have to obtain MPW 2.x)
|
not tested (you have to obtain MPW 2.x)
|
||||||
|
|
||||||
MacOS 7.x, 8.x, 9.x (without CarbonLib):
|
MacOS 7.x, 8.x, 9.x (without CarbonLib):
|
||||||
FT_GetFile_From_Mac_Name()
|
FT_GetFile_From_Mac_Name()
|
||||||
FT_New_Face_From_Resource()
|
FT_New_Face_From_Resource()
|
||||||
FT_New_Face_From_FSSpec()
|
FT_New_Face_From_FSSpec()
|
||||||
|
|
||||||
MacOS 9.x (with CarbonLib):
|
MacOS 9.x (with CarbonLib):
|
||||||
FT_GetFile_From_Mac_Name()
|
FT_GetFile_From_Mac_Name()
|
||||||
FT_New_Face_From_Resource()
|
FT_New_Face_From_Resource()
|
||||||
FT_New_Face_From_FSSpec()
|
FT_New_Face_From_FSSpec()
|
||||||
FT_New_Face_From_FSRef()
|
FT_New_Face_From_FSRef()
|
||||||
|
|
||||||
Mac OS X upto 10.4.x:
|
Mac OS X upto 10.4.x:
|
||||||
FT_GetFile_From_Mac_Name() deprecated
|
FT_GetFile_From_Mac_Name() deprecated
|
||||||
FT_New_Face_From_FSSpec() deprecated
|
FT_New_Face_From_FSSpec() deprecated
|
||||||
FT_GetFile_From_Mac_ATS_Name() deprecated?
|
FT_GetFile_From_Mac_ATS_Name() deprecated?
|
||||||
FT_New_Face_From_FSRef()
|
FT_New_Face_From_FSRef()
|
||||||
|
|
||||||
A-2. Deprecated Functions
|
A-2. Deprecated Functions
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
A-2-1. FileManager
|
A-2-1. FileManager
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
For convenience to write MacOS application, ftmac.c
|
For convenience to write MacOS application, ftmac.c
|
||||||
provides functions to specify a file by FSSpec and FSRef,
|
provides functions to specify a file by FSSpec and FSRef,
|
||||||
because the file identification pathname had ever been
|
because the file identification pathname had ever been
|
||||||
unrecommended method in MacOS programming.
|
unrecommended method in MacOS programming.
|
||||||
|
|
||||||
Toward to MacOS X 10.4 & 5, Carbon functions using FSSpec
|
Toward to MacOS X 10.4 & 5, Carbon functions using FSSpec
|
||||||
datatype is noticed as deprecated, and recommended to
|
datatype is noticed as deprecated, and recommended to
|
||||||
migrate to FSRef datatype. The big differences of FSRef
|
migrate to FSRef datatype. The big differences of FSRef
|
||||||
against FSSpec are explained in Apple TechNotes 2078.
|
against FSSpec are explained in Apple TechNotes 2078.
|
||||||
|
|
||||||
http://developer.apple.com/technotes/tn2002/tn2078.html
|
http://developer.apple.com/technotes/tn2002/tn2078.html
|
||||||
|
|
||||||
- filename length: the max length of file
|
- filename length: the max length of file
|
||||||
name of FSRef is 255 chars (it is limit of HFS+),
|
name of FSRef is 255 chars (it is limit of HFS+),
|
||||||
that of FSSpec is 31 chars (it is limit of HFS).
|
that of FSSpec is 31 chars (it is limit of HFS).
|
||||||
|
|
||||||
- filename encoding: FSSpec is localized by
|
- filename encoding: FSSpec is localized by
|
||||||
legacy encoding for each language system,
|
legacy encoding for each language system,
|
||||||
FSRef is Unicode enabled.
|
FSRef is Unicode enabled.
|
||||||
|
|
||||||
A-2-2. FontManager
|
A-2-2. FontManager
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
Following functions receive QuickDraw fontname:
|
Following functions receive QuickDraw fontname:
|
||||||
|
|
||||||
FT_GetFile_From_Mac_Name()
|
FT_GetFile_From_Mac_Name()
|
||||||
|
|
||||||
QuickDraw is deprecated and replaced by Quartz
|
QuickDraw is deprecated and replaced by Quartz
|
||||||
since Mac OS X 10.4. They are still kept for
|
since Mac OS X 10.4. They are still kept for
|
||||||
backward compatibility. By undefinition of
|
backward compatibility. By undefinition of
|
||||||
HAVE_QUICKDRAW in building, you can change these
|
HAVE_QUICKDRAW in building, you can change these
|
||||||
functions to return FT_Err_Unimplemented always.
|
functions to return FT_Err_Unimplemented always.
|
||||||
|
|
||||||
Replacement functions are added for migration.
|
Replacement functions are added for migration.
|
||||||
|
|
||||||
FT_GetFile_From_Mac_ATS_Name()
|
FT_GetFile_From_Mac_ATS_Name()
|
||||||
|
|
||||||
They are usable on Mac OS X only. On older systems,
|
They are usable on Mac OS X only. On older systems,
|
||||||
these functions return FT_Err_Unimplemented always.
|
these functions return FT_Err_Unimplemented always.
|
||||||
|
|
||||||
The detailed incompatibilities and possibility
|
The detailed incompatibilities and possibility
|
||||||
of FontManager emulation without QuickDraw is
|
of FontManager emulation without QuickDraw is
|
||||||
explained in
|
explained in
|
||||||
|
|
||||||
http://www.gyve.org/~mpsuzuki/ats_benchmark.html
|
http://www.gyve.org/~mpsuzuki/ats_benchmark.html
|
||||||
|
|
||||||
A-3. Framework Availabilities
|
A-3. Framework Availabilities
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
The framework of MacOS are often revised, especially
|
The framework of MacOS are often revised, especially
|
||||||
when new format of binary executable is introduced.
|
when new format of binary executable is introduced.
|
||||||
Following table is the minimum version of frameworks
|
Following table is the minimum version of frameworks
|
||||||
to use functions used in FreeType2. The table is
|
to use functions used in FreeType2. The table is
|
||||||
extracted from MPW header files for assembly language.
|
extracted from MPW header files for assembly language.
|
||||||
|
|
||||||
*** NOTE ***
|
*** NOTE ***
|
||||||
The conditional definition of available data type
|
The conditional definition of available data type
|
||||||
in MPW compiler is insufficient. You can compile
|
in MPW compiler is insufficient. You can compile
|
||||||
program using FSRef data type for older systems
|
program using FSRef data type for older systems
|
||||||
(MacOS 7, 8) that don't know FSRef data type.
|
(MacOS 7, 8) that don't know FSRef data type.
|
||||||
|
|
||||||
|
|
||||||
+-------------------+-----------------------------+
|
+-------------------+-----------------------------+
|
||||||
CPU | mc680x0 | PowerPC |
|
CPU | mc680x0 | PowerPC |
|
||||||
+---------+---------+---------+---------+---------+
|
+---------+---------+---------+---------+---------+
|
||||||
Binary Executable Format | Classic | 68K-CFM | CFM | CFM | Mach-O |
|
Binary Executable Format | Classic | 68K-CFM | CFM | CFM | Mach-O |
|
||||||
+---------+---------+---------+---------+---------+
|
+---------+---------+---------+---------+---------+
|
||||||
Framework API | Toolbox | Toolbox | Toolbox | Carbon | Carbon |
|
Framework API | Toolbox | Toolbox | Toolbox | Carbon | Carbon |
|
||||||
+---------+---------+---------+---------+---------+
|
+---------+---------+---------+---------+---------+
|
||||||
|
|
||||||
+---------+---------+---------+---------+---------+
|
+---------+---------+---------+---------+---------+
|
||||||
| ?(*) |Interface|Interface|CarbonLib|Mac OS X |
|
| ?(*) |Interface|Interface|CarbonLib|Mac OS X |
|
||||||
| |Lib |Lib | | |
|
| |Lib |Lib | | |
|
||||||
* Files.h +---------+---------+---------+---------+---------+
|
* Files.h +---------+---------+---------+---------+---------+
|
||||||
PBGetFCBInfoSync() | o | 7.1- | 7.1- | 1.0- | o |
|
PBGetFCBInfoSync() | o | 7.1- | 7.1- | 1.0- | o |
|
||||||
FSMakeFSSpec() | o | 7.1- | 7.1- | 1.0- | o |
|
FSMakeFSSpec() | o | 7.1- | 7.1- | 1.0- | o |
|
||||||
FSGetForkCBInfo() | o | (**) | 9.0- | 1.0- | o |
|
FSGetForkCBInfo() | o | (**) | 9.0- | 1.0- | o |
|
||||||
FSpMakeFSRef() | o | (**) | 9.0- | 1.0- | o |
|
FSpMakeFSRef() | o | (**) | 9.0- | 1.0- | o |
|
||||||
FSGetCatalogInfo() | o | (**) | 9.0- | 1.0- | -10.3 |
|
FSGetCatalogInfo() | o | (**) | 9.0- | 1.0- | -10.3 |
|
||||||
FSPathMakeRef() | x | x | x | 1.1- | -10.3 |
|
FSPathMakeRef() | x | x | x | 1.1- | -10.3 |
|
||||||
+---------+---------+---------+---------+---------+
|
+---------+---------+---------+---------+---------+
|
||||||
|
|
||||||
+---------+---------+---------+---------+---------+
|
+---------+---------+---------+---------+---------+
|
||||||
| ?(*) |Font |Font |CarbonLib|Mac OS X |
|
| ?(*) |Font |Font |CarbonLib|Mac OS X |
|
||||||
| |Manager |Manager | | |
|
| |Manager |Manager | | |
|
||||||
* Fonts.h +---------+---------+---------+---------+---------+
|
* Fonts.h +---------+---------+---------+---------+---------+
|
||||||
FMCreateFontFamilyIterator() | x | x | 9.0- | 1.0- | -10.3 |
|
FMCreateFontFamilyIterator() | x | x | 9.0- | 1.0- | -10.3 |
|
||||||
FMDisposeFontFamilyIterator() | x | x | 9.0- | 1.0- | -10.3 |
|
FMDisposeFontFamilyIterator() | x | x | 9.0- | 1.0- | -10.3 |
|
||||||
FMGetNextFontFamily() | x | x | 9.0- | 1.0- | -10.3 |
|
FMGetNextFontFamily() | x | x | 9.0- | 1.0- | -10.3 |
|
||||||
FMGetFontFamilyName() | x | x | 9.0- | 1.0- | -10.3 |
|
FMGetFontFamilyName() | x | x | 9.0- | 1.0- | -10.3 |
|
||||||
FMCreateFontFamilyInstanceIterator() | x | x | 9.0- | 1.0- | -10.3 |
|
FMCreateFontFamilyInstanceIterator() | x | x | 9.0- | 1.0- | -10.3 |
|
||||||
FMDisposeFontFamilyInstanceIterator() | x | x | 9.0- | 1.0- | -10.3 |
|
FMDisposeFontFamilyInstanceIterator() | x | x | 9.0- | 1.0- | -10.3 |
|
||||||
FMGetNextFontFamilyInstance() | x | x | 9.0- | 1.0- | -10.3 |
|
FMGetNextFontFamilyInstance() | x | x | 9.0- | 1.0- | -10.3 |
|
||||||
+---------+---------+---------+---------+---------+
|
+---------+---------+---------+---------+---------+
|
||||||
|
|
||||||
+---------+---------+---------+---------+---------+
|
+---------+---------+---------+---------+---------+
|
||||||
| - | - | - |CarbonLib|Mac OS X |
|
| - | - | - |CarbonLib|Mac OS X |
|
||||||
* ATSFont.h (***) +---------+---------+---------+---------+---------+
|
* ATSFont.h (***) +---------+---------+---------+---------+---------+
|
||||||
ATSFontFindFromName() | x | x | x | x | o |
|
ATSFontFindFromName() | x | x | x | x | o |
|
||||||
ATSFontGetFileSpecification() | x | x | x | x | o |
|
ATSFontGetFileSpecification() | x | x | x | x | o |
|
||||||
+---------+---------+---------+---------+---------+
|
+---------+---------+---------+---------+---------+
|
||||||
|
|
||||||
(*)
|
(*)
|
||||||
In the "Classic": the original binary executable
|
In the "Classic": the original binary executable
|
||||||
format, these framework functions are directly
|
format, these framework functions are directly
|
||||||
transformed to MacOS system call. Therefore, the
|
transformed to MacOS system call. Therefore, the
|
||||||
exact availability should be checked by running
|
exact availability should be checked by running
|
||||||
system.
|
system.
|
||||||
|
|
||||||
(**)
|
(**)
|
||||||
InterfaceLib is bundled to MacOS and its version
|
InterfaceLib is bundled to MacOS and its version
|
||||||
is usually equal to MacOS. There's no separate
|
is usually equal to MacOS. There's no separate
|
||||||
update for InterfaceLib. It is supposed that
|
update for InterfaceLib. It is supposed that
|
||||||
there's no InterfaceLib 9.x for m68k platforms.
|
there's no InterfaceLib 9.x for m68k platforms.
|
||||||
In fact, these functions are FSRef dependent.
|
In fact, these functions are FSRef dependent.
|
||||||
|
|
||||||
(***)
|
(***)
|
||||||
ATSUI framework is available on ATSUnicode 8.5 on
|
ATSUI framework is available on ATSUnicode 8.5 on
|
||||||
ppc Toolbox CFM, CarbonLib 1.0 too. But its base:
|
ppc Toolbox CFM, CarbonLib 1.0 too. But its base:
|
||||||
ATS font manager is not published in these versions.
|
ATS font manager is not published in these versions.
|
||||||
|
|
||||||
------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
Last update: 2009-Jul-25.
|
Last update: 2009-Jul-25.
|
||||||
|
|
||||||
Currently maintained by
|
Currently maintained by
|
||||||
suzuki toshiya, <mpsuzuki@hiroshima-u.ac.jp>
|
suzuki toshiya, <mpsuzuki@hiroshima-u.ac.jp>
|
||||||
Originally prepared by
|
Originally prepared by
|
||||||
Leonard Rosenthol, <leonardr@lazerware.com>
|
Leonard Rosenthol, <leonardr@lazerware.com>
|
||||||
Just van Rossum, <just@letterror.com>
|
Just van Rossum, <just@letterror.com>
|
||||||
|
|
||||||
This directory is now actively maintained as part of the FreeType Project.
|
This directory is now actively maintained as part of the FreeType Project.
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
|
|
||||||
|
|
|
@ -1,142 +1,142 @@
|
||||||
//
|
//
|
||||||
// FreeType 2 makefile for the symbian platform
|
// FreeType 2 makefile for the symbian platform
|
||||||
//
|
//
|
||||||
|
|
||||||
// Copyright 2008, 2009 by
|
// Copyright 2008, 2009 by
|
||||||
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
// David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
//
|
//
|
||||||
// This file is part of the FreeType project, and may only be used, modified,
|
// This file is part of the FreeType project, and may only be used, modified,
|
||||||
// and distributed under the terms of the FreeType project license,
|
// and distributed under the terms of the FreeType project license,
|
||||||
// LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
// LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
// indicate that you have read the license and understand and accept it
|
// indicate that you have read the license and understand and accept it
|
||||||
// fully.
|
// fully.
|
||||||
|
|
||||||
target freetype.lib
|
target freetype.lib
|
||||||
targettype lib
|
targettype lib
|
||||||
|
|
||||||
macro NDEBUG
|
macro NDEBUG
|
||||||
macro FT2_BUILD_LIBRARY
|
macro FT2_BUILD_LIBRARY
|
||||||
|
|
||||||
sourcepath ..\..\src\autofit
|
sourcepath ..\..\src\autofit
|
||||||
|
|
||||||
source autofit.c
|
source autofit.c
|
||||||
|
|
||||||
sourcepath ..\..\src\base
|
sourcepath ..\..\src\base
|
||||||
|
|
||||||
source ftbase.c
|
source ftbase.c
|
||||||
source ftbbox.c
|
source ftbbox.c
|
||||||
source ftbdf.c
|
source ftbdf.c
|
||||||
source ftbitmap.c
|
source ftbitmap.c
|
||||||
source ftcid.c
|
source ftcid.c
|
||||||
source ftfstype.c
|
source ftfstype.c
|
||||||
source ftgasp.c
|
source ftgasp.c
|
||||||
source ftglyph.c
|
source ftglyph.c
|
||||||
source ftgxval.c
|
source ftgxval.c
|
||||||
source ftinit.c
|
source ftinit.c
|
||||||
source ftlcdfil.c
|
source ftlcdfil.c
|
||||||
source ftmm.c
|
source ftmm.c
|
||||||
source ftotval.c
|
source ftotval.c
|
||||||
source ftpatent.c
|
source ftpatent.c
|
||||||
source ftpfr.c
|
source ftpfr.c
|
||||||
source ftstroke.c
|
source ftstroke.c
|
||||||
source ftsynth.c
|
source ftsynth.c
|
||||||
source ftsystem.c
|
source ftsystem.c
|
||||||
source fttype1.c
|
source fttype1.c
|
||||||
source ftwinfnt.c
|
source ftwinfnt.c
|
||||||
|
|
||||||
sourcepath ..\..\src\bdf
|
sourcepath ..\..\src\bdf
|
||||||
|
|
||||||
source bdf.c
|
source bdf.c
|
||||||
|
|
||||||
sourcepath ..\..\src\cache
|
sourcepath ..\..\src\cache
|
||||||
|
|
||||||
source ftcache.c
|
source ftcache.c
|
||||||
|
|
||||||
sourcepath ..\..\src\cff
|
sourcepath ..\..\src\cff
|
||||||
|
|
||||||
source cff.c
|
source cff.c
|
||||||
|
|
||||||
sourcepath ..\..\src\cid
|
sourcepath ..\..\src\cid
|
||||||
|
|
||||||
source type1cid.c
|
source type1cid.c
|
||||||
|
|
||||||
sourcepath ..\..\src\gzip
|
sourcepath ..\..\src\gzip
|
||||||
|
|
||||||
source ftgzip.c
|
source ftgzip.c
|
||||||
|
|
||||||
sourcepath ..\..\src\lzw
|
sourcepath ..\..\src\lzw
|
||||||
|
|
||||||
source ftlzw.c
|
source ftlzw.c
|
||||||
|
|
||||||
sourcepath ..\..\src\pcf
|
sourcepath ..\..\src\pcf
|
||||||
|
|
||||||
source pcf.c
|
source pcf.c
|
||||||
|
|
||||||
sourcepath ..\..\src\pfr
|
sourcepath ..\..\src\pfr
|
||||||
|
|
||||||
source pfr.c
|
source pfr.c
|
||||||
|
|
||||||
sourcepath ..\..\src\psaux
|
sourcepath ..\..\src\psaux
|
||||||
|
|
||||||
source psaux.c
|
source psaux.c
|
||||||
|
|
||||||
sourcepath ..\..\src\pshinter
|
sourcepath ..\..\src\pshinter
|
||||||
|
|
||||||
source pshinter.c
|
source pshinter.c
|
||||||
|
|
||||||
sourcepath ..\..\src\psnames
|
sourcepath ..\..\src\psnames
|
||||||
|
|
||||||
source psmodule.c
|
source psmodule.c
|
||||||
|
|
||||||
sourcepath ..\..\src\raster
|
sourcepath ..\..\src\raster
|
||||||
|
|
||||||
source raster.c
|
source raster.c
|
||||||
|
|
||||||
sourcepath ..\..\src\sfnt
|
sourcepath ..\..\src\sfnt
|
||||||
|
|
||||||
source sfnt.c
|
source sfnt.c
|
||||||
|
|
||||||
sourcepath ..\..\src\smooth
|
sourcepath ..\..\src\smooth
|
||||||
|
|
||||||
source smooth.c
|
source smooth.c
|
||||||
|
|
||||||
sourcepath ..\..\src\truetype
|
sourcepath ..\..\src\truetype
|
||||||
|
|
||||||
source truetype.c
|
source truetype.c
|
||||||
|
|
||||||
sourcepath ..\..\src\type1
|
sourcepath ..\..\src\type1
|
||||||
|
|
||||||
source type1.c
|
source type1.c
|
||||||
|
|
||||||
sourcepath ..\..\src\type42
|
sourcepath ..\..\src\type42
|
||||||
|
|
||||||
source type42.c
|
source type42.c
|
||||||
|
|
||||||
sourcepath ..\..\src\winfonts
|
sourcepath ..\..\src\winfonts
|
||||||
|
|
||||||
source winfnt.c
|
source winfnt.c
|
||||||
|
|
||||||
|
|
||||||
systeminclude ..\..\include
|
systeminclude ..\..\include
|
||||||
systeminclude \epoc32\include\stdapis
|
systeminclude \epoc32\include\stdapis
|
||||||
userinclude ..\..\src\autofit
|
userinclude ..\..\src\autofit
|
||||||
userinclude ..\..\src\bdf
|
userinclude ..\..\src\bdf
|
||||||
userinclude ..\..\src\cache
|
userinclude ..\..\src\cache
|
||||||
userinclude ..\..\src\cff
|
userinclude ..\..\src\cff
|
||||||
userinclude ..\..\src\cid
|
userinclude ..\..\src\cid
|
||||||
userinclude ..\..\src\gxvalid
|
userinclude ..\..\src\gxvalid
|
||||||
userinclude ..\..\src\gzip
|
userinclude ..\..\src\gzip
|
||||||
userinclude ..\..\src\lzw
|
userinclude ..\..\src\lzw
|
||||||
userinclude ..\..\src\otvalid
|
userinclude ..\..\src\otvalid
|
||||||
userinclude ..\..\src\pcf
|
userinclude ..\..\src\pcf
|
||||||
userinclude ..\..\src\pfr
|
userinclude ..\..\src\pfr
|
||||||
userinclude ..\..\src\psaux
|
userinclude ..\..\src\psaux
|
||||||
userinclude ..\..\src\pshinter
|
userinclude ..\..\src\pshinter
|
||||||
userinclude ..\..\src\psnames
|
userinclude ..\..\src\psnames
|
||||||
userinclude ..\..\src\raster
|
userinclude ..\..\src\raster
|
||||||
userinclude ..\..\src\sfnt
|
userinclude ..\..\src\sfnt
|
||||||
userinclude ..\..\src\smooth
|
userinclude ..\..\src\smooth
|
||||||
userinclude ..\..\src\truetype
|
userinclude ..\..\src\truetype
|
||||||
userinclude ..\..\src\type1
|
userinclude ..\..\src\type1
|
||||||
userinclude ..\..\src\type42
|
userinclude ..\..\src\type42
|
||||||
userinclude ..\..\src\winfonts
|
userinclude ..\..\src\winfonts
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
aclocal.m4
|
aclocal.m4
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
config.cache
|
config.cache
|
||||||
config.guess
|
config.guess
|
||||||
config.log
|
config.log
|
||||||
config.status
|
config.status
|
||||||
config.sub
|
config.sub
|
||||||
configure
|
configure
|
||||||
configure.ac
|
configure.ac
|
||||||
freetype2.pc
|
freetype2.pc
|
||||||
freetype-config
|
freetype-config
|
||||||
ftconfig.h
|
ftconfig.h
|
||||||
libtool
|
libtool
|
||||||
ltmain.sh
|
ltmain.sh
|
||||||
unix-cc.mk
|
unix-cc.mk
|
||||||
unix-def.mk
|
unix-def.mk
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,161 +1,161 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# mkinstalldirs --- make directory hierarchy
|
# mkinstalldirs --- make directory hierarchy
|
||||||
|
|
||||||
scriptversion=2006-05-11.19
|
scriptversion=2006-05-11.19
|
||||||
|
|
||||||
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
|
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||||
# Created: 1993-05-16
|
# Created: 1993-05-16
|
||||||
# Public domain.
|
# Public domain.
|
||||||
#
|
#
|
||||||
# This file is maintained in Automake, please report
|
# This file is maintained in Automake, please report
|
||||||
# bugs to <bug-automake@gnu.org> or send patches to
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
# <automake-patches@gnu.org>.
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
nl='
|
nl='
|
||||||
'
|
'
|
||||||
IFS=" "" $nl"
|
IFS=" "" $nl"
|
||||||
errstatus=0
|
errstatus=0
|
||||||
dirmode=
|
dirmode=
|
||||||
|
|
||||||
usage="\
|
usage="\
|
||||||
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
|
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
|
||||||
|
|
||||||
Create each directory DIR (with mode MODE, if specified), including all
|
Create each directory DIR (with mode MODE, if specified), including all
|
||||||
leading file name components.
|
leading file name components.
|
||||||
|
|
||||||
Report bugs to <bug-automake@gnu.org>."
|
Report bugs to <bug-automake@gnu.org>."
|
||||||
|
|
||||||
# process command line arguments
|
# process command line arguments
|
||||||
while test $# -gt 0 ; do
|
while test $# -gt 0 ; do
|
||||||
case $1 in
|
case $1 in
|
||||||
-h | --help | --h*) # -h for help
|
-h | --help | --h*) # -h for help
|
||||||
echo "$usage"
|
echo "$usage"
|
||||||
exit $?
|
exit $?
|
||||||
;;
|
;;
|
||||||
-m) # -m PERM arg
|
-m) # -m PERM arg
|
||||||
shift
|
shift
|
||||||
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
|
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
|
||||||
dirmode=$1
|
dirmode=$1
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
--version)
|
--version)
|
||||||
echo "$0 $scriptversion"
|
echo "$0 $scriptversion"
|
||||||
exit $?
|
exit $?
|
||||||
;;
|
;;
|
||||||
--) # stop option processing
|
--) # stop option processing
|
||||||
shift
|
shift
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
-*) # unknown option
|
-*) # unknown option
|
||||||
echo "$usage" 1>&2
|
echo "$usage" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
*) # first non-opt arg
|
*) # first non-opt arg
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
for file
|
for file
|
||||||
do
|
do
|
||||||
if test -d "$file"; then
|
if test -d "$file"; then
|
||||||
shift
|
shift
|
||||||
else
|
else
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
case $# in
|
case $# in
|
||||||
0) exit 0 ;;
|
0) exit 0 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
|
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
|
||||||
# mkdir -p a/c at the same time, both will detect that a is missing,
|
# mkdir -p a/c at the same time, both will detect that a is missing,
|
||||||
# one will create a, then the other will try to create a and die with
|
# one will create a, then the other will try to create a and die with
|
||||||
# a "File exists" error. This is a problem when calling mkinstalldirs
|
# a "File exists" error. This is a problem when calling mkinstalldirs
|
||||||
# from a parallel make. We use --version in the probe to restrict
|
# from a parallel make. We use --version in the probe to restrict
|
||||||
# ourselves to GNU mkdir, which is thread-safe.
|
# ourselves to GNU mkdir, which is thread-safe.
|
||||||
case $dirmode in
|
case $dirmode in
|
||||||
'')
|
'')
|
||||||
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
||||||
echo "mkdir -p -- $*"
|
echo "mkdir -p -- $*"
|
||||||
exec mkdir -p -- "$@"
|
exec mkdir -p -- "$@"
|
||||||
else
|
else
|
||||||
# On NextStep and OpenStep, the `mkdir' command does not
|
# On NextStep and OpenStep, the `mkdir' command does not
|
||||||
# recognize any option. It will interpret all options as
|
# recognize any option. It will interpret all options as
|
||||||
# directories to create, and then abort because `.' already
|
# directories to create, and then abort because `.' already
|
||||||
# exists.
|
# exists.
|
||||||
test -d ./-p && rmdir ./-p
|
test -d ./-p && rmdir ./-p
|
||||||
test -d ./--version && rmdir ./--version
|
test -d ./--version && rmdir ./--version
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
|
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
|
||||||
test ! -d ./--version; then
|
test ! -d ./--version; then
|
||||||
echo "mkdir -m $dirmode -p -- $*"
|
echo "mkdir -m $dirmode -p -- $*"
|
||||||
exec mkdir -m "$dirmode" -p -- "$@"
|
exec mkdir -m "$dirmode" -p -- "$@"
|
||||||
else
|
else
|
||||||
# Clean up after NextStep and OpenStep mkdir.
|
# Clean up after NextStep and OpenStep mkdir.
|
||||||
for d in ./-m ./-p ./--version "./$dirmode";
|
for d in ./-m ./-p ./--version "./$dirmode";
|
||||||
do
|
do
|
||||||
test -d $d && rmdir $d
|
test -d $d && rmdir $d
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
for file
|
for file
|
||||||
do
|
do
|
||||||
case $file in
|
case $file in
|
||||||
/*) pathcomp=/ ;;
|
/*) pathcomp=/ ;;
|
||||||
*) pathcomp= ;;
|
*) pathcomp= ;;
|
||||||
esac
|
esac
|
||||||
oIFS=$IFS
|
oIFS=$IFS
|
||||||
IFS=/
|
IFS=/
|
||||||
set fnord $file
|
set fnord $file
|
||||||
shift
|
shift
|
||||||
IFS=$oIFS
|
IFS=$oIFS
|
||||||
|
|
||||||
for d
|
for d
|
||||||
do
|
do
|
||||||
test "x$d" = x && continue
|
test "x$d" = x && continue
|
||||||
|
|
||||||
pathcomp=$pathcomp$d
|
pathcomp=$pathcomp$d
|
||||||
case $pathcomp in
|
case $pathcomp in
|
||||||
-*) pathcomp=./$pathcomp ;;
|
-*) pathcomp=./$pathcomp ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if test ! -d "$pathcomp"; then
|
if test ! -d "$pathcomp"; then
|
||||||
echo "mkdir $pathcomp"
|
echo "mkdir $pathcomp"
|
||||||
|
|
||||||
mkdir "$pathcomp" || lasterr=$?
|
mkdir "$pathcomp" || lasterr=$?
|
||||||
|
|
||||||
if test ! -d "$pathcomp"; then
|
if test ! -d "$pathcomp"; then
|
||||||
errstatus=$lasterr
|
errstatus=$lasterr
|
||||||
else
|
else
|
||||||
if test ! -z "$dirmode"; then
|
if test ! -z "$dirmode"; then
|
||||||
echo "chmod $dirmode $pathcomp"
|
echo "chmod $dirmode $pathcomp"
|
||||||
lasterr=
|
lasterr=
|
||||||
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
||||||
|
|
||||||
if test ! -z "$lasterr"; then
|
if test ! -z "$lasterr"; then
|
||||||
errstatus=$lasterr
|
errstatus=$lasterr
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pathcomp=$pathcomp/
|
pathcomp=$pathcomp/
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
exit $errstatus
|
exit $errstatus
|
||||||
|
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
# mode: shell-script
|
# mode: shell-script
|
||||||
# sh-indentation: 2
|
# sh-indentation: 2
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
# time-stamp-start: "scriptversion="
|
# time-stamp-start: "scriptversion="
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
# time-stamp-end: "$"
|
# time-stamp-end: "$"
|
||||||
# End:
|
# End:
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
GlobalSection(SolutionConfiguration) = preSolution
|
||||||
Debug = Debug
|
Debug = Debug
|
||||||
Debug Multithreaded = Debug Multithreaded
|
Debug Multithreaded = Debug Multithreaded
|
||||||
Debug Singlethreaded = Debug Singlethreaded
|
Debug Singlethreaded = Debug Singlethreaded
|
||||||
Release = Release
|
Release = Release
|
||||||
Release Multithreaded = Release Multithreaded
|
Release Multithreaded = Release Multithreaded
|
||||||
Release Singlethreaded = Release Singlethreaded
|
Release Singlethreaded = Release Singlethreaded
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
GlobalSection(ProjectConfiguration) = postSolution
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug.ActiveCfg = Debug|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug.ActiveCfg = Debug|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug.Build.0 = Debug|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug.Build.0 = Debug|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Multithreaded.ActiveCfg = Debug Multithreaded|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Multithreaded.ActiveCfg = Debug Multithreaded|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Multithreaded.Build.0 = Debug Multithreaded|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Multithreaded.Build.0 = Debug Multithreaded|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Singlethreaded.ActiveCfg = Debug Singlethreaded|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Singlethreaded.ActiveCfg = Debug Singlethreaded|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Singlethreaded.Build.0 = Debug Singlethreaded|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Debug Singlethreaded.Build.0 = Debug Singlethreaded|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release.ActiveCfg = Release|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release.ActiveCfg = Release|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release.Build.0 = Release|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release.Build.0 = Release|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Multithreaded.ActiveCfg = Release Multithreaded|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Multithreaded.ActiveCfg = Release Multithreaded|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Multithreaded.Build.0 = Release Multithreaded|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Multithreaded.Build.0 = Release Multithreaded|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Singlethreaded.ActiveCfg = Release Singlethreaded|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Singlethreaded.ActiveCfg = Release Singlethreaded|Win32
|
||||||
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Singlethreaded.Build.0 = Release Singlethreaded|Win32
|
{C2AF082C-0E25-49EB-8BFF-38DFDD4F77F8}.Release Singlethreaded.Build.0 = Release Singlethreaded|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,120 +1,120 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Copyright 2002, 2003, 2004, 2005, 2006, 2008, 2009 by
|
# Copyright 2002, 2003, 2004, 2005, 2006, 2008, 2009 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
# and distributed under the terms of the FreeType project license,
|
# and distributed under the terms of the FreeType project license,
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
# indicate that you have read the license and understand and accept it
|
# indicate that you have read the license and understand and accept it
|
||||||
# fully.
|
# fully.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Call the `configure' script located in `builds/unix'.
|
# Call the `configure' script located in `builds/unix'.
|
||||||
#
|
#
|
||||||
|
|
||||||
rm -f config.mk builds/unix/unix-def.mk builds/unix/unix-cc.mk
|
rm -f config.mk builds/unix/unix-def.mk builds/unix/unix-cc.mk
|
||||||
|
|
||||||
if test "x$GNUMAKE" = x; then
|
if test "x$GNUMAKE" = x; then
|
||||||
GNUMAKE=make
|
GNUMAKE=make
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -z "`$GNUMAKE -v 2>/dev/null | grep GNU`"; then
|
if test -z "`$GNUMAKE -v 2>/dev/null | grep GNU`"; then
|
||||||
if test -z "`$GNUMAKE -v 2>/dev/null | grep makepp`"; then
|
if test -z "`$GNUMAKE -v 2>/dev/null | grep makepp`"; then
|
||||||
echo "GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2." >&2
|
echo "GNU make (>= 3.80) or makepp (>= 1.19) is required to build FreeType2." >&2
|
||||||
echo "Please try" >&2
|
echo "Please try" >&2
|
||||||
echo " \`GNUMAKE=<GNU make command name> $0'." >&2
|
echo " \`GNUMAKE=<GNU make command name> $0'." >&2
|
||||||
echo "or >&2"
|
echo "or >&2"
|
||||||
echo " \`GNUMAKE=\"makepp --norc-substitution\" $0'." >&2
|
echo " \`GNUMAKE=\"makepp --norc-substitution\" $0'." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get `dirname' functionality. This is taken and adapted from autoconf's
|
# Get `dirname' functionality. This is taken and adapted from autoconf's
|
||||||
# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED).
|
# m4sh.m4 (_AS_EXPR_PREPARE, AS_DIRNAME_EXPR, and AS_DIRNAME_SED).
|
||||||
|
|
||||||
if expr a : '\(a\)' >/dev/null 2>&1; then
|
if expr a : '\(a\)' >/dev/null 2>&1; then
|
||||||
ft_expr=expr
|
ft_expr=expr
|
||||||
else
|
else
|
||||||
ft_expr=false
|
ft_expr=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ft2_dir=`(dirname "$0") 2>/dev/null ||
|
ft2_dir=`(dirname "$0") 2>/dev/null ||
|
||||||
$ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
$ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||||
X"$0" : 'X\(//\)[^/]' \| \
|
X"$0" : 'X\(//\)[^/]' \| \
|
||||||
X"$0" : 'X\(//\)$' \| \
|
X"$0" : 'X\(//\)$' \| \
|
||||||
X"$0" : 'X\(/\)' \| \
|
X"$0" : 'X\(/\)' \| \
|
||||||
. : '\(.\)' 2>/dev/null ||
|
. : '\(.\)' 2>/dev/null ||
|
||||||
echo X"$0" |
|
echo X"$0" |
|
||||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||||
s//\1/
|
s//\1/
|
||||||
q
|
q
|
||||||
}
|
}
|
||||||
/^X\(\/\/\)[^/].*/{
|
/^X\(\/\/\)[^/].*/{
|
||||||
s//\1/
|
s//\1/
|
||||||
q
|
q
|
||||||
}
|
}
|
||||||
/^X\(\/\/\)$/{
|
/^X\(\/\/\)$/{
|
||||||
s//\1/
|
s//\1/
|
||||||
q
|
q
|
||||||
}
|
}
|
||||||
/^X\(\/\).*/{
|
/^X\(\/\).*/{
|
||||||
s//\1/
|
s//\1/
|
||||||
q
|
q
|
||||||
}
|
}
|
||||||
s/.*/./; q'`
|
s/.*/./; q'`
|
||||||
|
|
||||||
abs_curr_dir=`pwd`
|
abs_curr_dir=`pwd`
|
||||||
abs_ft2_dir=`cd "$ft2_dir" && pwd`
|
abs_ft2_dir=`cd "$ft2_dir" && pwd`
|
||||||
|
|
||||||
# `--srcdir=' option can override abs_ft2_dir
|
# `--srcdir=' option can override abs_ft2_dir
|
||||||
|
|
||||||
if test $# -gt 0; then
|
if test $# -gt 0; then
|
||||||
for x in "$@"; do
|
for x in "$@"; do
|
||||||
case x"$x" in
|
case x"$x" in
|
||||||
x--srcdir=*)
|
x--srcdir=*)
|
||||||
abs_ft2_dir=`echo $x | sed 's/^--srcdir=//'` ;;
|
abs_ft2_dir=`echo $x | sed 's/^--srcdir=//'` ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# build a dummy Makefile if we are not building in the source tree
|
# build a dummy Makefile if we are not building in the source tree
|
||||||
|
|
||||||
if test "$abs_curr_dir" != "$abs_ft2_dir"; then
|
if test "$abs_curr_dir" != "$abs_ft2_dir"; then
|
||||||
mkdir reference
|
mkdir reference
|
||||||
if test ! -r $abs_curr_dir/modules.cfg; then
|
if test ! -r $abs_curr_dir/modules.cfg; then
|
||||||
echo "Copying \`modules.cfg'"
|
echo "Copying \`modules.cfg'"
|
||||||
cp $abs_ft2_dir/modules.cfg $abs_curr_dir
|
cp $abs_ft2_dir/modules.cfg $abs_curr_dir
|
||||||
fi
|
fi
|
||||||
echo "Generating \`Makefile'"
|
echo "Generating \`Makefile'"
|
||||||
echo "TOP_DIR := $abs_ft2_dir" > Makefile
|
echo "TOP_DIR := $abs_ft2_dir" > Makefile
|
||||||
echo "OBJ_DIR := $abs_curr_dir" >> Makefile
|
echo "OBJ_DIR := $abs_curr_dir" >> Makefile
|
||||||
echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile
|
echo "OBJ_BUILD := \$(OBJ_DIR)" >> Makefile
|
||||||
echo "DOC_DIR := \$(OBJ_DIR)/reference" >> Makefile
|
echo "DOC_DIR := \$(OBJ_DIR)/reference" >> Makefile
|
||||||
echo "LIBTOOL := \$(OBJ_DIR)/libtool" >> Makefile
|
echo "LIBTOOL := \$(OBJ_DIR)/libtool" >> Makefile
|
||||||
echo "ifndef FT2DEMOS" >> Makefile
|
echo "ifndef FT2DEMOS" >> Makefile
|
||||||
echo " include \$(TOP_DIR)/Makefile" >> Makefile
|
echo " include \$(TOP_DIR)/Makefile" >> Makefile
|
||||||
echo "else" >> Makefile
|
echo "else" >> Makefile
|
||||||
echo " TOP_DIR_2 := \$(TOP_DIR)/../ft2demos" >> Makefile
|
echo " TOP_DIR_2 := \$(TOP_DIR)/../ft2demos" >> Makefile
|
||||||
echo " PROJECT := freetype" >> Makefile
|
echo " PROJECT := freetype" >> Makefile
|
||||||
echo " CONFIG_MK := \$(OBJ_DIR)/config.mk" >> Makefile
|
echo " CONFIG_MK := \$(OBJ_DIR)/config.mk" >> Makefile
|
||||||
echo " include \$(TOP_DIR_2)/Makefile" >> Makefile
|
echo " include \$(TOP_DIR_2)/Makefile" >> Makefile
|
||||||
echo "endif" >> Makefile
|
echo "endif" >> Makefile
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# call make
|
# call make
|
||||||
|
|
||||||
CFG=
|
CFG=
|
||||||
# work around zsh bug which doesn't like `${1+"$@"}'
|
# work around zsh bug which doesn't like `${1+"$@"}'
|
||||||
case $# in
|
case $# in
|
||||||
0) ;;
|
0) ;;
|
||||||
*) for x in "$@"; do
|
*) for x in "$@"; do
|
||||||
case x"$x" in
|
case x"$x" in
|
||||||
x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;;
|
x--srcdir=* ) CFG="$CFG '$x'/builds/unix" ;;
|
||||||
*) CFG="$CFG '$x'" ;;
|
*) CFG="$CFG '$x'" ;;
|
||||||
esac
|
esac
|
||||||
done ;;
|
done ;;
|
||||||
esac
|
esac
|
||||||
CFG=$CFG $GNUMAKE setup unix
|
CFG=$CFG $GNUMAKE setup unix
|
||||||
|
|
||||||
# eof
|
# eof
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,150 +1,150 @@
|
||||||
How to customize the compilation of the library
|
How to customize the compilation of the library
|
||||||
===============================================
|
===============================================
|
||||||
|
|
||||||
FreeType is highly customizable to fit various needs, and this
|
FreeType is highly customizable to fit various needs, and this
|
||||||
document describes how it is possible to select options and
|
document describes how it is possible to select options and
|
||||||
components at compilation time.
|
components at compilation time.
|
||||||
|
|
||||||
|
|
||||||
I. Configuration macros
|
I. Configuration macros
|
||||||
|
|
||||||
The file found in `include/freetype/config/ftoption.h' contains a
|
The file found in `include/freetype/config/ftoption.h' contains a
|
||||||
list of commented configuration macros that can be toggled by
|
list of commented configuration macros that can be toggled by
|
||||||
developers to indicate which features should be active while
|
developers to indicate which features should be active while
|
||||||
building the library.
|
building the library.
|
||||||
|
|
||||||
These options range from debug level to availability of certain
|
These options range from debug level to availability of certain
|
||||||
features, like native TrueType hinting through a bytecode
|
features, like native TrueType hinting through a bytecode
|
||||||
interpreter.
|
interpreter.
|
||||||
|
|
||||||
We invite you to read this file for more information. You can
|
We invite you to read this file for more information. You can
|
||||||
change the file's content to suit your needs, or override it with
|
change the file's content to suit your needs, or override it with
|
||||||
one of the techniques described below.
|
one of the techniques described below.
|
||||||
|
|
||||||
|
|
||||||
II. Modules list
|
II. Modules list
|
||||||
|
|
||||||
If you use GNU make please edit the top-level file `modules.cfg'.
|
If you use GNU make please edit the top-level file `modules.cfg'.
|
||||||
It contains a list of available FreeType modules and extensions to
|
It contains a list of available FreeType modules and extensions to
|
||||||
be compiled. Change it to suit your own preferences. Be aware that
|
be compiled. Change it to suit your own preferences. Be aware that
|
||||||
certain modules depend on others, as described in the file. GNU
|
certain modules depend on others, as described in the file. GNU
|
||||||
make uses `modules.cfg' to generate `ftmodule.h' (in the object
|
make uses `modules.cfg' to generate `ftmodule.h' (in the object
|
||||||
directory).
|
directory).
|
||||||
|
|
||||||
If you don't use GNU make you have to manually edit the file
|
If you don't use GNU make you have to manually edit the file
|
||||||
`include/freetype/config/ftmodule.h' (which is *not* used with if
|
`include/freetype/config/ftmodule.h' (which is *not* used with if
|
||||||
compiled with GNU make) to add or remove the drivers and components
|
compiled with GNU make) to add or remove the drivers and components
|
||||||
you want to compile into the library. See `INSTALL.ANY' for more
|
you want to compile into the library. See `INSTALL.ANY' for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
|
|
||||||
III. System interface
|
III. System interface
|
||||||
|
|
||||||
FreeType's default interface to the system (i.e., the parts that
|
FreeType's default interface to the system (i.e., the parts that
|
||||||
deal with memory management and i/o streams) is located in
|
deal with memory management and i/o streams) is located in
|
||||||
`src/base/ftsystem.c'.
|
`src/base/ftsystem.c'.
|
||||||
|
|
||||||
The current implementation uses standard C library calls to manage
|
The current implementation uses standard C library calls to manage
|
||||||
memory and to read font files. It is however possible to write
|
memory and to read font files. It is however possible to write
|
||||||
custom implementations to suit specific systems.
|
custom implementations to suit specific systems.
|
||||||
|
|
||||||
To tell the GNU Make-based build system to use a custom system
|
To tell the GNU Make-based build system to use a custom system
|
||||||
interface, you have to define the environment variable FTSYS_SRC to
|
interface, you have to define the environment variable FTSYS_SRC to
|
||||||
point to the relevant implementation:
|
point to the relevant implementation:
|
||||||
|
|
||||||
on Unix:
|
on Unix:
|
||||||
|
|
||||||
./configure <your options>
|
./configure <your options>
|
||||||
export FTSYS_SRC=foo/my_ftsystem.c
|
export FTSYS_SRC=foo/my_ftsystem.c
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
|
||||||
on Windows:
|
on Windows:
|
||||||
|
|
||||||
make setup <compiler>
|
make setup <compiler>
|
||||||
set FTSYS_SRC=foo/my_ftsystem.c
|
set FTSYS_SRC=foo/my_ftsystem.c
|
||||||
make
|
make
|
||||||
|
|
||||||
|
|
||||||
IV. Overriding default configuration and module headers
|
IV. Overriding default configuration and module headers
|
||||||
|
|
||||||
It is possible to override the default configuration and module
|
It is possible to override the default configuration and module
|
||||||
headers without changing the original files. There are three ways
|
headers without changing the original files. There are three ways
|
||||||
to do that:
|
to do that:
|
||||||
|
|
||||||
|
|
||||||
1. With GNU make
|
1. With GNU make
|
||||||
|
|
||||||
[This is actually a combination of method 2 and 3.]
|
[This is actually a combination of method 2 and 3.]
|
||||||
|
|
||||||
Just put your custom `ftoption.h' file into the objects directory
|
Just put your custom `ftoption.h' file into the objects directory
|
||||||
(normally `<topdir>/objs'), which GNU make prefers over the
|
(normally `<topdir>/objs'), which GNU make prefers over the
|
||||||
standard location. No action is needed for `ftmodule.h' because
|
standard location. No action is needed for `ftmodule.h' because
|
||||||
it is generated automatically in the objects directory.
|
it is generated automatically in the objects directory.
|
||||||
|
|
||||||
|
|
||||||
2. Using the C include path
|
2. Using the C include path
|
||||||
|
|
||||||
Use the C include path to ensure that your own versions of the
|
Use the C include path to ensure that your own versions of the
|
||||||
files are used at compile time when the lines
|
files are used at compile time when the lines
|
||||||
|
|
||||||
#include FT_CONFIG_OPTIONS_H
|
#include FT_CONFIG_OPTIONS_H
|
||||||
#include FT_CONFIG_MODULES_H
|
#include FT_CONFIG_MODULES_H
|
||||||
|
|
||||||
are compiled. Their default values being
|
are compiled. Their default values being
|
||||||
<freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you
|
<freetype/config/ftoption.h> and <freetype/config/ftmodule.h>, you
|
||||||
can do something like:
|
can do something like:
|
||||||
|
|
||||||
custom/
|
custom/
|
||||||
freetype/
|
freetype/
|
||||||
config/
|
config/
|
||||||
ftoption.h => custom options header
|
ftoption.h => custom options header
|
||||||
ftmodule.h => custom modules list
|
ftmodule.h => custom modules list
|
||||||
|
|
||||||
include/ => normal FreeType 2 include
|
include/ => normal FreeType 2 include
|
||||||
freetype/
|
freetype/
|
||||||
...
|
...
|
||||||
|
|
||||||
then change the C include path to always give the path to `custom'
|
then change the C include path to always give the path to `custom'
|
||||||
before the FreeType 2 `include'.
|
before the FreeType 2 `include'.
|
||||||
|
|
||||||
|
|
||||||
3. Redefining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
|
3. Redefining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
|
||||||
|
|
||||||
Another way to do the same thing is to redefine the macros used to
|
Another way to do the same thing is to redefine the macros used to
|
||||||
name the configuration headers. To do so, you need a custom
|
name the configuration headers. To do so, you need a custom
|
||||||
`ft2build.h' whose content can be as simple as:
|
`ft2build.h' whose content can be as simple as:
|
||||||
|
|
||||||
#ifndef __FT2_BUILD_MY_PLATFORM_H__
|
#ifndef __FT2_BUILD_MY_PLATFORM_H__
|
||||||
#define __FT2_BUILD_MY_PLATFORM_H__
|
#define __FT2_BUILD_MY_PLATFORM_H__
|
||||||
|
|
||||||
#define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h>
|
#define FT_CONFIG_OPTIONS_H <custom/my-ftoption.h>
|
||||||
#define FT_CONFIG_MODULES_H <custom/my-ftmodule.h>
|
#define FT_CONFIG_MODULES_H <custom/my-ftmodule.h>
|
||||||
|
|
||||||
#include <freetype/config/ftheader.h>
|
#include <freetype/config/ftheader.h>
|
||||||
|
|
||||||
#endif /* __FT2_BUILD_MY_PLATFORM_H__ */
|
#endif /* __FT2_BUILD_MY_PLATFORM_H__ */
|
||||||
|
|
||||||
Place those files in a separate directory, e.g.,
|
Place those files in a separate directory, e.g.,
|
||||||
|
|
||||||
custom/
|
custom/
|
||||||
ft2build.h => custom version described above
|
ft2build.h => custom version described above
|
||||||
my-ftoption.h => custom options header
|
my-ftoption.h => custom options header
|
||||||
my-ftmodule.h => custom modules list header
|
my-ftmodule.h => custom modules list header
|
||||||
|
|
||||||
and change the C include path to ensure that `custom' is always
|
and change the C include path to ensure that `custom' is always
|
||||||
placed before the FT2 `include' during compilation.
|
placed before the FT2 `include' during compilation.
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2003, 2005, 2006 by
|
Copyright 2003, 2005, 2006 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
this file you indicate that you have read the license and understand
|
this file you indicate that you have read the license and understand
|
||||||
and accept it fully.
|
and accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of CUSTOMIZE ---
|
--- end of CUSTOMIZE ---
|
||||||
|
|
|
@ -1,202 +1,202 @@
|
||||||
Debugging within the FreeType sources
|
Debugging within the FreeType sources
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
I. Configuration macros
|
I. Configuration macros
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
There are several ways to enable debugging features in a FreeType 2
|
There are several ways to enable debugging features in a FreeType 2
|
||||||
builds. This is controlled through the definition of special macros
|
builds. This is controlled through the definition of special macros
|
||||||
located in the file `ftoptions.h'. The macros are:
|
located in the file `ftoptions.h'. The macros are:
|
||||||
|
|
||||||
|
|
||||||
FT_DEBUG_LEVEL_ERROR
|
FT_DEBUG_LEVEL_ERROR
|
||||||
|
|
||||||
#define this macro if you want to compile the FT_ERROR macro calls
|
#define this macro if you want to compile the FT_ERROR macro calls
|
||||||
to print error messages during program execution. This will not
|
to print error messages during program execution. This will not
|
||||||
stop the program. Very useful to spot invalid fonts during
|
stop the program. Very useful to spot invalid fonts during
|
||||||
development and to code workarounds for them.
|
development and to code workarounds for them.
|
||||||
|
|
||||||
FT_DEBUG_LEVEL_TRACE
|
FT_DEBUG_LEVEL_TRACE
|
||||||
|
|
||||||
#define this macro if you want to compile both macros FT_ERROR and
|
#define this macro if you want to compile both macros FT_ERROR and
|
||||||
FT_TRACE. This also includes the variants FT_TRACE0, FT_TRACE1,
|
FT_TRACE. This also includes the variants FT_TRACE0, FT_TRACE1,
|
||||||
FT_TRACE2, ..., FT_TRACE7.
|
FT_TRACE2, ..., FT_TRACE7.
|
||||||
|
|
||||||
The trace macros are used to send debugging messages when an
|
The trace macros are used to send debugging messages when an
|
||||||
appropriate `debug level' is configured at runtime through the
|
appropriate `debug level' is configured at runtime through the
|
||||||
FT2_DEBUG environment variable (more on this later).
|
FT2_DEBUG environment variable (more on this later).
|
||||||
|
|
||||||
FT_DEBUG_MEMORY
|
FT_DEBUG_MEMORY
|
||||||
|
|
||||||
If this macro is #defined, the FreeType engine is linked with a
|
If this macro is #defined, the FreeType engine is linked with a
|
||||||
small but effective debugging memory manager that tracks all
|
small but effective debugging memory manager that tracks all
|
||||||
allocations and frees that are performed within the font engine.
|
allocations and frees that are performed within the font engine.
|
||||||
|
|
||||||
When the FT2_DEBUG_MEMORY environment variable is defined at
|
When the FT2_DEBUG_MEMORY environment variable is defined at
|
||||||
runtime, a call to FT_Done_FreeType will dump memory statistics,
|
runtime, a call to FT_Done_FreeType will dump memory statistics,
|
||||||
including the list of leaked memory blocks with the source locations
|
including the list of leaked memory blocks with the source locations
|
||||||
where these were allocated. It is always a very good idea to define
|
where these were allocated. It is always a very good idea to define
|
||||||
this in development builds. This works with _any_ program linked to
|
this in development builds. This works with _any_ program linked to
|
||||||
FreeType, but requires a big deal of memory (the debugging memory
|
FreeType, but requires a big deal of memory (the debugging memory
|
||||||
manager never frees the blocks to the heap in order to detect double
|
manager never frees the blocks to the heap in order to detect double
|
||||||
frees).
|
frees).
|
||||||
|
|
||||||
When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory
|
When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory
|
||||||
manager is ignored, and performance is unaffected.
|
manager is ignored, and performance is unaffected.
|
||||||
|
|
||||||
|
|
||||||
II. Debugging macros
|
II. Debugging macros
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
Several macros can be used within the FreeType sources to help debugging
|
Several macros can be used within the FreeType sources to help debugging
|
||||||
its code:
|
its code:
|
||||||
|
|
||||||
|
|
||||||
1. FT_ERROR(( ... ))
|
1. FT_ERROR(( ... ))
|
||||||
|
|
||||||
This macro is used to send debug messages that indicate relatively
|
This macro is used to send debug messages that indicate relatively
|
||||||
serious errors (like broken font files), but will not stop the
|
serious errors (like broken font files), but will not stop the
|
||||||
execution of the running program. Its code is compiled only when
|
execution of the running program. Its code is compiled only when
|
||||||
either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in
|
either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in
|
||||||
`ftoption.h'.
|
`ftoption.h'.
|
||||||
|
|
||||||
Note that you have to use a printf-like signature, but with double
|
Note that you have to use a printf-like signature, but with double
|
||||||
parentheses, like in
|
parentheses, like in
|
||||||
|
|
||||||
FT_ERROR(( "your %s is not %s\n", "foo", "bar" ));
|
FT_ERROR(( "your %s is not %s\n", "foo", "bar" ));
|
||||||
|
|
||||||
|
|
||||||
2. FT_ASSERT( condition )
|
2. FT_ASSERT( condition )
|
||||||
|
|
||||||
This macro is used to check strong assertions at runtime. If its
|
This macro is used to check strong assertions at runtime. If its
|
||||||
condition isn't TRUE, the program will abort with a panic message.
|
condition isn't TRUE, the program will abort with a panic message.
|
||||||
Its code is compiled when either FT_DEBUG_LEVEL_ERROR or
|
Its code is compiled when either FT_DEBUG_LEVEL_ERROR or
|
||||||
FT_DEBUG_LEVEL_TRACE are defined. You don't need double parentheses
|
FT_DEBUG_LEVEL_TRACE are defined. You don't need double parentheses
|
||||||
here. For example
|
here. For example
|
||||||
|
|
||||||
FT_ASSERT( ptr != NULL );
|
FT_ASSERT( ptr != NULL );
|
||||||
|
|
||||||
|
|
||||||
3. FT_TRACE( level, (message...) )
|
3. FT_TRACE( level, (message...) )
|
||||||
|
|
||||||
The FT_TRACE macro is used to send general-purpose debugging
|
The FT_TRACE macro is used to send general-purpose debugging
|
||||||
messages during program execution. This macro uses an *implicit*
|
messages during program execution. This macro uses an *implicit*
|
||||||
macro named FT_COMPONENT used to name the current FreeType component
|
macro named FT_COMPONENT used to name the current FreeType component
|
||||||
being run.
|
being run.
|
||||||
|
|
||||||
The developer should always define FT_COMPONENT as appropriate, for
|
The developer should always define FT_COMPONENT as appropriate, for
|
||||||
example as in
|
example as in
|
||||||
|
|
||||||
#undef FT_COMPONENT
|
#undef FT_COMPONENT
|
||||||
#define FT_COMPONENT trace_io
|
#define FT_COMPONENT trace_io
|
||||||
|
|
||||||
The value of the FT_COMPONENT macro is an enumeration named
|
The value of the FT_COMPONENT macro is an enumeration named
|
||||||
trace_XXXX where XXXX is one of the component names defined in the
|
trace_XXXX where XXXX is one of the component names defined in the
|
||||||
internal file `freetype/internal/fttrace.h'. If you modify FreeType
|
internal file `freetype/internal/fttrace.h'. If you modify FreeType
|
||||||
source and insert new trace_XXXX macro, you must register it in
|
source and insert new trace_XXXX macro, you must register it in
|
||||||
fttrace.h. If you insert or remove many trace macros, you can check
|
fttrace.h. If you insert or remove many trace macros, you can check
|
||||||
the undefined or the unused trace macro by src/tools/chktrcmp.py.
|
the undefined or the unused trace macro by src/tools/chktrcmp.py.
|
||||||
|
|
||||||
Each such component is assigned a `debug level', ranging from 0
|
Each such component is assigned a `debug level', ranging from 0
|
||||||
to 7, through the use of the FT2_DEBUG environment variable
|
to 7, through the use of the FT2_DEBUG environment variable
|
||||||
(described below) when a program linked with FreeType starts.
|
(described below) when a program linked with FreeType starts.
|
||||||
|
|
||||||
When FT_TRACE is called, its level is compared to the one of the
|
When FT_TRACE is called, its level is compared to the one of the
|
||||||
corresponding component. Messages with trace levels *higher* than
|
corresponding component. Messages with trace levels *higher* than
|
||||||
the corresponding component level are filtered and never printed.
|
the corresponding component level are filtered and never printed.
|
||||||
|
|
||||||
This means that trace messages with level 0 are always printed,
|
This means that trace messages with level 0 are always printed,
|
||||||
those with level 2 are only printed when the component level is *at
|
those with level 2 are only printed when the component level is *at
|
||||||
least* 2.
|
least* 2.
|
||||||
|
|
||||||
The second parameter to FT_TRACE must contain parentheses and
|
The second parameter to FT_TRACE must contain parentheses and
|
||||||
correspond to a printf-like call, as in
|
correspond to a printf-like call, as in
|
||||||
|
|
||||||
FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) )
|
FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) )
|
||||||
|
|
||||||
The shortcut macros FT_TRACE0, FT_TRACE1, FT_TRACE2, ..., FT_TRACE7
|
The shortcut macros FT_TRACE0, FT_TRACE1, FT_TRACE2, ..., FT_TRACE7
|
||||||
can be used with constant level indices, and are much cleaner to
|
can be used with constant level indices, and are much cleaner to
|
||||||
use, as in
|
use, as in
|
||||||
|
|
||||||
FT_TRACE2(( "your %s is not %s\n", "foo", "bar" ));
|
FT_TRACE2(( "your %s is not %s\n", "foo", "bar" ));
|
||||||
|
|
||||||
|
|
||||||
III. Environment variables
|
III. Environment variables
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
The following environment variables control debugging output and
|
The following environment variables control debugging output and
|
||||||
behaviour of FreeType at runtime.
|
behaviour of FreeType at runtime.
|
||||||
|
|
||||||
|
|
||||||
FT2_DEBUG
|
FT2_DEBUG
|
||||||
|
|
||||||
This variable is only used when FreeType is built with
|
This variable is only used when FreeType is built with
|
||||||
FT_DEBUG_LEVEL_TRACE defined. It contains a list of component level
|
FT_DEBUG_LEVEL_TRACE defined. It contains a list of component level
|
||||||
definitions, following this format:
|
definitions, following this format:
|
||||||
|
|
||||||
component1:level1 component2:level2 component3:level3 ...
|
component1:level1 component2:level2 component3:level3 ...
|
||||||
|
|
||||||
where `componentX' is the name of a tracing component, as defined in
|
where `componentX' is the name of a tracing component, as defined in
|
||||||
`fttrace.h', but without the `trace_' prefix. `levelX' is the
|
`fttrace.h', but without the `trace_' prefix. `levelX' is the
|
||||||
corresponding level to use at runtime.
|
corresponding level to use at runtime.
|
||||||
|
|
||||||
`any' is a special component name that will be interpreted as
|
`any' is a special component name that will be interpreted as
|
||||||
`any/all components'. For example, the following definitions
|
`any/all components'. For example, the following definitions
|
||||||
|
|
||||||
set FT2_DEBUG=any:2 memory:5 io:4 (on Windows)
|
set FT2_DEBUG=any:2 memory:5 io:4 (on Windows)
|
||||||
export FT2_DEBUG="any:2 memory:5 io:4" (on Linux with bash)
|
export FT2_DEBUG="any:2 memory:5 io:4" (on Linux with bash)
|
||||||
|
|
||||||
both stipulate that all components should have level 2, except for
|
both stipulate that all components should have level 2, except for
|
||||||
the memory and io components which will be set to trace levels 5 and
|
the memory and io components which will be set to trace levels 5 and
|
||||||
4, respectively.
|
4, respectively.
|
||||||
|
|
||||||
|
|
||||||
FT2_DEBUG_MEMORY
|
FT2_DEBUG_MEMORY
|
||||||
|
|
||||||
This environment variable, when defined, tells FreeType to use a
|
This environment variable, when defined, tells FreeType to use a
|
||||||
debugging memory manager that will track leaking memory blocks as
|
debugging memory manager that will track leaking memory blocks as
|
||||||
well as other common errors like double frees. It is also capable
|
well as other common errors like double frees. It is also capable
|
||||||
of reporting _where_ the leaking blocks were allocated, which
|
of reporting _where_ the leaking blocks were allocated, which
|
||||||
considerably saves time when debugging new additions to the library.
|
considerably saves time when debugging new additions to the library.
|
||||||
|
|
||||||
This code is only compiled when FreeType is built with the
|
This code is only compiled when FreeType is built with the
|
||||||
FT_DEBUG_MEMORY macro #defined in `ftoption.h' though, it will be
|
FT_DEBUG_MEMORY macro #defined in `ftoption.h' though, it will be
|
||||||
ignored in other builds.
|
ignored in other builds.
|
||||||
|
|
||||||
|
|
||||||
FT2_ALLOC_TOTAL_MAX
|
FT2_ALLOC_TOTAL_MAX
|
||||||
|
|
||||||
This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
|
This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
|
||||||
allows you to specify a maximum heap size for all memory allocations
|
allows you to specify a maximum heap size for all memory allocations
|
||||||
performed by FreeType. This is very useful to test the robustness
|
performed by FreeType. This is very useful to test the robustness
|
||||||
of the font engine and programs that use it in tight memory
|
of the font engine and programs that use it in tight memory
|
||||||
conditions.
|
conditions.
|
||||||
|
|
||||||
If it is undefined, or if its value is not strictly positive, then
|
If it is undefined, or if its value is not strictly positive, then
|
||||||
no allocation bounds are checked at runtime.
|
no allocation bounds are checked at runtime.
|
||||||
|
|
||||||
|
|
||||||
FT2_ALLOC_COUNT_MAX
|
FT2_ALLOC_COUNT_MAX
|
||||||
|
|
||||||
This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
|
This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
|
||||||
allows you to specify a maximum number of memory allocations
|
allows you to specify a maximum number of memory allocations
|
||||||
performed by FreeType before returning the error
|
performed by FreeType before returning the error
|
||||||
FT_Err_Out_Of_Memory. This is useful for debugging and testing the
|
FT_Err_Out_Of_Memory. This is useful for debugging and testing the
|
||||||
engine's robustness.
|
engine's robustness.
|
||||||
|
|
||||||
If it is undefined, or if its value is not strictly positive, then
|
If it is undefined, or if its value is not strictly positive, then
|
||||||
no allocation bounds are checked at runtime.
|
no allocation bounds are checked at runtime.
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2002, 2003, 2004, 2005, 2009 by
|
Copyright 2002, 2003, 2004, 2005, 2009 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
||||||
file you indicate that you have read the license and understand and
|
file you indicate that you have read the license and understand and
|
||||||
accept it fully.
|
accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of DEBUG ---
|
--- end of DEBUG ---
|
||||||
|
|
|
@ -1,91 +1,91 @@
|
||||||
|
|
||||||
There are several ways to build the FreeType library, depending on
|
There are several ways to build the FreeType library, depending on
|
||||||
your system and the level of customization you need. Here is a short
|
your system and the level of customization you need. Here is a short
|
||||||
overview of the documentation available:
|
overview of the documentation available:
|
||||||
|
|
||||||
|
|
||||||
I. Normal installation and upgrades
|
I. Normal installation and upgrades
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
1. Native TrueType Hinting
|
1. Native TrueType Hinting
|
||||||
|
|
||||||
Native TrueType hinting is disabled by default[1]. If you really
|
Native TrueType hinting is disabled by default[1]. If you really
|
||||||
need it, read the file `TRUETYPE' for information.
|
need it, read the file `TRUETYPE' for information.
|
||||||
|
|
||||||
|
|
||||||
2. Unix Systems (including Mac OS X, Cygwin, and MSys on Windows)
|
2. Unix Systems (including Mac OS X, Cygwin, and MSys on Windows)
|
||||||
|
|
||||||
Please read *both* `UPGRADE.UNIX' and `INSTALL.UNIX' to install or
|
Please read *both* `UPGRADE.UNIX' and `INSTALL.UNIX' to install or
|
||||||
upgrade FreeType 2 on a Unix system. Note that you *need* GNU
|
upgrade FreeType 2 on a Unix system. Note that you *need* GNU
|
||||||
Make for automatic compilation, since other make tools won't work
|
Make for automatic compilation, since other make tools won't work
|
||||||
(this includes BSD Make).
|
(this includes BSD Make).
|
||||||
|
|
||||||
GNU Make VERSION 3.80 OR NEWER IS NEEDED!
|
GNU Make VERSION 3.80 OR NEWER IS NEEDED!
|
||||||
|
|
||||||
|
|
||||||
3. On VMS with the `mms' build tool
|
3. On VMS with the `mms' build tool
|
||||||
|
|
||||||
See `INSTALL.VMS' for installation instructions on this platform.
|
See `INSTALL.VMS' for installation instructions on this platform.
|
||||||
|
|
||||||
|
|
||||||
4. Other systems using GNU Make
|
4. Other systems using GNU Make
|
||||||
|
|
||||||
On non-Unix platforms, it is possible to build the library using
|
On non-Unix platforms, it is possible to build the library using
|
||||||
GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]!
|
GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]!
|
||||||
This methods supports several compilers on Windows, OS/2, and
|
This methods supports several compilers on Windows, OS/2, and
|
||||||
BeOS, including MinGW, Visual C++, Borland C++, and more.
|
BeOS, including MinGW, Visual C++, Borland C++, and more.
|
||||||
|
|
||||||
Instructions are provided in the file `INSTALL.GNU'.
|
Instructions are provided in the file `INSTALL.GNU'.
|
||||||
|
|
||||||
|
|
||||||
5. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
|
5. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
|
||||||
|
|
||||||
We provide a small number of `project files' for various IDEs to
|
We provide a small number of `project files' for various IDEs to
|
||||||
automatically build the library as well. Note that these files
|
automatically build the library as well. Note that these files
|
||||||
are not supported and only sporadically maintained by FreeType
|
are not supported and only sporadically maintained by FreeType
|
||||||
developers, so don't expect them to work in each release.
|
developers, so don't expect them to work in each release.
|
||||||
|
|
||||||
To find them, have a look at the content of the `builds/<system>'
|
To find them, have a look at the content of the `builds/<system>'
|
||||||
directory, where <system> stands for your OS or environment.
|
directory, where <system> stands for your OS or environment.
|
||||||
|
|
||||||
|
|
||||||
6. From you own IDE, or own Makefiles
|
6. From you own IDE, or own Makefiles
|
||||||
|
|
||||||
If you want to create your own project file, follow the
|
If you want to create your own project file, follow the
|
||||||
instructions given in the `INSTALL.ANY' document of this
|
instructions given in the `INSTALL.ANY' document of this
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
|
|
||||||
II. Custom builds of the library
|
II. Custom builds of the library
|
||||||
================================
|
================================
|
||||||
|
|
||||||
Customizing the compilation of FreeType is easy, and allows you to
|
Customizing the compilation of FreeType is easy, and allows you to
|
||||||
select only the components of the font engine that you really need.
|
select only the components of the font engine that you really need.
|
||||||
For more details read the file `CUSTOMIZE'.
|
For more details read the file `CUSTOMIZE'.
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
[1] More details on: http://www.freetype.org/patents.html
|
[1] More details on: http://www.freetype.org/patents.html
|
||||||
|
|
||||||
[2] make++, a make tool written in Perl, has sufficient support of GNU
|
[2] make++, a make tool written in Perl, has sufficient support of GNU
|
||||||
make extensions to build FreeType. See
|
make extensions to build FreeType. See
|
||||||
|
|
||||||
http://makepp.sourceforge.net
|
http://makepp.sourceforge.net
|
||||||
|
|
||||||
for more information; you need version 1.19 or newer, and you must
|
for more information; you need version 1.19 or newer, and you must
|
||||||
pass option `--norc-substitution'.
|
pass option `--norc-substitution'.
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by
|
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
this file you indicate that you have read the license and understand
|
this file you indicate that you have read the license and understand
|
||||||
and accept it fully.
|
and accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of INSTALL ---
|
--- end of INSTALL ---
|
||||||
|
|
|
@ -1,151 +1,151 @@
|
||||||
Instructions on how to build FreeType with your own build tool
|
Instructions on how to build FreeType with your own build tool
|
||||||
==============================================================
|
==============================================================
|
||||||
|
|
||||||
See the file `CUSTOMIZE' to learn how to customize FreeType to
|
See the file `CUSTOMIZE' to learn how to customize FreeType to
|
||||||
specific environments.
|
specific environments.
|
||||||
|
|
||||||
|
|
||||||
I. Standard procedure
|
I. Standard procedure
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
* DISABLE PRE-COMPILED HEADERS! This is very important for Visual
|
* DISABLE PRE-COMPILED HEADERS! This is very important for Visual
|
||||||
C++, because FreeType uses lines like:
|
C++, because FreeType uses lines like:
|
||||||
|
|
||||||
#include FT_FREETYPE_H
|
#include FT_FREETYPE_H
|
||||||
|
|
||||||
which are not correctly supported by this compiler while being ISO
|
which are not correctly supported by this compiler while being ISO
|
||||||
C compliant!
|
C compliant!
|
||||||
|
|
||||||
* You need to add the directories `freetype2/include' to your
|
* You need to add the directories `freetype2/include' to your
|
||||||
include path when compiling the library.
|
include path when compiling the library.
|
||||||
|
|
||||||
* FreeType 2 is made of several components; each of them is located
|
* FreeType 2 is made of several components; each of them is located
|
||||||
in a subdirectory of `freetype2/src'. For example,
|
in a subdirectory of `freetype2/src'. For example,
|
||||||
`freetype2/src/truetype/' contains the TrueType font driver.
|
`freetype2/src/truetype/' contains the TrueType font driver.
|
||||||
|
|
||||||
* DO NOT COMPILE ALL C FILES! Rather, compile the following ones.
|
* DO NOT COMPILE ALL C FILES! Rather, compile the following ones.
|
||||||
|
|
||||||
-- base components (required)
|
-- base components (required)
|
||||||
|
|
||||||
src/base/ftsystem.c
|
src/base/ftsystem.c
|
||||||
src/base/ftinit.c
|
src/base/ftinit.c
|
||||||
src/base/ftdebug.c
|
src/base/ftdebug.c
|
||||||
|
|
||||||
src/base/ftbase.c
|
src/base/ftbase.c
|
||||||
|
|
||||||
src/base/ftbbox.c -- recommended, see <freetype/ftbbox.h>
|
src/base/ftbbox.c -- recommended, see <freetype/ftbbox.h>
|
||||||
src/base/ftglyph.c -- recommended, see <freetype/ftglyph.h>
|
src/base/ftglyph.c -- recommended, see <freetype/ftglyph.h>
|
||||||
|
|
||||||
src/base/ftbdf.c -- optional, see <freetype/ftbdf.h>
|
src/base/ftbdf.c -- optional, see <freetype/ftbdf.h>
|
||||||
src/base/ftbitmap.c -- optional, see <freetype/ftbitmap.h>
|
src/base/ftbitmap.c -- optional, see <freetype/ftbitmap.h>
|
||||||
src/base/ftcid.c -- optional, see <freetype/ftcid.h>
|
src/base/ftcid.c -- optional, see <freetype/ftcid.h>
|
||||||
src/base/ftfstype.c -- optional
|
src/base/ftfstype.c -- optional
|
||||||
src/base/ftgasp.c -- optional, see <freetype/ftgasp.h>
|
src/base/ftgasp.c -- optional, see <freetype/ftgasp.h>
|
||||||
src/base/ftgxval.c -- optional, see <freetype/ftgxval.h>
|
src/base/ftgxval.c -- optional, see <freetype/ftgxval.h>
|
||||||
src/base/ftlcdfil.c -- optional, see <freetype/ftlcdfil.h>
|
src/base/ftlcdfil.c -- optional, see <freetype/ftlcdfil.h>
|
||||||
src/base/ftmm.c -- optional, see <freetype/ftmm.h>
|
src/base/ftmm.c -- optional, see <freetype/ftmm.h>
|
||||||
src/base/ftotval.c -- optional, see <freetype/ftotval.h>
|
src/base/ftotval.c -- optional, see <freetype/ftotval.h>
|
||||||
src/base/ftpatent.c -- optional
|
src/base/ftpatent.c -- optional
|
||||||
src/base/ftpfr.c -- optional, see <freetype/ftpfr.h>
|
src/base/ftpfr.c -- optional, see <freetype/ftpfr.h>
|
||||||
src/base/ftstroke.c -- optional, see <freetype/ftstroke.h>
|
src/base/ftstroke.c -- optional, see <freetype/ftstroke.h>
|
||||||
src/base/ftsynth.c -- optional, see <freetype/ftsynth.h>
|
src/base/ftsynth.c -- optional, see <freetype/ftsynth.h>
|
||||||
src/base/fttype1.c -- optional, see <freetype/t1tables.h>
|
src/base/fttype1.c -- optional, see <freetype/t1tables.h>
|
||||||
src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h>
|
src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h>
|
||||||
src/base/ftxf86.c -- optional, see <freetype/ftxf86.h>
|
src/base/ftxf86.c -- optional, see <freetype/ftxf86.h>
|
||||||
|
|
||||||
src/base/ftmac.c -- only on the Macintosh
|
src/base/ftmac.c -- only on the Macintosh
|
||||||
|
|
||||||
-- font drivers (optional; at least one is needed)
|
-- font drivers (optional; at least one is needed)
|
||||||
|
|
||||||
src/bdf/bdf.c -- BDF font driver
|
src/bdf/bdf.c -- BDF font driver
|
||||||
src/cff/cff.c -- CFF/OpenType font driver
|
src/cff/cff.c -- CFF/OpenType font driver
|
||||||
src/cid/type1cid.c -- Type 1 CID-keyed font driver
|
src/cid/type1cid.c -- Type 1 CID-keyed font driver
|
||||||
src/pcf/pcf.c -- PCF font driver
|
src/pcf/pcf.c -- PCF font driver
|
||||||
src/pfr/pfr.c -- PFR/TrueDoc font driver
|
src/pfr/pfr.c -- PFR/TrueDoc font driver
|
||||||
src/sfnt/sfnt.c -- SFNT files support
|
src/sfnt/sfnt.c -- SFNT files support
|
||||||
(TrueType & OpenType)
|
(TrueType & OpenType)
|
||||||
src/truetype/truetype.c -- TrueType font driver
|
src/truetype/truetype.c -- TrueType font driver
|
||||||
src/type1/type1.c -- Type 1 font driver
|
src/type1/type1.c -- Type 1 font driver
|
||||||
src/type42/type42.c -- Type 42 font driver
|
src/type42/type42.c -- Type 42 font driver
|
||||||
src/winfonts/winfnt.c -- Windows FONT / FNT font driver
|
src/winfonts/winfnt.c -- Windows FONT / FNT font driver
|
||||||
|
|
||||||
-- rasterizers (optional; at least one is needed for vector
|
-- rasterizers (optional; at least one is needed for vector
|
||||||
formats)
|
formats)
|
||||||
|
|
||||||
src/raster/raster.c -- monochrome rasterizer
|
src/raster/raster.c -- monochrome rasterizer
|
||||||
src/smooth/smooth.c -- anti-aliasing rasterizer
|
src/smooth/smooth.c -- anti-aliasing rasterizer
|
||||||
|
|
||||||
-- auxiliary modules (optional)
|
-- auxiliary modules (optional)
|
||||||
|
|
||||||
src/autofit/autofit.c -- auto hinting module
|
src/autofit/autofit.c -- auto hinting module
|
||||||
src/cache/ftcache.c -- cache sub-system (in beta)
|
src/cache/ftcache.c -- cache sub-system (in beta)
|
||||||
src/gzip/ftgzip.c -- support for compressed fonts (.gz)
|
src/gzip/ftgzip.c -- support for compressed fonts (.gz)
|
||||||
src/lzw/ftlzw.c -- support for compressed fonts (.Z)
|
src/lzw/ftlzw.c -- support for compressed fonts (.Z)
|
||||||
src/gxvalid/gxvalid.c -- TrueTypeGX/AAT table validation
|
src/gxvalid/gxvalid.c -- TrueTypeGX/AAT table validation
|
||||||
src/otvalid/otvalid.c -- OpenType table validation
|
src/otvalid/otvalid.c -- OpenType table validation
|
||||||
src/psaux/psaux.c -- PostScript Type 1 parsing
|
src/psaux/psaux.c -- PostScript Type 1 parsing
|
||||||
src/pshinter/pshinter.c -- PS hinting module
|
src/pshinter/pshinter.c -- PS hinting module
|
||||||
src/psnames/psnames.c -- PostScript glyph names support
|
src/psnames/psnames.c -- PostScript glyph names support
|
||||||
|
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
|
|
||||||
`ftcache.c' needs `ftglyph.c'
|
`ftcache.c' needs `ftglyph.c'
|
||||||
`ftfstype.c' needs `fttype1.c'
|
`ftfstype.c' needs `fttype1.c'
|
||||||
`ftglyph.c' needs `ftbitmap.c'
|
`ftglyph.c' needs `ftbitmap.c'
|
||||||
`ftstroke.c' needs `ftglyph.c'
|
`ftstroke.c' needs `ftglyph.c'
|
||||||
`ftsynth.c' needs `ftbitmap.c'
|
`ftsynth.c' needs `ftbitmap.c'
|
||||||
|
|
||||||
`cff.c' needs `sfnt.c', `pshinter.c', and `psnames.c'
|
`cff.c' needs `sfnt.c', `pshinter.c', and `psnames.c'
|
||||||
`truetype.c' needs `sfnt.c' and `psnames.c'
|
`truetype.c' needs `sfnt.c' and `psnames.c'
|
||||||
`type1.c' needs `psaux.c' `pshinter.c', and `psnames.c'
|
`type1.c' needs `psaux.c' `pshinter.c', and `psnames.c'
|
||||||
`type1cid.c' needs `psaux.c', `pshinter.c', and `psnames.c'
|
`type1cid.c' needs `psaux.c', `pshinter.c', and `psnames.c'
|
||||||
`type42.c' needs `truetype.c'
|
`type42.c' needs `truetype.c'
|
||||||
|
|
||||||
|
|
||||||
Read the file `CUSTOMIZE' in case you want to compile only a subset
|
Read the file `CUSTOMIZE' in case you want to compile only a subset
|
||||||
of the drivers, renderers, and optional modules; a detailed
|
of the drivers, renderers, and optional modules; a detailed
|
||||||
description of the various base extension is given in the top-level
|
description of the various base extension is given in the top-level
|
||||||
file `modules.cfg'.
|
file `modules.cfg'.
|
||||||
|
|
||||||
You are done. In case of problems, see the archives of the FreeType
|
You are done. In case of problems, see the archives of the FreeType
|
||||||
development mailing list.
|
development mailing list.
|
||||||
|
|
||||||
|
|
||||||
II. Support for flat-directory compilation
|
II. Support for flat-directory compilation
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
It is possible to put all FreeType 2 source files into a single
|
It is possible to put all FreeType 2 source files into a single
|
||||||
directory, with the *exception* of the `include' hierarchy.
|
directory, with the *exception* of the `include' hierarchy.
|
||||||
|
|
||||||
1. Copy all files in current directory
|
1. Copy all files in current directory
|
||||||
|
|
||||||
cp freetype2/src/base/*.[hc] .
|
cp freetype2/src/base/*.[hc] .
|
||||||
cp freetype2/src/raster1/*.[hc] .
|
cp freetype2/src/raster1/*.[hc] .
|
||||||
cp freetype2/src/smooth/*.[hc] .
|
cp freetype2/src/smooth/*.[hc] .
|
||||||
etc.
|
etc.
|
||||||
|
|
||||||
2. Compile sources
|
2. Compile sources
|
||||||
|
|
||||||
cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftsystem.c
|
cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftsystem.c
|
||||||
cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftinit.c
|
cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftinit.c
|
||||||
cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftdebug.c
|
cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftdebug.c
|
||||||
cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftbase.c
|
cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftbase.c
|
||||||
etc.
|
etc.
|
||||||
|
|
||||||
You don't need to define the FT_FLAT_COMPILATION macro (as this
|
You don't need to define the FT_FLAT_COMPILATION macro (as this
|
||||||
was required in previous releases of FreeType 2).
|
was required in previous releases of FreeType 2).
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2003, 2005, 2006, 2009, 2010 by
|
Copyright 2003, 2005, 2006, 2009, 2010 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
this file you indicate that you have read the license and understand
|
this file you indicate that you have read the license and understand
|
||||||
and accept it fully.
|
and accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of INSTALL.ANY ---
|
--- end of INSTALL.ANY ---
|
||||||
|
|
|
@ -1,135 +1,135 @@
|
||||||
This document contains instructions on how to cross-build the FreeType
|
This document contains instructions on how to cross-build the FreeType
|
||||||
library on Unix systems, for example, building binaries for Linux/MIPS
|
library on Unix systems, for example, building binaries for Linux/MIPS
|
||||||
on FreeBSD/i386. Before reading this document, please consult
|
on FreeBSD/i386. Before reading this document, please consult
|
||||||
INSTALL.UNIX for required tools and the basic self-building procedure.
|
INSTALL.UNIX for required tools and the basic self-building procedure.
|
||||||
|
|
||||||
|
|
||||||
1. Required Tools
|
1. Required Tools
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
For self-building the FreeType library on a Unix system, GNU Make
|
For self-building the FreeType library on a Unix system, GNU Make
|
||||||
3.80 or newer is required. INSTALL.UNIX contains hints how to
|
3.80 or newer is required. INSTALL.UNIX contains hints how to
|
||||||
check the installed `make'.
|
check the installed `make'.
|
||||||
|
|
||||||
The GNU C compiler to cross-build the target system is required.
|
The GNU C compiler to cross-build the target system is required.
|
||||||
At present, using non-GNU cross compiler is not tested. The cross
|
At present, using non-GNU cross compiler is not tested. The cross
|
||||||
compiler is expected to be installed with a system prefix. For
|
compiler is expected to be installed with a system prefix. For
|
||||||
example, if your building system is FreeBSD/i386 and the target
|
example, if your building system is FreeBSD/i386 and the target
|
||||||
system is Linux/MIPS, the cross compiler should be installed with
|
system is Linux/MIPS, the cross compiler should be installed with
|
||||||
the name `mips-ip22-linuxelf-gcc'.
|
the name `mips-ip22-linuxelf-gcc'.
|
||||||
|
|
||||||
A C compiler for a self-build is required also, to build a tool
|
A C compiler for a self-build is required also, to build a tool
|
||||||
that is executed during the building procedure. Non-GNU self
|
that is executed during the building procedure. Non-GNU self
|
||||||
compilers are acceptable, but such a setup is not tested yet.
|
compilers are acceptable, but such a setup is not tested yet.
|
||||||
|
|
||||||
|
|
||||||
2. Configuration
|
2. Configuration
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
2.1. Building and target system
|
2.1. Building and target system
|
||||||
|
|
||||||
To configure for cross-build, the options `--host=<system>' and
|
To configure for cross-build, the options `--host=<system>' and
|
||||||
`--build=<system>' must be passed to configure. For example, if
|
`--build=<system>' must be passed to configure. For example, if
|
||||||
your building system is FreeBSD/i386 and the target system is
|
your building system is FreeBSD/i386 and the target system is
|
||||||
Linux/MIPS, say
|
Linux/MIPS, say
|
||||||
|
|
||||||
./configure \
|
./configure \
|
||||||
--build=i386-unknown-freebsd \
|
--build=i386-unknown-freebsd \
|
||||||
--host=mips-ip22-linuxelf \
|
--host=mips-ip22-linuxelf \
|
||||||
[other options]
|
[other options]
|
||||||
|
|
||||||
It should be noted that `--host=<system>' specifies the system
|
It should be noted that `--host=<system>' specifies the system
|
||||||
where the built binaries will be executed, not the system where
|
where the built binaries will be executed, not the system where
|
||||||
the build actually happens. Older versions of GNU autoconf use
|
the build actually happens. Older versions of GNU autoconf use
|
||||||
the option pair `--host=' and `--target='. This is broken and
|
the option pair `--host=' and `--target='. This is broken and
|
||||||
doesn't work. Similarly, an explicit CC specification like
|
doesn't work. Similarly, an explicit CC specification like
|
||||||
|
|
||||||
env CC=mips-ip22-linux-gcc ./configure
|
env CC=mips-ip22-linux-gcc ./configure
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
env CC=/usr/local/mips-ip22-linux/bin/gcc ./configure
|
env CC=/usr/local/mips-ip22-linux/bin/gcc ./configure
|
||||||
|
|
||||||
doesn't work either; such a configuration confuses the
|
doesn't work either; such a configuration confuses the
|
||||||
`configure' script while trying to find the cross and native C
|
`configure' script while trying to find the cross and native C
|
||||||
compilers.
|
compilers.
|
||||||
|
|
||||||
|
|
||||||
2.2. The prefix to install FreeType2
|
2.2. The prefix to install FreeType2
|
||||||
|
|
||||||
Setting `--prefix=<prefix>' properly is important. The prefix
|
Setting `--prefix=<prefix>' properly is important. The prefix
|
||||||
to install FreeType2 is written into the freetype-config script
|
to install FreeType2 is written into the freetype-config script
|
||||||
and freetype2.pc configuration file.
|
and freetype2.pc configuration file.
|
||||||
|
|
||||||
If the built FreeType 2 library is used as a part of the
|
If the built FreeType 2 library is used as a part of the
|
||||||
cross-building system, the prefix is expected to be different
|
cross-building system, the prefix is expected to be different
|
||||||
from the self-building system. For example, configuration with
|
from the self-building system. For example, configuration with
|
||||||
`--prefix=/usr/local' installs binaries into the system wide
|
`--prefix=/usr/local' installs binaries into the system wide
|
||||||
`/usr/local' directory which then can't be executed. This
|
`/usr/local' directory which then can't be executed. This
|
||||||
causes confusion in configuration of all applications which use
|
causes confusion in configuration of all applications which use
|
||||||
FreeType2. Instead, use a prefix to install the cross-build
|
FreeType2. Instead, use a prefix to install the cross-build
|
||||||
into a separate system tree, for example,
|
into a separate system tree, for example,
|
||||||
`--prefix=/usr/local/mips-ip22-linux/'.
|
`--prefix=/usr/local/mips-ip22-linux/'.
|
||||||
|
|
||||||
On the other hand, if the built FreeType2 is used as a part of
|
On the other hand, if the built FreeType2 is used as a part of
|
||||||
the target system, the prefix to install should reflect the file
|
the target system, the prefix to install should reflect the file
|
||||||
system structure of the target system.
|
system structure of the target system.
|
||||||
|
|
||||||
|
|
||||||
3. Building command
|
3. Building command
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
If the configuration finishes successfully, invoking GNU make
|
If the configuration finishes successfully, invoking GNU make
|
||||||
builds FreeType2. Just say
|
builds FreeType2. Just say
|
||||||
|
|
||||||
make
|
make
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
gmake
|
gmake
|
||||||
|
|
||||||
depending on the name the GNU make binary actually has.
|
depending on the name the GNU make binary actually has.
|
||||||
|
|
||||||
|
|
||||||
4. Installation
|
4. Installation
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
Saying
|
Saying
|
||||||
|
|
||||||
make install
|
make install
|
||||||
|
|
||||||
as usual to install FreeType2 into the directory tree specified by
|
as usual to install FreeType2 into the directory tree specified by
|
||||||
the argument of the `--prefix' option.
|
the argument of the `--prefix' option.
|
||||||
|
|
||||||
As noted in section 2.2, FreeType2 is sometimes configured to be
|
As noted in section 2.2, FreeType2 is sometimes configured to be
|
||||||
installed into the system directory of the target system, and
|
installed into the system directory of the target system, and
|
||||||
should not be installed in the cross-building system. In such
|
should not be installed in the cross-building system. In such
|
||||||
cases, the make variable `DESTDIR' is useful to change the root
|
cases, the make variable `DESTDIR' is useful to change the root
|
||||||
directory in the installation. For example, after
|
directory in the installation. For example, after
|
||||||
|
|
||||||
make DESTDIR=/mnt/target_system_root/ install
|
make DESTDIR=/mnt/target_system_root/ install
|
||||||
|
|
||||||
the built FreeType2 library files are installed into the directory
|
the built FreeType2 library files are installed into the directory
|
||||||
`/mnt/target_system_root/<prefix_in_configure>/lib'.
|
`/mnt/target_system_root/<prefix_in_configure>/lib'.
|
||||||
|
|
||||||
|
|
||||||
5. TODO
|
5. TODO
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Cross building between Cygwin (or MSys) and Unix must be tested.
|
Cross building between Cygwin (or MSys) and Unix must be tested.
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2006, 2008 by suzuki toshiya
|
Copyright 2006, 2008 by suzuki toshiya
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
this file you indicate that you have read the license and understand
|
this file you indicate that you have read the license and understand
|
||||||
and accept it fully.
|
and accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of INSTALL.CROSS ---
|
--- end of INSTALL.CROSS ---
|
||||||
|
|
|
@ -1,159 +1,159 @@
|
||||||
This document contains instructions how to build the FreeType library
|
This document contains instructions how to build the FreeType library
|
||||||
on non-Unix systems with the help of GNU Make. Note that if you are
|
on non-Unix systems with the help of GNU Make. Note that if you are
|
||||||
running Cygwin or MSys in Windows, you should follow the instructions
|
running Cygwin or MSys in Windows, you should follow the instructions
|
||||||
in the file INSTALL.UNIX instead.
|
in the file INSTALL.UNIX instead.
|
||||||
|
|
||||||
|
|
||||||
FreeType 2 includes a powerful and flexible build system that allows
|
FreeType 2 includes a powerful and flexible build system that allows
|
||||||
you to easily compile it on a great variety of platforms from the
|
you to easily compile it on a great variety of platforms from the
|
||||||
command line. To do so, just follow these simple instructions.
|
command line. To do so, just follow these simple instructions.
|
||||||
|
|
||||||
1. Install GNU Make
|
1. Install GNU Make
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Because GNU Make is the only Make tool supported to compile
|
Because GNU Make is the only Make tool supported to compile
|
||||||
FreeType 2, you should install it on your machine.
|
FreeType 2, you should install it on your machine.
|
||||||
|
|
||||||
The FreeType 2 build system relies on many features special to GNU
|
The FreeType 2 build system relies on many features special to GNU
|
||||||
Make.
|
Make.
|
||||||
|
|
||||||
NEARLY ALL OTHER MAKE TOOLS FAIL, INCLUDING `BSD MAKE', SO REALLY
|
NEARLY ALL OTHER MAKE TOOLS FAIL, INCLUDING `BSD MAKE', SO REALLY
|
||||||
INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
|
INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
|
||||||
|
|
||||||
Note that make++, a make tool written in Perl, supports enough
|
Note that make++, a make tool written in Perl, supports enough
|
||||||
features of GNU make to compile FreeType. See
|
features of GNU make to compile FreeType. See
|
||||||
|
|
||||||
http://makepp.sourceforge.net
|
http://makepp.sourceforge.net
|
||||||
|
|
||||||
for more information; you need version 1.19 or newer, and you must
|
for more information; you need version 1.19 or newer, and you must
|
||||||
pass option `--norc-substitution'.
|
pass option `--norc-substitution'.
|
||||||
|
|
||||||
Make sure that you are invoking GNU Make from the command line, by
|
Make sure that you are invoking GNU Make from the command line, by
|
||||||
typing something like:
|
typing something like:
|
||||||
|
|
||||||
make -v
|
make -v
|
||||||
|
|
||||||
to display its version number.
|
to display its version number.
|
||||||
|
|
||||||
VERSION 3.80 OR NEWER IS NEEDED!
|
VERSION 3.80 OR NEWER IS NEEDED!
|
||||||
|
|
||||||
|
|
||||||
2. Invoke `make'
|
2. Invoke `make'
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
Go to the root directory of FreeType 2, then simply invoke GNU
|
Go to the root directory of FreeType 2, then simply invoke GNU
|
||||||
Make from the command line. This will launch the FreeType 2 host
|
Make from the command line. This will launch the FreeType 2 host
|
||||||
platform detection routines. A summary will be displayed, for
|
platform detection routines. A summary will be displayed, for
|
||||||
example, on Win32.
|
example, on Win32.
|
||||||
|
|
||||||
|
|
||||||
==============================================================
|
==============================================================
|
||||||
FreeType build system -- automatic system detection
|
FreeType build system -- automatic system detection
|
||||||
|
|
||||||
The following settings are used:
|
The following settings are used:
|
||||||
|
|
||||||
platform win32
|
platform win32
|
||||||
compiler gcc
|
compiler gcc
|
||||||
configuration directory .\builds\win32
|
configuration directory .\builds\win32
|
||||||
configuration rules .\builds\win32\w32-gcc.mk
|
configuration rules .\builds\win32\w32-gcc.mk
|
||||||
|
|
||||||
If this does not correspond to your system or settings please
|
If this does not correspond to your system or settings please
|
||||||
remove the file 'config.mk' from this directory then read the
|
remove the file 'config.mk' from this directory then read the
|
||||||
INSTALL file for help.
|
INSTALL file for help.
|
||||||
|
|
||||||
Otherwise, simply type 'make' again to build the library
|
Otherwise, simply type 'make' again to build the library
|
||||||
or 'make refdoc' to build the API reference (the latter needs
|
or 'make refdoc' to build the API reference (the latter needs
|
||||||
python).
|
python).
|
||||||
=============================================================
|
=============================================================
|
||||||
|
|
||||||
|
|
||||||
If the detected settings correspond to your platform and compiler,
|
If the detected settings correspond to your platform and compiler,
|
||||||
skip to step 5. Note that if your platform is completely alien to
|
skip to step 5. Note that if your platform is completely alien to
|
||||||
the build system, the detected platform will be `ansi'.
|
the build system, the detected platform will be `ansi'.
|
||||||
|
|
||||||
|
|
||||||
3. Configure the build system for a different compiler
|
3. Configure the build system for a different compiler
|
||||||
------------------------------------------------------
|
------------------------------------------------------
|
||||||
|
|
||||||
If the build system correctly detected your platform, but you want
|
If the build system correctly detected your platform, but you want
|
||||||
to use a different compiler than the one specified in the summary
|
to use a different compiler than the one specified in the summary
|
||||||
(for most platforms, gcc is the default compiler), invoke GNU Make
|
(for most platforms, gcc is the default compiler), invoke GNU Make
|
||||||
with
|
with
|
||||||
|
|
||||||
make setup <compiler>
|
make setup <compiler>
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
to use Visual C++ on Win32, type: `make setup visualc'
|
to use Visual C++ on Win32, type: `make setup visualc'
|
||||||
to use Borland C++ on Win32, type `make setup bcc32'
|
to use Borland C++ on Win32, type `make setup bcc32'
|
||||||
to use Watcom C++ on Win32, type `make setup watcom'
|
to use Watcom C++ on Win32, type `make setup watcom'
|
||||||
to use Intel C++ on Win32, type `make setup intelc'
|
to use Intel C++ on Win32, type `make setup intelc'
|
||||||
to use LCC-Win32 on Win32, type: `make setup lcc'
|
to use LCC-Win32 on Win32, type: `make setup lcc'
|
||||||
to use Watcom C++ on OS/2, type `make setup watcom'
|
to use Watcom C++ on OS/2, type `make setup watcom'
|
||||||
to use VisualAge C++ on OS/2, type `make setup visualage'
|
to use VisualAge C++ on OS/2, type `make setup visualage'
|
||||||
|
|
||||||
The <compiler> name to use is platform-dependent. The list of
|
The <compiler> name to use is platform-dependent. The list of
|
||||||
available compilers for your system is available in the file
|
available compilers for your system is available in the file
|
||||||
`builds/<system>/detect.mk'.
|
`builds/<system>/detect.mk'.
|
||||||
|
|
||||||
If you are satisfied by the new configuration summary, skip to
|
If you are satisfied by the new configuration summary, skip to
|
||||||
step 5.
|
step 5.
|
||||||
|
|
||||||
|
|
||||||
4. Configure the build system for an unknown platform/compiler
|
4. Configure the build system for an unknown platform/compiler
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
The auto-detection/setup phase of the build system copies a file
|
The auto-detection/setup phase of the build system copies a file
|
||||||
to the current directory under the name `config.mk'.
|
to the current directory under the name `config.mk'.
|
||||||
|
|
||||||
For example, on OS/2+gcc, it would simply copy
|
For example, on OS/2+gcc, it would simply copy
|
||||||
`builds/os2/os2-gcc.mk' to `./config.mk'.
|
`builds/os2/os2-gcc.mk' to `./config.mk'.
|
||||||
|
|
||||||
If for some reason your platform isn't correctly detected, copy
|
If for some reason your platform isn't correctly detected, copy
|
||||||
manually the configuration sub-makefile to `./config.mk' and go to
|
manually the configuration sub-makefile to `./config.mk' and go to
|
||||||
step 5.
|
step 5.
|
||||||
|
|
||||||
Note that this file is a sub-Makefile used to specify Make
|
Note that this file is a sub-Makefile used to specify Make
|
||||||
variables for compiler and linker invocation during the build.
|
variables for compiler and linker invocation during the build.
|
||||||
You can easily create your own version from one of the existing
|
You can easily create your own version from one of the existing
|
||||||
configuration files, then copy it to the current directory under
|
configuration files, then copy it to the current directory under
|
||||||
the name `./config.mk'.
|
the name `./config.mk'.
|
||||||
|
|
||||||
|
|
||||||
5. Build the library
|
5. Build the library
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
The auto-detection/setup phase should have copied a file in the
|
The auto-detection/setup phase should have copied a file in the
|
||||||
current directory, called `./config.mk'. This file contains
|
current directory, called `./config.mk'. This file contains
|
||||||
definitions of various Make variables used to invoke the compiler
|
definitions of various Make variables used to invoke the compiler
|
||||||
and linker during the build. [It has also generated a file called
|
and linker during the build. [It has also generated a file called
|
||||||
`ftmodule.h' in the objects directory (which is normally
|
`ftmodule.h' in the objects directory (which is normally
|
||||||
`<toplevel>/objs/'); please read the file `docs/CUSTOMIZE' for
|
`<toplevel>/objs/'); please read the file `docs/CUSTOMIZE' for
|
||||||
customization of FreeType.]
|
customization of FreeType.]
|
||||||
|
|
||||||
To launch the build, simply invoke GNU Make again: The top
|
To launch the build, simply invoke GNU Make again: The top
|
||||||
Makefile will detect the configuration file and run the build with
|
Makefile will detect the configuration file and run the build with
|
||||||
it.
|
it.
|
||||||
|
|
||||||
|
|
||||||
Final note
|
Final note
|
||||||
|
|
||||||
The build system builds a statically linked library of the font
|
The build system builds a statically linked library of the font
|
||||||
engine in the `objs' directory. It does _not_ support the build
|
engine in the `objs' directory. It does _not_ support the build
|
||||||
of DLLs on Windows and OS/2. If you need these, you have to
|
of DLLs on Windows and OS/2. If you need these, you have to
|
||||||
either use an IDE-specific project file, or follow the
|
either use an IDE-specific project file, or follow the
|
||||||
instructions in `INSTALL.ANY' to create your own Makefiles.
|
instructions in `INSTALL.ANY' to create your own Makefiles.
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2003, 2004, 2005, 2006, 2008 by
|
Copyright 2003, 2004, 2005, 2006, 2008 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
this file you indicate that you have read the license and understand
|
this file you indicate that you have read the license and understand
|
||||||
and accept it fully.
|
and accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of INSTALL.GNU ---
|
--- end of INSTALL.GNU ---
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
Please follow the instructions in INSTALL.UNIX to install FreeType on
|
Please follow the instructions in INSTALL.UNIX to install FreeType on
|
||||||
Mac OS X.
|
Mac OS X.
|
||||||
|
|
||||||
Currently FreeType2 functions based on some deprecated Carbon APIs
|
Currently FreeType2 functions based on some deprecated Carbon APIs
|
||||||
return FT_Err_Unimplemented_Feature always, even if FreeType2 is
|
return FT_Err_Unimplemented_Feature always, even if FreeType2 is
|
||||||
configured and built on the system that deprecated Carbon APIs are
|
configured and built on the system that deprecated Carbon APIs are
|
||||||
available. To enable deprecated FreeType2 functions as far as possible,
|
available. To enable deprecated FreeType2 functions as far as possible,
|
||||||
replace src/base/ftmac.c by builds/mac/ftmac.c.
|
replace src/base/ftmac.c by builds/mac/ftmac.c.
|
||||||
|
|
||||||
Starting with Mac OS X 10.5, gcc defaults the deployment target
|
Starting with Mac OS X 10.5, gcc defaults the deployment target
|
||||||
to 10.5. In previous versions of Mac OS X, this defaulted to 10.1.
|
to 10.5. In previous versions of Mac OS X, this defaulted to 10.1.
|
||||||
If you want your built binaries to run only on 10.5, this change
|
If you want your built binaries to run only on 10.5, this change
|
||||||
does not concern you. If you want them to also run on older versions
|
does not concern you. If you want them to also run on older versions
|
||||||
of Mac OS X, then you must either set the MACOSX_DEPLOYMENT_TARGET
|
of Mac OS X, then you must either set the MACOSX_DEPLOYMENT_TARGET
|
||||||
environment variable or pass -mmacosx-version-min to gcc. You should
|
environment variable or pass -mmacosx-version-min to gcc. You should
|
||||||
specify the oldest version of Mac OS you want the code to run on.
|
specify the oldest version of Mac OS you want the code to run on.
|
||||||
For example, if you use Bourne shell:
|
For example, if you use Bourne shell:
|
||||||
|
|
||||||
export MACOSX_DEPLOYMENT_TARGET=10.2
|
export MACOSX_DEPLOYMENT_TARGET=10.2
|
||||||
|
|
||||||
or, if you use C shell:
|
or, if you use C shell:
|
||||||
|
|
||||||
setenv MACOSX_DEPLOYMENT_TARGET 10.2
|
setenv MACOSX_DEPLOYMENT_TARGET 10.2
|
||||||
|
|
||||||
Alternatively, you could pass "-mmacosx-version-min=10.2" to gcc.
|
Alternatively, you could pass "-mmacosx-version-min=10.2" to gcc.
|
||||||
|
|
||||||
Here the number 10.2 is the lowest version that the built binaries
|
Here the number 10.2 is the lowest version that the built binaries
|
||||||
can run on. In the cases in above, the built binaries will run on
|
can run on. In the cases in above, the built binaries will run on
|
||||||
Mac OS X 10.2 and later, but _not_ earlier. If you want to run on
|
Mac OS X 10.2 and later, but _not_ earlier. If you want to run on
|
||||||
earlier, you have to set lower version, e.g. 10.0.
|
earlier, you have to set lower version, e.g. 10.0.
|
||||||
|
|
||||||
For classic Mac OS (Mac OS 7, 8, 9) please refer to builds/mac/README.
|
For classic Mac OS (Mac OS 7, 8, 9) please refer to builds/mac/README.
|
||||||
|
|
|
@ -1,96 +1,96 @@
|
||||||
This document contains instructions on how to build the FreeType
|
This document contains instructions on how to build the FreeType
|
||||||
library on Unix systems. This also works for emulations like Cygwin
|
library on Unix systems. This also works for emulations like Cygwin
|
||||||
or MSys on Win32:
|
or MSys on Win32:
|
||||||
|
|
||||||
|
|
||||||
1. Ensure that you are using GNU Make
|
1. Ensure that you are using GNU Make
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
|
|
||||||
The FreeType build system _exclusively_ works with GNU Make. You
|
The FreeType build system _exclusively_ works with GNU Make. You
|
||||||
will not be able to compile the library with the instructions
|
will not be able to compile the library with the instructions
|
||||||
below using any other alternative (including BSD Make).
|
below using any other alternative (including BSD Make).
|
||||||
|
|
||||||
Check that you have GNU make by running the command:
|
Check that you have GNU make by running the command:
|
||||||
|
|
||||||
make -v
|
make -v
|
||||||
|
|
||||||
This should dump some text that begins with:
|
This should dump some text that begins with:
|
||||||
|
|
||||||
GNU Make <version number>
|
GNU Make <version number>
|
||||||
Copyright (C) <year> Free Software Foundation Inc.
|
Copyright (C) <year> Free Software Foundation Inc.
|
||||||
|
|
||||||
Note that version 3.80 or higher is *required* or the build will
|
Note that version 3.80 or higher is *required* or the build will
|
||||||
fail.
|
fail.
|
||||||
|
|
||||||
It is also fine to have GNU Make under another name (e.g. 'gmake')
|
It is also fine to have GNU Make under another name (e.g. 'gmake')
|
||||||
if you use the GNUMAKE variable as described below.
|
if you use the GNUMAKE variable as described below.
|
||||||
|
|
||||||
As a special exception, 'makepp' can also be used to build
|
As a special exception, 'makepp' can also be used to build
|
||||||
FreeType 2. See the file docs/MAKEPP for details.
|
FreeType 2. See the file docs/MAKEPP for details.
|
||||||
|
|
||||||
|
|
||||||
2. Regenerate the configure script if needed
|
2. Regenerate the configure script if needed
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
|
|
||||||
This only applies if you are building a CVS snapshot or checkout,
|
This only applies if you are building a CVS snapshot or checkout,
|
||||||
*not* if you grabbed the sources of an official release.
|
*not* if you grabbed the sources of an official release.
|
||||||
|
|
||||||
You need to invoke the `autogen.sh' script in the top-level
|
You need to invoke the `autogen.sh' script in the top-level
|
||||||
directory in order to create the `configure' script for your
|
directory in order to create the `configure' script for your
|
||||||
platform. Normally, this simply means typing:
|
platform. Normally, this simply means typing:
|
||||||
|
|
||||||
sh autogen.sh
|
sh autogen.sh
|
||||||
|
|
||||||
In case of problems, you may need to install or upgrade Automake,
|
In case of problems, you may need to install or upgrade Automake,
|
||||||
Autoconf or Libtool. See README.CVS in the top-level directory
|
Autoconf or Libtool. See README.CVS in the top-level directory
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
|
|
||||||
3. Build and install the library
|
3. Build and install the library
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
The following should work on all Unix systems where the `make'
|
The following should work on all Unix systems where the `make'
|
||||||
command invokes GNU Make:
|
command invokes GNU Make:
|
||||||
|
|
||||||
./configure [options]
|
./configure [options]
|
||||||
make
|
make
|
||||||
make install (as root)
|
make install (as root)
|
||||||
|
|
||||||
The default installation path is `/usr/local'. It can be changed
|
The default installation path is `/usr/local'. It can be changed
|
||||||
with the `--prefix=<path>' option. Example:
|
with the `--prefix=<path>' option. Example:
|
||||||
|
|
||||||
./configure --prefix=/usr
|
./configure --prefix=/usr
|
||||||
|
|
||||||
When using a different command to invoke GNU Make, use the GNUMAKE
|
When using a different command to invoke GNU Make, use the GNUMAKE
|
||||||
variable. For example, if `gmake' is the command to use on your
|
variable. For example, if `gmake' is the command to use on your
|
||||||
system, do something like:
|
system, do something like:
|
||||||
|
|
||||||
GNUMAKE=gmake ./configure [options]
|
GNUMAKE=gmake ./configure [options]
|
||||||
gmake
|
gmake
|
||||||
gmake install (as root)
|
gmake install (as root)
|
||||||
|
|
||||||
If this still doesn't work, there must be a problem with your
|
If this still doesn't work, there must be a problem with your
|
||||||
system (e.g., you are using a very old version of GNU Make).
|
system (e.g., you are using a very old version of GNU Make).
|
||||||
|
|
||||||
It is possible to compile FreeType in a different directory.
|
It is possible to compile FreeType in a different directory.
|
||||||
Assuming the FreeType source files in directory `/src/freetype' a
|
Assuming the FreeType source files in directory `/src/freetype' a
|
||||||
compilation in directory `foo' works as follows:
|
compilation in directory `foo' works as follows:
|
||||||
|
|
||||||
cd foo
|
cd foo
|
||||||
/src/freetype/configure [options]
|
/src/freetype/configure [options]
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2003, 2004, 2005, 2006, 2007 by
|
Copyright 2003, 2004, 2005, 2006, 2007 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
this file you indicate that you have read the license and understand
|
this file you indicate that you have read the license and understand
|
||||||
and accept it fully.
|
and accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of INSTALL.UNIX ---
|
--- end of INSTALL.UNIX ---
|
||||||
|
|
|
@ -1,62 +1,62 @@
|
||||||
How to build the freetype2 library on VMS
|
How to build the freetype2 library on VMS
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
It is actually very straightforward to install the Freetype2 library.
|
It is actually very straightforward to install the Freetype2 library.
|
||||||
Just execute vms_make.com from the toplevel directory to build the
|
Just execute vms_make.com from the toplevel directory to build the
|
||||||
library. This procedure currently accepts the following options:
|
library. This procedure currently accepts the following options:
|
||||||
|
|
||||||
DEBUG
|
DEBUG
|
||||||
Build the library with debug information and without optimization.
|
Build the library with debug information and without optimization.
|
||||||
|
|
||||||
lopts=<value>
|
lopts=<value>
|
||||||
Options to pass to the link command e.g. lopts=/traceback
|
Options to pass to the link command e.g. lopts=/traceback
|
||||||
|
|
||||||
ccopt=<value>
|
ccopt=<value>
|
||||||
Options to pass to the C compiler e.g. ccopt=/float=ieee
|
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
|
In case you did download the demos, place them in a separate directory
|
||||||
sharing the same toplevel as the directory of Freetype2 and follow the
|
sharing the same toplevel as the directory of Freetype2 and follow the
|
||||||
same instructions as above for the demos from there. The build
|
same instructions as above for the demos from there. The build
|
||||||
process relies on this to figure the location of the Freetype2 include
|
process relies on this to figure the location of the Freetype2 include
|
||||||
files.
|
files.
|
||||||
|
|
||||||
|
|
||||||
To rebuild the sources it is necessary to have MMS/MMK installed on
|
To rebuild the sources it is necessary to have MMS/MMK installed on
|
||||||
the system.
|
the system.
|
||||||
|
|
||||||
The library is available in the directory
|
The library is available in the directory
|
||||||
|
|
||||||
[.LIB]
|
[.LIB]
|
||||||
|
|
||||||
To compile applications using FreeType 2 you have to define the
|
To compile applications using FreeType 2 you have to define the
|
||||||
logical FREETYPE pointing to the directory
|
logical FREETYPE pointing to the directory
|
||||||
|
|
||||||
[.INCLUDE.FREETYPE]
|
[.INCLUDE.FREETYPE]
|
||||||
|
|
||||||
i.e., if the directory in which this INSTALL.VMS file is located is
|
i.e., if the directory in which this INSTALL.VMS file is located is
|
||||||
$disk:[freetype] then define the logical with
|
$disk:[freetype] then define the logical with
|
||||||
|
|
||||||
define freetype $disk:[freetype.include.freetype]
|
define freetype $disk:[freetype.include.freetype]
|
||||||
|
|
||||||
This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha
|
This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha
|
||||||
V7.2-1.
|
V7.2-1.
|
||||||
|
|
||||||
|
|
||||||
Any problems can be reported to
|
Any problems can be reported to
|
||||||
|
|
||||||
Jouk Jansen <joukj@hrem.stm.tudelft.nl> or
|
Jouk Jansen <joukj@hrem.stm.tudelft.nl> or
|
||||||
Martin P.J. Zinser <zinser@zinser.no-ip.info>
|
Martin P.J. Zinser <zinser@zinser.no-ip.info>
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2000, 2004 by
|
Copyright 2000, 2004 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
||||||
file you indicate that you have read the license and understand and
|
file you indicate that you have read the license and understand and
|
||||||
accept it fully.
|
accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of INSTALL.VMS ---
|
--- end of INSTALL.VMS ---
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
As a special exception, FreeType can also be built with the 'makepp'
|
As a special exception, FreeType can also be built with the 'makepp'
|
||||||
build tool, available from http://makepp.sourceforge.net.
|
build tool, available from http://makepp.sourceforge.net.
|
||||||
|
|
||||||
Note, however. that you will need at least version 1.19 and pass the
|
Note, however. that you will need at least version 1.19 and pass the
|
||||||
option --norc-substitution to have it work correctly.
|
option --norc-substitution to have it work correctly.
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
|
|
||||||
FreeType Patents Disclaimer
|
FreeType Patents Disclaimer
|
||||||
August 1999
|
August 1999
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WE HAVE DISCOVERED THAT APPLE OWNS SEVERAL PATENTS RELATED TO THE
|
WE HAVE DISCOVERED THAT APPLE OWNS SEVERAL PATENTS RELATED TO THE
|
||||||
RENDERING OF TRUETYPE FONTS. THIS COULD MEAN THAT THE FREE USE OF
|
RENDERING OF TRUETYPE FONTS. THIS COULD MEAN THAT THE FREE USE OF
|
||||||
FREETYPE MIGHT BE ILLEGAL IN THE USA, JAPAN, AND POSSIBLY OTHER
|
FREETYPE MIGHT BE ILLEGAL IN THE USA, JAPAN, AND POSSIBLY OTHER
|
||||||
COUNTRIES, BE IT IN PROPRIETARY OR FREE SOFTWARE PRODUCTS.
|
COUNTRIES, BE IT IN PROPRIETARY OR FREE SOFTWARE PRODUCTS.
|
||||||
|
|
||||||
FOR MORE DETAILS, WE STRONGLY ADVISE YOU TO GO TO THE FREETYPE
|
FOR MORE DETAILS, WE STRONGLY ADVISE YOU TO GO TO THE FREETYPE
|
||||||
PATENTS PAGE AT THE FOLLOWING WEB ADDRESS:
|
PATENTS PAGE AT THE FOLLOWING WEB ADDRESS:
|
||||||
|
|
||||||
http://www.freetype.org/patents.html
|
http://www.freetype.org/patents.html
|
||||||
|
|
||||||
WE WILL NOT PLACE INFORMATION IN THIS FILE AS THE SITUATION IS STILL
|
WE WILL NOT PLACE INFORMATION IN THIS FILE AS THE SITUATION IS STILL
|
||||||
UNDETERMINED FOR NOW. AT THE TIME THESE LINES ARE WRITTEN, WE HAVE
|
UNDETERMINED FOR NOW. AT THE TIME THESE LINES ARE WRITTEN, WE HAVE
|
||||||
CONTACTED APPLE'S LEGAL DEPARTMENT AND ARE STILL WAITING FOR THEIR
|
CONTACTED APPLE'S LEGAL DEPARTMENT AND ARE STILL WAITING FOR THEIR
|
||||||
ANSWER ON THE SUBJECT.
|
ANSWER ON THE SUBJECT.
|
||||||
|
|
||||||
PLEASE READ THE `INSTALL' FILE TO SEE HOW TO DISABLE THE ENGINE'S
|
PLEASE READ THE `INSTALL' FILE TO SEE HOW TO DISABLE THE ENGINE'S
|
||||||
BYTECODE INTERPRETER IN ORDER TO BUILD A PATENT-FREE ENGINE, AT THE
|
BYTECODE INTERPRETER IN ORDER TO BUILD A PATENT-FREE ENGINE, AT THE
|
||||||
COST OF RENDERING QUALITY.
|
COST OF RENDERING QUALITY.
|
||||||
|
|
||||||
|
|
||||||
--- end of PATENTS ---
|
--- end of PATENTS ---
|
||||||
|
|
|
@ -1,77 +1,77 @@
|
||||||
This file describes various problems that have been encountered in
|
This file describes various problems that have been encountered in
|
||||||
compiling, installing and running FreeType 2. Suggestions for
|
compiling, installing and running FreeType 2. Suggestions for
|
||||||
additions or other improvements to this file are welcome.
|
additions or other improvements to this file are welcome.
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Running Problems
|
Running Problems
|
||||||
================
|
================
|
||||||
|
|
||||||
|
|
||||||
* Some Type 1, Multiple Masters, and CID-keyed PostScript fonts aren't
|
* Some Type 1, Multiple Masters, and CID-keyed PostScript fonts aren't
|
||||||
handled correctly.
|
handled correctly.
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Of course, there might be bugs in FreeType, but some fonts based on
|
Of course, there might be bugs in FreeType, but some fonts based on
|
||||||
the PostScript format can't behandled indeed. The reason is that
|
the PostScript format can't behandled indeed. The reason is that
|
||||||
FreeType doesn't contain a full PostScript interpreter but applies
|
FreeType doesn't contain a full PostScript interpreter but applies
|
||||||
pattern matching instead. In case a font doesn't follow the standard
|
pattern matching instead. In case a font doesn't follow the standard
|
||||||
structure of the given font format, FreeType fails. A typical example
|
structure of the given font format, FreeType fails. A typical example
|
||||||
is Adobe's `Optima' font family which contains extra code to switch
|
is Adobe's `Optima' font family which contains extra code to switch
|
||||||
between low and high resolution versions of the glyphs.
|
between low and high resolution versions of the glyphs.
|
||||||
|
|
||||||
It might be possible to patch FreeType in some situations, though.
|
It might be possible to patch FreeType in some situations, though.
|
||||||
Please report failing fonts so that we investigate the problem and set
|
Please report failing fonts so that we investigate the problem and set
|
||||||
up a list of such problematic fonts.
|
up a list of such problematic fonts.
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
Compilation Problems
|
Compilation Problems
|
||||||
====================
|
====================
|
||||||
|
|
||||||
|
|
||||||
* I get an `internal compilation error' (ICE) while compiling FreeType
|
* I get an `internal compilation error' (ICE) while compiling FreeType
|
||||||
2.2.1 with Intel C++.
|
2.2.1 with Intel C++.
|
||||||
|
|
||||||
This has been reported for the following compiler version:
|
This has been reported for the following compiler version:
|
||||||
|
|
||||||
Intel(R) C++ Compiler for 32-bit applications,
|
Intel(R) C++ Compiler for 32-bit applications,
|
||||||
Version 9.0 Build 20050430Z Package ID: W_CC_P_9.0.019
|
Version 9.0 Build 20050430Z Package ID: W_CC_P_9.0.019
|
||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
The best solution is to update the compiler to version
|
The best solution is to update the compiler to version
|
||||||
|
|
||||||
Intel(R) C++ Compiler for 32-bit applications,
|
Intel(R) C++ Compiler for 32-bit applications,
|
||||||
Version 9.1 Build 20060323Z Package ID: W_CC_P_9.1.022
|
Version 9.1 Build 20060323Z Package ID: W_CC_P_9.1.022
|
||||||
|
|
||||||
or newer. If this isn't feasible, apply the following patch.
|
or newer. If this isn't feasible, apply the following patch.
|
||||||
|
|
||||||
|
|
||||||
--- src/cache/ftcbasic.c 20 Mar 2006 12:10:24 -0000 1.20
|
--- src/cache/ftcbasic.c 20 Mar 2006 12:10:24 -0000 1.20
|
||||||
+++ src/cache/ftcbasic.c.patched 15 May 2006 02:51:02 -0000
|
+++ src/cache/ftcbasic.c.patched 15 May 2006 02:51:02 -0000
|
||||||
@@ -252,7 +252,7 @@
|
@@ -252,7 +252,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
FT_CALLBACK_TABLE_DEF
|
FT_CALLBACK_TABLE_DEF
|
||||||
- const FTC_IFamilyClassRec ftc_basic_image_family_class =
|
- const FTC_IFamilyClassRec ftc_basic_image_family_class =
|
||||||
+ FTC_IFamilyClassRec ftc_basic_image_family_class =
|
+ FTC_IFamilyClassRec ftc_basic_image_family_class =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
sizeof ( FTC_BasicFamilyRec ),
|
sizeof ( FTC_BasicFamilyRec ),
|
||||||
@@ -266,7 +266,7 @@
|
@@ -266,7 +266,7 @@
|
||||||
|
|
||||||
|
|
||||||
FT_CALLBACK_TABLE_DEF
|
FT_CALLBACK_TABLE_DEF
|
||||||
- const FTC_GCacheClassRec ftc_basic_image_cache_class =
|
- const FTC_GCacheClassRec ftc_basic_image_cache_class =
|
||||||
+ FTC_GCacheClassRec ftc_basic_image_cache_class =
|
+ FTC_GCacheClassRec ftc_basic_image_cache_class =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
ftc_inode_new,
|
ftc_inode_new,
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
--- end of PROBLEMS ---
|
--- end of PROBLEMS ---
|
||||||
|
|
|
@ -1,40 +1,40 @@
|
||||||
Here is a list of items that need to be addressed in FreeType 2
|
Here is a list of items that need to be addressed in FreeType 2
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
|
|
||||||
* Implement stem3/counter hints properly in the Postscript hinter.
|
* Implement stem3/counter hints properly in the Postscript hinter.
|
||||||
|
|
||||||
* Add CIDCMap support to the CID driver.
|
* Add CIDCMap support to the CID driver.
|
||||||
|
|
||||||
* Add track kerning support to the PFR driver.
|
* Add track kerning support to the PFR driver.
|
||||||
|
|
||||||
* Add kerning (AFM file) support to the CID driver.
|
* Add kerning (AFM file) support to the CID driver.
|
||||||
|
|
||||||
|
|
||||||
Here is a list of bugs which should be handled
|
Here is a list of bugs which should be handled
|
||||||
----------------------------------------------
|
----------------------------------------------
|
||||||
|
|
||||||
Other bugs have been registered at the savannah bugzilla of FreeType.
|
Other bugs have been registered at the savannah bugzilla of FreeType.
|
||||||
|
|
||||||
* CID driver:
|
* CID driver:
|
||||||
Handle the case where a CID font has a top-level font matrix also
|
Handle the case where a CID font has a top-level font matrix also
|
||||||
(see PLRM, 5.11.3, Type 0 CIDFonts). Since CID_FaceInfoRec lacks
|
(see PLRM, 5.11.3, Type 0 CIDFonts). Since CID_FaceInfoRec lacks
|
||||||
a font_matrix entry we have to directly apply it to all subfont
|
a font_matrix entry we have to directly apply it to all subfont
|
||||||
matrices.
|
matrices.
|
||||||
|
|
||||||
* CID driver:
|
* CID driver:
|
||||||
Use top-level font matrix entry for setting the upem value, not the
|
Use top-level font matrix entry for setting the upem value, not the
|
||||||
entries in the FDarray. If absent, use 1000.
|
entries in the FDarray. If absent, use 1000.
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007 by
|
Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
||||||
file you indicate that you have read the license and understand and
|
file you indicate that you have read the license and understand and
|
||||||
accept it fully.
|
accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of TODO ---
|
--- end of TODO ---
|
||||||
|
|
|
@ -1,40 +1,40 @@
|
||||||
How to enable the TrueType native hinter if you need it
|
How to enable the TrueType native hinter if you need it
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
The TrueType bytecode interpreter is disabled in all public releases
|
The TrueType bytecode interpreter is disabled in all public releases
|
||||||
of the FreeType packages for patents reasons; see
|
of the FreeType packages for patents reasons; see
|
||||||
|
|
||||||
http://www.freetype.org/patents.html
|
http://www.freetype.org/patents.html
|
||||||
|
|
||||||
for more details.
|
for more details.
|
||||||
|
|
||||||
However, many Linux distributions do enable the interpreter in the
|
However, many Linux distributions do enable the interpreter in the
|
||||||
FreeType packages (DEB/RPM/etc.) they produce for their platforms. If
|
FreeType packages (DEB/RPM/etc.) they produce for their platforms. If
|
||||||
you are using TrueType fonts on your system, you most probably want to
|
you are using TrueType fonts on your system, you most probably want to
|
||||||
enable it manually by doing the following:
|
enable it manually by doing the following:
|
||||||
|
|
||||||
- open the file `include/freetype/config/ftoption.h'
|
- open the file `include/freetype/config/ftoption.h'
|
||||||
|
|
||||||
- locate a line that says:
|
- locate a line that says:
|
||||||
|
|
||||||
/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
|
/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
|
||||||
|
|
||||||
- change it to:
|
- change it to:
|
||||||
|
|
||||||
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
|
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
|
||||||
|
|
||||||
These steps must be done _before_ compiling the library.
|
These steps must be done _before_ compiling the library.
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2003, 2005, 2006 by
|
Copyright 2003, 2005, 2006 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
||||||
file you indicate that you have read the license and understand and
|
file you indicate that you have read the license and understand and
|
||||||
accept it fully.
|
accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of TRUETYPE ---
|
--- end of TRUETYPE ---
|
||||||
|
|
|
@ -1,137 +1,137 @@
|
||||||
|
|
||||||
SPECIAL NOTE FOR UNIX USERS
|
SPECIAL NOTE FOR UNIX USERS
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
If you are installing this release of FreeType on a system that
|
If you are installing this release of FreeType on a system that
|
||||||
already uses release 2.0.5 (or even an older version), you have to
|
already uses release 2.0.5 (or even an older version), you have to
|
||||||
perform a few special steps to ensure that everything goes well.
|
perform a few special steps to ensure that everything goes well.
|
||||||
|
|
||||||
|
|
||||||
1. Enable the TrueType bytecode hinter if you need it
|
1. Enable the TrueType bytecode hinter if you need it
|
||||||
-----------------------------------------------------
|
-----------------------------------------------------
|
||||||
|
|
||||||
See the instructions in the file `TRUETYPE' of this directory.
|
See the instructions in the file `TRUETYPE' of this directory.
|
||||||
|
|
||||||
Note that FreeType supports TrueType fonts without the bytecode
|
Note that FreeType supports TrueType fonts without the bytecode
|
||||||
interpreter through its auto-hinter, which now generates relatively
|
interpreter through its auto-hinter, which now generates relatively
|
||||||
good results with most fonts.
|
good results with most fonts.
|
||||||
|
|
||||||
|
|
||||||
2. Determine the correct installation path
|
2. Determine the correct installation path
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
By default, the configure script installs the library in
|
By default, the configure script installs the library in
|
||||||
`/usr/local'. However, many Unix distributions now install the
|
`/usr/local'. However, many Unix distributions now install the
|
||||||
library in `/usr', since FreeType is becoming a critical system
|
library in `/usr', since FreeType is becoming a critical system
|
||||||
component.
|
component.
|
||||||
|
|
||||||
If FreeType is already installed on your system, type
|
If FreeType is already installed on your system, type
|
||||||
|
|
||||||
freetype-config --prefix
|
freetype-config --prefix
|
||||||
|
|
||||||
on the command line. This should return the installation path
|
on the command line. This should return the installation path
|
||||||
(e.g., `/usr' or `/usr/local'). To avoid problems of parallel
|
(e.g., `/usr' or `/usr/local'). To avoid problems of parallel
|
||||||
FreeType versions, use this path for the --prefix option of the
|
FreeType versions, use this path for the --prefix option of the
|
||||||
configure script.
|
configure script.
|
||||||
|
|
||||||
Otherwise, simply use `/usr' (or whatever you think is adequate for
|
Otherwise, simply use `/usr' (or whatever you think is adequate for
|
||||||
your installation).
|
your installation).
|
||||||
|
|
||||||
|
|
||||||
3. Ensure that you are using GNU Make
|
3. Ensure that you are using GNU Make
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
|
|
||||||
The FreeType build system _exclusively_ works with GNU Make (as an
|
The FreeType build system _exclusively_ works with GNU Make (as an
|
||||||
exception you can use make++ which emulates GNU Make sufficiently;
|
exception you can use make++ which emulates GNU Make sufficiently;
|
||||||
see http://makepp.sourceforge.net). You will not be able to compile
|
see http://makepp.sourceforge.net). You will not be able to compile
|
||||||
the library with the instructions below using any other alternative
|
the library with the instructions below using any other alternative
|
||||||
(including BSD Make).
|
(including BSD Make).
|
||||||
|
|
||||||
Trying to compile the library with a different Make tool prints a
|
Trying to compile the library with a different Make tool prints a
|
||||||
message like:
|
message like:
|
||||||
|
|
||||||
Sorry, GNU make is required to build FreeType2.
|
Sorry, GNU make is required to build FreeType2.
|
||||||
|
|
||||||
and the build process is aborted. If this happens, install GNU Make
|
and the build process is aborted. If this happens, install GNU Make
|
||||||
on your system, and use the GNUMAKE environment variable to name it.
|
on your system, and use the GNUMAKE environment variable to name it.
|
||||||
|
|
||||||
|
|
||||||
4. Build and install the library
|
4. Build and install the library
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
The following should work on all Unix systems where the `make'
|
The following should work on all Unix systems where the `make'
|
||||||
command invokes GNU Make:
|
command invokes GNU Make:
|
||||||
|
|
||||||
./configure --prefix=<yourprefix>
|
./configure --prefix=<yourprefix>
|
||||||
make
|
make
|
||||||
make install (as root)
|
make install (as root)
|
||||||
|
|
||||||
where `<yourprefix>' must be replaced by the prefix returned by the
|
where `<yourprefix>' must be replaced by the prefix returned by the
|
||||||
`freetype-config' command.
|
`freetype-config' command.
|
||||||
|
|
||||||
When using a different command to invoke GNU Make, use the GNUMAKE
|
When using a different command to invoke GNU Make, use the GNUMAKE
|
||||||
variable. For example, if `gmake' is the command to use on your
|
variable. For example, if `gmake' is the command to use on your
|
||||||
system, do something like:
|
system, do something like:
|
||||||
|
|
||||||
GNUMAKE=gmake ./configure --prefix=<yourprefix>
|
GNUMAKE=gmake ./configure --prefix=<yourprefix>
|
||||||
gmake
|
gmake
|
||||||
gmake install (as root)
|
gmake install (as root)
|
||||||
|
|
||||||
|
|
||||||
5. Take care of XFree86 version 4
|
5. Take care of XFree86 version 4
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
Certain Linux distributions install _several_ versions of FreeType
|
Certain Linux distributions install _several_ versions of FreeType
|
||||||
on your system. For example, on a fresh Mandrake 8.1 system, you
|
on your system. For example, on a fresh Mandrake 8.1 system, you
|
||||||
can find the following files:
|
can find the following files:
|
||||||
|
|
||||||
/usr/lib/libfreetype.so which links to
|
/usr/lib/libfreetype.so which links to
|
||||||
/usr/lib/libfreetype.6.1.0.so
|
/usr/lib/libfreetype.6.1.0.so
|
||||||
|
|
||||||
and
|
and
|
||||||
|
|
||||||
/usr/X11R6/lib/libfreetype.so which links to
|
/usr/X11R6/lib/libfreetype.so which links to
|
||||||
/usr/X11R6/lib/libfreetype.6.0.so
|
/usr/X11R6/lib/libfreetype.6.0.so
|
||||||
|
|
||||||
Note that these files correspond to two distinct versions of the
|
Note that these files correspond to two distinct versions of the
|
||||||
library! It seems that this surprising issue is due to the install
|
library! It seems that this surprising issue is due to the install
|
||||||
scripts of recent XFree86 servers (from 4.1.0) which install their
|
scripts of recent XFree86 servers (from 4.1.0) which install their
|
||||||
own (dated) version of the library in `/usr/X11R6/lib'.
|
own (dated) version of the library in `/usr/X11R6/lib'.
|
||||||
|
|
||||||
In certain _rare_ cases you may experience minor problems if you
|
In certain _rare_ cases you may experience minor problems if you
|
||||||
install this release of the library in `/usr' only, namely, that
|
install this release of the library in `/usr' only, namely, that
|
||||||
certain applications do not benefit from the bug fixes and rendering
|
certain applications do not benefit from the bug fixes and rendering
|
||||||
improvements you would expect.
|
improvements you would expect.
|
||||||
|
|
||||||
There are two good ways to deal with this situation:
|
There are two good ways to deal with this situation:
|
||||||
|
|
||||||
- Install the library _twice_, in `/usr' and in `/usr/X11R6' (you
|
- Install the library _twice_, in `/usr' and in `/usr/X11R6' (you
|
||||||
have to do that each time you install a new FreeType release
|
have to do that each time you install a new FreeType release
|
||||||
though).
|
though).
|
||||||
|
|
||||||
- Change the link in /usr/X11R6/lib/libfreetype.so to point to
|
- Change the link in /usr/X11R6/lib/libfreetype.so to point to
|
||||||
|
|
||||||
/usr/lib/libfreetype.so,
|
/usr/lib/libfreetype.so,
|
||||||
|
|
||||||
and get rid of
|
and get rid of
|
||||||
|
|
||||||
/usr/X11R6/lib/libfreetype.6.0.so
|
/usr/X11R6/lib/libfreetype.6.0.so
|
||||||
|
|
||||||
The FreeType Team is not responsible for this problem, so please
|
The FreeType Team is not responsible for this problem, so please
|
||||||
contact either the XFree86 development team or your Linux
|
contact either the XFree86 development team or your Linux
|
||||||
distributor to help clear this issue in case the information given
|
distributor to help clear this issue in case the information given
|
||||||
here doesn't help.
|
here doesn't help.
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2003, 2005 by
|
Copyright 2003, 2005 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
||||||
file you indicate that you have read the license and understand and
|
file you indicate that you have read the license and understand and
|
||||||
accept it fully.
|
accept it fully.
|
||||||
|
|
||||||
|
|
||||||
---- end of UPGRADE.UNIX ---
|
---- end of UPGRADE.UNIX ---
|
||||||
|
|
|
@ -1,138 +1,138 @@
|
||||||
Due to our use of `libtool' to generate and install the FreeType 2
|
Due to our use of `libtool' to generate and install the FreeType 2
|
||||||
libraries on Unix systems, as well as other historical events, it is
|
libraries on Unix systems, as well as other historical events, it is
|
||||||
generally very difficult to know precisely which release of the font
|
generally very difficult to know precisely which release of the font
|
||||||
engine is installed on a given system.
|
engine is installed on a given system.
|
||||||
|
|
||||||
This file tries to explain why and to document ways to properly detect
|
This file tries to explain why and to document ways to properly detect
|
||||||
FreeType on Unix.
|
FreeType on Unix.
|
||||||
|
|
||||||
|
|
||||||
1. Version and Release numbers
|
1. Version and Release numbers
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
For each new public release of FreeType 2, there are generally *three*
|
For each new public release of FreeType 2, there are generally *three*
|
||||||
distinct `version' numbers to consider:
|
distinct `version' numbers to consider:
|
||||||
|
|
||||||
* The official FreeType 2 release number, like 2.0.9 or 2.1.3.
|
* The official FreeType 2 release number, like 2.0.9 or 2.1.3.
|
||||||
|
|
||||||
* The libtool (and Unix) specific version number, like 9.2.3. This is
|
* The libtool (and Unix) specific version number, like 9.2.3. This is
|
||||||
what `freetype-config --version' returns.
|
what `freetype-config --version' returns.
|
||||||
|
|
||||||
* The platform-specific shared object number, used for example when
|
* The platform-specific shared object number, used for example when
|
||||||
the library is installed as `/usr/lib/libfreetype.so.6.3.2'.
|
the library is installed as `/usr/lib/libfreetype.so.6.3.2'.
|
||||||
|
|
||||||
The platform-specific number is, unsurprisingly, platform-specific and
|
The platform-specific number is, unsurprisingly, platform-specific and
|
||||||
varies with the operating system you are using (several variants of
|
varies with the operating system you are using (several variants of
|
||||||
Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even
|
Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even
|
||||||
for simple tests.
|
for simple tests.
|
||||||
|
|
||||||
The libtool-specific number does not equal the release number but is
|
The libtool-specific number does not equal the release number but is
|
||||||
tied to it.
|
tied to it.
|
||||||
|
|
||||||
The release number is available at *compile* time through the following
|
The release number is available at *compile* time through the following
|
||||||
macros defined in FT_FREETYPE_H:
|
macros defined in FT_FREETYPE_H:
|
||||||
|
|
||||||
- FREETYPE_MAJOR: major release number
|
- FREETYPE_MAJOR: major release number
|
||||||
- FREETYPE_MINOR: minor release number
|
- FREETYPE_MINOR: minor release number
|
||||||
- FREETYPE_PATCH: patch release number
|
- FREETYPE_PATCH: patch release number
|
||||||
|
|
||||||
See below for a small autoconf fragment.
|
See below for a small autoconf fragment.
|
||||||
|
|
||||||
The release number is also available at *runtime* through the
|
The release number is also available at *runtime* through the
|
||||||
`FT_Library_Version' API. Unfortunately, this one wasn't available or
|
`FT_Library_Version' API. Unfortunately, this one wasn't available or
|
||||||
working correctly before the 2.1.3 official release.
|
working correctly before the 2.1.3 official release.
|
||||||
|
|
||||||
|
|
||||||
2. History
|
2. History
|
||||||
----------
|
----------
|
||||||
|
|
||||||
The following table gives, for each official release, the corresponding
|
The following table gives, for each official release, the corresponding
|
||||||
libtool number, as well as the shared object number found on _most_
|
libtool number, as well as the shared object number found on _most_
|
||||||
systems, but not all of them:
|
systems, but not all of them:
|
||||||
|
|
||||||
|
|
||||||
release libtool so
|
release libtool so
|
||||||
-------------------------------
|
-------------------------------
|
||||||
2.3.12 10.0.4 6.4.0
|
2.3.12 10.0.4 6.4.0
|
||||||
2.3.11 9.22.3 6.3.22
|
2.3.11 9.22.3 6.3.22
|
||||||
2.3.10 9.21.3 6.3.21
|
2.3.10 9.21.3 6.3.21
|
||||||
2.3.9 9.20.3 6.3.20
|
2.3.9 9.20.3 6.3.20
|
||||||
2.3.8 9.19.3 6.3.19
|
2.3.8 9.19.3 6.3.19
|
||||||
2.3.7 9.18.3 6.3.18
|
2.3.7 9.18.3 6.3.18
|
||||||
2.3.6 9.17.3 6.3.17
|
2.3.6 9.17.3 6.3.17
|
||||||
2.3.5 9.16.3 6.3.16
|
2.3.5 9.16.3 6.3.16
|
||||||
2.3.4 9.15.3 6.3.15
|
2.3.4 9.15.3 6.3.15
|
||||||
2.3.3 9.14.3 6.3.14
|
2.3.3 9.14.3 6.3.14
|
||||||
2.3.2 9.13.3 6.3.13
|
2.3.2 9.13.3 6.3.13
|
||||||
2.3.1 9.12.3 6.3.12
|
2.3.1 9.12.3 6.3.12
|
||||||
2.3.0 9.11.3 6.3.11
|
2.3.0 9.11.3 6.3.11
|
||||||
2.2.1 9.10.3 6.3.10
|
2.2.1 9.10.3 6.3.10
|
||||||
2.2.0 9.9.3 6.3.9
|
2.2.0 9.9.3 6.3.9
|
||||||
2.1.10 9.8.3 6.3.8
|
2.1.10 9.8.3 6.3.8
|
||||||
2.1.9 9.7.3 6.3.7
|
2.1.9 9.7.3 6.3.7
|
||||||
2.1.8 9.6.3 6.3.6
|
2.1.8 9.6.3 6.3.6
|
||||||
2.1.7 9.5.3 6.3.5
|
2.1.7 9.5.3 6.3.5
|
||||||
2.1.6 9.5.3 6.3.5
|
2.1.6 9.5.3 6.3.5
|
||||||
2.1.5 9.4.3 6.3.4
|
2.1.5 9.4.3 6.3.4
|
||||||
2.1.4 9.3.3 6.3.3
|
2.1.4 9.3.3 6.3.3
|
||||||
2.1.3 9.2.3 6.3.2
|
2.1.3 9.2.3 6.3.2
|
||||||
2.1.2 9.1.3 6.3.1
|
2.1.2 9.1.3 6.3.1
|
||||||
2.1.1 9.0.3 ?
|
2.1.1 9.0.3 ?
|
||||||
2.1.0 8.0.2 ?
|
2.1.0 8.0.2 ?
|
||||||
2.0.9 9.0.3 ?
|
2.0.9 9.0.3 ?
|
||||||
2.0.8 8.0.2 ?
|
2.0.8 8.0.2 ?
|
||||||
2.0.4 7.0.1 ?
|
2.0.4 7.0.1 ?
|
||||||
2.0.1 6.1.0 ?
|
2.0.1 6.1.0 ?
|
||||||
|
|
||||||
The libtool numbers are a bit inconsistent due to the library's history:
|
The libtool numbers are a bit inconsistent due to the library's history:
|
||||||
|
|
||||||
- 2.1.0 was created as a development branch from 2.0.8 (hence the same
|
- 2.1.0 was created as a development branch from 2.0.8 (hence the same
|
||||||
libtool numbers).
|
libtool numbers).
|
||||||
|
|
||||||
- 2.0.9 was a bug-fix release of the `stable' branch, and we
|
- 2.0.9 was a bug-fix release of the `stable' branch, and we
|
||||||
incorrectly increased its libtool number.
|
incorrectly increased its libtool number.
|
||||||
|
|
||||||
- 2.1.4 was a development version, however it was stable enough to be
|
- 2.1.4 was a development version, however it was stable enough to be
|
||||||
the basis of the 2.2.0 release.
|
the basis of the 2.2.0 release.
|
||||||
|
|
||||||
|
|
||||||
3. Autoconf Code Fragment
|
3. Autoconf Code Fragment
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
Lars Clausen contributed the following autoconf fragment to detect which
|
Lars Clausen contributed the following autoconf fragment to detect which
|
||||||
version of FreeType is installed on a system. This one tests for a
|
version of FreeType is installed on a system. This one tests for a
|
||||||
version that is at least 2.0.9; you should change it to check against
|
version that is at least 2.0.9; you should change it to check against
|
||||||
other release numbers.
|
other release numbers.
|
||||||
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
|
AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
|
||||||
old_CPPFLAGS="$CPPFLAGS"
|
old_CPPFLAGS="$CPPFLAGS"
|
||||||
CPPFLAGS=`freetype-config --cflags`
|
CPPFLAGS=`freetype-config --cflags`
|
||||||
AC_TRY_CPP([
|
AC_TRY_CPP([
|
||||||
|
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
#include FT_FREETYPE_H
|
#include FT_FREETYPE_H
|
||||||
#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
|
#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
|
||||||
#error Freetype version too low.
|
#error Freetype version too low.
|
||||||
#endif
|
#endif
|
||||||
],
|
],
|
||||||
[AC_MSG_RESULT(yes)
|
[AC_MSG_RESULT(yes)
|
||||||
FREETYPE_LIBS=`freetype-config --libs`
|
FREETYPE_LIBS=`freetype-config --libs`
|
||||||
AC_SUBST(FREETYPE_LIBS)
|
AC_SUBST(FREETYPE_LIBS)
|
||||||
AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library])
|
AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library])
|
||||||
CPPFLAGS="$old_CPPFLAGS"],
|
CPPFLAGS="$old_CPPFLAGS"],
|
||||||
[AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])])
|
[AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])])
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 by
|
Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
license, LICENSE.TXT. By continuing to use, modify, or distribute this
|
||||||
file you indicate that you have read the license and understand and
|
file you indicate that you have read the license and understand and
|
||||||
accept it fully.
|
accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of VERSION.DLL ---
|
--- end of VERSION.DLL ---
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
*.html
|
*.html
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
After saying `make refdoc' this directory contains the FreeType API
|
After saying `make refdoc' this directory contains the FreeType API
|
||||||
reference. You need python to make this target.
|
reference. You need python to make this target.
|
||||||
|
|
||||||
This also works with Jam: Just type `jam refdoc' in the main directory.
|
This also works with Jam: Just type `jam refdoc' in the main directory.
|
||||||
|
|
||||||
|
|
|
@ -1,195 +1,195 @@
|
||||||
How to prepare a new release
|
How to prepare a new release
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
. include/freetype/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR,
|
. include/freetype/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR,
|
||||||
and FREETYPE_PATCH.
|
and FREETYPE_PATCH.
|
||||||
|
|
||||||
. Update version numbers in all files where necessary (for example, do
|
. Update version numbers in all files where necessary (for example, do
|
||||||
a grep for both `2.3.1' and `231' for release 2.3.1).
|
a grep for both `2.3.1' and `231' for release 2.3.1).
|
||||||
|
|
||||||
. builds/unix/configure.raw: Update `version_info'.
|
. builds/unix/configure.raw: Update `version_info'.
|
||||||
|
|
||||||
. docs/CHANGES: Document differences to last release.
|
. docs/CHANGES: Document differences to last release.
|
||||||
|
|
||||||
. README: Update.
|
. README: Update.
|
||||||
|
|
||||||
. docs/VERSION.DLL: Document changed `version_info'.
|
. docs/VERSION.DLL: Document changed `version_info'.
|
||||||
|
|
||||||
. ChangeLog: Announce new release (both in the freetype2 and
|
. ChangeLog: Announce new release (both in the freetype2 and
|
||||||
freetype2-demos modules).
|
freetype2-demos modules).
|
||||||
|
|
||||||
. Clone the git archive to another directory with
|
. Clone the git archive to another directory with
|
||||||
|
|
||||||
git clone -l -s . ../freetype2.test
|
git clone -l -s . ../freetype2.test
|
||||||
|
|
||||||
or something like this and run
|
or something like this and run
|
||||||
|
|
||||||
make distclean; make devel; make
|
make distclean; make devel; make
|
||||||
make distclean; make devel; make multi
|
make distclean; make devel; make multi
|
||||||
make distclean; make devel CC=g++; make CC=g++
|
make distclean; make devel CC=g++; make CC=g++
|
||||||
make distclean; make devel CC=g++; make multi CC=g++
|
make distclean; make devel CC=g++; make multi CC=g++
|
||||||
|
|
||||||
sh autogen.sh
|
sh autogen.sh
|
||||||
make distclean; ./configure; make
|
make distclean; ./configure; make
|
||||||
make distclean; ./configure CC=g++; make
|
make distclean; ./configure CC=g++; make
|
||||||
|
|
||||||
in the cloned repository to test compilation with both gcc and g++.
|
in the cloned repository to test compilation with both gcc and g++.
|
||||||
|
|
||||||
. Test C++ compilation for freetype2-demos too (using `git clone' as
|
. Test C++ compilation for freetype2-demos too (using `git clone' as
|
||||||
above).
|
above).
|
||||||
|
|
||||||
. Run src/tools/chktrcmp.py and check that there are no undefined
|
. Run src/tools/chktrcmp.py and check that there are no undefined
|
||||||
trace_XXXX macros.
|
trace_XXXX macros.
|
||||||
|
|
||||||
. Tag the git repositories (freetype2, freetype2-demos) with
|
. Tag the git repositories (freetype2, freetype2-demos) with
|
||||||
|
|
||||||
git tag VER-<version> -m "" -u <committer>
|
git tag VER-<version> -m "" -u <committer>
|
||||||
|
|
||||||
and push the tags with
|
and push the tags with
|
||||||
|
|
||||||
git push --tags
|
git push --tags
|
||||||
|
|
||||||
TODO: Tag the home page CVS on savannah.nongnu.org.
|
TODO: Tag the home page CVS on savannah.nongnu.org.
|
||||||
|
|
||||||
. Say `make dist' in both the freetype2 and freetype2-demos modules
|
. Say `make dist' in both the freetype2 and freetype2-demos modules
|
||||||
to generate the .tar.gz, .tar.bz2, and .zip files.
|
to generate the .tar.gz, .tar.bz2, and .zip files.
|
||||||
|
|
||||||
. Create the doc bundles (freetype-doc-<version>.tar.gz,
|
. Create the doc bundles (freetype-doc-<version>.tar.gz,
|
||||||
freetype-doc-<version>.tar.bz2, ftdoc<version>.zip). This is
|
freetype-doc-<version>.tar.bz2, ftdoc<version>.zip). This is
|
||||||
everything below
|
everything below
|
||||||
|
|
||||||
freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/
|
freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/
|
||||||
|
|
||||||
except the `reference' subdirectory. Do *not* use option `-l' from
|
except the `reference' subdirectory. Do *not* use option `-l' from
|
||||||
zip!
|
zip!
|
||||||
|
|
||||||
. Run the following script (with updated `$VERSION', `$SAVANNAH_USER',
|
. Run the following script (with updated `$VERSION', `$SAVANNAH_USER',
|
||||||
and $SOURCEFORGE_USER variables) to sign and upload the bundles to
|
and $SOURCEFORGE_USER variables) to sign and upload the bundles to
|
||||||
both Savannah and SourceForge. The signing code has been taken from
|
both Savannah and SourceForge. The signing code has been taken from
|
||||||
the `gnupload' script (part of the automake bundle).
|
the `gnupload' script (part of the automake bundle).
|
||||||
|
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
VERSION=2.3.11
|
VERSION=2.3.11
|
||||||
SAVANNAH_USER=wl
|
SAVANNAH_USER=wl
|
||||||
SOURCEFORGE_USER=wlemb
|
SOURCEFORGE_USER=wlemb
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
GPG='/usr/bin/gpg --batch --no-tty'
|
GPG='/usr/bin/gpg --batch --no-tty'
|
||||||
|
|
||||||
version=`echo $VERSION | sed "s/\\.//g"`
|
version=`echo $VERSION | sed "s/\\.//g"`
|
||||||
|
|
||||||
FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \
|
FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \
|
||||||
freetype-$VERSION.tar.bz2 \
|
freetype-$VERSION.tar.bz2 \
|
||||||
ft$version.zip"
|
ft$version.zip"
|
||||||
FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \
|
FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \
|
||||||
ft2demos-$VERSION.tar.bz2 \
|
ft2demos-$VERSION.tar.bz2 \
|
||||||
ftdmo$version.zip"
|
ftdmo$version.zip"
|
||||||
FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \
|
FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \
|
||||||
freetype-doc-$VERSION.tar.bz2 \
|
freetype-doc-$VERSION.tar.bz2 \
|
||||||
ftdoc$version.zip"
|
ftdoc$version.zip"
|
||||||
|
|
||||||
PACKAGE_LIST="$FREETYPE_PACKAGES \
|
PACKAGE_LIST="$FREETYPE_PACKAGES \
|
||||||
$FT2DEMOS_PACKAGES \
|
$FT2DEMOS_PACKAGES \
|
||||||
$FTDOC_PACKAGES"
|
$FTDOC_PACKAGES"
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
unset passphrase
|
unset passphrase
|
||||||
|
|
||||||
PATH=/empty echo -n "Enter GPG passphrase: "
|
PATH=/empty echo -n "Enter GPG passphrase: "
|
||||||
stty -echo
|
stty -echo
|
||||||
read -r passphrase
|
read -r passphrase
|
||||||
stty echo
|
stty echo
|
||||||
echo
|
echo
|
||||||
|
|
||||||
for f in $PACKAGE_LIST; do
|
for f in $PACKAGE_LIST; do
|
||||||
if test ! -f $f; then
|
if test ! -f $f; then
|
||||||
echo "$0: Cannot find \`$f'" 1>&2
|
echo "$0: Cannot find \`$f'" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
:
|
:
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
for f in $PACKAGE_LIST; do
|
for f in $PACKAGE_LIST; do
|
||||||
echo "Signing $f..."
|
echo "Signing $f..."
|
||||||
rm -f $f.sig
|
rm -f $f.sig
|
||||||
echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f
|
echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f
|
||||||
done
|
done
|
||||||
|
|
||||||
FREETYPE_SIGNATURES=
|
FREETYPE_SIGNATURES=
|
||||||
for i in $FREETYPE_PACKAGES; do
|
for i in $FREETYPE_PACKAGES; do
|
||||||
FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig"
|
FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig"
|
||||||
done
|
done
|
||||||
|
|
||||||
FT2DEMOS_SIGNATURES=
|
FT2DEMOS_SIGNATURES=
|
||||||
for i in $FT2DEMOS_PACKAGES; do
|
for i in $FT2DEMOS_PACKAGES; do
|
||||||
FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig"
|
FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig"
|
||||||
done
|
done
|
||||||
|
|
||||||
FTDOC_SIGNATURES=
|
FTDOC_SIGNATURES=
|
||||||
for i in $FTDOC_PACKAGES; do
|
for i in $FTDOC_PACKAGES; do
|
||||||
FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig"
|
FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig"
|
||||||
done
|
done
|
||||||
|
|
||||||
SIGNATURE_LIST="$FREETYPE_SIGNATURES \
|
SIGNATURE_LIST="$FREETYPE_SIGNATURES \
|
||||||
$FT2DEMOS_SIGNATURES \
|
$FT2DEMOS_SIGNATURES \
|
||||||
$FTDOC_SIGNATURES"
|
$FTDOC_SIGNATURES"
|
||||||
|
|
||||||
scp $PACKAGE_LIST $SIGNATURE_LIST \
|
scp $PACKAGE_LIST $SIGNATURE_LIST \
|
||||||
$SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/
|
$SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/
|
||||||
|
|
||||||
rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \
|
rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \
|
||||||
$SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
|
$SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/
|
||||||
rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \
|
rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \
|
||||||
$SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/
|
$SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/
|
||||||
rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \
|
rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \
|
||||||
$SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/
|
$SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
||||||
. While files on savannah.gnu.org are automatically moved to the right
|
. While files on savannah.gnu.org are automatically moved to the right
|
||||||
directory, it must be done manually on SourceForge. Do that now.
|
directory, it must be done manually on SourceForge. Do that now.
|
||||||
|
|
||||||
. Update the FreeType release notes on SourceForge.
|
. Update the FreeType release notes on SourceForge.
|
||||||
|
|
||||||
. Copy the reference files (generated by `make dist') to
|
. Copy the reference files (generated by `make dist') to
|
||||||
|
|
||||||
freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/reference
|
freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/reference
|
||||||
|
|
||||||
and
|
and
|
||||||
|
|
||||||
shell.sf.net:/home/groups/f/fr/freetype/htdocs/freetype2/docs/reference
|
shell.sf.net:/home/groups/f/fr/freetype/htdocs/freetype2/docs/reference
|
||||||
|
|
||||||
TODO: Create FreeType home page CVS on savannah.nongnu.org and
|
TODO: Create FreeType home page CVS on savannah.nongnu.org and
|
||||||
update it accordingly.
|
update it accordingly.
|
||||||
|
|
||||||
Write script to automatically do this.
|
Write script to automatically do this.
|
||||||
|
|
||||||
Mirror FreeType's savannah home page everywhere.
|
Mirror FreeType's savannah home page everywhere.
|
||||||
|
|
||||||
. Update
|
. Update
|
||||||
|
|
||||||
freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/index2.html
|
freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/index2.html
|
||||||
|
|
||||||
and copy it to
|
and copy it to
|
||||||
|
|
||||||
shell.sf.net:/home/groups/f/fr/freetype/htdocs/index2.html
|
shell.sf.net:/home/groups/f/fr/freetype/htdocs/index2.html
|
||||||
|
|
||||||
. Announce new release on freetype-announce@nongnu.org and to relevant
|
. Announce new release on freetype-announce@nongnu.org and to relevant
|
||||||
newsgroups.
|
newsgroups.
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright 2003, 2005, 2006, 2007, 2009 by
|
Copyright 2003, 2005, 2006, 2007, 2009 by
|
||||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
|
|
||||||
This file is part of the FreeType project, and may only be used,
|
This file is part of the FreeType project, and may only be used,
|
||||||
modified, and distributed under the terms of the FreeType project
|
modified, and distributed under the terms of the FreeType project
|
||||||
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
this file you indicate that you have read the license and understand
|
this file you indicate that you have read the license and understand
|
||||||
and accept it fully.
|
and accept it fully.
|
||||||
|
|
||||||
|
|
||||||
--- end of release ---
|
--- end of release ---
|
||||||
|
|
|
@ -1,250 +1,250 @@
|
||||||
# modules.cfg
|
# modules.cfg
|
||||||
#
|
#
|
||||||
# Copyright 2005, 2006, 2007, 2009 by
|
# Copyright 2005, 2006, 2007, 2009 by
|
||||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeType project, and may only be used, modified,
|
# This file is part of the FreeType project, and may only be used, modified,
|
||||||
# and distributed under the terms of the FreeType project license,
|
# and distributed under the terms of the FreeType project license,
|
||||||
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
||||||
# indicate that you have read the license and understand and accept it
|
# indicate that you have read the license and understand and accept it
|
||||||
# fully.
|
# fully.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# In case you compile the FreeType library with GNU make or makepp, this
|
# In case you compile the FreeType library with GNU make or makepp, this
|
||||||
# file controls which components are built into the library. Otherwise,
|
# file controls which components are built into the library. Otherwise,
|
||||||
# please read this file for information on the various modules and its
|
# please read this file for information on the various modules and its
|
||||||
# dependencies, then follow the instructions in the file `docs/INSTALL.ANY'.
|
# dependencies, then follow the instructions in the file `docs/INSTALL.ANY'.
|
||||||
#
|
#
|
||||||
# To deactivate a module, simply comment out the corresponding line. To
|
# To deactivate a module, simply comment out the corresponding line. To
|
||||||
# activate a module, remove the comment character.
|
# activate a module, remove the comment character.
|
||||||
#
|
#
|
||||||
# Note that many modules and components are further controlled with macros
|
# Note that many modules and components are further controlled with macros
|
||||||
# in the file `include/freetype/config/ftoption.h'.
|
# in the file `include/freetype/config/ftoption.h'.
|
||||||
|
|
||||||
|
|
||||||
####
|
####
|
||||||
#### font modules -- at least one is required
|
#### font modules -- at least one is required
|
||||||
####
|
####
|
||||||
#### The order given here (from top to down) is the order used for testing
|
#### The order given here (from top to down) is the order used for testing
|
||||||
#### font formats in the compiled library.
|
#### font formats in the compiled library.
|
||||||
####
|
####
|
||||||
|
|
||||||
# TrueType font driver.
|
# TrueType font driver.
|
||||||
#
|
#
|
||||||
# This driver needs the `sfnt' module.
|
# This driver needs the `sfnt' module.
|
||||||
FONT_MODULES += truetype
|
FONT_MODULES += truetype
|
||||||
|
|
||||||
# PostScript Type 1 font driver.
|
# PostScript Type 1 font driver.
|
||||||
#
|
#
|
||||||
# This driver needs the `psaux', `pshinter', and `psnames' modules.
|
# This driver needs the `psaux', `pshinter', and `psnames' modules.
|
||||||
FONT_MODULES += type1
|
FONT_MODULES += type1
|
||||||
|
|
||||||
# CFF/OpenType font driver.
|
# CFF/OpenType font driver.
|
||||||
#
|
#
|
||||||
# This driver needs the `sfnt', `pshinter', and `psnames' modules.
|
# This driver needs the `sfnt', `pshinter', and `psnames' modules.
|
||||||
FONT_MODULES += cff
|
FONT_MODULES += cff
|
||||||
|
|
||||||
# Type 1 CID-keyed font driver.
|
# Type 1 CID-keyed font driver.
|
||||||
#
|
#
|
||||||
# This driver needs the `psaux', `pshinter', and `psnames' modules.
|
# This driver needs the `psaux', `pshinter', and `psnames' modules.
|
||||||
FONT_MODULES += cid
|
FONT_MODULES += cid
|
||||||
|
|
||||||
# PFR/TrueDoc font driver. See optional extension ftpfr.c below also.
|
# PFR/TrueDoc font driver. See optional extension ftpfr.c below also.
|
||||||
FONT_MODULES += pfr
|
FONT_MODULES += pfr
|
||||||
|
|
||||||
# PostScript Type 42 font driver.
|
# PostScript Type 42 font driver.
|
||||||
#
|
#
|
||||||
# This driver needs the `truetype' module.
|
# This driver needs the `truetype' module.
|
||||||
FONT_MODULES += type42
|
FONT_MODULES += type42
|
||||||
|
|
||||||
# Windows FONT/FNT font driver. See optional extension ftwinfnt.c below
|
# Windows FONT/FNT font driver. See optional extension ftwinfnt.c below
|
||||||
# also.
|
# also.
|
||||||
FONT_MODULES += winfonts
|
FONT_MODULES += winfonts
|
||||||
|
|
||||||
# PCF font driver.
|
# PCF font driver.
|
||||||
FONT_MODULES += pcf
|
FONT_MODULES += pcf
|
||||||
|
|
||||||
# BDF font driver. See optional extension ftbdf.c below also.
|
# BDF font driver. See optional extension ftbdf.c below also.
|
||||||
FONT_MODULES += bdf
|
FONT_MODULES += bdf
|
||||||
|
|
||||||
# SFNT files support. If used without `truetype' or `cff', it supports
|
# SFNT files support. If used without `truetype' or `cff', it supports
|
||||||
# bitmap-only fonts within an SFNT wrapper.
|
# bitmap-only fonts within an SFNT wrapper.
|
||||||
#
|
#
|
||||||
# This driver needs the `psnames' module.
|
# This driver needs the `psnames' module.
|
||||||
FONT_MODULES += sfnt
|
FONT_MODULES += sfnt
|
||||||
|
|
||||||
|
|
||||||
####
|
####
|
||||||
#### hinting modules
|
#### hinting modules
|
||||||
####
|
####
|
||||||
|
|
||||||
# FreeType's auto hinter.
|
# FreeType's auto hinter.
|
||||||
HINTING_MODULES += autofit
|
HINTING_MODULES += autofit
|
||||||
|
|
||||||
# PostScript hinter.
|
# PostScript hinter.
|
||||||
HINTING_MODULES += pshinter
|
HINTING_MODULES += pshinter
|
||||||
|
|
||||||
# The TrueType hinting engine doesn't have a module of its own but is
|
# The TrueType hinting engine doesn't have a module of its own but is
|
||||||
# controlled in file include/freetype/config/ftoption.h
|
# controlled in file include/freetype/config/ftoption.h
|
||||||
# (TT_CONFIG_OPTION_BYTECODE_INTERPRETER and friends).
|
# (TT_CONFIG_OPTION_BYTECODE_INTERPRETER and friends).
|
||||||
|
|
||||||
|
|
||||||
####
|
####
|
||||||
#### raster modules -- at least one is required for vector font formats
|
#### raster modules -- at least one is required for vector font formats
|
||||||
####
|
####
|
||||||
|
|
||||||
# Monochrome rasterizer.
|
# Monochrome rasterizer.
|
||||||
RASTER_MODULES += raster
|
RASTER_MODULES += raster
|
||||||
|
|
||||||
# Anti-aliasing rasterizer.
|
# Anti-aliasing rasterizer.
|
||||||
RASTER_MODULES += smooth
|
RASTER_MODULES += smooth
|
||||||
|
|
||||||
|
|
||||||
####
|
####
|
||||||
#### auxiliary modules
|
#### auxiliary modules
|
||||||
####
|
####
|
||||||
|
|
||||||
# FreeType's cache sub-system (quite stable but still in beta -- this means
|
# FreeType's cache sub-system (quite stable but still in beta -- this means
|
||||||
# that its public API is subject to change if necessary). See
|
# that its public API is subject to change if necessary). See
|
||||||
# include/freetype/ftcache.h. Needs ftglyph.c.
|
# include/freetype/ftcache.h. Needs ftglyph.c.
|
||||||
AUX_MODULES += cache
|
AUX_MODULES += cache
|
||||||
|
|
||||||
# TrueType GX/AAT table validation. Needs ftgxval.c below.
|
# TrueType GX/AAT table validation. Needs ftgxval.c below.
|
||||||
# AUX_MODULES += gxvalid
|
# AUX_MODULES += gxvalid
|
||||||
|
|
||||||
# Support for streams compressed with gzip (files with suffix .gz).
|
# Support for streams compressed with gzip (files with suffix .gz).
|
||||||
#
|
#
|
||||||
# See include/freetype/ftgzip.h for the API.
|
# See include/freetype/ftgzip.h for the API.
|
||||||
AUX_MODULES += gzip
|
AUX_MODULES += gzip
|
||||||
|
|
||||||
# Support for streams compressed with LZW (files with suffix .Z).
|
# Support for streams compressed with LZW (files with suffix .Z).
|
||||||
#
|
#
|
||||||
# See include/freetype/ftlzw.h for the API.
|
# See include/freetype/ftlzw.h for the API.
|
||||||
AUX_MODULES += lzw
|
AUX_MODULES += lzw
|
||||||
|
|
||||||
# OpenType table validation. Needs ftotval.c below.
|
# OpenType table validation. Needs ftotval.c below.
|
||||||
#
|
#
|
||||||
# AUX_MODULES += otvalid
|
# AUX_MODULES += otvalid
|
||||||
|
|
||||||
# Auxiliary PostScript driver component to share common code.
|
# Auxiliary PostScript driver component to share common code.
|
||||||
#
|
#
|
||||||
# This module depends on `psnames'.
|
# This module depends on `psnames'.
|
||||||
AUX_MODULES += psaux
|
AUX_MODULES += psaux
|
||||||
|
|
||||||
# Support for PostScript glyph names.
|
# Support for PostScript glyph names.
|
||||||
#
|
#
|
||||||
# This module can be controlled in ftconfig.h
|
# This module can be controlled in ftconfig.h
|
||||||
# (FT_CONFIG_OPTION_POSTSCRIPT_NAMES).
|
# (FT_CONFIG_OPTION_POSTSCRIPT_NAMES).
|
||||||
AUX_MODULES += psnames
|
AUX_MODULES += psnames
|
||||||
|
|
||||||
|
|
||||||
####
|
####
|
||||||
#### base module extensions
|
#### base module extensions
|
||||||
####
|
####
|
||||||
|
|
||||||
# Exact bounding box calculation.
|
# Exact bounding box calculation.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftbbox.h for the API.
|
# See include/freetype/ftbbox.h for the API.
|
||||||
BASE_EXTENSIONS += ftbbox.c
|
BASE_EXTENSIONS += ftbbox.c
|
||||||
|
|
||||||
# Access BDF-specific strings. Needs BDF font driver.
|
# Access BDF-specific strings. Needs BDF font driver.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftbdf.h for the API.
|
# See include/freetype/ftbdf.h for the API.
|
||||||
BASE_EXTENSIONS += ftbdf.c
|
BASE_EXTENSIONS += ftbdf.c
|
||||||
|
|
||||||
# Utility functions for converting 1bpp, 2bpp, 4bpp, and 8bpp bitmaps into
|
# Utility functions for converting 1bpp, 2bpp, 4bpp, and 8bpp bitmaps into
|
||||||
# 8bpp format, and for emboldening of bitmap glyphs.
|
# 8bpp format, and for emboldening of bitmap glyphs.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftbitmap.h for the API.
|
# See include/freetype/ftbitmap.h for the API.
|
||||||
BASE_EXTENSIONS += ftbitmap.c
|
BASE_EXTENSIONS += ftbitmap.c
|
||||||
|
|
||||||
# Access CID font information.
|
# Access CID font information.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftcid.h for the API.
|
# See include/freetype/ftcid.h for the API.
|
||||||
BASE_EXTENSIONS += ftcid.c
|
BASE_EXTENSIONS += ftcid.c
|
||||||
|
|
||||||
# Access FSType information. Needs fttype1.c.
|
# Access FSType information. Needs fttype1.c.
|
||||||
#
|
#
|
||||||
# See include/freetype/freetype.h for the API.
|
# See include/freetype/freetype.h for the API.
|
||||||
BASE_EXTENSIONS += ftfstype.c
|
BASE_EXTENSIONS += ftfstype.c
|
||||||
|
|
||||||
# Support for GASP table queries.
|
# Support for GASP table queries.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftgasp.h for the API.
|
# See include/freetype/ftgasp.h for the API.
|
||||||
BASE_EXTENSIONS += ftgasp.c
|
BASE_EXTENSIONS += ftgasp.c
|
||||||
|
|
||||||
# Convenience functions to handle glyphs. Needs ftbitmap.c.
|
# Convenience functions to handle glyphs. Needs ftbitmap.c.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftglyph.h for the API.
|
# See include/freetype/ftglyph.h for the API.
|
||||||
BASE_EXTENSIONS += ftglyph.c
|
BASE_EXTENSIONS += ftglyph.c
|
||||||
|
|
||||||
# Interface for gxvalid module.
|
# Interface for gxvalid module.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftgxval.h for the API.
|
# See include/freetype/ftgxval.h for the API.
|
||||||
BASE_EXTENSIONS += ftgxval.c
|
BASE_EXTENSIONS += ftgxval.c
|
||||||
|
|
||||||
# Support for LCD color filtering of subpixel bitmaps.
|
# Support for LCD color filtering of subpixel bitmaps.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftlcdfil.h for the API.
|
# See include/freetype/ftlcdfil.h for the API.
|
||||||
BASE_EXTENSIONS += ftlcdfil.c
|
BASE_EXTENSIONS += ftlcdfil.c
|
||||||
|
|
||||||
# Multiple Master font interface.
|
# Multiple Master font interface.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftmm.h for the API.
|
# See include/freetype/ftmm.h for the API.
|
||||||
BASE_EXTENSIONS += ftmm.c
|
BASE_EXTENSIONS += ftmm.c
|
||||||
|
|
||||||
# Interface for otvalid module.
|
# Interface for otvalid module.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftotval.h for the API.
|
# See include/freetype/ftotval.h for the API.
|
||||||
BASE_EXTENSIONS += ftotval.c
|
BASE_EXTENSIONS += ftotval.c
|
||||||
|
|
||||||
# Support for FT_Face_CheckTrueTypePatents.
|
# Support for FT_Face_CheckTrueTypePatents.
|
||||||
#
|
#
|
||||||
# See include/freetype/freetype.h for the API.
|
# See include/freetype/freetype.h for the API.
|
||||||
BASE_EXTENSIONS += ftpatent.c
|
BASE_EXTENSIONS += ftpatent.c
|
||||||
|
|
||||||
# Interface for accessing PFR-specific data. Needs PFR font driver.
|
# Interface for accessing PFR-specific data. Needs PFR font driver.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftpfr.h for the API.
|
# See include/freetype/ftpfr.h for the API.
|
||||||
BASE_EXTENSIONS += ftpfr.c
|
BASE_EXTENSIONS += ftpfr.c
|
||||||
|
|
||||||
# Path stroker. Needs ftglyph.c.
|
# Path stroker. Needs ftglyph.c.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftstroke.h for the API.
|
# See include/freetype/ftstroke.h for the API.
|
||||||
BASE_EXTENSIONS += ftstroke.c
|
BASE_EXTENSIONS += ftstroke.c
|
||||||
|
|
||||||
# Support for synthetic embolding and slanting of fonts. Needs ftbitmap.c.
|
# Support for synthetic embolding and slanting of fonts. Needs ftbitmap.c.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftsynth.h for the API.
|
# See include/freetype/ftsynth.h for the API.
|
||||||
BASE_EXTENSIONS += ftsynth.c
|
BASE_EXTENSIONS += ftsynth.c
|
||||||
|
|
||||||
# Interface to access data specific to PostScript Type 1 and Type 2 (CFF)
|
# Interface to access data specific to PostScript Type 1 and Type 2 (CFF)
|
||||||
# fonts.
|
# fonts.
|
||||||
#
|
#
|
||||||
# See include/freetype/t1tables.h for the API.
|
# See include/freetype/t1tables.h for the API.
|
||||||
BASE_EXTENSIONS += fttype1.c
|
BASE_EXTENSIONS += fttype1.c
|
||||||
|
|
||||||
# Interface for accessing data specific to Windows FNT files. Needs winfnt
|
# Interface for accessing data specific to Windows FNT files. Needs winfnt
|
||||||
# driver.
|
# driver.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftwinfnt.h for the API.
|
# See include/freetype/ftwinfnt.h for the API.
|
||||||
BASE_EXTENSIONS += ftwinfnt.c
|
BASE_EXTENSIONS += ftwinfnt.c
|
||||||
|
|
||||||
# Support functions for X11.
|
# Support functions for X11.
|
||||||
#
|
#
|
||||||
# See include/freetype/ftxf86.h for the API.
|
# See include/freetype/ftxf86.h for the API.
|
||||||
BASE_EXTENSIONS += ftxf86.c
|
BASE_EXTENSIONS += ftxf86.c
|
||||||
|
|
||||||
####
|
####
|
||||||
#### The components `ftsystem.c' (for memory allocation and stream I/O
|
#### The components `ftsystem.c' (for memory allocation and stream I/O
|
||||||
#### management) and `ftdebug.c' (for emitting debug messages to the user)
|
#### management) and `ftdebug.c' (for emitting debug messages to the user)
|
||||||
#### are controlled with the following variables.
|
#### are controlled with the following variables.
|
||||||
####
|
####
|
||||||
#### ftsystem.c: $(FTSYS_SRC)
|
#### ftsystem.c: $(FTSYS_SRC)
|
||||||
#### ftdebug.c: $(FTDEBUG_SRC)
|
#### ftdebug.c: $(FTDEBUG_SRC)
|
||||||
####
|
####
|
||||||
#### Please refer to docs/CUSTOMIZE for details.
|
#### Please refer to docs/CUSTOMIZE for details.
|
||||||
####
|
####
|
||||||
|
|
||||||
|
|
||||||
# EOF
|
# EOF
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
apinames
|
apinames
|
||||||
freetype.def
|
freetype.def
|
||||||
freetype.lib
|
freetype.lib
|
||||||
ftexport.sym
|
ftexport.sym
|
||||||
ftmodule.h
|
ftmodule.h
|
||||||
ftoption.h
|
ftoption.h
|
||||||
libfreetype.la
|
libfreetype.la
|
||||||
.libs
|
.libs
|
||||||
*.lo
|
*.lo
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
This directory contains all the object files created when building the
|
This directory contains all the object files created when building the
|
||||||
library.
|
library.
|
||||||
|
|
|
@ -1,148 +1,148 @@
|
||||||
FreeType font driver for BDF fonts
|
FreeType font driver for BDF fonts
|
||||||
|
|
||||||
Francesco Zappa Nardelli
|
Francesco Zappa Nardelli
|
||||||
<francesco.zappa.nardelli@ens.fr>
|
<francesco.zappa.nardelli@ens.fr>
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
************
|
************
|
||||||
|
|
||||||
BDF (Bitmap Distribution Format) is a bitmap font format defined by Adobe,
|
BDF (Bitmap Distribution Format) is a bitmap font format defined by Adobe,
|
||||||
which is intended to be easily understood by both humans and computers.
|
which is intended to be easily understood by both humans and computers.
|
||||||
This code implements a BDF driver for the FreeType library, following the
|
This code implements a BDF driver for the FreeType library, following the
|
||||||
Adobe Specification V 2.2. The specification of the BDF font format is
|
Adobe Specification V 2.2. The specification of the BDF font format is
|
||||||
available from Adobe's web site:
|
available from Adobe's web site:
|
||||||
|
|
||||||
http://partners.adobe.com/asn/developer/PDFS/TN/5005.BDF_Spec.pdf
|
http://partners.adobe.com/asn/developer/PDFS/TN/5005.BDF_Spec.pdf
|
||||||
|
|
||||||
Many good bitmap fonts in bdf format come with XFree86 (www.XFree86.org).
|
Many good bitmap fonts in bdf format come with XFree86 (www.XFree86.org).
|
||||||
They do not define vertical metrics, because the X Consortium BDF
|
They do not define vertical metrics, because the X Consortium BDF
|
||||||
specification has removed them.
|
specification has removed them.
|
||||||
|
|
||||||
|
|
||||||
Encodings
|
Encodings
|
||||||
*********
|
*********
|
||||||
|
|
||||||
The variety of encodings that accompanies bdf fonts appears to encompass the
|
The variety of encodings that accompanies bdf fonts appears to encompass the
|
||||||
small set defined in freetype.h. On the other hand, two properties that
|
small set defined in freetype.h. On the other hand, two properties that
|
||||||
specify encoding and registry are usually defined in bdf fonts.
|
specify encoding and registry are usually defined in bdf fonts.
|
||||||
|
|
||||||
I decided to make these two properties directly accessible, leaving to the
|
I decided to make these two properties directly accessible, leaving to the
|
||||||
client application the work of interpreting them. For instance:
|
client application the work of interpreting them. For instance:
|
||||||
|
|
||||||
|
|
||||||
#include FT_INTERNAL_BDF_TYPES_H
|
#include FT_INTERNAL_BDF_TYPES_H
|
||||||
|
|
||||||
FT_Face face;
|
FT_Face face;
|
||||||
BDF_Public_Face bdfface;
|
BDF_Public_Face bdfface;
|
||||||
|
|
||||||
|
|
||||||
FT_New_Face( library, ..., &face );
|
FT_New_Face( library, ..., &face );
|
||||||
|
|
||||||
bdfface = (BDF_Public_Face)face;
|
bdfface = (BDF_Public_Face)face;
|
||||||
|
|
||||||
if ( ( bdfface->charset_registry == "ISO10646" ) &&
|
if ( ( bdfface->charset_registry == "ISO10646" ) &&
|
||||||
( bdfface->charset_encoding == "1" ) )
|
( bdfface->charset_encoding == "1" ) )
|
||||||
[..]
|
[..]
|
||||||
|
|
||||||
|
|
||||||
Thus the driver always exports `ft_encoding_none' as face->charmap.encoding.
|
Thus the driver always exports `ft_encoding_none' as face->charmap.encoding.
|
||||||
FT_Get_Char_Index's behavior is unmodified, that is, it converts the ULong
|
FT_Get_Char_Index's behavior is unmodified, that is, it converts the ULong
|
||||||
value given as argument into the corresponding glyph number.
|
value given as argument into the corresponding glyph number.
|
||||||
|
|
||||||
If the two properties are not available, Adobe Standard Encoding should be
|
If the two properties are not available, Adobe Standard Encoding should be
|
||||||
assumed.
|
assumed.
|
||||||
|
|
||||||
|
|
||||||
Anti-Aliased Bitmaps
|
Anti-Aliased Bitmaps
|
||||||
********************
|
********************
|
||||||
|
|
||||||
The driver supports an extension to the BDF format as used in Mark Leisher's
|
The driver supports an extension to the BDF format as used in Mark Leisher's
|
||||||
xmbdfed bitmap font editor. Microsoft's SBIT tool expects bitmap fonts in
|
xmbdfed bitmap font editor. Microsoft's SBIT tool expects bitmap fonts in
|
||||||
that format for adding anti-aliased them to TrueType fonts. It introduces a
|
that format for adding anti-aliased them to TrueType fonts. It introduces a
|
||||||
fourth field to the `SIZE' keyword which gives the bpp value (bits per
|
fourth field to the `SIZE' keyword which gives the bpp value (bits per
|
||||||
pixel) of the glyph data in the font. Possible values are 1 (the default),
|
pixel) of the glyph data in the font. Possible values are 1 (the default),
|
||||||
2 (four gray levels), 4 (16 gray levels), and 8 (256 gray levels). The
|
2 (four gray levels), 4 (16 gray levels), and 8 (256 gray levels). The
|
||||||
driver returns either a bitmap with 1 bit per pixel or a pixmap with 8bits
|
driver returns either a bitmap with 1 bit per pixel or a pixmap with 8bits
|
||||||
per pixel (using 4, 16, and 256 gray levels, respectively).
|
per pixel (using 4, 16, and 256 gray levels, respectively).
|
||||||
|
|
||||||
|
|
||||||
Known problems
|
Known problems
|
||||||
**************
|
**************
|
||||||
|
|
||||||
- A font is entirely loaded into memory. Obviously, this is not the Right
|
- A font is entirely loaded into memory. Obviously, this is not the Right
|
||||||
Thing(TM). If you have big fonts I suggest you convert them into PCF
|
Thing(TM). If you have big fonts I suggest you convert them into PCF
|
||||||
format (using the bdftopcf utility): the PCF font drive of FreeType can
|
format (using the bdftopcf utility): the PCF font drive of FreeType can
|
||||||
perform incremental glyph loading.
|
perform incremental glyph loading.
|
||||||
|
|
||||||
When I have some time, I will implement on-demand glyph parsing.
|
When I have some time, I will implement on-demand glyph parsing.
|
||||||
|
|
||||||
- Except for encodings properties, client applications have no visibility of
|
- Except for encodings properties, client applications have no visibility of
|
||||||
the PCF_Face object. This means that applications cannot directly access
|
the PCF_Face object. This means that applications cannot directly access
|
||||||
font tables and must trust FreeType.
|
font tables and must trust FreeType.
|
||||||
|
|
||||||
- Currently, glyph names are ignored.
|
- Currently, glyph names are ignored.
|
||||||
|
|
||||||
I plan to give full visibility of the BDF_Face object in an upcoming
|
I plan to give full visibility of the BDF_Face object in an upcoming
|
||||||
revision of the driver, thus implementing also glyph names.
|
revision of the driver, thus implementing also glyph names.
|
||||||
|
|
||||||
- As I have never seen a BDF font that defines vertical metrics, vertical
|
- As I have never seen a BDF font that defines vertical metrics, vertical
|
||||||
metrics are (parsed and) discarded. If you own a BDF font that defines
|
metrics are (parsed and) discarded. If you own a BDF font that defines
|
||||||
vertical metrics, please let me know (I will implement them in 5-10
|
vertical metrics, please let me know (I will implement them in 5-10
|
||||||
minutes).
|
minutes).
|
||||||
|
|
||||||
|
|
||||||
License
|
License
|
||||||
*******
|
*******
|
||||||
|
|
||||||
Copyright (C) 2001-2002 by Francesco Zappa Nardelli
|
Copyright (C) 2001-2002 by Francesco Zappa Nardelli
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
"Software"), to deal in the Software without restriction, including
|
"Software"), to deal in the Software without restriction, including
|
||||||
without limitation the rights to use, copy, modify, merge, publish,
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
distribute, sublicense, and/or sell copies of the Software, and to
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
permit persons to whom the Software is furnished to do so, subject to
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
the following conditions:
|
the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
The above copyright notice and this permission notice shall be
|
||||||
included in all copies or substantial portions of the Software.
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
*** Portions of the driver (that is, bdflib.c and bdf.h):
|
*** Portions of the driver (that is, bdflib.c and bdf.h):
|
||||||
|
|
||||||
Copyright 2000 Computing Research Labs, New Mexico State University
|
Copyright 2000 Computing Research Labs, New Mexico State University
|
||||||
Copyright 2001-2002 Francesco Zappa Nardelli
|
Copyright 2001-2002 Francesco Zappa Nardelli
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
to deal in the Software without restriction, including without limitation
|
to deal in the Software without restriction, including without limitation
|
||||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
and/or sell copies of the Software, and to permit persons to whom the
|
and/or sell copies of the Software, and to permit persons to whom the
|
||||||
Software is furnished to do so, subject to the following conditions:
|
Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
The above copyright notice and this permission notice shall be included in
|
||||||
all copies or substantial portions of the Software.
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
|
THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
|
||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
|
||||||
OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
|
||||||
THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
Credits
|
Credits
|
||||||
*******
|
*******
|
||||||
|
|
||||||
This driver is based on excellent Mark Leisher's bdf library. If you
|
This driver is based on excellent Mark Leisher's bdf library. If you
|
||||||
find something good in this driver you should probably thank him, not
|
find something good in this driver you should probably thank him, not
|
||||||
me.
|
me.
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,114 +1,114 @@
|
||||||
FreeType font driver for PCF fonts
|
FreeType font driver for PCF fonts
|
||||||
|
|
||||||
Francesco Zappa Nardelli
|
Francesco Zappa Nardelli
|
||||||
<francesco.zappa.nardelli@ens.fr>
|
<francesco.zappa.nardelli@ens.fr>
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
************
|
************
|
||||||
|
|
||||||
PCF (Portable Compiled Format) is a binary bitmap font format, largely used
|
PCF (Portable Compiled Format) is a binary bitmap font format, largely used
|
||||||
in X world. This code implements a PCF driver for the FreeType library.
|
in X world. This code implements a PCF driver for the FreeType library.
|
||||||
Glyph images are loaded into memory only on demand, thus leading to a small
|
Glyph images are loaded into memory only on demand, thus leading to a small
|
||||||
memory footprint.
|
memory footprint.
|
||||||
|
|
||||||
Information on the PCF font format can only be worked out from
|
Information on the PCF font format can only be worked out from
|
||||||
`pcfread.c', and `pcfwrite.c', to be found, for instance, in the XFree86
|
`pcfread.c', and `pcfwrite.c', to be found, for instance, in the XFree86
|
||||||
(www.xfree86.org) source tree (xc/lib/font/bitmap/).
|
(www.xfree86.org) source tree (xc/lib/font/bitmap/).
|
||||||
|
|
||||||
Many good bitmap fonts in bdf format come with XFree86: they can be
|
Many good bitmap fonts in bdf format come with XFree86: they can be
|
||||||
compiled into the pcf format using the `bdftopcf' utility.
|
compiled into the pcf format using the `bdftopcf' utility.
|
||||||
|
|
||||||
|
|
||||||
Supported hardware
|
Supported hardware
|
||||||
******************
|
******************
|
||||||
|
|
||||||
The driver has been tested on linux/x86 and sunos5.5/sparc. In both
|
The driver has been tested on linux/x86 and sunos5.5/sparc. In both
|
||||||
cases the compiler was gcc. When back in Paris, I will test it also
|
cases the compiler was gcc. When back in Paris, I will test it also
|
||||||
on linux/alpha.
|
on linux/alpha.
|
||||||
|
|
||||||
|
|
||||||
Encodings
|
Encodings
|
||||||
*********
|
*********
|
||||||
|
|
||||||
The variety of encodings that accompanies pcf fonts appears to encompass the
|
The variety of encodings that accompanies pcf fonts appears to encompass the
|
||||||
small set defined in freetype.h. On the other hand, each pcf font defines
|
small set defined in freetype.h. On the other hand, each pcf font defines
|
||||||
two properties that specify encoding and registry.
|
two properties that specify encoding and registry.
|
||||||
|
|
||||||
I decided to make these two properties directly accessible, leaving to the
|
I decided to make these two properties directly accessible, leaving to the
|
||||||
client application the work of interpreting them. For instance:
|
client application the work of interpreting them. For instance:
|
||||||
|
|
||||||
#include "pcftypes.h" /* include/freetype/internal/pcftypes.h */
|
#include "pcftypes.h" /* include/freetype/internal/pcftypes.h */
|
||||||
|
|
||||||
FT_Face face;
|
FT_Face face;
|
||||||
PCF_Public_Face pcfface;
|
PCF_Public_Face pcfface;
|
||||||
|
|
||||||
FT_New_Face( library,..., &face );
|
FT_New_Face( library,..., &face );
|
||||||
|
|
||||||
pcfface = (PCF_Public_Face)face;
|
pcfface = (PCF_Public_Face)face;
|
||||||
|
|
||||||
if ((pcfface->charset_registry == "ISO10646") &&
|
if ((pcfface->charset_registry == "ISO10646") &&
|
||||||
(pcfface->charset_encoding) == "1")) [..]
|
(pcfface->charset_encoding) == "1")) [..]
|
||||||
|
|
||||||
Thus the driver always export `ft_encoding_none' as
|
Thus the driver always export `ft_encoding_none' as
|
||||||
face->charmap.encoding. FT_Get_Char_Index() behavior is unmodified, that
|
face->charmap.encoding. FT_Get_Char_Index() behavior is unmodified, that
|
||||||
is, it converts the ULong value given as argument into the corresponding
|
is, it converts the ULong value given as argument into the corresponding
|
||||||
glyph number.
|
glyph number.
|
||||||
|
|
||||||
|
|
||||||
Known problems
|
Known problems
|
||||||
**************
|
**************
|
||||||
|
|
||||||
- dealing explicitly with encodings breaks the uniformity of freetype2
|
- dealing explicitly with encodings breaks the uniformity of freetype2
|
||||||
api.
|
api.
|
||||||
|
|
||||||
- except for encodings properties, client applications have no
|
- except for encodings properties, client applications have no
|
||||||
visibility of the PCF_Face object. This means that applications
|
visibility of the PCF_Face object. This means that applications
|
||||||
cannot directly access font tables and are obliged to trust
|
cannot directly access font tables and are obliged to trust
|
||||||
FreeType.
|
FreeType.
|
||||||
|
|
||||||
- currently, glyph names and ink_metrics are ignored.
|
- currently, glyph names and ink_metrics are ignored.
|
||||||
|
|
||||||
I plan to give full visibility of the PCF_Face object in the next
|
I plan to give full visibility of the PCF_Face object in the next
|
||||||
release of the driver, thus implementing also glyph names and
|
release of the driver, thus implementing also glyph names and
|
||||||
ink_metrics.
|
ink_metrics.
|
||||||
|
|
||||||
- height is defined as (ascent - descent). Is this correct?
|
- height is defined as (ascent - descent). Is this correct?
|
||||||
|
|
||||||
- if unable to read size information from the font, PCF_Init_Face
|
- if unable to read size information from the font, PCF_Init_Face
|
||||||
sets available_size->width and available_size->height to 12.
|
sets available_size->width and available_size->height to 12.
|
||||||
|
|
||||||
- too many english grammar errors in the readme file :-(
|
- too many english grammar errors in the readme file :-(
|
||||||
|
|
||||||
|
|
||||||
License
|
License
|
||||||
*******
|
*******
|
||||||
|
|
||||||
Copyright (C) 2000 by Francesco Zappa Nardelli
|
Copyright (C) 2000 by Francesco Zappa Nardelli
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
"Software"), to deal in the Software without restriction, including
|
"Software"), to deal in the Software without restriction, including
|
||||||
without limitation the rights to use, copy, modify, merge, publish,
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
distribute, sublicense, and/or sell copies of the Software, and to
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
permit persons to whom the Software is furnished to do so, subject to
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
the following conditions:
|
the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
The above copyright notice and this permission notice shall be
|
||||||
included in all copies or substantial portions of the Software.
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
Credits
|
Credits
|
||||||
*******
|
*******
|
||||||
|
|
||||||
Keith Packard wrote the pcf driver found in XFree86. His work is at
|
Keith Packard wrote the pcf driver found in XFree86. His work is at
|
||||||
the same time the specification and the sample implementation of the
|
the same time the specification and the sample implementation of the
|
||||||
PCF format. Undoubtedly, this driver is inspired from his work.
|
PCF format. Undoubtedly, this driver is inspired from his work.
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
*.pyc
|
*.pyc
|
||||||
|
|
|
@ -1,48 +1,48 @@
|
||||||
ftrandom
|
ftrandom
|
||||||
--------
|
--------
|
||||||
|
|
||||||
This program expects a set of directories containing good fonts, and a set
|
This program expects a set of directories containing good fonts, and a set
|
||||||
of extensions of fonts to be tested. It will randomly pick a font, copy it,
|
of extensions of fonts to be tested. It will randomly pick a font, copy it,
|
||||||
introduce and error and then test it.
|
introduce and error and then test it.
|
||||||
|
|
||||||
The FreeType tests are quite basic:
|
The FreeType tests are quite basic:
|
||||||
|
|
||||||
For each erroneous font it
|
For each erroneous font it
|
||||||
forks off a new tester;
|
forks off a new tester;
|
||||||
initializes the library;
|
initializes the library;
|
||||||
opens each font in the file;
|
opens each font in the file;
|
||||||
loads each glyph;
|
loads each glyph;
|
||||||
(optionally reviewing the contours of the glyph)
|
(optionally reviewing the contours of the glyph)
|
||||||
(optionally rasterizing)
|
(optionally rasterizing)
|
||||||
closes the face.
|
closes the face.
|
||||||
|
|
||||||
If the tester exits with a signal, or takes longer than 20 seconds then
|
If the tester exits with a signal, or takes longer than 20 seconds then
|
||||||
ftrandom saves the erroneous font and continues. If the tester exits
|
ftrandom saves the erroneous font and continues. If the tester exits
|
||||||
normally or with an error, then the superstructure removes the test font and
|
normally or with an error, then the superstructure removes the test font and
|
||||||
continues.
|
continues.
|
||||||
|
|
||||||
Arguments are:
|
Arguments are:
|
||||||
|
|
||||||
--all Test every font in the directory(ies) no matter
|
--all Test every font in the directory(ies) no matter
|
||||||
what its extension (some CID-keyed fonts have no
|
what its extension (some CID-keyed fonts have no
|
||||||
extension).
|
extension).
|
||||||
--check-outlines Call FT_Outline_Decompose on each glyph.
|
--check-outlines Call FT_Outline_Decompose on each glyph.
|
||||||
--dir <dir> Append <dir> to the list of directories to search
|
--dir <dir> Append <dir> to the list of directories to search
|
||||||
for good fonts.
|
for good fonts.
|
||||||
--error-count <cnt> Introduce <cnt> single-byte errors into the
|
--error-count <cnt> Introduce <cnt> single-byte errors into the
|
||||||
erroneous fonts.
|
erroneous fonts.
|
||||||
--error-fraction <frac> Multiply the file size of the font by <frac> and
|
--error-fraction <frac> Multiply the file size of the font by <frac> and
|
||||||
introduce that many errors into the erroneous
|
introduce that many errors into the erroneous
|
||||||
font file.
|
font file.
|
||||||
--ext <ext> Add <ext> to the set of font types tested. Known
|
--ext <ext> Add <ext> to the set of font types tested. Known
|
||||||
extensions are `ttf', `otf', `ttc', `cid', `pfb',
|
extensions are `ttf', `otf', `ttc', `cid', `pfb',
|
||||||
`pfa', `bdf', `pcf', `pfr', `fon', `otb', and
|
`pfa', `bdf', `pcf', `pfr', `fon', `otb', and
|
||||||
`cff'.
|
`cff'.
|
||||||
--help Print out this list of options.
|
--help Print out this list of options.
|
||||||
--nohints Specify FT_LOAD_NO_HINTING when loading glyphs.
|
--nohints Specify FT_LOAD_NO_HINTING when loading glyphs.
|
||||||
--rasterize Call FT_Render_Glyph as well as loading it.
|
--rasterize Call FT_Render_Glyph as well as loading it.
|
||||||
--result <dir> This is the directory in which test files are
|
--result <dir> This is the directory in which test files are
|
||||||
placed.
|
placed.
|
||||||
--test <file> Run a single test on a pre-generated testcase.
|
--test <file> Run a single test on a pre-generated testcase.
|
||||||
Done in the current process so it can be debugged
|
Done in the current process so it can be debugged
|
||||||
more easily.
|
more easily.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#! /usr/bin/sed -nf
|
#! /usr/bin/sed -nf
|
||||||
|
|
||||||
s/^#define *FREETYPE_MAJOR *\([^ ][^ ]*\).*$/freetype_major="\1" ;/p
|
s/^#define *FREETYPE_MAJOR *\([^ ][^ ]*\).*$/freetype_major="\1" ;/p
|
||||||
s/^#define *FREETYPE_MINOR *\([^ ][^ ]*\).*$/freetype_minor=".\1" ;/p
|
s/^#define *FREETYPE_MINOR *\([^ ][^ ]*\).*$/freetype_minor=".\1" ;/p
|
||||||
s/^#define *FREETYPE_PATCH *\([^ ][^ ]*\).*$/freetype_patch=".\1" ;/p
|
s/^#define *FREETYPE_PATCH *\([^ ][^ ]*\).*$/freetype_patch=".\1" ;/p
|
||||||
|
|
Loading…
Reference in New Issue