update for HEAD-2003050101
[reactos.git] / lib / freetype / src / base / rules.mk
1 #
2 # FreeType 2 base layer configuration rules
3 #
4
5
6 # Copyright 1996-2000, 2002 by
7 # David Turner, Robert Wilhelm, and Werner Lemberg.
8 #
9 # This file is part of the FreeType project, and may only be used, modified,
10 # and distributed under the terms of the FreeType project license,
11 # LICENSE.TXT.  By continuing to use, modify, or distribute this file you
12 # indicate that you have read the license and understand and accept it
13 # fully.
14
15
16 # It sets the following variables which are used by the master Makefile
17 # after the call:
18 #
19 #   BASE_OBJ_S:   The single-object base layer.
20 #   BASE_OBJ_M:   A list of all objects for a multiple-objects build.
21 #   BASE_EXT_OBJ: A list of base layer extensions, i.e., components found
22 #                 in `freetype/src/base' which are not compiled within the
23 #                 base layer proper.
24 #
25 # BASE_H is defined in freetype.mk to simplify the dependency rules.
26
27
28 BASE_COMPILE := $(FT_COMPILE) $I$(SRC_)base
29
30
31 # Base layer sources
32 #
33 #   ftsystem, ftinit, and ftdebug are handled by freetype.mk
34 #
35 BASE_SRC := $(BASE_)ftcalc.c   \
36             $(BASE_)fttrigon.c \
37             $(BASE_)ftutil.c   \
38             $(BASE_)ftstream.c \
39             $(BASE_)ftgloadr.c \
40             $(BASE_)ftoutln.c  \
41             $(BASE_)ftobjs.c   \
42             $(BASE_)ftapi.c    \
43             $(BASE_)ftnames.c  \
44             $(BASE_)ftdbgmem.c
45
46 # Base layer `extensions' sources
47 #
48 # An extension is added to the library file (.a or .lib) as a separate
49 # object.  It will then be linked to the final executable only if one of its
50 # symbols is used by the application.
51 #
52 BASE_EXT_SRC := $(BASE_)ftglyph.c   \
53                 $(BASE_)ftmm.c      \
54                 $(BASE_)ftbdf.c     \
55                 $(BASE_)fttype1.c   \
56                 $(BASE_)ftxf86.c    \
57                 $(BASE_)ftpfr.c     \
58                 $(BASE_)ftstroker.c \
59                 $(BASE_)ftwinfnt.c  \
60                 $(BASE_)ftbbox.c
61
62 # Default extensions objects
63 #
64 BASE_EXT_OBJ := $(BASE_EXT_SRC:$(BASE_)%.c=$(OBJ_)%.$O)
65
66
67 # Base layer object(s)
68 #
69 #   BASE_OBJ_M is used during `multi' builds (each base source file compiles
70 #   to a single object file).
71 #
72 #   BASE_OBJ_S is used during `single' builds (the whole base layer is
73 #   compiled as a single object file using ftbase.c).
74 #
75 BASE_OBJ_M := $(BASE_SRC:$(BASE_)%.c=$(OBJ_)%.$O)
76 BASE_OBJ_S := $(OBJ_)ftbase.$O
77
78 # Base layer root source file for single build
79 #
80 BASE_SRC_S := $(BASE_)ftbase.c
81
82
83 # Base layer - single object build
84 #
85 $(BASE_OBJ_S): $(BASE_SRC_S) $(BASE_SRC) $(FREETYPE_H)
86         $(BASE_COMPILE) $T$@ $(BASE_SRC_S)
87
88
89 # Multiple objects build + extensions
90 #
91 $(OBJ_)%.$O: $(BASE_)%.c $(FREETYPE_H)
92         $(BASE_COMPILE) $T$@ $<
93
94 # EOF