diff options
Diffstat (limited to 'Build/source/libs/freetype/freetype-1.5/howto')
-rw-r--r-- | Build/source/libs/freetype/freetype-1.5/howto/mac.txt | 19 | ||||
-rw-r--r-- | Build/source/libs/freetype/freetype-1.5/howto/msdos.txt | 272 | ||||
-rw-r--r-- | Build/source/libs/freetype/freetype-1.5/howto/os2.txt | 200 | ||||
-rw-r--r-- | Build/source/libs/freetype/freetype-1.5/howto/unix.txt | 258 | ||||
-rw-r--r-- | Build/source/libs/freetype/freetype-1.5/howto/windows.txt | 349 |
5 files changed, 1098 insertions, 0 deletions
diff --git a/Build/source/libs/freetype/freetype-1.5/howto/mac.txt b/Build/source/libs/freetype/freetype-1.5/howto/mac.txt new file mode 100644 index 00000000000..6ed97d9f7a3 --- /dev/null +++ b/Build/source/libs/freetype/freetype-1.5/howto/mac.txt @@ -0,0 +1,19 @@ + The FreeType Mac Compilation HowTo + + + Please note that the FreeType team does *not* support the + Macintosh platform due to lack of knowledge. + + However, we provide the basic files to compile the library in + the lib/arch/mac directory (OK, `folders'). Also the project + files for PowerPC with CodeWarrior have been contributed (in + contrib/mac). + + A noteworthy point is that the precompiled standard MacOS + headers should be turned off to compile the library, to avoid + errors caused by conflicting definitions of `Fixed' and `Byte'. + + +Good luck! + +--- end of mac.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/howto/msdos.txt b/Build/source/libs/freetype/freetype-1.5/howto/msdos.txt new file mode 100644 index 00000000000..01a01f93982 --- /dev/null +++ b/Build/source/libs/freetype/freetype-1.5/howto/msdos.txt @@ -0,0 +1,272 @@ + The FreeType MS-DOS Compilation HowTo + +Contents + +Introduction +I. Building the library + 1. Quick Compilation + 2. Manual compilation + 3. Notes +II. Building other parts of the package + 1. Test programs + 2. Other contribs +III. Compiler Issues + 1. Special issues of 16-bit MS-DOS + 2. Borland Turbo C v.2.0x + + + +Introduction +============ + +This file describes the compilation of the FreeType package on a +MS-DOS system. It comes with Makefiles for the following compilers: + + - gcc/emx and gcc/djgpp with GNU make (32 bit) + + - wcc386 with wmake (Watcom -- tried with 10.6) + + - gcc/emx with dmake (32 bit) + + - cl with nmake (16-bit Microsoft C -- tried with 7 and VC++ 1.5x) + + - bcc/tcc with Borland make (16-bit Borland C++ and Turbo C) + +NOTE: + + You are advised to jump to section II.1 if you want to run the + FreeType test/demo programs as quick as possible. + + + +I. Building the library +======================= + + +1. Quick Compilation +-------------------- + + The easiest way to compile the library on MS-DOS is to go to the + directory `freetype/lib'. Then type, depending on your compiler: + + gcc/emx, + gcc/djgpp: make -f arch/msdos/Makefile.gcc + gcc/dmake: dmake -r -f arch/msdos/Makefile.dm + + wcc386: wmake -f=arch\msdos\Makefile.wat + + cl: nmake /f arch\msdos\Makefile.MS (for versions 6-7) + cl: nmake /f arch\msdos\Makefile.VC (for Visual C++ 1.x) + + tcc: make -farch/msdos/Makefile.TC + bcc: make -farch/msdos/Makefile.BC + + This should build the `libttf.a' or `libttf.lib' library files. + + You can also use the following targets: + + depend - (for gcc with emx or DJGPP only) Creates a file that + lists the dependancies. Useful for the developper. + + clean - Cleans all intermediate object files created during + compilation. Keeps all library and executables in + place. + + distclean - Cleans everything, leaving the directories as they + were before the compilation. + + debug - Makes a development version of the library. Only + useful for FreeType developers and hackers. + + Note that you can also select to use the `debugging' flags for + your compiler (instead of the `optimizing' ones), by defining + the `DEBUG' symbol, like in + + nmake /f arch\msdos\Makefile.MS DEBUG=1 + make -farch/msdos/Makefile.BC /DDEBUG + etc. + + Doing so will automatically select the debug target instead of + the normal mode. + + For 16-bit compilers, you can also try defining the `BIGFONTS' + symbol, to enable the use of the `huge pointers' needed to + handle some big fonts. More on this at the end of this file. + + +2. Manual compilation +--------------------- + + Here are explained the steps that are required to compile the + FreeType _library_ (and only this one) by hand. + + Unlike previous versions, FreeType 1.1 and above can be compiled + in two modes, called `debug mode' and `single object mode'. + + Debug mode is simply the normal way of compiling C programs, i.e., + each `*.c' file is compiled into an individual `*.obj' object + file, and all of them are linked together into an archive (i.e., + `*.lib' library). + + Single object mode is slightly different: All C files are included + in a single source during compilation, resulting in a single final + object file for the core library. This has the advantage of + letting optimizing compilers do more global work, as well as + getting rid of all external which are used solely for the purpose + of components interfacing. + + In both modes, you need to include the following paths to your + makefile/command line: + + the location of all `tt*.[hc]' files + the location of system-specific files + + For example, if you are compiling from the `freetype/lib' + directory, you can type for debug mode something like + + gcc -c -I. -Iarch/msdos tt*.c + + to compile all required files into object ones. Then assemble + them in a library with `ar', `lib', or `tlib'. + + In single object mode, you only need to compile the file named + `freetype.c' which is located in `freetype/lib/arch/msdos'. From + the same directory as before, one would type + + cl -c -I. -Iarch/msdos arch/msdos/freetype.c + + You can also compile the extensions located in + `freetype/lib/extend' separately from the base engine. You will + need to include the same paths as before, though; be sure to add + the path to the `extend' directory, like in + + bcc -c -I. -Iarch/msdos -Iextend extend/*.c + + +3. Notes +-------- + + `char' is always `signed char' in the sources! + + `ttconfig.h' relies heavily on a file called `ft_conf.h' that + contains information related to the target platform, located in + the `freetype/lib/arch/msdos/' directory. Depending on your + compiler, you may need to slightly edit it. + + We use gcc as our reference compiler for warnings. This means + that we use the `-ansi -pedantic -Wall' flags and try to get rid + of warnings in this situation. If you're compiling with another + compiler, you may encounter warnings, not errors. Note that the + Borland compilers seem to produce lots of irrelevant warnings + (like `potential loss of precision'). + + + +II. Building other parts of the package +======================================= + + +1. Test programs +---------------- + + These are located in `freetype/test'. Most of them use a tiny + graphics sub-system which is simply used to display bitmaps and + pixmaps on a variety of platforms. The MS-DOS version is a very + basic one that only works in full-screen using standard VGA mode. + + To compile them, you must be in the `freetype/test' directory and + invoke the makefile in arch/msdos. For example: + + nmake /f arch\msdos\Makefile.VC + + + NOTE 1: + + This will automatically invoke the library makefile for you! + + NOTE 2: + + For now, the graphical test programs only run on the following + platforms: Unix, OS/2, Dos, Amiga, and Windows. + + The library, being pure ANSI-C, can be used on any system to + generate bitmaps and pixmaps. + + +2. Other contribs +----------------- + + You may find some other contributions to the FreeType project in + the `freetype/contrib' directory. Each of these programs should + have its own Makefiles and documentations. Also check their + licenses, as the programs are not necessarily distributed under + the FreeType one. + + Most of these contributions are targeted to Unix. You are invited + to port them to MS-DOS, and then contribute your improvements. + + + +III. Compiler Issues +==================== + + Many comments specific to a given compiler are now stored in its + relevant Makefile's, in the arch/msdos subdirectories. + + +1. Special issues of 16-bit MS-DOS +---------------------------------- + + As usual, 16-bit MS-DOS have some limitations. + + First, and mainly, only the large model is usable. The small and + medium models are not usable, because the library uses more than + 64kByte of data; and the compact model is unusable as well, since + the code of the library itself is slightly less than 64kByte, thus + leaving very small place for the real work. The net effect of + that limitation is that performances are not very impressive, to + say the least (32-bit DOS extenders perform usually three-time + faster). + + Even with the large model, the rasterizer is still limited in + size, particularly with pixmaps (that is, with anti-aliasing gray + levels). + + Another annoying limitation exists with some East Asian fonts that + have 16,383 glyphs or more, since an internal table then + overflows. We tried to overcome this using the so-called `huge + pointers', but then good support for these in the run-time library + is needed. To enable this support, try defining the `BIGFONTS' + symbol with the makefile, like using + + nmake /f arch\msdos\makefile.MS BIGFONTS=1 + make -farch/msdos/makefile.BC /DBIGFONTS + etc. + + The Makefiles for both Microsoft and Borland compilers depend on a + special file, `arch/msdos/depend.dos', which is built by a Unix + script named `makedep'. You may consider editing it if you + heavily modify the source files; or better yet, re-run the script, + using any clone of the Bourne shell and gcc, the GNU compiler, + with + + arch/msdos/makedep + + in both the `lib' and the `test' directories. + + +2. Turbo C v. 2.0x +------------------ + + Unlike the precedent version 1.5 (!), Turbo C v.2.0 is not able to + compile C sources if they use the Unix convention for end-of- + line. So make sure either you use the .zip archive (where files + are stored with CR-LF), or if you use the .tar.gz version, the + program that does the transformation (WinZip can do it if + instructed, look after "CR/LF conversion for TAR"). + + +Good luck! + + +--- end of msdos.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/howto/os2.txt b/Build/source/libs/freetype/freetype-1.5/howto/os2.txt new file mode 100644 index 00000000000..2ce5bab50b7 --- /dev/null +++ b/Build/source/libs/freetype/freetype-1.5/howto/os2.txt @@ -0,0 +1,200 @@ + The FreeType OS/2 Compilation HowTo + +Contents + +Introduction +I. Building the library + 1. Quick Compilation + 2. Manual compilation + 3. Notes +II. Building other parts of the package + 1. Test programs + 2. Other contribs +III. Troubleshooting + + + +Introduction +============ + +This file describes the compilation of the FreeType package on an +OS/2 system. It comes with makefiles for the following compilers: + + - gcc/emx with GNU make + + - icc with nmake (Visual Age C++) + + - wcc386 with wmake (Watcom -- tried with 10.6) + + - gcc/emx with dmake + + +NOTE: + + You're advised to jump to section II.1 if you want to run the + FreeType test/demo programs as quick as possible. + + + +I. Building the library +======================= + + +1. Quick Compilation +-------------------- + + The easiest way to compile the library on OS/2 is to go to the + directory `freetype/lib'. Then type, depending on your compiler, + + gcc/emx: make -f arch/os2/makefile.emx + gcc/dmake: dmake -f arch/os2/makefile.dm + + icc: nmake -f arch\os2\makefile.icc + wcc386: wmake -f=arch\os2\makefile.wat + + This should build the `libttf.a' or `libttf.lib' library files. + + You can also use the following targets: + + debug - Makes a development version of the library. Only + useful for FreeType developers and hackers. + + clean - Cleans all intermediate object files created during + compilation. Keeps all library and executables in + place. + + distclean - Cleans everything, leaving the directories as they + were before the compilation. + + +2. Manual compilation +--------------------- + + Here are explained the steps that are required to compile the + FreeType _library_ (and only this one) by hand. + + Unlike previous versions, FreeType 1.1 and above can be compiled + in two modes, called `debug mode' and `single object mode'. + + Debug mode is simply the normal way of compiling C programs, i.e., + each `*.c' file is compiled into an individual `*.obj' object + file, and all of them are linked together into an archive (i.e., + `*.lib' library). + + Single object mode is slightly different: all C files are included + in a single source during compilation, resulting in a single final + object file for the core library. This has the advantage of + letting optimizing compilers do more global work, as well as + getting rid of all external symbols which are used solely for the + purpose of components interfacing. + + In both modes, you need to include the following paths to your + makefile/command line: + + the location of all `tt*.[hc]' files + the location of system-specific files + + For example, if you are compiling from the `freetype/lib' + directory, you can type for debug mode something like + + gcc -c -I. -Iarch/os2 tt*.c arch/os2/os2file.c + + to compile all required files into object ones. Then assemble + them in a library with `ar' or `implib'. + + In single object mode, you only need to compile the file named + `freetype.c' which is located in `freetype/lib/arch/os2'. From + the same directory as before, one would type: + + gcc -c -I. -Iarch/os2 arch/os2/freetype.c + + You can also compile the extensions located in + `freetype/lib/extend' separately from the base engine. You will + need to include the same paths as before, though; be sure to add + the path to the `extend' directory, like in + + gcc -c -I. -Iarch/os2 -Iextend extend/*.c + + + +II. Building other parts of the package +======================================= + + +1. Test programs +---------------- + + The test programs are located in `freetype/test'. Most of them + use a tiny graphics sub-system which is simply used to display + bitmaps and pixmaps in a windows on a variety of platforms. The + OS/2 version comes in two flavors: PM and full-screen. + + To compile them, you must be in the `freetype/test' directory, and + invoke the makefile in arch/os2. For example: + + nmake -f arch\os2\makefile.os2 + + + NOTE 1: + + This will automatically invoke the library makefile for you! + + NOTE 2: + + The test programs come in two flavors, distinguished by the `fs' + suffix appended to their name. For example: + + ftview (PM version) + ftviewfs (Full Screen version) + + The full-screen version is there mainly for debugging purposes. + + NOTE 3: + + For now, the graphical test programs only run on the following + platforms: Unix, OS/2, Dos, Amiga, and Windows. + + The library, being pure ANSI-C, can be used on any system to + generate bitmaps and pixmaps. + + +2. Other contributions +---------------------- + + You may find some other contributions to the FreeType project in + the `freetype/contrib' directory. Each of these programs should + have its own Makefiles and documentations. Also check their + licenses, as the programs not necessarily distributed under the + FreeType one. You are invited to port the non-OS/2 applications + to OS/2. + + For OS/2, you will find the source code for the FreeType/2 font + driver in `freetype/contrib/os2'. Read its documentation + carefully before trying to compile it, as it certainly won't be + easy. + + + +III. Troubleshooting +==================== + + There is only one important point on OS/2: + + `The test program crashes with anti-aliasing on!' + + It has been discovered that some versions of Visual Age C++ + contain a bug which miscompiles the anti-aliasing source in + ttraster.c, hence resulting in a page fault when trying to render + a pixmap in the engine. Apparently, not all levels/versions of + the compiler contain the bug. You'll notice the problem + immediately (page fault :-). + + Please apply the most recent fixpack to your Visual Age C++ copy + in order to get rid of it (newer fixpacks seem to solve the + issue). + + +Good luck! + + +--- end of os2.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/howto/unix.txt b/Build/source/libs/freetype/freetype-1.5/howto/unix.txt new file mode 100644 index 00000000000..ba97452dc77 --- /dev/null +++ b/Build/source/libs/freetype/freetype-1.5/howto/unix.txt @@ -0,0 +1,258 @@ + The FreeType Unix Compilation HOWTO + +Contents + +Introduction +I. Building the library + 1. Quick Compilation + 2. Manual compilation + 3. Notes +II. Building other parts of the package + 1. Test programs + 2. Other contribs +III. Successful Build Reports + + + +Introduction +============ + +This file describes the compilation of the FreeType package on a +Unix system. Using the `configure' script it should be rather easy +to build the library. However, detailed instructions on how to +compile the library manually are given later in this document. + + + +I. Building the library +======================= + + +1. Quick Compilation +-------------------- + + The easiest way to compile the library on a Unix system is by + using the `configure' script that comes with it. Simply go to the + root directory of the FreeType package, then type + + ./configure + + to run a script that will probe your system and detect various + configuration issues, which are explained later in this document. + + From there, you can simply type + + make + + to invoke compilation of the whole package. You can also use the + following commands: + + make debug - Make a development version of the library. + Only useful for FreeType developers and + hackers. The default build should come with + `-g' (i.e., debug info in the object file) + already. + + make clean - Clean all intermediate object files created + during compilation. Keeps all library and + executables in place. + + make distclean - Clean everything, leaving the directories as + they were before the compilation. You'll need + to run `./configure' again to be able to + re-build it. + + make install - Install the library files libttf.a, libttf.la + or libttf.so to your system library path + (`/usr/local/lib' by default). The path can be + set manually with ./configure. + + make uninstall - Undo a `make install'. + + Note that the Makefile uses nested variables which causes problems + with BSD make. Use GNU make instead. + + +2. Trouble-shooting and simple customization +-------------------------------------------- + + The make build seems to fail on some Solaris systems. This is + mainly due to the fact that the test programs (not the font + library itself) try to use certain libraries and/or utilities if + they find them on your system. In some cases, the Sun versions + are incompatible to the GNU ones. If you encounter such problems, + please report them to us so we can try to fix it. + + The configure script and makefiles that it generates can/make use + of the following things: + + - gettext - In order to compile the internationalized error + message string extension, which isn't part of the + core library. You can disable this and get a + clean compile with + + ./configure --disable-nls + + + - libtool - Used to generate shared libraries. You can + disable it by typing + + ./configure --disable-shared + + which will generate and link the FreeType engine + as a static library. + + By default, static compilation is disabled if the + configure script detects that your compiler + and/or operating system supports shared + libraries. You can ask for static libraries with + + ./configure --enable-static + + For more configuration options, type `./configure --help' to see a + summary of what is possible. The option to change the library + installation path for `make install' is, as usual, + `--prefix=<path>'. Example: + + ./configure --prefix=${HOME}/local/lib --disable-shared + + to install a static library (libttf.a) in `~/local/lib' (after a + `make install') + + +3. Manual compilation +--------------------- + + Here are explained the steps that are required to compile the + FreeType _library_ (and only this one) by hand. + + a. Generate a configuration file named `ft_conf.h' + + This file contains a certain number of configuration macro + declarations which must fit your system. The configure script + generates it automatically for you, but you can also take the + template file `freetype/ft_conf.h.in' and change it by hand, + then save it as `freetype/ft_conf.h'. + + b. Choose your compilation mode + + Unlike previous versions, FreeType 1.1 and above can be compiled + in two modes, called `debug mode' and `single object mode'. + + Debug mode is simply the normal way of compiling C programs, + i.e., each *.c file is compiled into an individual *.o object + file, and all of them are linked together into an archive (i.e., + a *.a library). + + Single object mode is slightly different: All C files are + included in a single source file during compilation, resulting + in a single final object file for the core library. This has + the advantage of letting optimizing compilers do more global + work, as well as getting rid of all external symbols which are + used solely for the purpose of components interfacing. + + In both modes, you need to include the following paths to your + makefile/command line: + + . the location of the `ft_conf.h' file + . the location of all `tt*.[hc]' files + . the location of system-specific files, i.e., `ttmmap.c' on + Unix. + + For example, if you are compiling from the `freetype/lib' + directory, you can type for debug mode something like + + gcc -c -I.. -I. -Iarch/unix tt*.c arch/unix/ttmmap.c + + to compile all required files. Then assemble them in a library + with `ar' (and run `runlib' if necessary). + + In single object mode, you only need to compile the file named + `freetype.c' which is located in `freetype/lib/arch/unix'. From + the same directory as before, one would type: + + gcc -c -I.. -I. -Iarch/unix arch/unix/freetype.c + + You can also compile the extensions located in + `freetype/lib/extend' separately from the base engine. You'll + need to include the same paths as before, though. + + + +II. Building other parts of the package +======================================= + + +1. Test programs +---------------- + + All test programs are located in `freetype/test'. Most of them + use a tiny graphics sub-system which simply display bitmaps and + pixmaps in a windows on a variety of platforms. Of course, the + Unix version uses X11. + + The default `make' builds all tests programs automatically. Just + go the `freetype/test' and launch the programs when you are there. + Documentation on the test programs can be found in the file + `freetype/README'. + + NOTE: + + For now, the graphical test programs only run on the following + platforms: Unix, OS/2, Dos, Amiga, and Windows. + + The library, being pure ANSI-C, can be used on any system to + generate bitmaps and pixmaps. + + +2. Other contributions +---------------------- + + You may find some other contributions to the FreeType project in + the `freetype/contrib' directory. Each of these programs should + have their own makefiles and documentations. Also check their + licenses, as they are not necessarily distributed under the + FreeType one. + + + +III. Successful Build Reports +============================= + +Nelson H. F. Beebe <beebe@math.utah.edu> and others report the +following successfully builds (with gcc 2.8.1) of freetype-1.1 on + + DEC Alpha 2100-5/250: OSF/1 3.2 + HP 9000/735: HP-UX 10.01 + Intel Pentium (200MHz MMX): Linux 2.0.30 + SGI Challenge L: IRIX 5.3 + Sun SPARC 20/512: Solaris 2.6 + Sun SPARC Ultra-2: SunOS 5.5.1 + IBM RS/6000: AIX 4.1 + +Chances are good the the current release will build on the same +machines and platforms. + +There are build problems reported on SunOs 4.x which have the form + + ld: /usr/tmp/cca07291.o: assert pure-text failed: + reference to [offset] at f754 in /usr/tmp/cca07291.o + +This may be a compiler bug in gcc 2.8.1. + +You can work around by just building a static library with + + ./configure --disable-shared --enable-static --disable-nls + +Maybe `make debug' will help here too (untested). + +Other successful builds: + + Sun SPARC Solaris 2.5 with Sun C compiler+linker + +For updated build reports, please consult our web site: + + http://www.freetype.org + + +--- end of unix.txt --- diff --git a/Build/source/libs/freetype/freetype-1.5/howto/windows.txt b/Build/source/libs/freetype/freetype-1.5/howto/windows.txt new file mode 100644 index 00000000000..f777f816431 --- /dev/null +++ b/Build/source/libs/freetype/freetype-1.5/howto/windows.txt @@ -0,0 +1,349 @@ + The FreeType Windows Compilation HowTo + +Contents + +Introduction +I. Building the library + 1. Quick Compilation + 2. Manual compilation + 3. Building a DLL + 4. Notes +II. Building other parts of the package + 1. Test programs + 2. Other contributions +III. Special issues of 16-bit Windows + + + +Introduction +============ + +This file describes the compilation of the FreeType package on a +Windows system. It comes with Makefiles for the following +compilers: + + - gcc/CygWin32 and gcc/MinGW32 with GNU make (32 bit) + + - cl with nmake (16-bit and 32-bit Microsoft C and Visual C++) + + - bcc with make (16-bit and 32-bit Borland C++ and also Borland + C++ builder) + +Throughout this file, we use `winXX' if it applies indifferently to +both 16-bit and 32-bit versions. You should replace it with win16 +resp. win32, as applicable. + +NOTE: + + You are advised to jump to section II.1 if you want to run the + FreeType test/demo programs as quick as possible. + + + +I. Building the library +======================= + + +1. Quick Compilation +-------------------- + + The easiest way to compile the library on Windows is to go to the + directory `freetype/lib'. Then type, depending on your compiler: + + gcc: make -f arch/win32/Makefile.gcc + + cl: nmake /f arch\win16\Makefile.MS (for C/C++ 7) + cl: nmake /f arch\win16\Makefile.VC (for VC++ 16bit) + cl: nmake /f arch\win32\Makefile.CL (for VC++ 32bit) + + bcc: make -farch/win16/Makefile.BC + bcc32: make -farch/win32/Makefile.BC + + This should build the `libttf.a' or `libttf.lib' library files. + Of course, this assumes that your compiler is regularly installed. + + You can also use the following targets: + + depend - (for gcc only) Creates a file that lists the + dependancies. Useful for the developper. + + clean - Cleans all intermediate object files created during + compilation. Keeps all library and executables in + place. + + distclean - Cleans everything, leaving the directories as they + were before the compilation. + + debug - Makes a development version of the library. Only + useful for FreeType developers and hackers. + + Note that you can also select to use the `debugging' flags for + your compiler (instead of the `optimizing' ones), by defining + the `DEBUG' symbol, like in + + nmake /f arch\win32\Makefile.CL DEBUG=1 + make -farch/winXX/Makefile.BC /DDEBUG + etc. + + Doing so will automatically select the debug target instead of + the normal mode. + + For 16-bit compilers, you can also try to define the `BIGFONTS' + symbol, enabling the use of the `huge pointers' needed to handle + some big fonts. More on this at the end of this file. + + Another way to compile the library is to use the IDE provided with + the following compilers: Borland C++ 4.x/5.0, Visual C++ 4.0, and + Visual Studio. The project/workspace files can be found in the + `freetype/lib/arch/win32' directory: + + freetype.ide for Borland C++ 4.0, 4.5, and 5.0 + + freetype.dsp project and workspace files for + freetype.dsw Visual Studio + ft_dll.dsp (a.k.a. Visual C++ 5, 6, and 7) + + freetype.mdp project and makefile files for + freetype.mak Visual C++ 4.0 + + They generate a static library, which contain the core engine as a + single object file, as well as all standard extensions. + + Notes: + + - You may need to update the include paths in the Borland C++ + workspace settings. The current one looks in the directory + "C:\Program Files\Borland\BC 5.0\Include" for include files. + + - Take care that some compilers may overwrite these files when + generating the library (e.g. Borland C++ creates its own + `freetype.dsw' file, which isn't a Visual C++ project during + compilation). + + This is only important if you try to compile the lib with + several compilers. + + We gladly accept project files for other compilers. + + +2. Manual compilation +--------------------- + + Here are explained the steps that are required to compile the + FreeType _library_ (and only this one) by hand. + + Unlike previous versions, FreeType 1.1 and above can be compiled + in two modes, called `debug mode' and `single object mode'. + + Debug mode is simply the normal way of compiling C programs, i.e., + each `*.c' file is compiled into an individual `*.obj' object + file, and all of them are linked together into an archive (i.e., + `*.lib' library). + + Single object mode is slightly different: All C files are included + in a single source during compilation, resulting in a single final + object file for the core library. This has the advantage of + letting optimizing compilers do more global work, as well as + getting rid of all external which are used solely for the purpose + of components interfacing. + + In both modes, you need to include the following paths to your + makefile/command line: + + the location of all `tt*.[hc]' files + the location of system-specific files + + For example, if you are compiling from the `freetype/lib' + directory, you can type for debug mode something like + + gcc -c -I. -Iarch/win32 tt*.c + + to compile all required files into object ones. Then assemble + them in a library with `ar', `lib', or `tlib'. + + In single object mode, you only need to compile the file named + `freetype.c' which is located in `freetype/lib/arch/winXX'. From + the same directory as before, one would type + + gcc -c -I. -Iarch/win32 arch/win32/freetype.c + + You can also compile the extensions located in + `freetype/lib/extend' separately from the base engine. You will + need to include the same paths as before, though; be sure to add + the path to the `extend' directory, like in + + gcc -c -I. -Iarch/win32 -Iextend extend/*.c + + +3. Building a DLL +----------------- + + The easiest way to build the library as a DLL is also to use the + Makefiles we provide! Go to the directory `freetype/lib', then + type, depending on your compiler: + + gcc: (not yet supported) + + cl: nmake /f arch\win16\Makefile.VC DLL=1 dll (16bit) + cl: nmake /f arch\win32\Makefile.CL DLL=1 dll (32bit) + + bcc: make -farch/win16/Makefile.BC -DDLL dll + bcc32: make -farch/win32/Makefile.BC -DDLL dll + + This should build `ft15_XX.dll' (`15' for versions 1.5.*, `XX' is + either 16 or 32), and the `libttf.lib' library file. + + You can also use the following target: + + install - Install the DLL `ft15_XX.dll' to your system directory + (`C:\WINDOWS' by default). You can override the + directory by specifying the name of the directory: + + make -farch/winXX/Makefile.BC /DINSTALL_DIR=C:\TESTDLL install + nmake /f arch\win32\Makefile.CL INSTALL_DIR=D:\WINNT install + + Note that you can also select to use the `debugging' flags for + your compiler (instead of the `optimizing' ones), by defining + the `DEBUG' symbol, like in + + nmake /f arch\win16\Makefile.VC DEBUG=1 DLL=1 dll + make -farch/winXX/Makefile.BC /DDEBUG /DDLL dll + etc. + + Another way to build to DLL with Visual C++ is to use a special + Makefile that does exactly that, without relying on any settings. + + With VC++ 6.0, just type while in the `freetype/lib/arch/win32' + directory: + + nmake /f makefile.vc + + on the command line. + + For other versions, modify the $(TOOLS32) variable to point to the + directory where the build tools are. No need to set any + environment variables. + + +4. Notes +-------- + + `char' is always `signed char' in the sources! + + `ttconfig.h' relies heavily on a file called `ft_conf.h' that + contains information related to the target platform, located in + the `freetype/lib/arch/winXX/' directory. Depending on your + compiler, you may need to slightly edit it. + + We use gcc as our reference compiler for warnings. This means + that we use the `-ansi -pedantic -Wall' flags and try to get rid + of warnings in this situation. If you are compiling with another + compiler, you may encounter warnings, not errors. Note that the + Borland compilers seem to produce lots of irrelevant warnings + (like `potential loss of precision'). + + + +II. Building other parts of the package +======================================= + + +1. Test programs +---------------- + + All test programs are located in `freetype/test'. Most of them + use a tiny graphics sub-system which is simply used to display + bitmaps and pixmaps on a variety of platforms. The Windows + version is a very basic one that only displays a small graphic + windows in addition to the console where the flow of messages + still goes. + + To compile them, you must be in the `freetype/test' directory and + invoke the makefile in arch/winXX. For example: + + nmake -f arch\os2\Makefile.VC + + NOTE 1: + + This will automatically invoke the library makefile for you! + + NOTE 2: + + For now, the graphical test programs only run on the following + platforms: Unix, OS/2, Dos, Amiga, and Windows. + + The library, being pure ANSI-C, can be used on any system to + generate bitmaps and pixmaps. + + +2. Other contributions +---------------------- + + You may find some other contributions to the FreeType project in + the `freetype/contrib' directory. Each of these programs should + have its own Makefiles and documentations. Also check their + licenses, as the programs are not necessarily distributed under + the FreeType one. + + Most of these contributions are targeted to Unix. You are invited + to port them to Windows, and then contribute your improvements. + + + +III. Special issues of 16-bit Windows +===================================== + + As usual, 16-bit Windows have some limitations. + + First, and mainly, only the large model is usable. The small and + medium models are not usable, because the library uses more than + 64kByte of data; and the compact model is unusable as well, since + the code of the library itself is slightly less than 64kByte, thus + leaving very small place for the real work. The net effect of + that limitation is that performances are not very impressive, to + say the least (32-bit DOS extenders perform usually three-time + faster). + + Even with the large model, the rasterizer is still limited in + size, particularly with pixmaps (that is, with anti-aliasing gray + levels). + + The test programs rely on a tiny graphical driver that mimics the + ones available on other platforms. It has some peculiarities. + First, as the test programs need a `console', the programs should + linked with some emulation of that concept. We used successfully + Borland EasyWin and Microsoft QuickWin for this purpose. Then, + the graphics window that displays the bitmaps incur the usual + 64kByte limit: The size of the window is quite tiny, particularly + when displaying `gray-level' bitmaps (the size is then 320x200, + but contrary to full-screen MS-DOS the pixels are not magnified). + Ultimately, no efforts have been done to accomodate the colors of + the screen: As a result, displaying gray bitmaps in 256-color mode + uses only 4 levels of gray (instead of 5 rendered by the library). + + Another annoying limitation exists with some East Asian fonts that + have 16,383 glyphs or more, since an internal table then + overflows. We tried to overcome this using so-called `huge + pointers', but then good support for these in the run-time library + is needed. To enable huge pointers, try defining the `BIGFONTS' + symbol with the makefile, like + + nmake /f arch\win16\makefile.VC BIGFONTS=1 + make -farch/win16/makefile.BC /DBIGFONTS + etc. + + The makefiles for both Microsoft and Borland compilers depend on a + special file, arch/winXX/depend.win, which is built by a Unix + script named `makedep'. You may consider editing it if you + heavily modify the source files; or better yet, re-run the script, + using any clone of the Bourne shell, sed, and gcc, the GNU + compiler, with + + arch/winXX/makedep + + in both the `lib' and the `test' directories. + + +Good luck! + +--- end of windows.txt --- |