Blob Blame History Raw
# 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 RAGEL:
	@echo Set the full path to the Ragel state machine compiler, if not already in
	@echo PATH.  The Ragel state machine compiler is required if not building from
	@echo a release tarball, or a rebuild is to be carried out after using the
	@echo 'reallyclean' target.
	@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.