harfbuzz/src/Makefile.am

448 lines
12 KiB
Makefile
Raw Normal View History

2009-08-11 05:35:05 +02:00
# Process this file with automake to produce Makefile.in
NULL =
SUBDIRS =
DIST_SUBDIRS =
BUILT_SOURCES =
2011-01-10 04:29:14 +01:00
EXTRA_DIST =
CLEANFILES =
DISTCLEANFILES =
MAINTAINERCLEANFILES =
DISTCHECK_CONFIGURE_FLAGS = --enable-introspection
2012-07-13 17:29:31 +02:00
# The following warning options are useful for debugging: -Wpadded
#AM_CXXFLAGS =
# Convenience targets:
2015-07-20 14:30:45 +02:00
lib: $(BUILT_SOURCES) libharfbuzz.la
fuzzing: $(BUILT_SOURCES) libharfbuzz-fuzzing.la
2009-11-02 22:28:39 +01:00
lib_LTLIBRARIES = libharfbuzz.la
2009-11-03 22:35:10 +01:00
HBCFLAGS =
HBLIBS =
HBNONPCLIBS =
HBDEPS =
HBSOURCES = \
2012-05-18 02:30:46 +02:00
hb-atomic-private.hh \
hb-blob.cc \
2013-03-05 03:29:38 +01:00
hb-buffer-deserialize-json.hh \
hb-buffer-deserialize-text.hh \
hb-buffer-private.hh \
hb-buffer-serialize.cc \
hb-buffer.cc \
hb-cache-private.hh \
hb-common.cc \
hb-face-private.hh \
hb-face.cc \
hb-font-private.hh \
hb-font.cc \
hb-mutex-private.hh \
hb-object-private.hh \
hb-open-file-private.hh \
hb-open-type-private.hh \
2014-05-09 21:35:56 +02:00
hb-ot-cmap-table.hh \
hb-ot-glyf-table.hh \
hb-ot-head-table.hh \
2011-08-24 19:16:13 +02:00
hb-ot-hhea-table.hh \
hb-ot-hmtx-table.hh \
hb-ot-maxp-table.hh \
hb-ot-name-table.hh \
2011-08-06 02:34:50 +02:00
hb-ot-tag.cc \
hb-private.hh \
2012-04-24 04:41:09 +02:00
hb-set-private.hh \
hb-set.cc \
hb-shape.cc \
hb-shape-plan-private.hh \
hb-shape-plan.cc \
hb-shaper-list.hh \
hb-shaper-impl-private.hh \
hb-shaper-private.hh \
2012-07-27 04:05:39 +02:00
hb-shaper.cc \
2011-04-20 08:00:47 +02:00
hb-unicode-private.hh \
hb-unicode.cc \
hb-utf-private.hh \
hb-warning.cc \
$(NULL)
HBHEADERS = \
hb.h \
hb-blob.h \
hb-buffer.h \
hb-common.h \
hb-deprecated.h \
hb-face.h \
hb-font.h \
2012-04-24 04:41:09 +02:00
hb-set.h \
hb-shape.h \
hb-shape-plan.h \
hb-unicode.h \
$(NULL)
HBNODISTHEADERS = \
hb-version.h \
$(NULL)
if HAVE_OT
HBSOURCES += \
hb-ot-font.cc \
hb-ot-layout.cc \
hb-ot-layout-common-private.hh \
hb-ot-layout-gdef-table.hh \
hb-ot-layout-gpos-table.hh \
hb-ot-layout-gsubgpos-private.hh \
hb-ot-layout-gsub-table.hh \
2013-09-09 21:43:10 +02:00
hb-ot-layout-jstf-table.hh \
hb-ot-layout-private.hh \
2010-10-09 02:14:57 +02:00
hb-ot-map.cc \
2010-10-09 01:18:16 +02:00
hb-ot-map-private.hh \
hb-ot-shape.cc \
hb-ot-shape-complex-arabic.cc \
hb-ot-shape-complex-arabic-fallback.hh \
hb-ot-shape-complex-arabic-private.hh \
hb-ot-shape-complex-arabic-table.hh \
hb-ot-shape-complex-arabic-win1256.hh \
2012-11-15 00:51:54 +01:00
hb-ot-shape-complex-default.cc \
hb-ot-shape-complex-hangul.cc \
hb-ot-shape-complex-hebrew.cc \
hb-ot-shape-complex-indic.cc \
hb-ot-shape-complex-indic-machine.hh \
2012-04-20 04:34:06 +02:00
hb-ot-shape-complex-indic-private.hh \
hb-ot-shape-complex-indic-table.cc \
hb-ot-shape-complex-myanmar.cc \
hb-ot-shape-complex-myanmar-machine.hh \
2012-11-15 00:51:54 +01:00
hb-ot-shape-complex-thai.cc \
hb-ot-shape-complex-tibetan.cc \
hb-ot-shape-complex-use.cc \
hb-ot-shape-complex-use-machine.hh \
hb-ot-shape-complex-use-private.hh \
hb-ot-shape-complex-use-table.cc \
hb-ot-shape-complex-private.hh \
hb-ot-shape-normalize-private.hh \
2011-07-21 06:51:18 +02:00
hb-ot-shape-normalize.cc \
2012-08-08 20:33:37 +02:00
hb-ot-shape-fallback-private.hh \
hb-ot-shape-fallback.cc \
2010-10-09 01:18:40 +02:00
hb-ot-shape-private.hh \
$(NULL)
HBHEADERS += \
2009-08-02 21:35:31 +02:00
hb-ot.h \
hb-ot-font.h \
hb-ot-layout.h \
2013-12-22 14:02:11 +01:00
hb-ot-shape.h \
hb-ot-tag.h \
$(NULL)
endif
if HAVE_FALLBACK
HBSOURCES += hb-fallback-shape.cc
endif
2012-10-02 20:55:32 +02:00
if HAVE_PTHREAD
HBCFLAGS += $(PTHREAD_CFLAGS)
HBNONPCLIBS += $(PTHREAD_LIBS)
2012-10-02 20:55:32 +02:00
endif
2009-11-03 00:33:52 +01:00
if HAVE_GLIB
2009-11-03 22:35:10 +01:00
HBCFLAGS += $(GLIB_CFLAGS)
2009-11-04 00:34:20 +01:00
HBLIBS += $(GLIB_LIBS)
HBDEPS += $(GLIB_DEPS)
HBSOURCES += hb-glib.cc
HBHEADERS += hb-glib.h
endif
2009-11-04 00:34:20 +01:00
if HAVE_FREETYPE
HBCFLAGS += $(FREETYPE_CFLAGS)
HBLIBS += $(FREETYPE_LIBS)
# XXX
# The following creates a recursive dependency on FreeType if FreeType is
# built with HarfBuzz support enabled. Newer pkg-config handles that just
# fine but pkg-config 0.26 as shipped in Ubuntu 14.04 crashes. Remove
# in a year or two, or otherwise work around it...
#HBDEPS += $(FREETYPE_DEPS)
HBSOURCES += hb-ft.cc
HBHEADERS += hb-ft.h
2009-11-04 00:34:20 +01:00
endif
if HAVE_GRAPHITE2
HBCFLAGS += $(GRAPHITE2_CFLAGS)
HBLIBS += $(GRAPHITE2_LIBS)
HBDEPS += $(GRAPHITE2_DEPS)
HBSOURCES += hb-graphite2.cc
HBHEADERS += hb-graphite2.h
endif
if HAVE_UNISCRIBE
HBCFLAGS += $(UNISCRIBE_CFLAGS)
HBNONPCLIBS += $(UNISCRIBE_LIBS)
HBSOURCES += hb-uniscribe.cc
HBHEADERS += hb-uniscribe.h
endif
if HAVE_CORETEXT
HBCFLAGS += $(CORETEXT_CFLAGS)
HBNONPCLIBS += $(CORETEXT_LIBS)
HBSOURCES += hb-coretext.cc
HBHEADERS += hb-coretext.h
endif
if HAVE_UCDN
SUBDIRS += hb-ucdn
HBCFLAGS += -I$(srcdir)/hb-ucdn
HBLIBS += hb-ucdn/libhb-ucdn.la
HBSOURCES += hb-ucdn.cc
endif
DIST_SUBDIRS += hb-ucdn
# Put the library together
HBLIBS += $(HBNONPCLIBS)
if OS_WIN32
export_symbols = -export-symbols harfbuzz.def
harfbuzz_def_dependency = harfbuzz.def
libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS)
else
2013-01-14 07:27:21 +01:00
# Use a C linker for GCC, not C++; Don't link to libstdc++
if HAVE_GCC
2012-06-06 03:14:04 +02:00
libharfbuzz_la_LINK = $(LINK) $(libharfbuzz_la_LDFLAGS)
2013-01-14 07:27:21 +01:00
else
libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS)
endif
endif
libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS) $(HBNODISTHEADERS)
2009-11-03 22:35:10 +01:00
libharfbuzz_la_CPPFLAGS = $(HBCFLAGS)
libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined
2009-11-03 22:35:10 +01:00
libharfbuzz_la_LIBADD = $(HBLIBS)
2012-09-19 01:42:06 +02:00
EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency)
2009-11-02 22:28:39 +01:00
pkginclude_HEADERS = $(HBHEADERS)
nodist_pkginclude_HEADERS = $(HBNODISTHEADERS)
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = harfbuzz.pc
2013-05-28 23:23:56 +02:00
EXTRA_DIST += harfbuzz.pc.in
FUZZING_CPPFLAGS= \
-DHB_MAX_NESTING_LEVEL=3 \
-DHB_SANITIZE_MAX_EDITS=3 \
-DHB_BUFFER_MAX_EXPANSION_FACTOR=3 \
-DHB_BUFFER_MAX_LEN_MIN=8 \
-DHB_BUFFER_MAX_LEN_DEFAULT=128 \
$(NULL)
EXTRA_LTLIBRARIES = libharfbuzz-fuzzing.la
libharfbuzz_fuzzing_la_LINK = $(libharfbuzz_la_LINK)
libharfbuzz_fuzzing_la_SOURCES = $(libharfbuzz_la_SOURCES)
libharfbuzz_fuzzing_la_CPPFLAGS = $(libharfbuzz_la_CPPFLAGS) $(FUZZING_CPPFLAGS)
libharfbuzz_fuzzing_la_LDFLAGS = $(libharfbuzz_la_LDFLAGS)
libharfbuzz_fuzzing_la_LIBADD = $(libharfbuzz_la_LIBADD)
EXTRA_libharfbuzz_fuzzing_la_DEPENDENCIES = $(EXTRA_libharfbuzz_la_DEPENDENCIES)
2015-11-19 08:52:34 +01:00
CLEANFILES += libharfbuzz-fuzzing.la
2013-05-28 21:27:40 +02:00
if HAVE_ICU
lib_LTLIBRARIES += libharfbuzz-icu.la
libharfbuzz_icu_la_SOURCES = hb-icu.cc
libharfbuzz_icu_la_CPPFLAGS = $(ICU_CFLAGS)
libharfbuzz_icu_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined
libharfbuzz_icu_la_LIBADD = $(ICU_LIBS) libharfbuzz.la
pkginclude_HEADERS += hb-icu.h
pkgconfig_DATA += harfbuzz-icu.pc
2013-05-28 21:27:40 +02:00
endif
EXTRA_DIST += harfbuzz-icu.pc.in
2013-05-28 21:27:40 +02:00
if HAVE_GOBJECT
lib_LTLIBRARIES += libharfbuzz-gobject.la
libharfbuzz_gobject_la_SOURCES = hb-gobject-structs.cc
nodist_libharfbuzz_gobject_la_SOURCES = hb-gobject-enums.cc
libharfbuzz_gobject_la_CPPFLAGS = $(GOBJECT_CFLAGS)
libharfbuzz_gobject_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined
libharfbuzz_gobject_la_LIBADD = $(GOBJECT_LIBS) libharfbuzz.la
pkginclude_HEADERS += hb-gobject.h hb-gobject-structs.h
nodist_pkginclude_HEADERS += hb-gobject-enums.h
pkgconfig_DATA += harfbuzz-gobject.pc
BUILT_SOURCES += \
hb-gobject-enums.cc \
hb-gobject-enums.h \
$(NULL)
DISTCLEANFILES += \
hb-gobject-enums.cc \
hb-gobject-enums.h \
$(NULL)
hb-gobject-enums.%: hb-gobject-enums.%.tmpl $(HBHEADERS)
$(AM_V_GEN) $(GLIB_MKENUMS) \
--identifier-prefix hb_ --symbol-prefix hb_gobject \
--template $^ | \
sed 's/_t_get_type/_get_type/g; s/_T (/ (/g' > "$@" \
|| ($(RM) "$@"; false)
endif
EXTRA_DIST += \
harfbuzz-gobject.pc.in \
hb-gobject-enums.cc.tmpl \
hb-gobject-enums.h.tmpl \
$(NULL)
%.pc: %.pc.in $(top_builddir)/config.status
$(AM_V_GEN) \
2013-06-06 23:16:01 +02:00
$(SED) -e 's@%prefix%@$(prefix)@g' \
-e 's@%exec_prefix%@$(exec_prefix)@g' \
-e 's@%libdir%@$(libdir)@g' \
-e 's@%includedir%@$(includedir)@g' \
-e 's@%libs_private%@$(HBNONPCLIBS)@g' \
-e 's@%requires_private%@$(HBDEPS)@g' \
2013-06-06 23:16:01 +02:00
-e 's@%VERSION%@$(VERSION)@g' \
"$<" > "$@" \
|| ($(RM) "$@"; false)
2013-05-28 23:23:56 +02:00
CLEANFILES += $(pkgconfig_DATA)
2013-05-28 21:27:40 +02:00
CLEANFILES += harfbuzz.def
harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS)
$(AM_V_GEN) (echo EXPORTS; \
(cat $^ || echo 'hb_ERROR ()' ) | \
$(EGREP) '^hb_.* \(' | \
sed -e 's/ (.*//' | \
LANG=C sort; \
echo LIBRARY libharfbuzz-0.dll; \
) >"$@"
@ ! grep -q hb_ERROR "$@" \
|| ($(RM) "$@"; false)
GENERATORS = \
2011-06-02 00:10:10 +02:00
gen-arabic-table.py \
gen-indic-table.py \
gen-use-table.py \
$(NULL)
EXTRA_DIST += $(GENERATORS)
unicode-tables: arabic-table indic-table use-table
2012-03-07 18:08:33 +01:00
arabic-table: gen-arabic-table.py ArabicShaping.txt UnicodeData.txt Blocks.txt
$(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-arabic-table.hh \
|| ($(RM) hb-ot-shape-complex-arabic-table.hh; false)
2012-03-07 18:08:33 +01:00
indic-table: gen-indic-table.py IndicSyllabicCategory-7.0.0.txt IndicMatraCategory-7.0.0.txt Blocks.txt
$(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-indic-table.cc \
|| ($(RM) hb-ot-shape-complex-indic-table.cc; false)
use-table: gen-use-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt UnicodeData.txt Blocks.txt
$(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-use-table.cc \
|| ($(RM) hb-ot-shape-complex-use-table.cc; false)
2014-03-21 22:37:27 +01:00
built-sources: $(BUILT_SOURCES)
2012-03-07 18:08:33 +01:00
.PHONY: unicode-tables arabic-table indic-table use-table built-sources
2012-03-07 18:08:33 +01:00
2014-10-01 20:24:07 +02:00
RAGEL_GENERATED = \
$(srcdir)/hb-buffer-deserialize-json.hh \
$(srcdir)/hb-buffer-deserialize-text.hh \
$(srcdir)/hb-ot-shape-complex-indic-machine.hh \
$(srcdir)/hb-ot-shape-complex-myanmar-machine.hh \
$(srcdir)/hb-ot-shape-complex-use-machine.hh \
$(NULL)
2014-10-01 20:24:07 +02:00
BUILT_SOURCES += $(RAGEL_GENERATED)
EXTRA_DIST += \
hb-buffer-deserialize-json.rl \
hb-buffer-deserialize-text.rl \
hb-ot-shape-complex-indic-machine.rl \
hb-ot-shape-complex-myanmar-machine.rl \
hb-ot-shape-complex-use-machine.rl \
$(NULL)
2014-10-01 20:24:07 +02:00
MAINTAINERCLEANFILES += $(RAGEL_GENERATED)
$(srcdir)/%.hh: $(srcdir)/%.rl
$(AM_V_GEN)(cd $(srcdir) && $(RAGEL) -e -F1 -o "$*.hh" "$*.rl") \
|| ($(RM) "$@"; false)
noinst_PROGRAMS = \
main \
test \
test-buffer-serialize \
test-size-params \
test-would-substitute \
$(NULL)
bin_PROGRAMS =
main_SOURCES = main.cc
2009-11-03 22:35:10 +01:00
main_CPPFLAGS = $(HBCFLAGS)
main_LDADD = libharfbuzz.la $(HBLIBS)
2009-11-02 20:35:51 +01:00
test_SOURCES = test.cc
test_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
test_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
2012-07-19 20:59:15 +02:00
test_would_substitute_SOURCES = test-would-substitute.cc
test_would_substitute_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
test_would_substitute_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
test_size_params_SOURCES = test-size-params.cc
test_size_params_CPPFLAGS = $(HBCFLAGS)
test_size_params_LDADD = libharfbuzz.la $(HBLIBS)
test_buffer_serialize_SOURCES = test-buffer-serialize.cc
test_buffer_serialize_CPPFLAGS = $(HBCFLAGS)
test_buffer_serialize_LDADD = libharfbuzz.la $(HBLIBS)
2011-01-10 04:29:14 +01:00
dist_check_SCRIPTS = \
2010-07-23 21:11:18 +02:00
check-c-linkage-decls.sh \
2013-09-17 03:49:56 +02:00
check-defs.sh \
check-header-guards.sh \
2011-05-27 21:58:54 +02:00
check-includes.sh \
2013-05-28 21:27:40 +02:00
check-libstdc++.sh \
check-static-inits.sh \
check-symbols.sh \
2013-05-28 21:27:40 +02:00
$(NULL)
2012-08-29 01:08:36 +02:00
TESTS = $(dist_check_SCRIPTS)
2011-05-27 21:58:54 +02:00
TESTS_ENVIRONMENT = \
srcdir="$(srcdir)" \
MAKE="$(MAKE) $(AM_MAKEFLAGS)" \
HBSOURCES="$(HBSOURCES)" \
HBHEADERS="$(HBHEADERS) $(HBNODISTHEADERS)" \
2011-05-27 21:58:54 +02:00
$(NULL)
2011-01-10 04:29:14 +01:00
if HAVE_INTROSPECTION
-include $(INTROSPECTION_MAKEFILE)
2015-07-26 23:39:10 +02:00
INTROSPECTION_GIRS = HarfBuzz-0.0.gir # What does the 0 mean anyway?!
INTROSPECTION_SCANNER_ARGS = -I$(srcdir) -n hb --identifier-prefix=hb_ --warn-all
INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
INTROSPECTION_SCANNER_ENV = CC="$(CC)"
HarfBuzz-0.0.gir: libharfbuzz.la libharfbuzz-gobject.la
HarfBuzz_0_0_gir_INCLUDES = GObject-2.0
HarfBuzz_0_0_gir_CFLAGS = \
$(INCLUDES) \
$(HBCFLAGS) \
-DHB_H \
-DHB_H_IN \
-DHB_OT_H \
-DHB_OT_H_IN \
-DHB_GOBJECT_H \
-DHB_GOBJECT_H_IN \
$(NULL)
HarfBuzz_0_0_gir_LIBS = \
libharfbuzz.la \
libharfbuzz-gobject.la \
$(NULL)
HarfBuzz_0_0_gir_FILES = \
$(HBHEADERS) \
$(HBNODISTHEADERS) \
$(HBSOURCES) \
hb-gobject-enums.cc \
hb-gobject-enums.h \
hb-gobject-structs.cc \
hb-gobject-structs.h \
$(NULL)
girdir = $(datadir)/gir-1.0
gir_DATA = $(INTROSPECTION_GIRS)
typelibdir = $(libdir)/girepository-1.0
typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
CLEANFILES += $(gir_DATA) $(typelib_DATA)
endif
2009-04-17 23:03:39 +02:00
-include $(top_srcdir)/git.mk