//
// FreeType 2 makefile for the symbian platform
//

// Copyright 2008-2015 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.

target 			freetype.lib
targettype 		lib

macro NDEBUG
macro FT2_BUILD_LIBRARY

sourcepath ..\..\src\autofit

source autofit.c

sourcepath ..\..\src\base

source ftbase.c
source ftbbox.c
source ftbdf.c
source ftbitmap.c
source ftcid.c
source ftfntfmt.c
source ftfstype.c
source ftgasp.c
source ftglyph.c
source ftgxval.c
source ftinit.c
source ftlcdfil.c
source ftmm.c
source ftotval.c
source ftpatent.c
source ftpfr.c
source ftstroke.c
source ftsynth.c
source ftsystem.c
source fttype1.c
source ftwinfnt.c

sourcepath ..\..\src\bdf

source bdf.c

sourcepath ..\..\src\cache

source ftcache.c

sourcepath ..\..\src\cff

source cff.c

sourcepath ..\..\src\cid

source type1cid.c

sourcepath ..\..\src\gzip

source ftgzip.c

sourcepath ..\..\src\bzip2

source ftbzip2.c

sourcepath ..\..\src\lzw

source ftlzw.c

sourcepath ..\..\src\pcf

source pcf.c

sourcepath ..\..\src\pfr

source pfr.c

sourcepath ..\..\src\psaux

source psaux.c

sourcepath ..\..\src\pshinter

source pshinter.c

sourcepath ..\..\src\psnames

source psmodule.c

sourcepath ..\..\src\raster

source raster.c

sourcepath ..\..\src\sfnt

source sfnt.c

sourcepath ..\..\src\smooth

source smooth.c

sourcepath ..\..\src\truetype

source truetype.c

sourcepath ..\..\src\type1

source type1.c

sourcepath ..\..\src\type42

source type42.c

sourcepath ..\..\src\winfonts

source winfnt.c


systeminclude		..\..\include
systeminclude		\epoc32\include\stdapis
userinclude		..\..\src\autofit
userinclude		..\..\src\bdf
userinclude		..\..\src\cache
userinclude		..\..\src\cff
userinclude		..\..\src\cid
userinclude		..\..\src\gxvalid
userinclude		..\..\src\gzip
userinclude		..\..\src\bzip2
userinclude		..\..\src\lzw
userinclude		..\..\src\otvalid
userinclude		..\..\src\pcf
userinclude		..\..\src\pfr
userinclude		..\..\src\psaux
userinclude		..\..\src\pshinter
userinclude		..\..\src\psnames
userinclude		..\..\src\raster
userinclude		..\..\src\sfnt
userinclude		..\..\src\smooth
userinclude		..\..\src\truetype
userinclude		..\..\src\type1
userinclude		..\..\src\type42
userinclude		..\..\src\winfonts
