diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2009-03-20 07:45:16 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2009-03-20 07:45:16 +0000 |
commit | 9c241c5d2d9413361d32567876c35b2b9e2754c9 (patch) | |
tree | 754aab0f779c0c574897fb6bd6f67f9d722c9ac2 /Build/source/libs/freetype/freetype-1.5/howto/windows.txt | |
parent | 207e0fee56e671a0913674ee3f71701bb9d84768 (diff) |
new build system
git-svn-id: svn://tug.org/texlive/trunk@12446 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/freetype/freetype-1.5/howto/windows.txt')
-rw-r--r-- | Build/source/libs/freetype/freetype-1.5/howto/windows.txt | 349 |
1 files changed, 349 insertions, 0 deletions
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 --- |