[HarfBuzz] Windows build of harfbuzz with nmake
Juha Martikainen
juha.martikainen at anygraaf.fi
Mon Jun 13 07:36:47 UTC 2016
Hello!
I am working with Windows 10 system and Visual Studio 2012 compiler. I
would like to compile harfbuzz library for Scribus. I have taken the new
harfbuzz codes with git.
I have read win32 directory readme file instructions and try to
configure project using nmake. I run the following nmake command(in
win32 directory):
nmake /f Makefile.vc CFG=release /P
Resulting:
NMAKE : fatal error U1073: don't know how to make 'config.h.win32'
Stop.
Whole output:
<<
release\Win32\harfbuzz-gobject:
flags:
dependents:
commands: @-mkdir $@
release\Win32\harfbuzz-gobject.lib:
flags:
dependents: release\Win32\harfbuzz-gobject-vs11.dll
commands:
help:
flags:
dependents:
commands: @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,
fallback and Uniscribe support
@echo with a bundled Unicode implementation (UCDN).
@echo ======
@echo DIRECTWRITE:
@echo Enable DirectWrite support, requires a
recent enough Windows SDK.
@echo.
@echo GRAPHITE2:
@echo Enable graphite2 support, requires the
SIL Graphite2 library
@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 ICU:
@echo Enable the HarfBuzz-ICU layout library,
requires the International
@echo Components for Unicode (ICU) libraries.
@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
interpretor (use
@echo PERL=^$(PATH_TO_PERL_INTERPRETOR)) if it
is not already in your PATH).
@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 interpretor (that was used to
build the gobject-introsoection 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 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 LIBTOOL_DLL_NAME:
@echo Use a libtool-style DLL name to mimic the
DLL file naming generated by
@echo MinGW builds.
@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.
config.h:
flags:
dependents: config.h.win32
commands: @-copy $@.win32 $@
release\Win32\harfbuzz-vs11.dll:
flags:
dependents: config.h release\Win32\harfbuzz\hb-blob.obj
release\Win32\harfbuzz\hb-buffer-serialize.obj
release\Win32\harfbuzz\hb-buffer.obj
release\Win32\harfbuzz\hb-common.obj
release\Win32\harfbuzz\hb-face.obj
release\Win32\harfbuzz\hb-font.obj
release\Win32\harfbuzz\hb-ot-tag.obj
release\Win32\harfbuzz\hb-set.obj
release\Win32\harfbuzz\hb-shape.obj
release\Win32\harfbuzz\hb-shape-plan.obj
release\Win32\harfbuzz\hb-shaper.obj
release\Win32\harfbuzz\hb-unicode.obj
release\Win32\harfbuzz\hb-warning.obj
release\Win32\harfbuzz\hb-fallback-shape.obj
release\Win32\harfbuzz\hb-ot-font.obj
release\Win32\harfbuzz\hb-ot-layout.obj
release\Win32\harfbuzz\hb-ot-map.obj
release\Win32\harfbuzz\hb-ot-shape.obj
release\Win32\harfbuzz\hb-ot-shape-complex-arabic.obj
release\Win32\harfbuzz\hb-ot-shape-complex-default.obj
release\Win32\harfbuzz\hb-ot-shape-complex-hangul.obj
release\Win32\harfbuzz\hb-ot-shape-complex-hebrew.obj
release\Win32\harfbuzz\hb-ot-shape-complex-indic.obj
release\Win32\harfbuzz\hb-ot-shape-complex-indic-table.obj
release\Win32\harfbuzz\hb-ot-shape-complex-myanmar.obj
release\Win32\harfbuzz\hb-ot-shape-complex-thai.obj
release\Win32\harfbuzz\hb-ot-shape-complex-tibetan.obj
release\Win32\harfbuzz\hb-ot-shape-complex-use.obj
release\Win32\harfbuzz\hb-ot-shape-complex-use-table.obj
release\Win32\harfbuzz\hb-ot-shape-normalize.obj
release\Win32\harfbuzz\hb-ot-shape-fallback.obj
release\Win32\harfbuzz\hb-uniscribe.obj
release\Win32\harfbuzz\hb-ucdn.obj
release\Win32\harfbuzz\ucdn.obj
release\Win32\harfbuzz
commands: link /DLL $(LDFLAGS) $(HB_DEP_LIBS)
/implib:$(CFG)\$(PLAT)\harfbuzz.lib -out:$@ @<<
$(harfbuzz_dll_OBJS)
<<
@-if exist $@.manifest mt /manifest $@.manifest
/outputresource:$@;2
release\Win32\hb-shape.exe:
flags:
dependents: release\Win32\harfbuzz.lib release\Win32\util
commands: link $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib
$(HB_UTILS_DEP_LIBS) -out:$@ @<<
$(hb_shape_OBJS)
<<
@-if exist $@.manifest mt /manifest $@.manifest
/outputresource:$@;1
release\Win32\harfbuzz-icu-vs11.dll:
flags:
dependents: release\Win32\harfbuzz.lib
release\Win32\harfbuzz-icu
commands: link /DLL $(LDFLAGS)
$(CFG)\$(PLAT)\harfbuzz.lib $(HB_ICU_DEP_LIBS)
/implib:$(CFG)\$(PLAT)\harfbuzz-icu.lib -out:$@ @<<
$(harfbuzz_icu_OBJS)
<<
@-if exist $@.manifest mt /manifest $@.manifest
/outputresource:$@;2
release\Win32\util:
flags:
dependents:
commands: @-mkdir $@
all-build-info:
flags:
dependents: build-info-hb
commands: @echo.
@echo ----------------
@echo Other build info
@echo ----------------
@echo Built Libraries: $(BUILT_LIBRARIES)
@echo Built Tools: $(BUILT_TOOLS)
@echo Introspection: $(BUILD_INTROSPECTION)
all:
flags:
dependents: release\Win32\harfbuzz.lib all-build-info
commands:
release\Win32\hb-ot-shape-closure.exe:
flags:
dependents: release\Win32\harfbuzz.lib release\Win32\util
commands: link $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib
$(HB_UTILS_DEP_LIBS) -out:$@ @<<
$(hb_ot_shape_closure_OBJS)
<<
@-if exist $@.manifest mt /manifest $@.manifest
/outputresource:$@;1
clean:
flags:
dependents:
commands: @-if exist $(CFG)\$(PLAT)\HarfBuzz-0.0.typelib
del /f /q $(CFG)\$(PLAT)\HarfBuzz-0.0.typelib
@-if exist $(CFG)\$(PLAT)\HarfBuzz-0.0.gir del
/f /q $(CFG)\$(PLAT)\HarfBuzz-0.0.gir
@-if exist $(CFG)\$(PLAT)\hb_list del /f /q
$(CFG)\$(PLAT)\hb_list
@-del /f /q $(CFG)\$(PLAT)\*.pdb
@-if exist $(CFG)\$(PLAT)\.exe.manifest del /f
/q $(CFG)\$(PLAT)\*.exe.manifest
@-if exist $(CFG)\$(PLAT)\.exe del /f /q
$(CFG)\$(PLAT)\*.exe
@-del /f /q $(CFG)\$(PLAT)\*.dll.manifest
@-del /f /q $(CFG)\$(PLAT)\*.dll
@-del /f /q $(CFG)\$(PLAT)\*.ilk
@-del /f /q $(CFG)\$(PLAT)\*.obj
@-if exist $(CFG)\$(PLAT)\util del /f /q
$(CFG)\$(PLAT)\util\*.obj
@-if exist $(CFG)\$(PLAT)\harfbuzz-gobject del
/f /q $(CFG)\$(PLAT)\harfbuzz-gobject\*.obj
@-if exist $(CFG)\$(PLAT)\harfbuzz-icu del /f
/q $(CFG)\$(PLAT)\harfbuzz-icu\*.obj
@-del /f /q $(CFG)\$(PLAT)\harfbuzz\*.obj
@-rmdir /s /q $(CFG)\$(PLAT)
@-if exist
$(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.h del
$(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.h
@-if exist
$(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.cc del
$(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.cc
@-del vc$(VSVER)0.pdb
@-del config.h
release\Win32\harfbuzz-gobject-vs11.dll:
flags:
dependents: release\Win32\harfbuzz.lib
release\Win32\harfbuzz-gobject
commands: link /DLL $(LDFLAGS)
$(CFG)\$(PLAT)\harfbuzz.lib $(HB_GOBJECT_DEP_LIBS)
/implib:$(CFG)\$(PLAT)\harfbuzz-gobject.lib -out:$@ @<<
$(harfbuzz_gobject_OBJS)
<<
@-if exist $@.manifest mt /manifest $@.manifest
/outputresource:$@;2
release\Win32\harfbuzz-gobject\hb-gobject-enums.obj:
flags:
dependents: release\Win32\harfbuzz-gobject
commands: $(CXX) $(CFLAGS) $(HB_DEFINES) $(HB_LIB_CFLAGS)
/I$(CFG)\$(PLAT)\harfbuzz-gobject /Fo$(CFG)\$(PLAT)\harfbuzz-gobject\ /c @<<
$(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.cc
<<
release\Win32\harfbuzz:
flags:
dependents:
commands: @-mkdir $@
release\Win32\harfbuzz.lib:
flags:
dependents: release\Win32\harfbuzz-vs11.dll
commands:
NMAKE : fatal error U1073: don't know how to make 'config.h.win32'
Stop.
C:\Libraries-vc11\harfbuzz\win32>
--
Juha Martikainen
More information about the HarfBuzz
mailing list