Chun-wei Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 1 | # NMake Makefile portion for displaying config info |
| 2 | |
Ebrahim Byagowi | d8e2eb9 | 2016-10-09 09:06:05 +0330 | [diff] [blame] | 3 | INC_FEATURES = Fallback OT |
Chun-wei Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 4 | BUILT_TOOLS = |
| 5 | BUILT_LIBRARIES = HarfBuzz |
| 6 | |
Chun-wei Fan | f0aa167 | 2017-02-23 13:02:49 +0800 | [diff] [blame] | 7 | !if "$(NO_UCDN)" != "1" |
| 8 | UNICODE_IMPL = ucdn |
Chun-wei Fan | bc1244e | 2017-04-06 18:44:28 +0800 | [diff] [blame] | 9 | !elseif "$(GLIB)" == "1" |
Chun-wei Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 10 | UNICODE_IMPL = GLib |
Chun-wei Fan | bc1244e | 2017-04-06 18:44:28 +0800 | [diff] [blame] | 11 | !elseif "$(ICU)" == "1" |
| 12 | UNICODE_IMPL = ICU |
| 13 | !endif |
| 14 | |
| 15 | !if "$(GLIB)" == "1" |
Chun-wei Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 16 | INC_FEATURES = $(INC_FEATURES) GLib |
| 17 | BUILT_TOOLS = hb-shape.exe hb-ot-shape-closure.exe |
| 18 | !if "$(CAIRO_FT)" == "1" |
| 19 | BUILT_TOOLS = hb-view.exe $(BUILT_TOOLS) |
| 20 | !endif |
Chun-wei Fan | f0aa167 | 2017-02-23 13:02:49 +0800 | [diff] [blame] | 21 | !endif |
Chun-wei Fan | bc1244e | 2017-04-06 18:44:28 +0800 | [diff] [blame] | 22 | !if "$(ICU)" == "1" |
| 23 | INC_FEATURES = $(INC_FEATURES) ICU |
Chun-wei Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 24 | !endif |
| 25 | |
| 26 | !if "$(FREETYPE)" == "1" |
| 27 | INC_FEATURES = $(INC_FEATURES) FreeType |
| 28 | !endif |
| 29 | |
| 30 | !if "$(GRAPHITE2)" == "1" |
| 31 | INC_FEATURES = $(INC_FEATURES) Graphite2 |
| 32 | !endif |
| 33 | |
Ebrahim Byagowi | d8e2eb9 | 2016-10-09 09:06:05 +0330 | [diff] [blame] | 34 | !if "$(UNISCRIBE)" == "1" |
| 35 | INC_FEATURES = $(INC_FEATURES) Uniscribe |
| 36 | !endif |
| 37 | |
Chun-wei Fan | f6ffba6 | 2015-12-09 14:57:15 +0800 | [diff] [blame] | 38 | !if "$(DIRECTWRITE)" == "1" |
| 39 | INC_FEATURES = $(INC_FEATURES) DirectWrite |
| 40 | !endif |
| 41 | |
Chun-wei Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 42 | !if "$(GOBJECT)" == "1" |
| 43 | BUILT_LIBRARIES = $(BUILT_LIBRARIES) HarfBuzz-GObject |
| 44 | !endif |
| 45 | |
| 46 | !if "$(INTROSPECTION)" == "1" |
| 47 | BUILD_INTROSPECTION = yes |
| 48 | !else |
| 49 | BUILD_INTROSPECTION = no |
| 50 | !endif |
| 51 | |
| 52 | build-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 | |
| 60 | all-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 | |
| 69 | help: |
| 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 Fan | f0aa167 | 2017-02-23 13:02:49 +0800 | [diff] [blame] | 88 | @echo HarfBuzz DLL is built with OpenType and support with a bundled |
| 89 | @echo Unicode implementation (UCDN). |
Chun-wei Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 90 | @echo ====== |
Chun-wei Fan | f0aa167 | 2017-02-23 13:02:49 +0800 | [diff] [blame] | 91 | @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 Byagowi | d8e2eb9 | 2016-10-09 09:06:05 +0330 | [diff] [blame] | 96 | @echo. |
Chun-wei Fan | f6ffba6 | 2015-12-09 14:57:15 +0800 | [diff] [blame] | 97 | @echo DIRECTWRITE: |
| 98 | @echo Enable DirectWrite support, requires a recent enough Windows SDK. |
| 99 | @echo. |
Chun-wei Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 100 | @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 Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 107 | @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 |
fanc999 | 48a9406 | 2017-10-07 18:57:14 +0800 | [diff] [blame] | 110 | @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 Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 114 | @echo PERL=^$(PATH_TO_PERL_INTERPRETOR)) if it is not already in your PATH). |
| 115 | @echo. |
Chun-wei Fan | f0aa167 | 2017-02-23 13:02:49 +0800 | [diff] [blame] | 116 | @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 Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 123 | @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 |
elmarb | 4cd0cd6 | 2016-12-07 11:50:27 +0100 | [diff] [blame] | 127 | @echo Python interpreter (that was used to build the gobject-introspection tools) |
Chun-wei Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 128 | @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 Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 132 | @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 Fan | f0aa167 | 2017-02-23 13:02:49 +0800 | [diff] [blame] | 136 | @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. |
fanc999 | ad52e04 | 2017-06-21 22:19:57 +0800 | [diff] [blame] | 139 | @echo. |
Chun-wei Fan | f0aa167 | 2017-02-23 13:02:49 +0800 | [diff] [blame] | 140 | @echo UNISCRIBE: |
| 141 | @echo Enable Uniscribe support. |
| 142 | @echo. |
fanc999 | ad52e04 | 2017-06-21 22:19:57 +0800 | [diff] [blame] | 143 | @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 Fan | d7b6636 | 2015-11-03 19:00:42 +0800 | [diff] [blame] | 149 | @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 | |