X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2FMakefile.am;h=afa104b83e4f9f274f03d8452f786d1521b34b3c;hb=1c272a48507bb3c7905aa30d8bf0d092b474f781;hp=0c077d9901309ea58f1daddd0884b0b988c29841;hpb=e3a9d0d2fe726180a0456893d22d4aaa3ddb8931;p=platform%2Fupstream%2Fharfbuzz.git diff --git a/src/Makefile.am b/src/Makefile.am index 0c077d9..afa104b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,5 +1,6 @@ # Process this file with automake to produce Makefile.in +NULL = SUBDIRS = DIST_SUBDIRS = BUILT_SOURCES = @@ -8,12 +9,14 @@ CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = DISTCHECK_CONFIGURE_FLAGS = --enable-introspection +TESTS = +check_PROGRAMS = # The following warning options are useful for debugging: -Wpadded #AM_CXXFLAGS = # Convenience targets: -lib: $(BUILT_SOURCES) libharfbuzz.la +lib: $(BUILT_SOURCES) libharfbuzz.la libharfbuzz-subset.la fuzzing: $(BUILT_SOURCES) libharfbuzz-fuzzing.la lib_LTLIBRARIES = libharfbuzz.la @@ -27,7 +30,15 @@ HBDEPS = HBSOURCES = $(HB_BASE_sources) HBSOURCES += $(HB_BASE_RAGEL_GENERATED_sources) HBHEADERS = $(HB_BASE_headers) -HBNODISTHEADERS = $(HB_NODIST_headers) + +if WITH_LIBSTDCXX +HBNOLIBCXXCFLAGS = +else +# Make sure we don't link to libstdc++ +# No threadsafe statics in C++ as we do it ourselves +HBCFLAGS += -fno-exceptions +HBNOLIBCXXFLAGS = -fno-threadsafe-statics -fno-rtti +endif if HAVE_OT HBSOURCES += $(HB_OT_sources) @@ -99,6 +110,9 @@ SUBDIRS += hb-ucdn HBCFLAGS += -I$(srcdir)/hb-ucdn HBLIBS += hb-ucdn/libhb-ucdn.la HBSOURCES += $(HB_UCDN_sources) +hb-ucdn/libhb-ucdn.la: ucdn +ucdn: + @$(MAKE) $(AM_MAKEFLAGS) -C hb-ucdn endif DIST_SUBDIRS += hb-ucdn @@ -110,40 +124,71 @@ HBLIBS += $(HBNONPCLIBS) if OS_WIN32 export_symbols = -export-symbols harfbuzz.def harfbuzz_def_dependency = harfbuzz.def -libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS) +export_symbols_subset = -export-symbols harfbuzz-subset.def +harfbuzz_subset_def_dependency = harfbuzz-subset.def +export_symbols_icu = -export-symbols harfbuzz-icu.def +harfbuzz_icu_def_dependency = harfbuzz-icu.def +export_symbols_gobject = -export-symbols harfbuzz-gobject.def +harfbuzz_gobject_def_dependency = harfbuzz-gobject.def +chosen_linker = $(CXXLINK) +else +if WITH_LIBSTDCXX +chosen_linker = $(CXXLINK) else -# Use a C linker for GCC, not C++; Don't link to libstdc++ if HAVE_GCC -libharfbuzz_la_LINK = $(LINK) $(libharfbuzz_la_LDFLAGS) +# Use a C linker for GCC, not C++; Don't link to libstdc++ +chosen_linker = $(LINK) else -libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS) +chosen_linker = $(CXXLINK) endif endif +endif + +@CODE_COVERAGE_RULES@ -libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS) $(HBNODISTHEADERS) -libharfbuzz_la_CPPFLAGS = $(HBCFLAGS) -libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined +base_link_flags = $(AM_LDFLAGS) -lm -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined +libharfbuzz_la_LINK = $(chosen_linker) $(libharfbuzz_la_LDFLAGS) $(CODE_COVERAGE_LDFLAGS) +libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS) +libharfbuzz_la_CPPFLAGS = $(HBCFLAGS) $(HBNOLIBCXXFLAGS) $(CODE_COVERAGE_CFLAGS) +libharfbuzz_la_LDFLAGS = $(base_link_flags) $(export_symbols) libharfbuzz_la_LIBADD = $(HBLIBS) EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency) pkginclude_HEADERS = $(HBHEADERS) -nodist_pkginclude_HEADERS = $(HBNODISTHEADERS) +nodist_pkginclude_HEADERS = pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = harfbuzz.pc -EXTRA_DIST += harfbuzz.pc.in - -FUZZING_CPPFLAGS= \ +cmakedir = $(libdir)/cmake/harfbuzz +cmake_DATA = harfbuzz-config.cmake +EXTRA_DIST += harfbuzz.pc.in harfbuzz-config.cmake.in + +lib_LTLIBRARIES += libharfbuzz-subset.la +libharfbuzz_subset_la_SOURCES = $(HB_SUBSET_sources) +libharfbuzz_subset_la_CPPFLAGS = $(HBCFLAGS) +libharfbuzz_subset_la_LDFLAGS = $(base_link_flags) $(export_symbols_subset) +libharfbuzz_subset_la_LIBADD = libharfbuzz.la +EXTRA_libharfbuzz_subset_la_DEPENDENCIES = $(harfbuzz_subset_def_dependency) +pkginclude_HEADERS += $(HB_SUBSET_headers) +pkgconfig_DATA += harfbuzz-subset.pc +EXTRA_DIST += harfbuzz-subset.pc.in + +FUZZING_CPPFLAGS = \ -DHB_NDEBUG \ -DHB_MAX_NESTING_LEVEL=3 \ -DHB_SANITIZE_MAX_EDITS=3 \ - -DHB_BUFFER_MAX_EXPANSION_FACTOR=3 \ + -DHB_SANITIZE_MAX_OPS_FACTOR=3 \ + -DHB_SANITIZE_MAX_OPS_MIN=128 \ + -DHB_BUFFER_MAX_LEN_FACTOR=3 \ -DHB_BUFFER_MAX_LEN_MIN=8 \ -DHB_BUFFER_MAX_LEN_DEFAULT=128 \ + -DHB_BUFFER_MAX_OPS_FACTOR=8 \ + -DHB_BUFFER_MAX_OPS_MIN=64 \ + -DHB_BUFFER_MAX_OPS_DEFAULT=1024 \ $(NULL) EXTRA_LTLIBRARIES = libharfbuzz-fuzzing.la -libharfbuzz_fuzzing_la_LINK = $(libharfbuzz_la_LINK) +libharfbuzz_fuzzing_la_LINK = $(chosen_linker) $(libharfbuzz_fuzzing_la_LDFLAGS) 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_CPPFLAGS = $(HBCFLAGS) $(FUZZING_CPPFLAGS) +libharfbuzz_fuzzing_la_LDFLAGS = $(AM_LDFLAGS) libharfbuzz_fuzzing_la_LIBADD = $(libharfbuzz_la_LIBADD) EXTRA_libharfbuzz_fuzzing_la_DEPENDENCIES = $(EXTRA_libharfbuzz_la_DEPENDENCIES) CLEANFILES += libharfbuzz-fuzzing.la @@ -157,9 +202,10 @@ HBHEADERS += $(HB_ICU_headers) else lib_LTLIBRARIES += libharfbuzz-icu.la libharfbuzz_icu_la_SOURCES = $(HB_ICU_sources) -libharfbuzz_icu_la_CPPFLAGS = $(ICU_CFLAGS) -libharfbuzz_icu_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined +libharfbuzz_icu_la_CPPFLAGS = $(HBCFLAGS) $(ICU_CFLAGS) +libharfbuzz_icu_la_LDFLAGS = $(base_link_flags) $(export_symbols_icu) libharfbuzz_icu_la_LIBADD = $(ICU_LIBS) libharfbuzz.la +EXTRA_libharfbuzz_icu_la_DEPENDENCIES = $(harfbuzz_icu_def_dependency) pkginclude_HEADERS += $(HB_ICU_headers) pkgconfig_DATA += harfbuzz-icu.pc endif @@ -168,13 +214,15 @@ EXTRA_DIST += harfbuzz-icu.pc.in if HAVE_GOBJECT lib_LTLIBRARIES += libharfbuzz-gobject.la -libharfbuzz_gobject_la_SOURCES = $(HB_GOBJECT_sources) -nodist_libharfbuzz_gobject_la_SOURCES = $(HB_GOBJECT_ENUM_sources) -libharfbuzz_gobject_la_CPPFLAGS = $(GOBJECT_CFLAGS) -libharfbuzz_gobject_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined +libharfbuzz_gobject_la_LINK = $(chosen_linker) $(libharfbuzz_gobject_la_LDFLAGS) +libharfbuzz_gobject_la_SOURCES = $(HB_GOBJECT_DIST_sources) +nodist_libharfbuzz_gobject_la_SOURCES = $(HB_GOBJECT_NODIST_sources) +libharfbuzz_gobject_la_CPPFLAGS = $(HBCFLAGS) $(HBNOLIBCXXFLAGS) $(GOBJECT_CFLAGS) +libharfbuzz_gobject_la_LDFLAGS = $(base_link_flags) libharfbuzz_gobject_la_LIBADD = $(GOBJECT_LIBS) libharfbuzz.la -pkginclude_HEADERS += $(HB_GOBJECT_headers) -nodist_pkginclude_HEADERS += $(HB_GOBJECT_ENUM_headers) +EXTRA_libharfbuzz_gobject_la_DEPENDENCIES = $(harfbuzz_gobject_def_dependency) +pkginclude_HEADERS += $(HB_GOBJECT_DIST_headers) +nodist_pkginclude_HEADERS += $(HB_GOBJECT_NODIST_headers) pkgconfig_DATA += harfbuzz-gobject.pc BUILT_SOURCES += \ @@ -214,23 +262,27 @@ EXTRA_DIST += \ CLEANFILES += $(pkgconfig_DATA) -CLEANFILES += harfbuzz.def +DEF_FILES = harfbuzz.def harfbuzz-subset.def harfbuzz-icu.def +if HAVE_GOBJECT +DEF_FILES += harfbuzz-gobject.def +endif +check: $(DEF_FILES) # For check-symbols.sh +CLEANFILES += $(DEF_FILES) harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS) - $(AM_V_GEN) (echo EXPORTS; \ - (cat $^ || echo 'hb_ERROR ()' ) | \ - $(EGREP) '^hb_.* \(' | \ - sed -e 's/ (.*//' | \ - LC_ALL=C sort; \ - echo LIBRARY libharfbuzz-0.dll; \ - ) >"$@" - @ ! grep -q hb_ERROR "$@" \ - || ($(RM) "$@"; false) + $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@ +harfbuzz-subset.def: $(HB_SUBSET_headers) + $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@ +harfbuzz-icu.def: $(HB_ICU_headers) + $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@ +harfbuzz-gobject.def: $(HB_GOBJECT_headers) + $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py $@ GENERATORS = \ gen-arabic-table.py \ gen-indic-table.py \ gen-use-table.py \ + gen-def.py \ $(NULL) EXTRA_DIST += $(GENERATORS) @@ -261,7 +313,8 @@ EXTRA_DIST += \ $(HB_BASE_RAGEL_sources) \ $(HB_OT_RAGEL_sources) \ $(NULL) -MAINTAINERCLEANFILES += $(RAGEL_GENERATED) +# We decided to add ragel-generated files to git... +#MAINTAINERCLEANFILES += $(RAGEL_GENERATED) $(srcdir)/%.hh: $(srcdir)/%.rl $(AM_V_GEN)(cd $(srcdir) && $(RAGEL) -e -F1 -o "$*.hh" "$*.rl") \ || ($(RM) "$@"; false) @@ -295,31 +348,56 @@ test_buffer_serialize_SOURCES = test-buffer-serialize.cc test_buffer_serialize_CPPFLAGS = $(HBCFLAGS) test_buffer_serialize_LDADD = libharfbuzz.la $(HBLIBS) -check: harfbuzz.def # For check-defs.sh - dist_check_SCRIPTS = \ check-c-linkage-decls.sh \ - check-defs.sh \ + check-externs.sh \ check-header-guards.sh \ check-includes.sh \ - check-libstdc++.sh \ check-static-inits.sh \ check-symbols.sh \ $(NULL) +TESTS += $(dist_check_SCRIPTS) -check_PROGRAMS = \ - test-ot-tag \ +if !WITH_LIBSTDCXX +dist_check_SCRIPTS += \ + check-libstdc++.sh \ $(NULL) +endif + +check_PROGRAMS += \ + dump-indic-data \ + dump-khmer-data \ + dump-myanmar-data \ + dump-use-data \ + $(NULL) +dump_indic_data_SOURCES = dump-indic-data.cc hb-ot-shape-complex-indic-table.cc +dump_indic_data_CPPFLAGS = $(HBCFLAGS) +dump_indic_data_LDADD = libharfbuzz.la $(HBLIBS) +dump_khmer_data_SOURCES = dump-khmer-data.cc hb-ot-shape-complex-indic-table.cc +dump_khmer_data_CPPFLAGS = $(HBCFLAGS) +dump_khmer_data_LDADD = libharfbuzz.la $(HBLIBS) +dump_myanmar_data_SOURCES = dump-myanmar-data.cc hb-ot-shape-complex-indic-table.cc +dump_myanmar_data_CPPFLAGS = $(HBCFLAGS) +dump_myanmar_data_LDADD = libharfbuzz.la $(HBLIBS) +dump_use_data_SOURCES = dump-use-data.cc hb-ot-shape-complex-use-table.cc +dump_use_data_CPPFLAGS = $(HBCFLAGS) +dump_use_data_LDADD = libharfbuzz.la $(HBLIBS) + +check_PROGRAMS += test-ot-tag test-unicode-ranges +TESTS += test-ot-tag test-unicode-ranges + test_ot_tag_SOURCES = hb-ot-tag.cc test_ot_tag_CPPFLAGS = $(HBCFLAGS) -DMAIN test_ot_tag_LDADD = libharfbuzz.la $(HBLIBS) -TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS) +test_unicode_ranges_SOURCES = test-unicode-ranges.cc +test_unicode_ranges_LDADD = libharfbuzz.la $(HBLIBS) + TESTS_ENVIRONMENT = \ srcdir="$(srcdir)" \ MAKE="$(MAKE) $(AM_MAKEFLAGS)" \ HBSOURCES="$(HBSOURCES)" \ - HBHEADERS="$(HBHEADERS) $(HBNODISTHEADERS)" \ + HBHEADERS="$(HBHEADERS)" \ $(NULL) if HAVE_INTROSPECTION @@ -349,12 +427,9 @@ HarfBuzz_0_0_gir_LIBS = \ $(NULL) HarfBuzz_0_0_gir_FILES = \ $(HBHEADERS) \ - $(HBNODISTHEADERS) \ $(HBSOURCES) \ - $(HB_GOBJECT_ENUM_sources) \ - $(HB_GOBJECT_ENUM_headers) \ $(HB_GOBJECT_sources) \ - $(HB_GOBJECT_STRUCTS_headers) \ + $(HB_GOBJECT_headers) \ $(NULL) girdir = $(datadir)/gir-1.0