123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- # FreeType 2 top Jamfile.
- #
- # Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by
- # David Turner, Robert Wilhelm, and Werner Lemberg.
- #
- # This file is part of the FreeType project, and may only be used, modified,
- # and distributed under the terms of the FreeType project license,
- # LICENSE.TXT. By continuing to use, modify, or distribute this file you
- # indicate that you have read the license and understand and accept it
- # fully.
- # The HDRMACRO is already defined in FTJam and is used to add
- # the content of certain macros to the list of included header
- # files.
- #
- # We can compile FreeType 2 with classic Jam however thanks to
- # the following code
- #
- if ! $(JAM_TOOLSET)
- {
- rule HDRMACRO
- {
- # nothing
- }
- }
- # We need to invoke a SubDir rule if the FT2 source directory top is not the
- # current directory. This allows us to build FreeType 2 as part of a larger
- # project easily.
- #
- if $(FT2_TOP) != $(DOT)
- {
- SubDir FT2_TOP ;
- }
- # The following macros define the include directory, the source directory,
- # and the final library name (without library extensions). They can be
- # replaced by other definitions when the library is compiled as part of
- # a larger project.
- #
- # Name of FreeType include directory during compilation.
- # This is relative to FT2_TOP.
- #
- FT2_INCLUDE_DIR ?= include ;
- # Name of FreeType source directory during compilation.
- # This is relative to FT2_TOP.
- #
- FT2_SRC_DIR ?= src ;
- # Name of final library, without extension.
- #
- FT2_LIB ?= $(LIBPREFIX)freetype ;
- # Define FT2_BUILD_INCLUDE to point to your build-specific directory.
- # This is prepended to FT2_INCLUDE_DIR. It can be used to specify
- # the location of a custom <ft2build.h> which will point to custom
- # versions of `ftmodule.h' and `ftoption.h', for example.
- #
- FT2_BUILD_INCLUDE ?= ;
- # The list of modules to compile on any given build of the library.
- # By default, this will contain _all_ modules defined in FT2_SRC_DIR.
- #
- # IMPORTANT: You'll need to change the content of `ftmodule.h' as well
- # if you modify this list or provide your own.
- #
- FT2_COMPONENTS ?= autofit # auto-fitter
- base # base component (public APIs)
- bdf # BDF font driver
- cache # cache sub-system
- cff # CFF/CEF font driver
- cid # PostScript CID-keyed font driver
- gzip # support for gzip-compressed files
- lzw # support for LZW-compressed files
- pcf # PCF font driver
- pfr # PFR/TrueDoc font driver
- psaux # common PostScript routines module
- pshinter # PostScript hinter module
- psnames # PostScript names handling
- raster # monochrome rasterizer
- smooth # anti-aliased rasterizer
- sfnt # SFNT-based format support routines
- truetype # TrueType font driver
- type1 # PostScript Type 1 font driver
- type42 # PostScript Type 42 (embedded TrueType) driver
- winfonts # Windows FON/FNT font driver
- ;
- # Don't touch.
- #
- FT2_INCLUDE = $(FT2_BUILD_INCLUDE)
- [ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
- FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
- # Location of API Reference Documentation
- #
- if $(DOC_DIR)
- {
- DOC_DIR = $(DOCDIR:T) ;
- }
- else
- {
- DOC_DIR = docs/reference ;
- }
- # Only used by FreeType developers.
- #
- if $(DEBUG_HINTER)
- {
- CCFLAGS += -DDEBUG_HINTER ;
- }
- # We need `freetype2/include' in the current include path in order to
- # compile any part of FreeType 2.
- #: updating documentation for upcoming release
- HDRS += $(FT2_INCLUDE) ;
- # We need to #define FT2_BUILD_LIBRARY so that our sources find the
- # internal headers
- #
- DEFINES += FT2_BUILD_LIBRARY ;
- # Uncomment the following line if you want to build individual source files
- # for each FreeType 2 module. This is only useful during development, and
- # is better defined as an environment variable anyway!
- #
- # FT2_MULTI = true ;
- # The file <freetype/config/ftheader.h> is used to define macros that are
- # later used in #include statements. It needs to be parsed in order to
- # record these definitions.
- #
- HDRMACRO [ FT2_SubDir include freetype config ftheader.h ] ;
- HDRMACRO [ FT2_SubDir include freetype internal internal.h ] ;
- # Now include the Jamfile in `freetype2/src', used to drive the compilation
- # of each FreeType 2 component and/or module.
- #
- SubInclude FT2_TOP $(FT2_SRC_DIR) ;
- # Handle the generation of the `ftexport.sym' file which contain the list
- # of exported symbols. This can be used on Unix by libtool.
- #
- SubInclude FT2_TOP $(FT2_SRC_DIR) tools ;
- rule GenExportSymbols
- {
- local apinames = apinames$(SUFEXE) ;
- local headers = [ Glob $(2) : *.h ] ;
- LOCATE on $(1) = $(ALL_LOCATE_TARGET) ;
- APINAMES on $(1) = apinames$(SUFEXE) ;
- Depends $(1) : $(apinames) $(headers) ;
- GenExportSymbols1 $(1) : $(headers) ;
- Clean clean : $(1) ;
- }
- actions GenExportSymbols1 bind APINAMES
- {
- $(APINAMES) $(2) > $(1)
- }
- GenExportSymbols ftexport.sym : include/freetype include/freetype/cache ;
- # Test files (hinter debugging). Only used by FreeType developers.
- #
- if $(DEBUG_HINTER)
- {
- SubInclude FT2_TOP tests ;
- }
- rule RefDoc
- {
- Depends $1 : all ;
- NotFile $1 ;
- Always $1 ;
- }
- actions RefDoc
- {
- python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.3.12 --output=$(DOC_DIR) $(FT2_INCLUDE)/freetype/*.h $(FT2_INCLUDE)/freetype/config/*.h
- }
- RefDoc refdoc ;
- # end of top Jamfile
|