Hash :
59939244
        
        Author :
  
        
        Date :
2006-01-31T20:17:42
        
      
Implement new, simplified module selection.  With GNU make it is now
sufficient to modify a single file, `modules.cfg', to control the
inclusion of modules and base extension files.
This change also fixes the creation of ftmodule.h; it now depends on
`modules.cfg' and thus is rebuilt only if necessary.
Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
default location.
* modules.cfg: New file.
* builds/freetype.mk: Don't include `modules.mk'.
Include all `rules.mk' files as specified in `modules.cfg'.
(FTOPTION_FLAG, FTOPTION_H): New variables.
(FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
Add FTOPTION_FLAG.
($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
(CONFIG_H): Add FTMODULE_H and FTOPTION_H.
(INCLUDES): Add DEVEL_DIR.
(INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
OBJ_M, OBJ_S): Use `:=', not `='.
(remove_ftmodule_h): New phony target to delete `ftmodule.h'.
(distclean): Add remove_ftmodule_h.
* builds/modules.mk: (MODULE_LIST): Removed.
(make_module_list, clean_module_list): Replace targets
with...
(FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
variables.  Reason for the change is that it is not possible to have
a phony prerequisite which is run only if the target file must be
rebuilt (phony prerequisites act like subroutines and are *always*
executed).  We only want to rebuild `ftmodule.h' if `module.cfg' is
changed.
Update all callers.
($FTMODULE_H)): Rule to create `ftmodule.h', depending on
`modules.cfg'.
* builds/toplevel.mk: Rewrite and simplify module handling.
(MODULES_CFG, FTMODULE_H): New variables.
Include MODULES_CFG.
(MODULES): New variable to include all `module.mk' and `rules.mk'
files.  We no longer use make's `wildcard' function for this.
* Makefile (USE_MODULES): Remove.  Update all users.
(OBJ_DIR): Define it here.
* src/*/module.mk: Change
    make_module_list: foo
    foo: ...
to
    FTMODULE_H_COMMANDS += FOO
    define FOO
    ...
    endef
in all files.  `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
* src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
* builds/unix/detect.mk (setup): Always execute `configure' script.
(have_mk): Rename to...
(have_Makefile): This.
Don't use `strip' function.
* builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
defined.
(have_mk): Don't use `strip' function.
Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
accordingly).
* builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
* builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
BUILD_DIR but DEVEL_DIR for development header files.
* builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
(TOP_DIR, OBJ_DIR): Removed.  Defined elsewhere.
* builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
builds/win32/win32-def.mk (OBJ_DIR): Removed.  Defined elsewhere.
* builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
development header files.
Don't define PLATFORM.
* configure: Copy `modules.cfg' to builddir if builddir != srcdir.
Update snippet taken from autoconf's m4sh.m4 to current CVS version.
Be more verbose.
* include/freetype/config/ftmodule.h: Add comments -- this file is
no longer used if FreeType is built with GNU make.
* docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
Other minor updates.
* modules.txt: Removed.  Contents included in `modules.cfg'.
* include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
* src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
[FT_STRICT_ALIASING]: Implement.
      
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
There are  several ways  to build the  FreeType library,  depending on
your system and the level of  customization you need.  Here is a short
overview of the documentation available:
I. Normal installation and upgrades
===================================
  1. Native TrueType Hinting
    Native TrueType hinting is  disabled by default[1].  If you really
    need it, read the file `TRUETYPE' for information.
  2. Unix Systems (as well as Cygwin or MSys on Windows)
    Please read  *both* `UPGRADE.UNX' and `INSTALL.UNX'  to install or
    upgrade FreeType  2 on  a Unix system.   Note that you  *need* GNU
    Make for automatic compilation,  since other make tools won't work
    (this includes BSD Make).
  3. On VMS with the `mms' build tool
  
    See `INSTALL.VMS' for installation instructions on this platform.
  4. Other systems using GNU Make
  
    On non-Unix platforms,  it is possible to build  the library using
    GNU Make  utility.  Note that  *NO OTHER MAKE TOOL  WILL WORK*[2]!
    This  methods supports  several  compilers on  Windows, OS/2,  and
    BeOS, including MinGW, Visual C++, Borland C++, and more.
    Instructions are provided in the file `INSTALL.GNU'.
  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
    automatically build  the library as  well.  Note that  these files
    are  not supported  and only  sporadically maintained  by FreeType
    developers, so don't expect them to work in each release.
    
    To find them, have a  look at the content of the `builds/<system>'
    directory, where <system> stands for your OS or environment.
  6. From you own IDE, or own Makefiles
  
    If  you  want  to  create   your  own  project  file,  follow  the
    instructions   given  in  the   `INSTALL.ANY'  document   of  this
    directory.
II. Custom builds of the library
================================
  Customizing the compilation  of FreeType is easy, and  allows you to
  select only the components of  the font engine that you really need.
  For more details read the file `CUSTOMIZE'.
----------------------------------------------------------------------
[1] More details on:  http://www.freetype.org/patents.html
[2] make++, a make tool written in Perl, has sufficient support of GNU
    make extensions to build FreeType.  See
      http://makepp.sourceforge.net
    for more information; you need version 1.19 or newer, and you must
    pass option `--norc-substitution'.
----------------------------------------------------------------------
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006 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.
--- end of INSTALL ---