summaryrefslogtreecommitdiff
path: root/win32/info-msvc.mak
blob: 70daf7625c808126e9348c061ec9baac435aaa03 (plain)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# NMake Makefile portion for displaying config info

INC_FEATURES = Fallback OT
BUILT_TOOLS =
BUILT_LIBRARIES = HarfBuzz

!if "$(NO_UCDN)" != "1"
UNICODE_IMPL = ucdn
!elseif "$(GLIB)" == "1"
UNICODE_IMPL = GLib
!elseif "$(ICU)" == "1"
UNICODE_IMPL = ICU
!endif

!if "$(GLIB)" == "1"
INC_FEATURES = $(INC_FEATURES) GLib
BUILT_TOOLS = hb-shape.exe hb-ot-shape-closure.exe
!if "$(CAIRO_FT)" == "1"
BUILT_TOOLS = hb-view.exe $(BUILT_TOOLS)
!endif
!endif
!if "$(ICU)" == "1"
INC_FEATURES = $(INC_FEATURES) ICU
!endif

!if "$(FREETYPE)" == "1"
INC_FEATURES = $(INC_FEATURES) FreeType
!endif

!if "$(GRAPHITE2)" == "1"
INC_FEATURES = $(INC_FEATURES) Graphite2
!endif

!if "$(UNISCRIBE)" == "1"
INC_FEATURES = $(INC_FEATURES) Uniscribe
!endif

!if "$(DIRECTWRITE)" == "1"
INC_FEATURES = $(INC_FEATURES) DirectWrite
!endif

!if "$(GOBJECT)" == "1"
BUILT_LIBRARIES = $(BUILT_LIBRARIES) HarfBuzz-GObject
!endif

!if "$(INTROSPECTION)" == "1"
BUILD_INTROSPECTION = yes
!else
BUILD_INTROSPECTION = no
!endif

build-info-hb:
	@echo.
	@echo ==================================
	@echo Configuration for HarfBuzz Library
	@echo ==================================
	@echo Unicode Implementation: $(UNICODE_IMPL)
	@echo Enabled Features: $(INC_FEATURES)

all-build-info: build-info-hb
	@echo.
	@echo ----------------
	@echo Other build info
	@echo ----------------
	@echo Built Libraries: $(BUILT_LIBRARIES)
	@echo Built Tools: $(BUILT_TOOLS)
	@echo Introspection: $(BUILD_INTROSPECTION)

help:
	@echo.
	@echo =============================
	@echo Building HarfBuzz Using NMake
	@echo =============================
	@echo nmake /f Makefile.vc CFG=[release^|debug] ^<PREFIX=PATH^> OPTION=1 ...
	@echo.
	@echo Where:
	@echo ------
	@echo CFG: Required, use CFG=release for an optimized build and CFG=debug
	@echo for a debug build.  PDB files are generated for all builds.
	@echo.
	@echo PREFIX: Optional, the path where dependent libraries and tools may be
	@echo found, default is ^$(srcrootdir)\..\vs^$(short_vs_ver)\^$(platform),
	@echo where ^$(short_vs_ver) is 9 for VS 2008, 10 for VS 2010 and so on; and
	@echo ^$(platform) is Win32 for 32-bit builds and x64 for x64 builds.
	@echo.
	@echo OPTION: Optional, may be any of the following, use OPTION=1 to enable;
	@echo multiple OPTION's may be used.  If no OPTION is specified, a default
	@echo HarfBuzz DLL is built with OpenType and support with a bundled
	@echo Unicode implementation (UCDN).
	@echo ======
	@echo.
	@echo CAIRO_FT:
	@echo Enables Cairo-Freetype support, needed for the build of the hb-view utility.
	@echo Implies FreeType2 support and also requires Cairo built with FreeType2
	@echo support; GLib2 support must also be enabled.
	@echo.
	@echo DIRECTWRITE:
	@echo Enable DirectWrite support, requires a recent enough Windows SDK.
	@echo.
	@echo FREETYPE:
	@echo Enable FreeType2 support, requires the FreeType2 library
	@echo.
	@echo GLIB:
	@echo Enable GLib2 support, with GLib Unicode support, requires the GNOME GLib2
	@echo library.  Enables the build of utility programs.
	@echo.
	@echo GOBJECT:
	@echo Enable the HarfBuzz-GObject library, also implies GLib2 support,
	@echo requires the GNOME GLib2 libraries and tools, notably the glib-mkenums
	@echo tool script, which will require a PERL interpreter (use
	@echo PERL=^$(PATH_TO_PERL_INTERPRETOR)) if it is not already in your PATH).
	@echo.
	@echo GRAPHITE2:
	@echo Enable graphite2 support, requires the SIL Graphite2 library
	@echo.
	@echo ICU:
	@echo Enable build with ICU Unicode functions, requires the International
	@echo Components for Unicode (ICU) libraries.
	@echo.
	@echo INTROSPECTION:
	@echo Enable the build of introspection files, also implies GObject/GLib2 support,
	@echo requires the GNOME gobject-introspection libraries and tools.  You will need
	@echo to ensure the pkg-config (.pc) files can be found for GObject-2.0 and the
	@echo Python interpreter (that was used to build the gobject-introspection tools)
	@echo can be found by setting PKG_CONFIG_PATH beforehand, and passing in PYTHON=
	@echo ^$(PATH_TO_PYTHON_INTERPRETOR) respectively, if python.exe is not already
	@echo in your PATH.
	@echo.
	@echo LIBTOOL_DLL_NAME:
	@echo Use a libtool-style DLL name to mimic the DLL file naming generated by
	@echo MinGW builds.
	@echo.
	@echo NO_UCDN:
	@echo Do not use the bundled Unicode callback, which is the default.  GLib or
	@echo ICU-based unicode callback is therefore required.
	@echo
	@echo UNISCRIBE:
	@echo Enable Uniscribe support.
	@echo.
	@echo Note that GLib2 support is required for all utility and test programs.
	@echo ======
	@echo A 'clean' target is supported to remove all generated files, intermediate
	@echo object files and binaries for the specified configuration.
	@echo.
	@echo A 'tests' target is supported to build the test programs, if GLib2 support
	@echo is enabled.  Use after building the libraries and utilities.
	@echo.
	@echo An 'install' target is supported to copy the build (DLLs, utility programs,
	@echo LIBs, along with the introspection files if applicable) to appropriate
	@echo locations under ^$(PREFIX).
	@echo ======
	@echo.