[HarfBuzz] Windows build of harfbuzz with nmake

Cosimo Lupo cosimo.lupo at daltonmaag.com
Mon Jun 13 08:11:44 UTC 2016


As far as I remember it only works if you build from a released tarball. If
you have cloned harfbuzz from git, you probably need to first make a new
source distribution and then try to build from there.
Hope this helps,
Cheers

Cosimo
On 13 Jun 2016 8:53 a.m., "Juha Martikainen" <juha.martikainen at anygraaf.fi>
wrote:

> 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
>
> _______________________________________________
> HarfBuzz mailing list
> HarfBuzz at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/harfbuzz
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/harfbuzz/attachments/20160613/0e1fe363/attachment-0001.html>


More information about the HarfBuzz mailing list