freetype2/include/freetype
Werner Lemberg 59939244ad 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.
2006-01-31 20:17:42 +00:00
..
cache * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c 2005-11-12 17:07:11 +00:00
config Implement new, simplified module selection. With GNU make it is now 2006-01-31 20:17:42 +00:00
internal Implement new, simplified module selection. With GNU make it is now 2006-01-31 20:17:42 +00:00
freetype.h * include/freetype/internal/t1types.h (AFM_FontInfo), 2006-01-31 07:01:24 +00:00
ftbbox.h * include/freetype/*: Add a guard to all public header files which 2003-11-04 07:44:19 +00:00
ftbdf.h Adding OpenType validation module. The code is based on the 2004-09-10 14:39:00 +00:00
ftbitmap.h * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden), 2005-10-20 02:13:46 +00:00
ftcache.h * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed. 2005-10-27 21:28:35 +00:00
ftchapters.h * include/freetype/freetype.h, include/freetype/ftchapters.h: Add 2005-08-30 00:22:46 +00:00
fterrdef.h * src/cid/cidload.c (cid_face_open): Always allocate 2004-02-12 08:33:20 +00:00
fterrors.h * include/freetype/internal/ftobjs.h: Don't include 2004-09-06 07:06:56 +00:00
ftglyph.h Fix documentation error. 2003-11-12 15:15:49 +00:00
ftgxval.h * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number 2005-11-18 08:23:06 +00:00
ftgzip.h Adding OpenType validation module. The code is based on the 2004-09-10 14:39:00 +00:00
ftimage.h * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be 2005-06-16 19:07:08 +00:00
ftincrem.h * include/freetype/*: Add a guard to all public header files which 2003-11-04 07:44:19 +00:00
ftlist.h * include/freetype/*: Add a guard to all public header files which 2003-11-04 07:44:19 +00:00
ftlzw.h Adding OpenType validation module. The code is based on the 2004-09-10 14:39:00 +00:00
ftmac.h Copyright year, minor formatting. 2006-01-12 08:49:24 +00:00
ftmm.h * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New 2004-05-20 09:21:19 +00:00
ftmodapi.h * docs/CHANGES: Updated. 2006-01-08 22:34:01 +00:00
ftmoderr.h * docs/CHANGES, docs/INSTALL.ANY: Updated. 2005-03-23 16:45:24 +00:00
ftotval.h * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number 2005-11-18 08:23:06 +00:00
ftoutln.h typo 2005-11-17 21:32:41 +00:00
ftpfr.h Adding OpenType validation module. The code is based on the 2004-09-10 14:39:00 +00:00
ftrender.h * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be 2005-06-16 19:07:08 +00:00
ftsizes.h Adding OpenType validation module. The code is based on the 2004-09-10 14:39:00 +00:00
ftsnames.h * include/freetype/*: Add a guard to all public header files which 2003-11-04 07:44:19 +00:00
ftstroke.h Fix comment style. 2005-10-26 20:08:45 +00:00
ftsynth.h * include/freetype/*: Add a guard to all public header files which 2003-11-04 07:44:19 +00:00
ftsystem.h * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed. 2005-10-27 21:28:35 +00:00
fttrigon.h * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed. 2005-10-27 21:28:35 +00:00
fttypes.h * include/freetype/config/ftstdlib.h: Include `stddef.h'. 2004-10-14 11:33:04 +00:00
ftwinfnt.h Adding OpenType validation module. The code is based on the 2004-09-10 14:39:00 +00:00
ftxf86.h * include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo 2004-02-17 13:46:17 +00:00
t1tables.h Add new function FT_Get_PS_Font_Private(). 2004-11-12 07:02:45 +00:00
ttnameid.h Formatting, copyright years. 2004-12-04 14:23:50 +00:00
tttables.h Fix comment style. 2005-10-26 20:08:45 +00:00
tttags.h * include/freetype/config/ftoption.h, 2005-12-14 20:38:15 +00:00
ttunpat.h * include/freetype/*: Add a guard to all public header files which 2003-11-04 07:44:19 +00:00