blob: 2a61b180cb85879323ec6043bf29291d04ece293 [file] [log] [blame]
Chun-wei Fand7b66362015-11-03 19:00:42 +08001# NMake Makefile portion for displaying config info
2
Ebrahim Byagowid8e2eb92016-10-09 09:06:05 +03303INC_FEATURES = Fallback OT
Chun-wei Fand7b66362015-11-03 19:00:42 +08004BUILT_TOOLS =
5BUILT_LIBRARIES = HarfBuzz
6
Chun-wei Fanf0aa1672017-02-23 13:02:49 +08007!if "$(NO_UCDN)" != "1"
8UNICODE_IMPL = ucdn
Chun-wei Fanbc1244e2017-04-06 18:44:28 +08009!elseif "$(GLIB)" == "1"
Chun-wei Fand7b66362015-11-03 19:00:42 +080010UNICODE_IMPL = GLib
Chun-wei Fanbc1244e2017-04-06 18:44:28 +080011!elseif "$(ICU)" == "1"
12UNICODE_IMPL = ICU
13!endif
14
15!if "$(GLIB)" == "1"
Chun-wei Fand7b66362015-11-03 19:00:42 +080016INC_FEATURES = $(INC_FEATURES) GLib
17BUILT_TOOLS = hb-shape.exe hb-ot-shape-closure.exe
18!if "$(CAIRO_FT)" == "1"
19BUILT_TOOLS = hb-view.exe $(BUILT_TOOLS)
20!endif
Chun-wei Fanf0aa1672017-02-23 13:02:49 +080021!endif
Chun-wei Fanbc1244e2017-04-06 18:44:28 +080022!if "$(ICU)" == "1"
23INC_FEATURES = $(INC_FEATURES) ICU
Chun-wei Fand7b66362015-11-03 19:00:42 +080024!endif
25
26!if "$(FREETYPE)" == "1"
27INC_FEATURES = $(INC_FEATURES) FreeType
28!endif
29
30!if "$(GRAPHITE2)" == "1"
31INC_FEATURES = $(INC_FEATURES) Graphite2
32!endif
33
Ebrahim Byagowid8e2eb92016-10-09 09:06:05 +033034!if "$(UNISCRIBE)" == "1"
35INC_FEATURES = $(INC_FEATURES) Uniscribe
36!endif
37
Chun-wei Fanf6ffba62015-12-09 14:57:15 +080038!if "$(DIRECTWRITE)" == "1"
39INC_FEATURES = $(INC_FEATURES) DirectWrite
40!endif
41
Chun-wei Fand7b66362015-11-03 19:00:42 +080042!if "$(GOBJECT)" == "1"
43BUILT_LIBRARIES = $(BUILT_LIBRARIES) HarfBuzz-GObject
44!endif
45
46!if "$(INTROSPECTION)" == "1"
47BUILD_INTROSPECTION = yes
48!else
49BUILD_INTROSPECTION = no
50!endif
51
52build-info-hb:
53 @echo.
54 @echo ==================================
55 @echo Configuration for HarfBuzz Library
56 @echo ==================================
57 @echo Unicode Implementation: $(UNICODE_IMPL)
58 @echo Enabled Features: $(INC_FEATURES)
59
60all-build-info: build-info-hb
61 @echo.
62 @echo ----------------
63 @echo Other build info
64 @echo ----------------
65 @echo Built Libraries: $(BUILT_LIBRARIES)
66 @echo Built Tools: $(BUILT_TOOLS)
67 @echo Introspection: $(BUILD_INTROSPECTION)
68
69help:
70 @echo.
71 @echo =============================
72 @echo Building HarfBuzz Using NMake
73 @echo =============================
74 @echo nmake /f Makefile.vc CFG=[release^|debug] ^<PREFIX=PATH^> OPTION=1 ...
75 @echo.
76 @echo Where:
77 @echo ------
78 @echo CFG: Required, use CFG=release for an optimized build and CFG=debug
79 @echo for a debug build. PDB files are generated for all builds.
80 @echo.
81 @echo PREFIX: Optional, the path where dependent libraries and tools may be
82 @echo found, default is ^$(srcrootdir)\..\vs^$(short_vs_ver)\^$(platform),
83 @echo where ^$(short_vs_ver) is 9 for VS 2008, 10 for VS 2010 and so on; and
84 @echo ^$(platform) is Win32 for 32-bit builds and x64 for x64 builds.
85 @echo.
86 @echo OPTION: Optional, may be any of the following, use OPTION=1 to enable;
87 @echo multiple OPTION's may be used. If no OPTION is specified, a default
Chun-wei Fanf0aa1672017-02-23 13:02:49 +080088 @echo HarfBuzz DLL is built with OpenType and support with a bundled
89 @echo Unicode implementation (UCDN).
Chun-wei Fand7b66362015-11-03 19:00:42 +080090 @echo ======
Chun-wei Fanf0aa1672017-02-23 13:02:49 +080091 @echo.
92 @echo CAIRO_FT:
93 @echo Enables Cairo-Freetype support, needed for the build of the hb-view utility.
94 @echo Implies FreeType2 support and also requires Cairo built with FreeType2
95 @echo support; GLib2 support must also be enabled.
Ebrahim Byagowid8e2eb92016-10-09 09:06:05 +033096 @echo.
Chun-wei Fanf6ffba62015-12-09 14:57:15 +080097 @echo DIRECTWRITE:
98 @echo Enable DirectWrite support, requires a recent enough Windows SDK.
99 @echo.
Chun-wei Fand7b66362015-11-03 19:00:42 +0800100 @echo FREETYPE:
101 @echo Enable FreeType2 support, requires the FreeType2 library
102 @echo.
103 @echo GLIB:
104 @echo Enable GLib2 support, with GLib Unicode support, requires the GNOME GLib2
105 @echo library. Enables the build of utility programs.
106 @echo.
Chun-wei Fand7b66362015-11-03 19:00:42 +0800107 @echo GOBJECT:
108 @echo Enable the HarfBuzz-GObject library, also implies GLib2 support,
109 @echo requires the GNOME GLib2 libraries and tools, notably the glib-mkenums
fanc99948a94062017-10-07 18:57:14 +0800110 @echo tool script, which will require a Python interpretor (when using
111 @echo GObject/GLib 2.53.4 or later; use PYTHON=^$(PATH_TO_PYTHON_INTERPRETOR)
112 @echo if the Python interpretor is not already in your PATH) or PERL
113 @echo interpreter (when using GObject/GLib 2.53.3 or earlier; use
Chun-wei Fand7b66362015-11-03 19:00:42 +0800114 @echo PERL=^$(PATH_TO_PERL_INTERPRETOR)) if it is not already in your PATH).
115 @echo.
Chun-wei Fanf0aa1672017-02-23 13:02:49 +0800116 @echo GRAPHITE2:
117 @echo Enable graphite2 support, requires the SIL Graphite2 library
118 @echo.
119 @echo ICU:
120 @echo Enable build with ICU Unicode functions, requires the International
121 @echo Components for Unicode (ICU) libraries.
122 @echo.
Chun-wei Fand7b66362015-11-03 19:00:42 +0800123 @echo INTROSPECTION:
124 @echo Enable the build of introspection files, also implies GObject/GLib2 support,
125 @echo requires the GNOME gobject-introspection libraries and tools. You will need
126 @echo to ensure the pkg-config (.pc) files can be found for GObject-2.0 and the
elmarb4cd0cd62016-12-07 11:50:27 +0100127 @echo Python interpreter (that was used to build the gobject-introspection tools)
Chun-wei Fand7b66362015-11-03 19:00:42 +0800128 @echo can be found by setting PKG_CONFIG_PATH beforehand, and passing in PYTHON=
129 @echo ^$(PATH_TO_PYTHON_INTERPRETOR) respectively, if python.exe is not already
130 @echo in your PATH.
131 @echo.
Chun-wei Fand7b66362015-11-03 19:00:42 +0800132 @echo LIBTOOL_DLL_NAME:
133 @echo Use a libtool-style DLL name to mimic the DLL file naming generated by
134 @echo MinGW builds.
135 @echo.
Chun-wei Fanf0aa1672017-02-23 13:02:49 +0800136 @echo NO_UCDN:
137 @echo Do not use the bundled Unicode callback, which is the default. GLib or
138 @echo ICU-based unicode callback is therefore required.
fanc999ad52e042017-06-21 22:19:57 +0800139 @echo.
Chun-wei Fanf0aa1672017-02-23 13:02:49 +0800140 @echo UNISCRIBE:
141 @echo Enable Uniscribe support.
142 @echo.
fanc999ad52e042017-06-21 22:19:57 +0800143 @echo RAGEL:
144 @echo Set the full path to the Ragel state machine compiler, if not already in
145 @echo PATH. The Ragel state machine compiler is required if not building from
146 @echo a release tarball, or a rebuild is to be carried out after using the
147 @echo 'reallyclean' target.
148 @echo.
Chun-wei Fand7b66362015-11-03 19:00:42 +0800149 @echo Note that GLib2 support is required for all utility and test programs.
150 @echo ======
151 @echo A 'clean' target is supported to remove all generated files, intermediate
152 @echo object files and binaries for the specified configuration.
153 @echo.
154 @echo A 'tests' target is supported to build the test programs, if GLib2 support
155 @echo is enabled. Use after building the libraries and utilities.
156 @echo.
157 @echo An 'install' target is supported to copy the build (DLLs, utility programs,
158 @echo LIBs, along with the introspection files if applicable) to appropriate
159 @echo locations under ^$(PREFIX).
160 @echo ======
161 @echo.
162