1# NMake Makefile portion for displaying config info
2
3INC_FEATURES = Uniscribe Fallback OT
4BUILT_TOOLS =
5BUILT_LIBRARIES = HarfBuzz
6
7!if "$(GLIB)" == "1"
8UNICODE_IMPL = GLib
9INC_FEATURES = $(INC_FEATURES) GLib
10BUILT_TOOLS = hb-shape.exe hb-ot-shape-closure.exe
11!if "$(CAIRO_FT)" == "1"
12BUILT_TOOLS = hb-view.exe $(BUILT_TOOLS)
13!endif
14!else
15UNICODE_IMPL = ucdn
16!endif
17
18!if "$(FREETYPE)" == "1"
19INC_FEATURES = $(INC_FEATURES) FreeType
20!endif
21
22!if "$(GRAPHITE2)" == "1"
23INC_FEATURES = $(INC_FEATURES) Graphite2
24!endif
25
26!if "$(DIRECTWRITE)" == "1"
27INC_FEATURES = $(INC_FEATURES) DirectWrite
28!endif
29
30!if "$(ICU)" == "1"
31BUILT_LIBRARIES = $(BUILT_LIBRARIES) HarfBuzz-ICU
32!endif
33
34!if "$(GOBJECT)" == "1"
35BUILT_LIBRARIES = $(BUILT_LIBRARIES) HarfBuzz-GObject
36!endif
37
38!if "$(INTROSPECTION)" == "1"
39BUILD_INTROSPECTION = yes
40!else
41BUILD_INTROSPECTION = no
42!endif
43
44build-info-hb:
45	@echo.
46	@echo ==================================
47	@echo Configuration for HarfBuzz Library
48	@echo ==================================
49	@echo Unicode Implementation: $(UNICODE_IMPL)
50	@echo Enabled Features: $(INC_FEATURES)
51
52all-build-info: build-info-hb
53	@echo.
54	@echo ----------------
55	@echo Other build info
56	@echo ----------------
57	@echo Built Libraries: $(BUILT_LIBRARIES)
58	@echo Built Tools: $(BUILT_TOOLS)
59	@echo Introspection: $(BUILD_INTROSPECTION)
60
61help:
62	@echo.
63	@echo =============================
64	@echo Building HarfBuzz Using NMake
65	@echo =============================
66	@echo nmake /f Makefile.vc CFG=[release^|debug] ^<PREFIX=PATH^> OPTION=1 ...
67	@echo.
68	@echo Where:
69	@echo ------
70	@echo CFG: Required, use CFG=release for an optimized build and CFG=debug
71	@echo for a debug build.  PDB files are generated for all builds.
72	@echo.
73	@echo PREFIX: Optional, the path where dependent libraries and tools may be
74	@echo found, default is ^$(srcrootdir)\..\vs^$(short_vs_ver)\^$(platform),
75	@echo where ^$(short_vs_ver) is 9 for VS 2008, 10 for VS 2010 and so on; and
76	@echo ^$(platform) is Win32 for 32-bit builds and x64 for x64 builds.
77	@echo.
78	@echo OPTION: Optional, may be any of the following, use OPTION=1 to enable;
79	@echo multiple OPTION's may be used.  If no OPTION is specified, a default
80	@echo HarfBuzz DLL is built with OpenType, fallback and Uniscribe support
81	@echo with a bundled Unicode implementation (UCDN).
82	@echo ======
83	@echo DIRECTWRITE:
84	@echo Enable DirectWrite support, requires a recent enough Windows SDK.
85	@echo.
86	@echo GRAPHITE2:
87	@echo Enable graphite2 support, requires the SIL Graphite2 library
88	@echo.
89	@echo FREETYPE:
90	@echo Enable FreeType2 support, requires the FreeType2 library
91	@echo.
92	@echo GLIB:
93	@echo Enable GLib2 support, with GLib Unicode support, requires the GNOME GLib2
94	@echo library.  Enables the build of utility programs.
95	@echo.
96	@echo ICU:
97	@echo Enable the HarfBuzz-ICU layout library, requires the International
98	@echo Components for Unicode (ICU) libraries.
99	@echo.
100	@echo GOBJECT:
101	@echo Enable the HarfBuzz-GObject library, also implies GLib2 support,
102	@echo requires the GNOME GLib2 libraries and tools, notably the glib-mkenums
103	@echo tool script, which will require a PERL interpretor (use
104	@echo PERL=^$(PATH_TO_PERL_INTERPRETOR)) if it is not already in your PATH).
105	@echo.
106	@echo INTROSPECTION:
107	@echo Enable the build of introspection files, also implies GObject/GLib2 support,
108	@echo requires the GNOME gobject-introspection libraries and tools.  You will need
109	@echo to ensure the pkg-config (.pc) files can be found for GObject-2.0 and the
110	@echo Python interpretor (that was used to build the gobject-introsoection tools)
111	@echo can be found by setting PKG_CONFIG_PATH beforehand, and passing in PYTHON=
112	@echo ^$(PATH_TO_PYTHON_INTERPRETOR) respectively, if python.exe is not already
113	@echo in your PATH.
114	@echo.
115	@echo CAIRO_FT:
116	@echo Enables Cairo-Freetype support, needed for the build of the hb-view utility.
117	@echo Implies FreeType2 support and also requires Cairo built with FreeType2
118	@echo support; GLib2 support must also be enabled.
119	@echo.
120	@echo LIBTOOL_DLL_NAME:
121	@echo Use a libtool-style DLL name to mimic the DLL file naming generated by
122	@echo MinGW builds.
123	@echo.
124	@echo Note that GLib2 support is required for all utility and test programs.
125	@echo ======
126	@echo A 'clean' target is supported to remove all generated files, intermediate
127	@echo object files and binaries for the specified configuration.
128	@echo.
129	@echo A 'tests' target is supported to build the test programs, if GLib2 support
130	@echo is enabled.  Use after building the libraries and utilities.
131	@echo.
132	@echo An 'install' target is supported to copy the build (DLLs, utility programs,
133	@echo LIBs, along with the introspection files if applicable) to appropriate
134	@echo locations under ^$(PREFIX).
135	@echo ======
136	@echo.
137	
138