From: Youngbok Shin Date: Mon, 22 Aug 2016 02:23:44 +0000 (+0900) Subject: Revert "Imported Upstream version 1.2.7" X-Git-Tag: upstream/1.3.0~2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fharfbuzz.git;a=commitdiff_plain;h=e684182ac634596bace621b0e84dfc98d2bc82c5 Revert "Imported Upstream version 1.2.7" This reverts commit 087e8c5d58be057cb77192932cd7fa8f7aacf1a5. --- diff --git a/Android.mk b/Android.mk index 654f0e0..0552507 100644 --- a/Android.mk +++ b/Android.mk @@ -75,10 +75,9 @@ HARFBUZZ_SRC_FILES = \ src/hb-ot-shape-complex-indic.cc \ src/hb-ot-shape-complex-indic-table.cc \ src/hb-ot-shape-complex-myanmar.cc \ + src/hb-ot-shape-complex-sea.cc \ src/hb-ot-shape-complex-thai.cc \ src/hb-ot-shape-complex-tibetan.cc \ - src/hb-ot-shape-complex-use.cc \ - src/hb-ot-shape-complex-use-table.cc \ src/hb-ot-shape-normalize.cc \ src/hb-ot-shape-fallback.cc \ $(NULL) @@ -101,7 +100,6 @@ LOCAL_SHARED_LIBRARIES := \ liblog LOCAL_C_INCLUDES += \ $(LOCAL_PATH)/src -LOCAL_CFLAGS += -DHB_NO_MT -DHAVE_OT -DHAVE_ICU -DHAVE_ICU_BUILTIN \ - -Wno-unused-parameter -Wno-missing-field-initializers +LOCAL_CFLAGS += -DHB_NO_MT -DHAVE_OT -DHAVE_ICU -DHAVE_ICU_BUILTIN LOCAL_MODULE:= libharfbuzz_ng include $(BUILD_SHARED_LIBRARY) diff --git a/BUILD.md b/BUILD.md deleted file mode 100644 index 86285c6..0000000 --- a/BUILD.md +++ /dev/null @@ -1,33 +0,0 @@ -On Linux, install the development packages for -[FreeType](http://www.freedesktop.org/wiki/Software/FreeType/), -Cairo, and GLib. For example, on Ubuntu / Debian, you would do: -* sudo apt-get install gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev - -whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do: -* sudo yum install gcc gcc-c++ freetype-devel glib2-devel cairo-devel - -on the Mac, using MacPorts: -* sudo port install freetype glib2 cairo - -or using Homebrew: -* brew install freetype glib cairo - -If you are using a tarball, you can now proceed to running configure and make -as with any other standard package. That should leave you with a shared -library in src/, and a few utility programs including hb-view and hb-shape -under util/. From the tarball, NMake Makefiles are also provided in win32/, -which supports building HarfBuzz using Visual Studio, with a README.txt that -gives instructions on building using NMake. -If you are bootstraping from git, you need a few more tools before you can -run autogen.sh for the first time. Namely, pkg-config and ragel. Again, -on Ubuntu / Debian: -* sudo apt-get install autoconf automake libtool pkg-config ragel gtk-doc-tools - -and on Fedora, RHEL, CentOS: -* sudo yum install autoconf automake libtool pkgconfig ragel gtk-doc - -on the Mac, using MacPorts: -* sudo port install autoconf automake libtool pkgconfig ragel gtk-doc - -or using Homebrew: -* brew port install autoconf automake libtool pkgconfig ragel gtk-doc diff --git a/ChangeLog b/ChangeLog index 33749c7..2ef17b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7224 +1,6 @@ -commit 9879fc1db3cad684f412c2f3d6b49e0435697d0e -Author: Behdad Esfahbod -Date: Mon May 2 10:29:12 2016 +0200 - - [ot-font] Remove unused 'post' table include for now - - To make a release... - - src/hb-ot-font.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit f8061ae7972462ad800c23be7cd7b3d7ab94b93b -Author: Behdad Esfahbod -Date: Mon May 2 10:28:24 2016 +0200 - - [tests] Fix test - - test/shaping/Makefile.am | - 2 +- - .../tests/{fallback-positioning.test => fallback-positioning.tests} - | 0 - 2 files changed, 1 insertion(+), 1 deletion(-) - -commit f00ab2a33ab34ba64f38cbbe65830c770a3e071e -Author: Behdad Esfahbod -Date: Mon May 2 10:24:00 2016 +0200 - - [hb-ot-font] Make 'glyf' table loading lazy - - Apparently some clients have reference-table callbacks that copy - the table. - As such, avoid loading 'glyf' table which is only needed if fallback - positioning - happens. - - src/hb-ot-font.cc | 45 - ++++++++++++++++++++- - test/shaping/Makefile.am | 1 + - .../7ef276fc886ea502a03b9b0e5c8b547d5dc2b61c.ttf | Bin 0 -> 784 bytes - test/shaping/tests/fallback-positioning.test | 2 + - 4 files changed, 46 insertions(+), 2 deletions(-) - -commit 587d46227a56940a7f5bb053cbeda6144394acf7 -Author: Behdad Esfahbod -Date: Sat Apr 30 19:20:56 2016 +0200 - - [ot-font] Start implementing 'post' table, for accessing glyph names - - src/Makefile.sources | 1 + - src/hb-open-type-private.hh | 12 ++++- - src/hb-ot-font.cc | 1 + - src/hb-ot-post-table.hh | 119 - ++++++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 132 insertions(+), 1 deletion(-) - -commit 9abaaac409b8e3a0a9182b67dc384133013f7878 -Merge: 2f560ee 264b7a7 -Author: Behdad Esfahbod -Date: Wed Apr 27 03:38:24 2016 -0700 - - Merge commit '264b7a728a41becfbf23ce258fc2a3af19d0cbbe' into HEAD - -commit 2f560ee44b7b08683e8e6955fe3b95187e8bda32 -Author: Behdad Esfahbod -Date: Wed Apr 27 03:11:41 2016 -0700 - - [tibetan] Reorder marks to better match Uniscribe - - Fixes https://github.com/behdad/harfbuzz/issues/237 - - Note that Uniscribe enforces a certain syllable order. We don't. - But with this change, I get all of the tibetan contractions pass - with Microsoft Himalaya font. - - src/hb-unicode-private.hh | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -commit f68390f196216718c22c434e1d8921118e646824 -Author: Behdad Esfahbod -Date: Wed Apr 27 02:44:35 2016 -0700 - - [test] Add text for Tibetan shorthand contractions - - From http://www.babelstone.co.uk/Tibetan/Contractions.html - - .../script-tibetan/misc/contractions.txt | 612 - +++++++++++++++++++++ - 1 file changed, 612 insertions(+) - -commit 264b7a728a41becfbf23ce258fc2a3af19d0cbbe -Merge: 7e2da03 adafdcd -Author: Khaled Hosny -Date: Wed Apr 27 03:48:23 2016 +0300 - - Merge pull request #247 from khaledhosny/update-opentype-language-tags - - Update opentype language tags - -commit adafdcddced076da4bfa3114a00e15a387aaf1f7 -Author: Arthur Reutenauer -Date: Sat Nov 7 23:37:21 2015 +0000 - - Mass-added “difficult” tags – to be curated. - - src/hb-ot-tag.cc | 69 - +++++++++++++++++++++++++++++--------------------------- - 1 file changed, 36 insertions(+), 33 deletions(-) - -commit 3d6a2c0d7d9f6c5b3097f78c1123f9e59dcc76e2 -Author: Arthur Reutenauer -Date: Sat Nov 7 22:59:13 2015 +0000 - - Initial import of missing OpenType 1.7 language tags. - - src/hb-ot-tag.cc | 67 - +++++++++++++++++++++++++++++++++++++++++++++++++++----- - 1 file changed, 61 insertions(+), 6 deletions(-) - -commit 7e2da035f68e46ce8f4759b67b4ed3a1b211d793 -Author: Behdad Esfahbod -Date: Tue Apr 26 16:42:25 2016 -0700 - - Undo accidental change - - src/hb-ot-shape-complex-arabic.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit b20305022a8235b19e6b640bc62651854e1336f1 -Author: Behdad Esfahbod -Date: Tue Apr 26 16:41:17 2016 -0700 - - Do NOT ignore Mongolian Free Variation Selectors during matching - - Fixes https://github.com/behdad/harfbuzz/issues/234 - - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - src/hb-ot-layout-private.hh | 23 - +++++++++++++++++++-- - src/hb-ot-shape-complex-arabic.cc | 2 +- - .../a34a7b00f22ffb5fd7eef6933b81c7e71bc2cdfb.ttf | Bin 0 -> 3700 bytes - .../tests/mongolian-variation-selector.tests | 1 + - 5 files changed, 24 insertions(+), 4 deletions(-) - -commit 21ab5501f5f5267d20cf23256866dd9d82a667ef -Author: Behdad Esfahbod -Date: Tue Apr 26 16:02:04 2016 -0700 - - Move ZWJ/ZWNJ bits to top byte of unicode_props() - - To make room to remember Mongolian Free Variation Selectors. - Part of fixing https://github.com/behdad/harfbuzz/issues/234 - - src/hb-ot-layout-private.hh | 40 ++++++++++++++++++++++------------------ - 1 file changed, 22 insertions(+), 18 deletions(-) - -commit de508516cb06ddb064d75bd7be8e843a5ebcf70d -Author: Behdad Esfahbod -Date: Tue Apr 26 11:28:37 2016 -0700 - - [util] Print out --debug buffer to stderr - - util/main-font-text.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 29393884b9f045460fb65d6ad10a94461ba93430 -Author: Behdad Esfahbod -Date: Tue Apr 26 10:35:23 2016 -0700 - - Annotate blacklisted fonts with their sha1sum - - src/hb-ot-layout.cc | 18 ++++++++++++------ - 1 file changed, 12 insertions(+), 6 deletions(-) - -commit 14bb4a56971fd45063cd6c1288d911627088abb2 -Merge: 1c625df 5069062 -Author: Sascha Brawer -Date: Tue Apr 26 11:38:16 2016 +0200 - - Merge pull request #245 from KonstantinRitt/fixes/ce - - Unbreak build on Windows CE - -commit 5069062d0a9342bb716eebf3ddc1efad91924caa -Author: Konstantin Ritt -Date: Tue Apr 26 12:02:26 2016 +0400 - - Unbreak build on Windows CE - - 0475ef2f97e3035a2eea9a0f96031331e07e8e29 broke the build by using - vsnprintf(), which is not defined on Windows CE - - src/hb-private.hh | 1 + - 1 file changed, 1 insertion(+) - -commit 1c625dff2269c54ff429ca45be88893ff1fa6c34 -Author: Behdad Esfahbod -Date: Sat Apr 9 12:53:23 2016 -0700 - - Minor - - src/hb-ot-layout.cc | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -commit 851b0db36d1b724fc1e0db506445119c78186285 -Author: Behdad Esfahbod -Date: Fri Apr 8 23:46:55 2016 -0700 - - Minor. We should never get to this branch, but fix it anyway. - - src/hb-ot-layout-common-private.hh | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -commit 00ea66f35754a1e6e4d3b7b139d611a9a623a9d1 -Author: Behdad Esfahbod -Date: Fri Apr 8 13:51:01 2016 -0700 - - 1.2.6 - - NEWS | 10 ++++++++++ - configure.ac | 2 +- - 2 files changed, 11 insertions(+), 1 deletion(-) - -commit 4f3d59a1877dcb94d09da48e9694a6c1b05a86fe -Author: Behdad Esfahbod -Date: Fri Apr 8 13:41:20 2016 -0700 - - Blacklist another set of timesi.ttf and timesbi.ttf - - src/hb-ot-layout.cc | 2 ++ - 1 file changed, 2 insertions(+) - -commit ef476be80d773332e0c768a3465d99381d76edd9 -Merge: a0331b5 d3134a6 -Author: Behdad Esfahbod -Date: Fri Apr 8 13:16:33 2016 -0700 - - Merge pull request #239 from ebraminio/dwfix - - Improve DirectWrite backend - -commit d3134a66ad551ded726db9528d3c25459088f105 -Author: Ebrahim Byagowi -Date: Tue Apr 5 21:01:05 2016 +0000 - - Fix when no feature is given - - src/hb-directwrite.cc | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -commit a0331b55f7b45437980e1fc323251f4091bf2c4e -Author: Behdad Esfahbod -Date: Mon Apr 4 16:25:32 2016 -0700 - - 1.2.5 - - NEWS | 7 +++++++ - configure.ac | 2 +- - 2 files changed, 8 insertions(+), 1 deletion(-) - -commit 6e55199b5f097ac93bad38f32e9813e2da14c5a7 -Author: Behdad Esfahbod -Date: Mon Apr 4 16:24:27 2016 -0700 - - Add test for 6dd80faf0dcb3e8a8915c3a25da44e2a67cb0cd8 - - test/shaping/Makefile.am | 1 + - .../f22416c692720a7d46fadf4af99f4c9e094f00b9.ttf | Bin 0 -> - 16736 bytes - test/shaping/tests/mark-filtering-sets.tests | 5 +++++ - 3 files changed, 6 insertions(+) - -commit 59089622dbb8dda783b1639c932123f125c3592d -Author: Behdad Esfahbod -Date: Mon Apr 4 14:54:32 2016 -0700 - - [coretext] Clarify comment - - src/hb-coretext.cc | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -commit 6dd80faf0dcb3e8a8915c3a25da44e2a67cb0cd8 -Author: Behdad Esfahbod -Date: Mon Apr 4 14:34:25 2016 -0700 - - Fix FixedVersion::to_int() - - Ouch. Had broken it in 9a13ed453ef96822a47d6e6f58332b87f38d5c59 - - Fixes https://github.com/behdad/harfbuzz/issues/238 - Will add test soon. - - src/hb-open-type-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 4a104021697439fd21390a1f4cdc9310348882fa -Author: Ebrahim Byagowi -Date: Sat Apr 2 13:47:59 2016 +0000 - - Hide justification behind HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION - - src/hb-directwrite.cc | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -commit 63ee9ca5d81b53eb035972754ed95572821c393c -Author: Ebrahim Byagowi -Date: Fri Apr 1 15:47:07 2016 +0000 - - Use standard types instead Windows favourites ones - - src/hb-directwrite.cc | 100 - +++++++++++++++++++++++++------------------------- - 1 file changed, 50 insertions(+), 50 deletions(-) - -commit adf20ba0d18d1506e633dcd9b4827a6c93abcadd -Author: Ebrahim Byagowi -Date: Fri Apr 1 15:36:40 2016 +0000 - - Limit GetJustifiedGlyphs only to scripts with custom justification - character - - src/hb-directwrite.cc | 98 - +++++++++++++++++++++++++++++++-------------------- - 1 file changed, 60 insertions(+), 38 deletions(-) - -commit 32ae9d1b3ffbe7e26e654437a56a26a95fe9f5a6 -Author: Ebrahim Byagowi -Date: Fri Apr 1 06:39:57 2016 +0000 - - Add justification support - - src/hb-directwrite.cc | 321 - ++++++++++++++++++++++++++++++++------------------ - 1 file changed, 205 insertions(+), 116 deletions(-) - -commit 10c3d9e41520595c88dd2a8321590e03ce8fcf47 -Author: Ebrahim Byagowi -Date: Thu Mar 31 18:19:44 2016 +0000 - - Basic opentype features support - - src/hb-directwrite.cc | 62 - ++++++++++++++++++++++++++++++++++----------------- - 1 file changed, 42 insertions(+), 20 deletions(-) - -commit d129897120d3ad414220d603557c15a60aa69fa6 -Author: Ebrahim Byagowi -Date: Thu Mar 31 13:45:37 2016 +0000 - - Refactor and remove dupe getglyphs call - - src/hb-directwrite.cc | 106 - ++++++++++++++++++++++++-------------------------- - 1 file changed, 51 insertions(+), 55 deletions(-) - -commit 5f1a8961008b93f72acc47336109af3a64e248d0 -Author: Ebrahim Byagowi -Date: Thu Mar 31 12:26:16 2016 +0000 - - Better glyph offset support - - src/hb-directwrite.cc | 44 ++++++++++++++++++++++++-------------------- - 1 file changed, 24 insertions(+), 20 deletions(-) - -commit d691ba3f405738c6857450752b8cc0911dfcdb01 -Author: Ebrahim Byagowi -Date: Wed Mar 30 20:21:40 2016 +0000 - - Don't fail when language is not set - - src/hb-directwrite.cc | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -commit 1c00a46c7a608ebc0b03c5abfcfe7f2b9881d0df -Author: Ebrahim Byagowi -Date: Wed Mar 30 20:15:09 2016 +0000 - - Make DirectWrite backend to work with different font sizes - - Actually copyedited same logic from Uniscribe to make it just work - - src/hb-directwrite.cc | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -commit 0251b0cc5c39272d2299d4b2ab802faaafe96837 -Author: Behdad Esfahbod -Date: Thu Mar 17 14:37:11 2016 -0700 - - 1.2.4 - - NEWS | 15 +++++++++++++++ - configure.ac | 2 +- - 2 files changed, 16 insertions(+), 1 deletion(-) - -commit 69f9fbc4200442a35484d3c790ae8f4979be5d60 -Author: Behdad Esfahbod -Date: Thu Mar 17 11:59:43 2016 -0700 - - Synthesize GDEF glyph class for any glyph that does not have one - in GDEF - - Previously we only synthesized GDEF glyph classes if the glyphClassDef - array in GDEF was null. This worked well enough, and is indeed what - OpenType requires: "If the font does not include a GlyphClassDef - table, - the client must define and maintain this information when using the - GSUB and GPOS tables." That sentence does not quite make sense since - one needs Unicode properties as well, but is close enough. - - However, looks like Arial Unicode as shipped on WinXP, does have GDEF - glyph class array, but defines no classes for Hebrew. This results - in Hebrew marks not getting their widths zeroed. So, with this - change, - we synthesize glyph class for any glyph that is not specified in the - GDEF glyph class table. Since, from our point of view, a glyph not - being listed in that table is a font bug, any unwanted consequence of - this change is a font bug :). - - Note that we still don't get the same rendering as Uniscribe, since - Uniscribe seems to do fallback positioning as well, even though the - font does have a GPOS table (which does NOT cover Hebrew!). We are - not going to try to match that though. - - Test string for Arial Unicode: - - U+05E9,U+05B8,U+05C1,U+05DC - - Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434] - After: [gid1166=3+991|gid1142=0+0|gid5798=0+1434] - Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434] - - Note that our new output matches what we were generating until July - 2014, because the Hebrew shaper used to zero mark advances based on - Unicode, NOT GDEF. That's 9e834e29e0b657f0555df1ab9cea79ff7abcf08d. - - Reported by Greg Douglas. - - src/hb-ot-layout-gsub-table.hh | 22 ++++++++++++++++++++-- - src/hb-ot-shape.cc | 29 ----------------------------- - 2 files changed, 20 insertions(+), 31 deletions(-) - -commit fef5dd9a72f326c160a7194f558749d24bac7283 -Merge: 01ea9ea 5f995db -Author: Behdad Esfahbod -Date: Sat Mar 12 19:15:15 2016 -0800 - - Merge pull request #232 from c0nk/wip-icu - - Add --with-icu=builtin option; fix compile error - -commit 01ea9eaac373d9f3de6e56c1ca26cdcd259ecc8e -Author: Behdad Esfahbod -Date: Fri Mar 11 18:50:02 2016 -0800 - - [build] Use tar-ustar instead of tar-pax - - The default tar-v7 is not good enough for us (99 char filename - limit), so I have had bumped to tar-pax. We got one complaint - that someone's tar couldn't handle tar-pax. Set to tar-ustar - which is ~13 years earlier than tar-pax and is good enough for us. - - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 3e10460a1dd41de32752e308771aa30d23565cc0 -Author: Behdad Esfahbod -Date: Fri Mar 11 18:45:19 2016 -0800 - - Minor comment - - src/hb-unicode-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit d14fea4bdcc1423fe9a585af3abdefa9605d17e6 -Author: Behdad Esfahbod -Date: Tue Mar 8 12:16:41 2016 -0800 - - Remove default clause in minor switch statements - - Bending to clang warnings... - https://bugs.chromium.org/p/chromium/issues/detail?id=593057 - - src/hb-ot-shape-complex-indic.cc | 4 ---- - src/hb-ot-shape-complex-thai.cc | 1 - - 2 files changed, 5 deletions(-) - -commit ce8ae9970102f83b67bb1e8e8b2bf894a0e26c07 -Merge: 731a430 71248a8 -Author: Behdad Esfahbod -Date: Fri Mar 4 17:20:35 2016 -0800 - - Merge pull request #231 from KonstantinRitt/post123buildfix - - Fix build with HB_DISABLE_DEPRECATED - -commit 731a430cd36caabcef04e099b21ebc6daedd536f -Author: Behdad Esfahbod -Date: Wed Mar 2 13:32:42 2016 -0800 - - Fix requiredFeature stage handling logic - - Originally the way Jonathan had written this was correct in - "continue"ing: - - https://github.com/jfkthame/harfbuzz/commit/35e28c7a733eaffcd9f062b18d7db9fbb3d990fc#diff-ead86a33a5cc9ad7f6e6381031a0baddR199 - - When I rewrote his patch, I messed it up: - - https://github.com/behdad/harfbuzz/commit/da132937989acb4d8ca9bd41c79f98750e7dda30#diff-ead86a33a5cc9ad7f6e6381031a0baddR209 - - the intended behavior was NOT to set found=TRUE and NOT to continue. - This was resulting in feature_index[table_index] being left unset. - Oops! - - src/hb-ot-map.cc | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -commit 68b6296d3333fd38bd5442d2ba087ced481603bc -Author: Behdad Esfahbod -Date: Tue Mar 1 16:41:53 2016 +0900 - - Add F2DOT14 type - - src/hb-open-type-private.hh | 9 +++++++++ - 1 file changed, 9 insertions(+) - -commit 082b79fe9f06607998178dcdcbe817af28b017de -Author: Behdad Esfahbod -Date: Tue Mar 1 16:41:26 2016 +0900 - - Use FWORD and UFWORD when it makes sense - - I had forgotten about those types. - - src/hb-ot-glyf-table.hh | 8 ++++---- - src/hb-ot-hmtx-table.hh | 6 +++--- - 2 files changed, 7 insertions(+), 7 deletions(-) - -commit 5f995db10381172ec63fd7ffbb0acf2c6b3dae5e -Author: Kal Conley -Date: Fri Feb 26 00:36:17 2016 +0100 - - Fix missing ICU #include - - Fix compile error in hb-icu.cc when ICU configured with - U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 - - src/hb-icu.cc | 1 + - 1 file changed, 1 insertion(+) - -commit b424b6c372dfe4c0ed75a49761eb34a416819446 -Author: Kal Conley -Date: Fri Feb 26 00:35:15 2016 +0100 - - Add --with-icu=builtin configure option - - configure.ac | 33 +++++++++++++++++++-------------- - src/Makefile.am | 7 +++++++ - 2 files changed, 26 insertions(+), 14 deletions(-) - -commit 71248a843f976c86022eb5bb8c6e8880b2499937 -Author: Konstantin Ritt -Date: Thu Feb 25 18:55:28 2016 +0400 - - Fix build with HB_DISABLE_DEPRECATED - - When HB_DISABLE_DEPRECATED is defined, no code from hb-deprecated.h - should be used, even from within HB itself. - - src/hb-font.cc | 4 ++++ - 1 file changed, 4 insertions(+) - -commit 0c7fb7419c20d04b803412945565562c32b42929 -Author: Behdad Esfahbod -Date: Thu Feb 25 14:40:09 2016 +0900 - - Speed up buffer variable allocation sanity check - - This makes defining HB_NDEBUG much less relevant, to the - point of irrelevance. Sorry about all the fuss in previous - release! - - src/hb-buffer-private.hh | 67 - ++++++++++++++++++++++++++++----------------- - src/hb-buffer.cc | 70 - ------------------------------------------------ - 2 files changed, 43 insertions(+), 94 deletions(-) - -commit 91dd11565221bdb108c138662ea013aac14bb968 -Author: Behdad Esfahbod -Date: Thu Feb 25 13:56:47 2016 +0900 - - Add HB_NDEBUG - - API changes: - - If NDEBUG is defined, define HB_NDEBUG - - Disable costlier sanity checks if HB_NDEBUG is defined. - - In 1.2.3 introduced some code to disable costly sanity checks if - NDEBUG is defined. NDEBUG, however, disables all assert()s as - well. With HB_NDEBUG, one can disable costlier checks but keep - assert()s. - - I'll probably add a way to define HB_NDEBUG automatically in - release tarballs. But for now, production systems that do NOT - define NDEBUG, are encouraged to define HB_NDEBUG for our build. - - src/Makefile.am | 2 +- - src/hb-buffer-private.hh | 4 ++-- - src/hb-buffer.cc | 4 ++-- - src/hb-private.hh | 9 +++++++++ - 4 files changed, 14 insertions(+), 5 deletions(-) - -commit 75568b0a7f811ea18e23037735ec8541a7431f88 -Author: Behdad Esfahbod -Date: Thu Feb 25 12:26:26 2016 +0900 - - 1.2.3 - - NEWS | 42 ++++++++++++++++++++++++++++++++++++++++++ - configure.ac | 2 +- - 2 files changed, 43 insertions(+), 1 deletion(-) - -commit 988165021f8d48dc7120b071d056491256569f4f -Author: Behdad Esfahbod -Date: Thu Feb 25 12:23:02 2016 +0900 - - Disable internal buffer variable bookkeeping in NDEBUG builds - - Saves some sweet time and binary size! - - src/Makefile.am | 1 + - src/hb-buffer-private.hh | 30 ++++++++++++++++++++---------- - src/hb-buffer.cc | 6 ++++-- - 3 files changed, 25 insertions(+), 12 deletions(-) - -commit 94dd0bb7e78125994cb7c833a5b03110f1ffc822 -Author: Behdad Esfahbod -Date: Thu Feb 25 11:31:03 2016 +0900 - - Add blacklist signature for Times New Roman (Bold) Italic on OS X - - src/hb-ot-layout.cc | 2 ++ - 1 file changed, 2 insertions(+) - -commit dd8598c1c7f29fc92253b0cd4e856c1941b1d0c0 -Author: Behdad Esfahbod -Date: Thu Feb 25 11:20:05 2016 +0900 - - [test] Pass closure to hb_font_set_glyph_func() - - Exercises fix in c335fd7986fe360ab8e1c032c9b988d0d30511eb - - test/api/test-shape.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit e23cf902e91142a10229e3514be4ceee69efde04 -Author: Behdad Esfahbod -Date: Thu Feb 25 11:11:15 2016 +0900 - - Blacklist GDEF table of timesi.ttf and timesbi.ttf on Win 7 - - See discussion: - https://lists.freedesktop.org/archives/harfbuzz/2016-February/005489.html - - src/hb-ot-layout.cc | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -commit c335fd7986fe360ab8e1c032c9b988d0d30511eb -Author: Behdad Esfahbod -Date: Thu Feb 25 09:16:05 2016 +0900 - - In trampoline implementation of get_glyph(), don't destroy user - data twice! - - src/hb-font.cc | 41 +++++++++++++++++++++++++++-------------- - 1 file changed, 27 insertions(+), 14 deletions(-) - -commit 23335deaad9d4d9824ff41343264514d3f9f7e37 -Author: Behdad Esfahbod -Date: Wed Feb 24 20:27:13 2016 +0900 - - [ot-font] Accelerate cmap format4 get_glyph - - src/hb-ot-cmap-table.hh | 111 - ++++++++++++++++++++++++++++-------------------- - src/hb-ot-font.cc | 14 +++++- - 2 files changed, 77 insertions(+), 48 deletions(-) - -commit e0f16a715bc3e621ff21a8be88102e9672630574 -Author: Behdad Esfahbod -Date: Wed Feb 24 19:52:36 2016 +0900 - - [ot-font] Towards accelerating get_glyph() - - src/hb-ot-font.cc | 23 ++++++++++++++++++++--- - 1 file changed, 20 insertions(+), 3 deletions(-) - -commit 5473ebfb84c7b6059ac16e04676b363acc51aa00 -Author: Behdad Esfahbod -Date: Wed Feb 24 19:32:43 2016 +0900 - - [ot-font] Remove level of indirection in get_glyph_variant - - src/hb-ot-cmap-table.hh | 14 ++------------ - src/hb-ot-font.cc | 13 +++++++++---- - 2 files changed, 11 insertions(+), 16 deletions(-) - -commit 49fe6ecf19522413e79a11a29aa0ffc5bdfcd2f8 -Author: Behdad Esfahbod -Date: Wed Feb 24 19:10:06 2016 +0900 - - [TODO] Update - - This file is rather obsolete. Still, give it a refresh. - - TODO | 16 ++-------------- - 1 file changed, 2 insertions(+), 14 deletions(-) - -commit 8b5bc141cd3a6bfcea3c91a882a630426876ceb3 -Author: Behdad Esfahbod -Date: Wed Feb 24 19:05:23 2016 +0900 - - Add get_nominal_glyph() and get_variation_glyph() instead of - get_glyph() - - New API: - - hb_font_get_nominal_glyph_func_t - - hb_font_get_variation_glyph_func_t - - hb_font_funcs_set_nominal_glyph_func() - - hb_font_funcs_set_variation_glyph_func() - - hb_font_get_nominal_glyph() - - hb_font_get_variation_glyph() - - Deprecated API: - - hb_font_get_glyph_func_t - - hb_font_funcs_set_glyph_func() - - Clients that implement their own font-funcs are encouraged to replace - their get_glyph() implementation with a get_nominal_glyph() and - get_variation_glyph() pair. The variation version can assume that - variation_selector argument is not zero. - - src/hb-deprecated.h | 10 ++ - src/hb-fallback-shape.cc | 4 +- - src/hb-font-private.hh | 26 +++-- - src/hb-font.cc | 203 - ++++++++++++++++++++++++++++++++++--- - src/hb-font.h | 55 +++++++--- - src/hb-ft.cc | 38 ++++--- - src/hb-ot-font.cc | 57 +++++++---- - src/hb-ot-shape-complex-indic.cc | 8 +- - src/hb-ot-shape-complex-myanmar.cc | 2 +- - src/hb-ot-shape-complex-use.cc | 2 +- - src/hb-ot-shape-fallback.cc | 6 +- - src/hb-ot-shape-normalize.cc | 18 ++-- - src/hb-ot-shape.cc | 6 +- - 13 files changed, 344 insertions(+), 91 deletions(-) - -commit b30a971bf792b9c683c345e1be25c5a5869a113c -Author: Behdad Esfahbod -Date: Wed Feb 24 17:32:22 2016 +0900 - - 1.2.2 - - NEWS | 14 +++++++++++++- - configure.ac | 2 +- - 2 files changed, 14 insertions(+), 2 deletions(-) - -commit af48e3d27c01c538f46f1dc376d994a0c24a8170 -Author: Behdad Esfahbod -Date: Wed Feb 24 16:06:40 2016 +0900 - - Fix recent test - - Not sure why the FT functions were returning advance 1024. This - caused failure on drone.io. Switch to hb-ot-font and disable - glyph names. - - test/shaping/tests/cursive-positioning.tests | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 17c831701756bb46300c412fd64b19d67f299c18 -Author: Behdad Esfahbod -Date: Wed Feb 24 16:06:23 2016 +0900 - - [tests] Fix for multiple options in test runner scripts - - test/shaping/run-tests.sh | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -commit ebd7431f824c718db6ce5b85e94f2b3911127af4 -Author: Behdad Esfahbod -Date: Wed Feb 24 15:53:40 2016 +0900 - - Partially revert 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2 - - That commit moved the advance adjustment for mark positioning to - be applied immediately, instead of doing late before. This breaks - if mark advances are zeroed late, like in Arabic. Also, easier to - hit it in RTL scripts since a single mark with non-zero advance is - enough to hit the bug, whereas in LTR, at least two marks are needed. - - This reopens https://github.com/behdad/harfbuzz/issues/211 - The cursive+mark interaction is broken again. To be fixed in a - different way. - - src/hb-ot-layout-gpos-table.hh | 28 - ++++++++++++---------------- - test/shaping/tests/cursive-positioning.tests | 2 +- - 2 files changed, 13 insertions(+), 17 deletions(-) - -commit 284481b3120963353f5f34ed094f07ffc13480ef -Author: Behdad Esfahbod -Date: Wed Feb 24 15:52:37 2016 +0900 - - Add test for mark positioning in rtl with non-zero mark advance - - Apparently I broke this 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2. - Fix coming. - - .../sha1sum/07f054357ff8638bac3711b422a1e31180bba863.ttf | Bin 0 -> - 848 bytes - test/shaping/tests/cursive-positioning.tests | 1 + - 2 files changed, 1 insertion(+) - -commit 56a84e8dd18c63782b8db3a86e94651dae5bb01b -Author: Behdad Esfahbod -Date: Wed Feb 24 15:50:33 2016 +0900 - - [tests] Allow commenting out tests to be skipped - - test/shaping/run-tests.sh | 4 ++++ - 1 file changed, 4 insertions(+) - -commit 7cfd6cc486f2751d7f78c5008a636d677af4e12f -Author: Behdad Esfahbod -Date: Wed Feb 24 12:30:57 2016 +0900 - - [Android.mk] Update with warning flags - - Android.mk | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -commit dabf32a5ad706726412ba5c64e1ea614a707b928 -Author: Behdad Esfahbod -Date: Tue Feb 23 15:38:43 2016 +0900 - - 1.2.1 - - NEWS | 13 +++++++++++++ - configure.ac | 2 +- - 2 files changed, 14 insertions(+), 1 deletion(-) - -commit 525cc7d28cbe4e8149ddba677224f134dc0a3274 -Author: Behdad Esfahbod -Date: Tue Feb 23 15:19:27 2016 +0900 - - Add note re only adding tests with Free Software fonts - - test/shaping/README.md | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -commit 6a09d7e34b949f9929f616ee53278b2edfd9b7ea -Author: Behdad Esfahbod -Date: Tue Feb 23 13:47:16 2016 +0900 - - [test] Add README about how to add shaping tests - - test/shaping/Makefile.am | 1 + - test/shaping/README.md | 37 +++++++++++++++++++++++++++++++++++++ - 2 files changed, 38 insertions(+) - -commit f8ee7906d0454d950081c621f2b04a6d08e1b92f -Author: Behdad Esfahbod -Date: Tue Feb 23 13:45:38 2016 +0900 - - Remove MANIFEST files - - They are unused currently. We can add later if we hook them up - to anything useful. - - test/shaping/fonts/sha1sum/MANIFEST | 52 - ---------------------- - test/shaping/tests/MANIFEST | 19 -------- - test/shaping/texts/MANIFEST | 1 - - test/shaping/texts/in-tree/MANIFEST | 9 ---- - test/shaping/texts/in-tree/shaper-arabic/MANIFEST | 6 --- - .../in-tree/shaper-arabic/script-arabic/MANIFEST | 3 -- - .../script-arabic/language-persian/MANIFEST | 1 - - .../script-arabic/language-urdu/MANIFEST | 1 - - .../script-arabic/language-urdu/crulp/MANIFEST | 1 - - .../language-urdu/crulp/ligatures/MANIFEST | 7 --- - .../shaper-arabic/script-arabic/misc/MANIFEST | 1 - - .../script-arabic/misc/diacritics/MANIFEST | 7 --- - .../in-tree/shaper-arabic/script-mandaic/MANIFEST | 1 - - .../shaper-arabic/script-mandaic/misc/MANIFEST | 0 - .../shaper-arabic/script-mongolian/MANIFEST | 1 - - .../shaper-arabic/script-mongolian/misc/MANIFEST | 4 -- - .../in-tree/shaper-arabic/script-nko/MANIFEST | 1 - - .../in-tree/shaper-arabic/script-nko/misc/MANIFEST | 1 - - .../in-tree/shaper-arabic/script-phags-pa/MANIFEST | 1 - - .../shaper-arabic/script-phags-pa/misc/MANIFEST | 1 - - .../in-tree/shaper-arabic/script-syriac/MANIFEST | 1 - - .../shaper-arabic/script-syriac/misc/MANIFEST | 2 - - test/shaping/texts/in-tree/shaper-default/MANIFEST | 5 --- - .../shaper-default/script-ethiopic/MANIFEST | 1 - - .../shaper-default/script-ethiopic/misc/MANIFEST | 1 - - .../in-tree/shaper-default/script-han/MANIFEST | 1 - - .../shaper-default/script-han/misc/MANIFEST | 1 - - .../shaper-default/script-hiragana/MANIFEST | 1 - - .../shaper-default/script-hiragana/misc/MANIFEST | 2 - - .../shaper-default/script-linear-b/MANIFEST | 1 - - .../shaper-default/script-linear-b/misc/MANIFEST | 1 - - .../shaper-default/script-tifinagh/MANIFEST | 1 - - .../shaper-default/script-tifinagh/misc/MANIFEST | 1 - - test/shaping/texts/in-tree/shaper-hangul/MANIFEST | 1 - - .../in-tree/shaper-hangul/script-hangul/MANIFEST | 1 - - .../shaper-hangul/script-hangul/misc/MANIFEST | 1 - - test/shaping/texts/in-tree/shaper-hebrew/MANIFEST | 1 - - .../in-tree/shaper-hebrew/script-hebrew/MANIFEST | 1 - - .../shaper-hebrew/script-hebrew/misc/MANIFEST | 1 - - test/shaping/texts/in-tree/shaper-indic/MANIFEST | 2 - - .../texts/in-tree/shaper-indic/indic/MANIFEST | 11 ----- - .../shaper-indic/indic/script-assamese/MANIFEST | 2 - - .../indic/script-assamese/misc/MANIFEST | 0 - .../indic/script-assamese/utrrs/MANIFEST | 3 -- - .../indic/script-assamese/utrrs/codepoint/MANIFEST | 7 --- - .../indic/script-assamese/utrrs/gpos/MANIFEST | 2 - - .../indic/script-assamese/utrrs/gsub/MANIFEST | 1 - - .../shaper-indic/indic/script-bengali/MANIFEST | 2 - - .../indic/script-bengali/misc/MANIFEST | 2 - - .../indic/script-bengali/utrrs/MANIFEST | 3 -- - .../indic/script-bengali/utrrs/codepoint/MANIFEST | 7 --- - .../indic/script-bengali/utrrs/gpos/MANIFEST | 2 - - .../indic/script-bengali/utrrs/gsub/MANIFEST | 1 - - .../shaper-indic/indic/script-devanagari/MANIFEST | 2 - - .../indic/script-devanagari/misc/MANIFEST | 6 --- - .../indic/script-devanagari/utrrs/MANIFEST | 3 -- - .../script-devanagari/utrrs/codepoint/MANIFEST | 9 ---- - .../indic/script-devanagari/utrrs/gpos/MANIFEST | 2 - - .../indic/script-devanagari/utrrs/gsub/MANIFEST | 1 - - .../shaper-indic/indic/script-gujarati/MANIFEST | 2 - - .../indic/script-gujarati/misc/MANIFEST | 0 - .../indic/script-gujarati/utrrs/MANIFEST | 3 -- - .../indic/script-gujarati/utrrs/codepoint/MANIFEST | 7 --- - .../indic/script-gujarati/utrrs/gpos/MANIFEST | 2 - - .../indic/script-gujarati/utrrs/gsub/MANIFEST | 1 - - .../shaper-indic/indic/script-gurmukhi/MANIFEST | 2 - - .../indic/script-gurmukhi/misc/MANIFEST | 1 - - .../indic/script-gurmukhi/utrrs/MANIFEST | 3 -- - .../indic/script-gurmukhi/utrrs/codepoint/MANIFEST | 7 --- - .../indic/script-gurmukhi/utrrs/gpos/MANIFEST | 2 - - .../indic/script-gurmukhi/utrrs/gsub/MANIFEST | 1 - - .../shaper-indic/indic/script-kannada/MANIFEST | 2 - - .../indic/script-kannada/misc/MANIFEST | 2 - - .../indic/script-kannada/utrrs/MANIFEST | 3 -- - .../indic/script-kannada/utrrs/codepoint/MANIFEST | 8 ---- - .../indic/script-kannada/utrrs/gpos/MANIFEST | 1 - - .../indic/script-kannada/utrrs/gsub/MANIFEST | 1 - - .../shaper-indic/indic/script-malayalam/MANIFEST | 2 - - .../indic/script-malayalam/misc/MANIFEST | 3 -- - .../indic/script-malayalam/utrrs/MANIFEST | 2 - - .../script-malayalam/utrrs/codepoint/MANIFEST | 7 --- - .../indic/script-malayalam/utrrs/gsub/MANIFEST | 1 - - .../shaper-indic/indic/script-oriya/MANIFEST | 2 - - .../shaper-indic/indic/script-oriya/misc/MANIFEST | 2 - - .../shaper-indic/indic/script-oriya/utrrs/MANIFEST | 2 - - .../indic/script-oriya/utrrs/codepoint/MANIFEST | 9 ---- - .../indic/script-oriya/utrrs/gsub/MANIFEST | 1 - - .../shaper-indic/indic/script-sinhala/MANIFEST | 2 - - .../indic/script-sinhala/misc/MANIFEST | 4 -- - .../indic/script-sinhala/utrrs/MANIFEST | 3 -- - .../indic/script-sinhala/utrrs/codepoint/MANIFEST | 5 --- - .../indic/script-sinhala/utrrs/gpos/MANIFEST | 1 - - .../indic/script-sinhala/utrrs/gsub/MANIFEST | 7 --- - .../shaper-indic/indic/script-tamil/MANIFEST | 2 - - .../shaper-indic/indic/script-tamil/misc/MANIFEST | 1 - - .../shaper-indic/indic/script-tamil/utrrs/MANIFEST | 3 -- - .../indic/script-tamil/utrrs/codepoint/MANIFEST | 10 ----- - .../indic/script-tamil/utrrs/gpos/MANIFEST | 2 - - .../indic/script-tamil/utrrs/gsub/MANIFEST | 1 - - .../shaper-indic/indic/script-telugu/MANIFEST | 2 - - .../shaper-indic/indic/script-telugu/misc/MANIFEST | 1 - - .../indic/script-telugu/utrrs/MANIFEST | 3 -- - .../indic/script-telugu/utrrs/codepoint/MANIFEST | 7 --- - .../indic/script-telugu/utrrs/gpos/MANIFEST | 1 - - .../indic/script-telugu/utrrs/gsub/MANIFEST | 1 - - .../in-tree/shaper-indic/south-east-asian/MANIFEST | 1 - - .../south-east-asian/script-khmer/MANIFEST | 1 - - .../south-east-asian/script-khmer/misc/MANIFEST | 3 -- - test/shaping/texts/in-tree/shaper-myanmar/MANIFEST | 1 - - .../in-tree/shaper-myanmar/script-myanmar/MANIFEST | 1 - - .../shaper-myanmar/script-myanmar/misc/MANIFEST | 3 -- - test/shaping/texts/in-tree/shaper-thai/MANIFEST | 2 - - .../texts/in-tree/shaper-thai/script-lao/MANIFEST | 1 - - .../in-tree/shaper-thai/script-lao/misc/MANIFEST | 1 - - .../texts/in-tree/shaper-thai/script-thai/MANIFEST | 1 - - .../in-tree/shaper-thai/script-thai/misc/MANIFEST | 4 -- - test/shaping/texts/in-tree/shaper-tibetan/MANIFEST | 1 - - .../in-tree/shaper-tibetan/script-tibetan/MANIFEST | 1 - - .../shaper-tibetan/script-tibetan/misc/MANIFEST | 1 - - test/shaping/texts/in-tree/shaper-use/MANIFEST | 6 --- - .../texts/in-tree/shaper-use/script-batak/MANIFEST | 1 - - .../in-tree/shaper-use/script-buginese/MANIFEST | 1 - - .../texts/in-tree/shaper-use/script-cham/MANIFEST | 1 - - .../in-tree/shaper-use/script-kaithi/MANIFEST | 1 - - .../in-tree/shaper-use/script-kharoshti/MANIFEST | 1 - - .../in-tree/shaper-use/script-tai-tham/MANIFEST | 2 - - 126 files changed, 381 deletions(-) - -commit 815bdd7700155efcffa9a4c3ca5bfc31833d0586 -Author: Behdad Esfahbod -Date: Mon Feb 22 18:22:44 2016 +0900 - - In cluster-level=0, group ZWJ/ZWNJ with previous cluster - - This better emulates Unicode grapheme clusters. - - Note that Uniscribe does NOT do this, but should be harmless with - most clients, - and improve fallback with clients that use HarfBuzz cluster as unit - of fallback. - - Fixes https://github.com/behdad/harfbuzz/issues/217 - - src/hb-ot-layout-private.hh | 6 ++++++ - src/hb-ot-shape.cc | 3 ++- - test/shaping/tests/indic-joiner-candrabindu.tests | 2 +- - test/shaping/tests/mongolian-variation-selector.tests | 2 +- - 4 files changed, 10 insertions(+), 3 deletions(-) - -commit 89137e325a19d62fb00979e1e8ab2ca59a2c1147 -Author: Behdad Esfahbod -Date: Mon Feb 22 16:00:59 2016 +0900 - - Minor - - src/hb-coretext.cc | 2 +- - src/hb-ot-shape.cc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -commit 15063b12f7619d4f44981248e28f38c172d12e1f -Author: Behdad Esfahbod -Date: Mon Feb 22 15:56:29 2016 +0900 - - [coretext] Move CTFont construction to face_data - - src/hb-coretext.cc | 66 - +++++++++++++++++++++++++----------------------------- - 1 file changed, 30 insertions(+), 36 deletions(-) - -commit ba3d49d9a56932d341bf1916a30f322be665e3a6 -Author: Behdad Esfahbod -Date: Mon Feb 22 15:50:12 2016 +0900 - - [coretext] Move code around - - src/hb-coretext.cc | 70 - +++++++++++++++++++++++++++++++----------------------- - 1 file changed, 40 insertions(+), 30 deletions(-) - -commit 90194efb8480d58c55b7a19962624c7aadbdca63 -Author: Behdad Esfahbod -Date: Mon Feb 22 15:42:53 2016 +0900 - - [coretext] Move code around - - src/hb-coretext.cc | 46 ++++++++++++++++++++++++++-------------------- - 1 file changed, 26 insertions(+), 20 deletions(-) - -commit ca539e37a4b71e585a267a288db1a3975cbb99fc -Author: Behdad Esfahbod -Date: Mon Feb 22 15:37:18 2016 +0900 - - [build] git.mk fix for m4/gtk-doc.m4 - - Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -commit 54788cb1ecc5a5ffd63d07cd1f0b07b2afa9a8ca -Author: Behdad Esfahbod -Date: Mon Feb 22 15:32:52 2016 +0900 - - [win32] Install git.mk - - win32/Makefile.am | 2 ++ - 1 file changed, 2 insertions(+) - -commit 9a13ed453ef96822a47d6e6f58332b87f38d5c59 -Author: Behdad Esfahbod -Date: Mon Feb 22 11:44:45 2016 +0900 - - Make FixedVersion a template - - src/hb-open-file-private.hh | 4 ++-- - src/hb-open-type-private.hh | 9 +++++---- - src/hb-ot-head-table.hh | 4 ++-- - src/hb-ot-hhea-table.hh | 2 +- - src/hb-ot-layout-gdef-table.hh | 2 +- - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - src/hb-ot-layout-jstf-table.hh | 2 +- - src/hb-ot-maxp-table.hh | 2 +- - 8 files changed, 14 insertions(+), 13 deletions(-) - -commit 238b943e850ea1ab0093e12c74d2cd7c686f318e -Author: Behdad Esfahbod -Date: Mon Feb 22 15:31:22 2016 +0900 - - [coretext] Fix leak! - - src/hb-coretext.cc | 1 + - 1 file changed, 1 insertion(+) - -commit e561122856a50ed405d71cb1629317e7ae63f316 -Author: Behdad Esfahbod -Date: Mon Feb 22 15:28:37 2016 +0900 - - [coretext] Move code around - - src/hb-coretext.cc | 109 - ++++++++++++++++++++++++++++++----------------------- - 1 file changed, 62 insertions(+), 47 deletions(-) - -commit 04c64431530a4a6d9ebd33674c4665a8e6d25bdd -Author: Behdad Esfahbod -Date: Mon Feb 22 15:12:27 2016 +0900 - - [coretext] Ignore PPEM in font size selection - - src/hb-coretext.cc | 14 ++++---------- - 1 file changed, 4 insertions(+), 10 deletions(-) - -commit 62c2711121fe78f373c15c0f53090b62b52d11c1 -Author: Behdad Esfahbod -Date: Mon Feb 22 15:07:20 2016 +0900 - - [coretext] Limit grapheme-cluster forming to cluster-level=0 - - src/hb-coretext.cc | 1 + - src/hb-ot-shape.cc | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -commit 061105ec443eb7350ffe217305f9d8902c179e2f -Author: Behdad Esfahbod -Date: Mon Feb 22 14:59:39 2016 +0900 - - [coretext] Fix shaping with varying font size - - Fixes https://github.com/libass/libass/issues/212 - - src/hb-coretext.cc | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -commit 27847cab1264b4ce8342603f4626b4e0645979e4 -Author: Behdad Esfahbod -Date: Fri Feb 19 15:56:50 2016 +0700 - - 1.2.0 - - NEWS | 20 ++++++++++++++++++++ - configure.ac | 2 +- - 2 files changed, 21 insertions(+), 1 deletion(-) - -commit c3731559042e1730e85d19574321ad850010f7de -Author: Behdad Esfahbod -Date: Fri Feb 19 15:13:07 2016 +0700 - - [fuzzing] Add test for recent fix - - Test from https://github.com/behdad/harfbuzz/issues/223 - - I forgot that we do run hb-fuzzer on tests in - shaping/tests/fuzzed.tests. - - .../sha1sum/205edd09bd3d141cc9580f650109556cc28b22cb.ttf | Bin 0 -> - 1966 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/fuzzed.tests | 1 + - 3 files changed, 2 insertions(+) - -commit aa33cb72ab29c31e87f0cca9a0e72fe3a68247b7 -Author: Behdad Esfahbod -Date: Fri Feb 19 15:12:24 2016 +0700 - - [fuzzing] Make test runner actually work - - test/fuzzing/Makefile.am | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -commit 2735555c6b0c95db7dfc2b391f92a1a5c06084c4 -Author: Behdad Esfahbod -Date: Fri Feb 19 15:12:16 2016 +0700 - - [fuzzing] Add TODO item - - test/fuzzing/hb-fuzzer.cc | 1 + - 1 file changed, 1 insertion(+) - -commit b87e36f6f119fac80b8fd55f3abae563c2c5b798 -Author: Behdad Esfahbod -Date: Fri Feb 19 14:52:31 2016 +0700 - - Avoid buffer->move_to() in case of buffer error - - Fixes https://github.com/behdad/harfbuzz/issues/223 - - Right now we cannot test this because it has to be tested using - hb-fuzzer. - We should move all fuzzing tests from test/shaping/tests/fuzzed.tests - to - test/fuzzing/ and have its own test runner. At that point, should add - test from this issue as well. - - src/hb-buffer.cc | 2 ++ - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - 2 files changed, 3 insertions(+), 1 deletion(-) - -commit 7e76bbabbaa56af314abff8ddba8866c634919cd -Author: Behdad Esfahbod -Date: Fri Feb 19 14:43:39 2016 +0700 - - [fuzzing] Make "make hb-fuzzer" build lib dependency - - Not going to do with util/, but is convenient here. - - test/fuzzing/Makefile.am | 3 +++ - 1 file changed, 3 insertions(+) - -commit 568a0c60e8695a6ad8a93ec60d55b137c48890cb -Author: Behdad Esfahbod -Date: Thu Feb 18 19:31:51 2016 +0700 - - Remove pointless overflow check in pointer math - - Fixes https://github.com/behdad/harfbuzz/issues/227 - - src/hb-blob.cc | 1 - - 1 file changed, 1 deletion(-) - -commit aae2847099cbf05bf0668fbe526fc58736837c1b -Author: Behdad Esfahbod -Date: Thu Feb 18 17:06:25 2016 +0700 - - Emoji skin tone modifiers need to be treated as combining marks - - Fixes https://github.com/behdad/harfbuzz/issues/169 - - src/hb-ot-layout-private.hh | 15 ++++++++++++++- - src/hb-unicode-private.hh | 5 +++-- - 2 files changed, 17 insertions(+), 3 deletions(-) - -commit da41e48f0a1a6af6d44ef25185d2421a29bd4166 -Author: Behdad Esfahbod -Date: Tue Feb 16 17:16:33 2016 +0700 - - [USE] Zero mark advances by GDEF early - - This is what Microsoft's implementation does. Marks that need advance - need to add it back using 'dist' or other feature in GPOS. - Update tests to - match. - - src/hb-ot-shape-complex-use.cc | 2 +- - test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../sha1sum/f518eb6f6b5eec2946c9fbbbde44e45d46f5e2ac.ttf | Bin 0 -> - 1356 bytes - test/shaping/tests/context-matching.tests | 2 +- - test/shaping/tests/use.tests | 2 ++ - 5 files changed, 5 insertions(+), 2 deletions(-) - -commit 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2 -Author: Behdad Esfahbod -Date: Tue Feb 16 16:07:20 2016 +0700 - - [GPOS] Fix interaction of mark attachments and cursive chaining - - Fixes https://github.com/behdad/harfbuzz/issues/211 - - What happens in that bug is that a mark is attached to base first, - then a second mark is cursive-chained to the first mark. This only - "works" because it's in the Indic shaper where mark advances are - not zeroed. - - Before, we didn't allow cursive to run on marks at all. Fix that. - We also where updating mark major offsets at the end of GPOS, such - that changes in advance of base will not change the mark attachment - position. That was superior to the alternative (which is what - Uniscribe - does BTW), but made it hard to apply cursive to the mark after it - was positioned. We could track major-direction offset changes and - apply that to cursive in the post process, but that's a much trickier - thing to do than the fix here, which is to immediately apply the - major-direction advance-width offsets... Ie.: - - https://github.com/behdad/harfbuzz/issues/211#issuecomment-183194739 - - If this breaks any fonts, the font should be fixed to do mark - attachment - after all the advances are set up first (kerning, etc). - - Finally, this, still doesn't make us match Uniscribe, for I explained - in that bug. Looks like Uniscribe applies minor-direction cursive - adjustment immediate as well. We don't, and we like it our way, at - least for now. Eg. the sequence in the test case does this: - - - The first subscript attaches with mark-to-base, moving in x only, - - The second subscript attaches with cursive attachment to first - subscript - moving in x only, - - A final context rule moves the first subscript up by 104 units. - - The way we do, the final shift-up, also shifts up the second subscript - mark because it's cursively-attached. Uniscribe doesn't. We get: - - [ttaorya=0+1307|casubscriptorya=0@-242,104+-231|casubscriptnarroworya=0@20,104+507] - - while Uniscribe gets: - - [ttaorya=0+1307|casubscriptorya=0@-242,104+-211|casubscriptnarroworya=0+487] - - note the different y-offset of the last glyph. In our view, - after cursive, - things move together, period. - - src/hb-ot-layout-gpos-table.hh | 31 - +++++++++++---------- - .../706c5d7b625f207bc0d874c67237aad6f1e9cd6f.ttf | Bin 0 -> 3868 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/cursive-positioning.tests | 1 + - 4 files changed, 18 insertions(+), 15 deletions(-) - -commit 80c8855cfeffa028d74a25df884d0e5577c95c6c -Author: Behdad Esfahbod -Date: Fri Feb 12 12:50:17 2016 +0700 - - Minor - - src/hb-common.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 6ab920224c32e38072a0bec5e84d4b0d58b74167 -Author: Behdad Esfahbod -Date: Thu Feb 11 16:57:52 2016 +0700 - - [GPOS] Minor - - No effect. - - src/hb-ot-layout-gpos-table.hh | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -commit cbc3a76c5a38ab24f72e80357377711bd3f54d56 -Author: Behdad Esfahbod -Date: Thu Feb 11 16:48:13 2016 +0700 - - [GPOS] Merge fixing of offsets for cursive and mark attachments - - Part of fixing https://github.com/behdad/harfbuzz/issues/211 - - src/hb-buffer-private.hh | 3 +- - src/hb-ot-layout-gpos-table.hh | 73 - ++++++++++++++++++------------------------ - 2 files changed, 33 insertions(+), 43 deletions(-) - -commit 7d8d58ac81fe267e29ea68cdc6f4a4fa8c22d40f -Author: Behdad Esfahbod -Date: Thu Feb 11 16:34:28 2016 +0700 - - [GPOS] Divide position_finish() into two phases, for advances - and offsets - - Right now the position_finish_advances() is empty. To be used for - spacing attachments proposal later. - - src/hb-ot-layout-gpos-table.hh | 11 +++++++++-- - src/hb-ot-layout-gsub-table.hh | 6 ------ - src/hb-ot-layout-private.hh | 19 +++++++++---------- - src/hb-ot-layout.cc | 16 ++++++++-------- - src/hb-ot-shape.cc | 7 +++---- - 5 files changed, 29 insertions(+), 30 deletions(-) - -commit 8474231567a08873cc5e0aa08fea60316a04c27e -Author: Behdad Esfahbod -Date: Thu Feb 11 16:27:41 2016 +0700 - - [ot] Minor shuffling code around - - src/hb-ot-layout-gpos-table.hh | 2 -- - src/hb-ot-shape.cc | 13 ++++++++----- - 2 files changed, 8 insertions(+), 7 deletions(-) - -commit b0b11614e9fb9ecd1faae28b0ed71ac6bf5c1266 -Author: Behdad Esfahbod -Date: Thu Feb 11 15:28:55 2016 +0700 - - [GPOS] Add harmless recursion in fix_mark_attachment() - - Will do nothing. Just useful for merging two functions. - - src/hb-ot-layout-gpos-table.hh | 2 ++ - 1 file changed, 2 insertions(+) - -commit 686567baab5a32ffea843538643e01de2885fa4f -Author: Behdad Esfahbod -Date: Thu Feb 11 15:25:28 2016 +0700 - - [GPOS] Merge attach_chain() and cursive_chain() - - Differentiate, using new attach_type(). - - src/hb-ot-layout-gpos-table.hh | 50 - +++++++++++++++++++++++++++--------------- - 1 file changed, 32 insertions(+), 18 deletions(-) - -commit 806ad8dc65931ab7893bff7d5592a67a9bd237ca -Author: Behdad Esfahbod -Date: Thu Feb 11 14:53:11 2016 +0700 - - [GPOS] Minor shuffling - - src/hb-ot-layout-gpos-table.hh | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -commit 0f6278d1fbb75856132f1fa2d29648979f033316 -Author: Behdad Esfahbod -Date: Thu Feb 11 14:49:10 2016 +0700 - - [GPOS] Negate sign of attach_lookback(), and rename it to - attach_chain() - - No behavior change. Preparing to unify how cursive and mark - attachments - work. - - src/hb-ot-layout-gpos-table.hh | 17 +++++++++-------- - 1 file changed, 9 insertions(+), 8 deletions(-) - -commit 5b5dc2c0406d8180e72d97a54334c722fda325b1 -Author: Behdad Esfahbod -Date: Thu Feb 11 12:15:38 2016 +0700 - - [tests] Add test for advance zeroing of an ASCII letter marked as - mark in GDEF - - test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../sha1sum/a98e908e2ed21b22228ea59ebcc0f05034c86f2e.ttf | Bin 0 -> - 1016 bytes - test/shaping/tests/zero-width-marks.tests | 1 + - 3 files changed, 2 insertions(+) - -commit 660c9d3fc21172e8dc340b017122c084dac6334c -Author: Behdad Esfahbod -Date: Thu Feb 11 12:14:27 2016 +0700 - - Remove font-dependent ASCII-only perf hack - - Is confusing. I already hit it myself. Remove. We can optimize - ASCII based on Unicode properties. But should not do based on - assumptions on the font. - - src/hb-ot-shape.cc | 4 ---- - 1 file changed, 4 deletions(-) - -commit 3fe0cf10401875f1e9b8b5fbaf59826e64ea61d2 -Author: Behdad Esfahbod -Date: Wed Feb 10 18:43:43 2016 +0700 - - Fix previous commit! - - test/shaping/fonts/sha1sum/MANIFEST | 6 +++--- - test/shaping/tests/zero-width-marks.tests | 6 +++--- - 2 files changed, 6 insertions(+), 6 deletions(-) - -commit 293a210eee0a53b59f4b33298f42ec6e59d785e0 -Author: Behdad Esfahbod -Date: Wed Feb 10 18:39:59 2016 +0700 - - [tests] Fix fonts in cc4a78bf22c4a735b84c89b04be3bb531f42135e - - They had an invalid LookupFlag (32). - - .../sha1sum/0dd3a51c3ea50997cb1f72515d1060408f8b4b59.ttf | Bin 1412 -> - 0 bytes - .../sha1sum/56cfd0e18d07f41c38e9598545a6d369127fc6f9.ttf | Bin 0 -> - 1412 bytes - .../sha1sum/828114d00931885bc25abf7cdb878b2914a2e743.ttf | Bin 1448 -> - 0 bytes - .../sha1sum/894e96a367f00c196d82e6243673a1d4414f4f6a.ttf | Bin 1448 -> - 0 bytes - .../sha1sum/cc5f3d2d717fb6bd4dfae1c16d48a2cb8e12233b.ttf | Bin 0 -> - 1448 bytes - .../sha1sum/ffa0f5d2d9025486d8469d8b1fdd983e7632499b.ttf | Bin 0 -> - 1448 bytes - 6 files changed, 0 insertions(+), 0 deletions(-) - -commit eaadcbbc53e02838c847e53ef214a55d6915d677 -Author: Behdad Esfahbod -Date: Wed Feb 10 18:29:54 2016 +0700 - - Remove now-unused mark zeroing BY_UNICODE - - src/hb-ot-shape-complex-private.hh | 2 -- - src/hb-ot-shape.cc | 29 ----------------------------- - 2 files changed, 31 deletions(-) - -commit cc4a78bf22c4a735b84c89b04be3bb531f42135e -Author: Behdad Esfahbod -Date: Wed Feb 10 18:24:08 2016 +0700 - - [tests] Add tests for Latin mark zeroing - - .../sha1sum/0dd3a51c3ea50997cb1f72515d1060408f8b4b59.ttf | Bin 0 -> - 1412 bytes - .../sha1sum/828114d00931885bc25abf7cdb878b2914a2e743.ttf | Bin 0 -> - 1448 bytes - .../sha1sum/894e96a367f00c196d82e6243673a1d4414f4f6a.ttf | Bin 0 -> - 1448 bytes - test/shaping/fonts/sha1sum/MANIFEST | 4 ++++ - .../sha1sum/fcdcffbdf1c4c97c05308d7600e4c283eb47dbca.ttf | Bin 0 -> - 1344 bytes - test/shaping/tests/zero-width-marks.tests | 4 ++++ - 6 files changed, 8 insertions(+) - -commit 55ff34b9c157a839d026465af8f30424ce7f891b -Author: Behdad Esfahbod -Date: Wed Feb 10 18:20:02 2016 +0700 - - [tests] Add tests for Thai mark zeroing - - .../sha1sum/45855bc8d46332b39c4ab9e2ee1a26b1f896da6b.ttf | Bin 0 -> - 1088 bytes - .../sha1sum/7a37dc4d5bf018456aea291cee06daf004c0221c.ttf | Bin 0 -> - 1080 bytes - .../sha1sum/8099955657a54e9ee38a6ba1d6f950ce58e3cc25.ttf | Bin 0 -> - 1024 bytes - test/shaping/fonts/sha1sum/MANIFEST | 4 ++++ - .../sha1sum/bb0c53752e85c3d28973ebc913287b8987d3dfe8.ttf | Bin 0 -> - 976 bytes - test/shaping/tests/zero-width-marks.tests | 4 ++++ - 6 files changed, 8 insertions(+) - -commit b3582a8ee82942a931130a83b2867b239f8ca71a -Author: Behdad Esfahbod -Date: Wed Feb 10 18:10:15 2016 +0700 - - Change default mark advance zeroing behavior from Unicode to GDEF - - See thread at: - https://lists.freedesktop.org/archives/harfbuzz/2016-February/005462.html - - src/hb-ot-shape-complex-default.cc | 2 +- - src/hb-ot-shape-complex-thai.cc | 2 +- - src/hb-ot-shape-complex-tibetan.cc | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -commit 43bb2b8fb00705c3334730a58ade7984181018b2 -Author: Behdad Esfahbod -Date: Wed Feb 10 14:11:43 2016 +0700 - - Minor - - test/shaping/hb_test_tools.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit bdaa784bb610ec65626d63cc068a0958ff5005fc -Merge: a168db4 f6ffba6 -Author: Behdad Esfahbod -Date: Wed Feb 10 11:11:36 2016 +0700 - - Merge pull request #164 from fanc999/msvc.build - - Enable Build of HarfBuzz under Visual Studio using NMake Makefiles - -commit a168db4739148459bc33c7dae88e73efa0153d72 -Author: Behdad Esfahbod -Date: Wed Feb 10 11:10:08 2016 +0700 - - [README] Add ABI Tracker link - - README | 1 + - 1 file changed, 1 insertion(+) - -commit f6ffba634bb33d6d4b051abce9c23fcae280c3fe -Author: Chun-wei Fan -Date: Wed Dec 9 14:57:15 2015 +0800 - - MSVC builds: Add support to build DirectWrite shaping backend - - Add into the NMake Makefiles to build the DirectWrite shaping backend, - but as PR #134 mentions, this is considered to be in an experimental - state, - so don't include this in the build by default for now. This is - most probably - going to replace the Uniscribe backend eventually, since DirectWrite - is meant - to be Uniscribe's replacement, and is needed for Windows Store apps - if a - system shaping API is to be used. - - win32/README.txt | 4 ++++ - win32/config-msvc.mak | 10 ++++++++++ - win32/config.h.win32.in | 3 +++ - win32/info-msvc.mak | 7 +++++++ - 4 files changed, 24 insertions(+) - -commit c6792854557ca104948e8f0b142c9384105b0d05 -Author: Chun-wei Fan -Date: Wed Feb 3 18:31:23 2016 +0800 - - build: Build the DirectWrite sources if requested - - This adds to the autotools build system so that the (experimental) - DirectWrite support for HarfBuzz is built (and dist'ed). - - configure.ac | 25 +++++++++++++++++++++++++ - src/Makefile.am | 7 +++++++ - src/Makefile.sources | 3 +++ - 3 files changed, 35 insertions(+) - -commit d7b6636e5ebf1ddf7d7a04007ffbc411cf7e462e -Author: Chun-wei Fan -Date: Tue Nov 3 19:00:42 2015 +0800 - - build: Support Visual Studio builds using NMake - - This adds a set of NMake Makefiles that can be used to build - HarfBuzz, from - the standard basic build building the minimal HarfBuzz DLL (consisting - of OpenType, fallback and Uniscribe support only), to a full - fledged build - consisting of GLib and FreeType support, as well as building the - utilities, - the test programs in src/ and test/api, and HarfBuzz-ICU and - HarfBuzz-GObject, and up to building the introspection files. - This means a - flexible build mechanism is supported here, so anything that is - supported - for a Windows build (code-wise), should all be supported by this build - system. - - As in an earlier commit, the source listings are shared with the - autotools - builds with the various Makefile.sources in src/, src/hb-ucdn and - util/, and - this set of NMake Makefiles will transform these lists into the - form they - want. - - In the current form, all the test programs in test/api pass, and - this has - been checked successfully with 'make -j8 distcheck'. - - BUILD.md | 4 +- - Makefile.am | 2 +- - configure.ac | 2 + - win32/Makefile.am | 14 +++ - win32/Makefile.vc | 52 +++++++++++ - win32/README.txt | 75 ++++++++++++++++ - win32/build-rules-msvc.mak | 140 ++++++++++++++++++++++++++++++ - win32/config-msvc.mak | 188 - ++++++++++++++++++++++++++++++++++++++++ - win32/create-lists-msvc.mak | 151 ++++++++++++++++++++++++++++++++ - win32/create-lists.bat | 42 +++++++++ - win32/detectenv-msvc.mak | 136 +++++++++++++++++++++++++++++ - win32/generate-msvc.mak | 26 ++++++ - win32/hb-introspection-msvc.mak | 42 +++++++++ - win32/info-msvc.mak | 130 +++++++++++++++++++++++++++ - win32/install.mak | 29 +++++++ - win32/introspection-msvc.mak | 73 ++++++++++++++++ - 16 files changed, 1104 insertions(+), 2 deletions(-) - -commit 5c3e7260bcb4999b8b7cb9afb26e6eaff867634b -Author: Chun-wei Fan -Date: Tue Nov 3 18:52:46 2015 +0800 - - MSVC builds: Add a pre-configured config.h(.win32) template - - This adds a pre-configured config.h template that can be used - for Visual - Studio builds, where autotools is not normally available. This has - the - configs that are suitable for Visual Studio builds, as well as all the - features used for Windows builds enabled (HAVE_OT, HAVE_FALLBACK and - HAVE_UNISCRIBE). - - Note that the optional features are not enabled here, they are - enabled by - /D's (or -D's) in the NMake Makefiles as requested. - - win32/config.h.win32.in | 155 - ++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 155 insertions(+) - -commit 35ded3af74a5bc4b038a07308354d5f7501ae3c7 -Author: Chun-wei Fan -Date: Tue Nov 3 16:56:27 2015 +0800 - - build: Move source listings into separate Makefile snippets - - This moves all the source listings in src/Makefile.am, - src/hb-ucdn/Makefile.am and util/Makefile.am into separate Makefile - snippets, so that they may be shared between different Makefile-based - build systems, such as NMake for Visual Studio. - - src/Makefile.am | 165 - +++++++++---------------------------------- - src/Makefile.sources | 147 ++++++++++++++++++++++++++++++++++++++ - src/hb-ucdn/Makefile.am | 6 +- - src/hb-ucdn/Makefile.sources | 4 ++ - util/Makefile.am | 34 ++------- - util/Makefile.sources | 32 +++++++++ - 6 files changed, 223 insertions(+), 165 deletions(-) - -commit b894a85ad1e7c3ecfb6d3732a7c9779f5462fe70 -Author: Behdad Esfahbod -Date: Tue Feb 2 16:39:19 2016 +0800 - - Fix more hangs in case of buffer allocation errors - - Hopefully - fixes https://github.com/behdad/harfbuzz/issues/214 - - src/hb-ot-shape-complex-indic.cc | 2 +- - src/hb-ot-shape-complex-myanmar.cc | 2 +- - src/hb-ot-shape-complex-use.cc | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -commit b693992ea160b66541f678dc9be29b513c77a30b -Merge: 9a6a33c 498574e -Author: Behdad Esfahbod -Date: Tue Feb 2 12:33:32 2016 +0800 - - Merge pull request #222 from n8willis/master - - Add usermanual chapter on cluster levels - -commit 498574e6c1a83bbd2768925af6e39806fe1ea8bb -Author: n8willis -Date: Thu Jan 28 12:21:32 2016 -0600 - - Update Makefile.am - - docs/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -commit e12fc666994573dbabb6928a8b2e8698667088ce -Author: n8willis -Date: Thu Jan 28 12:14:12 2016 -0600 - - Added initial usermanual chapter on cluster levels. - - docs/harfbuzz-docs.xml | 1 + - docs/usermanual-clusters.xml | 304 - +++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 305 insertions(+) - -commit 9a6a33ccbea8a2e23e779bd955958fa41974c1c7 -Merge: d05b783 146fe25 -Author: Behdad Esfahbod -Date: Mon Jan 18 12:47:18 2016 +0100 - - Merge pull request #216 from mhosken/master - - Refactor graphite2 to make ovleraps into negative width spaces - -commit 146fe252c3ebd0253344ce20981554e40926497b -Author: Martin Hosken -Date: Sat Jan 16 17:24:00 2016 -0600 - - Refactor graphite2 to make ovleraps into negative width spaces - - src/hb-graphite2.cc | 71 - ++++++++++++++++++++++++++++++++--------------------- - 1 file changed, 43 insertions(+), 28 deletions(-) - -commit d05b783322d90208b2ddf06a5ebffc7c301be3d7 -Author: Behdad Esfahbod -Date: Tue Jan 12 16:17:21 2016 +0000 - - Fix compiler warning - - Fixes https://github.com/behdad/harfbuzz/issues/212 - - src/hb-ot-tag.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit d163dc18e66c9e2f404d09310482464245cae704 -Author: Behdad Esfahbod -Date: Tue Jan 12 13:05:01 2016 +0000 - - Minor - - src/hb-ot-layout-common-private.hh | 30 +++++++++++++++--------------- - 1 file changed, 15 insertions(+), 15 deletions(-) - -commit 505b7d4732c6a8c423f43c0de46e05dc583e82c0 -Author: Behdad Esfahbod -Date: Mon Jan 11 18:31:04 2016 +0000 - - [fuzzing] Fuzz input text - - Very rudimentary right now, but will get kcc's bot going. - - From - https://github.com/behdad/harfbuzz/issues/139#issuecomment-163580783 - - test/fuzzing/hb-fuzzer.cc | 25 +++++++++++++++++++------ - 1 file changed, 19 insertions(+), 6 deletions(-) - -commit 3e704521f67e021fb51cda7319925fd39eba4f97 -Author: Behdad Esfahbod -Date: Mon Jan 11 17:38:41 2016 +0000 - - [OT] Get list of lookup subtables once and loop through them - - This speeds up shaping the Amiri font by over 15%. - - This was primarily needed for my work on OpenType GX, since - we will be collecting only sublookups that are "active" for - current font instance; but it's a nice boost in general as - well. - - We might, in the future, collect subtables in the lookup_accel. - That would also allow us to do a per-subtbale set-digest, which - should speed things up some more, specially for ContextChainFormat3 - lookups... Amiri, for example, contains one lookup with 53 - subtables! - - src/hb-ot-layout.cc | 120 - +++++++++++++++++++++++++++++++++++----------------- - 1 file changed, 81 insertions(+), 39 deletions(-) - -commit 11441291bbf4326dca9b14ec3e9cad3d4d229303 -Author: Behdad Esfahbod -Date: Mon Jan 11 13:16:35 2016 +0000 - - 1.1.3 - - NEWS | 29 +++++++++++++++++++++++++++++ - configure.ac | 2 +- - 2 files changed, 30 insertions(+), 1 deletion(-) - -commit 97624d9244de0fdb9c03f60e03fe242028efa8a1 -Author: Behdad Esfahbod -Date: Mon Jan 11 12:58:45 2016 +0000 - - [docs] Minor fixes. - - src/hb-buffer.h | 26 +++++++++++++------------- - 1 file changed, 13 insertions(+), 13 deletions(-) - -commit a39ff95fce39226e80850ff251cb34a7aad12bd7 -Author: Behdad Esfahbod -Date: Mon Jan 11 12:28:37 2016 +0000 - - [coretext] Speed up CoreText font fallback - - Fixes https://code.google.com/p/chromium/issues/detail?id=547912 - - src/hb-coretext.cc | 45 ++++++++++++++++++++++++++++++++++++++++----- - 1 file changed, 40 insertions(+), 5 deletions(-) - -commit 5afebbdcb2dab0e9a42d580df629d8e60b50d2f9 -Author: Behdad Esfahbod -Date: Thu Jan 7 22:53:59 2016 +0000 - - Add Homebrew build instructions - - BUILD.md | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -commit e8a27d79476a5d7a83cf2287d92ca291257546f4 -Author: Behdad Esfahbod -Date: Thu Jan 7 22:52:16 2016 +0000 - - Don't build hb-fuzzer in "make", only "make check" - - test/fuzzing/Makefile.am | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -commit 25671466d245449187f8ab17e1a233f1d087d5ed -Author: Behdad Esfahbod -Date: Thu Jan 7 19:11:41 2016 +0000 - - Add 9 reserved entries to hb_font_extents_t - - Might add italic-angle, underline/strikethrough-position/thickness - in the future. Do this before new struct goes into a release. - - src/hb-font.h | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -commit e6d5e4c3106180cb22253c2c278b40f7c4c98f2f -Author: Behdad Esfahbod -Date: Wed Jan 6 12:29:50 2016 +0000 - - [uniscribe] Fix negative advance - - This happens with at least one test font I have. - - src/hb-uniscribe.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 99d34955762d0fff4b66a30e6fbe65fd1cf9976b -Author: Behdad Esfahbod -Date: Wed Jan 6 12:20:47 2016 +0000 - - [test] Add test text for Kaithi - - test/shaping/texts/in-tree/shaper-hangul/MANIFEST | 1 + - test/shaping/texts/in-tree/shaper-hebrew/MANIFEST | 1 + - test/shaping/texts/in-tree/shaper-tibetan/MANIFEST | 1 + - test/shaping/texts/in-tree/shaper-use/MANIFEST | 1 + - test/shaping/texts/in-tree/shaper-use/script-kaithi/MANIFEST | 1 + - test/shaping/texts/in-tree/shaper-use/script-kaithi/misc.txt | 6 ++++++ - 6 files changed, 11 insertions(+) - -commit 53c47c85827a7e3ca82000e3baa9aa87c5770ce9 -Author: Behdad Esfahbod -Date: Tue Jan 5 13:26:20 2016 +0000 - - Increase sanitize edit count from 8 to 32 - - See previous commit. - - src/hb-open-type-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit da2fcfdc51a2cc0d0a782efa6c91b733f7aa84ba -Author: Behdad Esfahbod -Date: Tue Jan 5 13:23:45 2016 +0000 - - Don't count fixing-up FeatureParams offset as error - - The font Garamond Premier Pro Caption (and possibly many other - Adobe fonts), have many FeatureParamsSize tables with the old - wrong offset. We handle fixing those up, but they were still - contributing to edit_count, and when I reduced HB_SANITIZE_MAX_EDIT - from 100 to 8 in 14c2de321826c36037adde859ccca3e2011325a9, these - fonts were now getting GPOS dropped and hence kerning disabled. - - Fix, by not counting edits made towareds offset fix-up. I'll - also increase edit count again, in the next commit. - - src/hb-ot-layout-common-private.hh | 3 +++ - 1 file changed, 3 insertions(+) - -commit d0adc80965506810820f9ec165b8df80cc8907e3 -Author: Behdad Esfahbod -Date: Sat Jan 2 13:25:18 2016 +0000 - - Check magicNumber in head table during sanitize - - src/hb-ot-head-table.hh | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -commit 3a48c776701a919e11b067129586e40372d90d54 -Merge: 9230911 4b4948d -Author: Behdad Esfahbod -Date: Sat Jan 2 00:59:14 2016 +0000 - - Merge pull request #208 from khaledhosny/travis-trusty - - [travis] Try building on Trusty - -commit 4b4948d360a2141e0ffda2994aa308645dc32f59 -Author: Khaled Hosny -Date: Sat Jan 2 00:36:19 2016 +0400 - - [travis] Try building on Trusty - - Trusty has gtk-doc 1.20 which has better markdown support which should - fix some of the brokenness in the newly added documentation. The build - seems to be as fast as the current container-based build on Precise. - - .travis.yml | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -commit 9230911facf90c06626e54023ca4d99f5e05f1a4 -Author: Behdad Esfahbod -Date: Fri Jan 1 19:06:43 2016 +0000 - - [travis] Only run coveralls if testing behdad/harfbuzz - - Fixes failures in others' forks, like: - https://travis-ci.org/khaledhosny/harfbuzz/jobs/99719710#L3912 - - .travis.yml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 6f66f05757d3d5738571b3d4ee40afffb8f26ff9 -Merge: bfdf684 9ab9f97 -Author: Behdad Esfahbod -Date: Fri Jan 1 16:44:01 2016 +0000 - - Merge pull request #207 from khaledhosny/docs-4 - - [docs] More buffers documentation - -commit 9ab9f974d42e0001966e243a23a64e6aefbd4764 -Author: Khaled Hosny -Date: Fri Jan 1 20:38:21 2016 +0400 - - [docs] More buffers documentation - - docs/harfbuzz-sections.txt | 4 +- - src/hb-buffer-serialize.cc | 85 - ++++++++++++++++++++++++++++++------------- - src/hb-buffer.cc | 91 - +++++++++++++++++++++++++++++++++++----------- - src/hb-buffer.h | 78 +++++++++++++++++++++++++-------------- - src/hb-shape.cc | 10 +++-- - 5 files changed, 187 insertions(+), 81 deletions(-) - -commit bfdf684f7957645dd016fbf76700c5911c4bee2d -Merge: d7ed6f5 85c2443 -Author: Behdad Esfahbod -Date: Wed Dec 30 22:20:14 2015 +0100 - - Merge pull request #205 from khaledhosny/more-docs - - More docs - -commit d7ed6f50b4ff13a94701131913d931f13a4d1266 -Merge: b758e5e a7f0e25 -Author: Behdad Esfahbod -Date: Wed Dec 30 22:20:00 2015 +0100 - - Merge pull request #206 from nico/patch-3 - - Remove unused HB_SHAPER_DATA_ENSURE_DECLARE lines. - -commit a7f0e25dafa90bd21b01c38cb0782ade54b75cdc -Author: Nico Weber -Date: Wed Dec 30 16:05:52 2015 -0500 - - Remove unused HB_SHAPER_DATA_ENSURE_DECLARE lines. - - The coretext_aat shaper delegates to the regular coretext_..._ensure() - functions, so coretext_aat_..._ensure() functions defined by these - macros are unused. The compiler warns about them, which in turn can - confuse people to think that the coretext_aat_..._ensure() functions - weren't called by accident. - - src/hb-coretext.cc | 4 ---- - 1 file changed, 4 deletions(-) - -commit 85c2443b737335b77c7e9bb6fd6741912f70fcef -Author: Khaled Hosny -Date: Wed Dec 30 22:57:04 2015 +0400 - - [docs] Reduce gtkdoc-check errors - - Now it is just reporting one error about “503 undocumented or - incomplete - symbols”, that will be the easy part I guess. - - docs/harfbuzz-docs.xml | 74 - ++++++++++++++++++++++++++++++++++++++++++++++ - docs/harfbuzz-sections.txt | 40 +++++++++++++++++++++++++ - 2 files changed, 114 insertions(+) - -commit 9cffe329f15b3a74a3af4e68c1884f1dbda49666 -Author: Khaled Hosny -Date: Wed Dec 30 22:50:08 2015 +0400 - - [docs] Typo - - src/hb-buffer.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit b758e5ea223eced0fde9a3e62d0fdf04c04914a1 -Merge: 266bfa3 8b1224f -Author: Behdad Esfahbod -Date: Wed Dec 30 16:44:19 2015 +0100 - - Merge pull request #203 from nico/patch-1 - - Remove unused `retry:` label. - -commit 266bfa3772e75fedcd93db22bf8672a13ad7a7d9 -Author: Behdad Esfahbod -Date: Wed Dec 30 16:25:48 2015 +0100 - - [docs] Minor - - .ci/deploy-docs.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit d08035f8f15b7ddd89a318ea34bc386a9e33a8ea -Author: Behdad Esfahbod -Date: Wed Dec 30 16:15:36 2015 +0100 - - [docs] Fix up build, really - - .ci/deploy-docs.sh | 9 ++++----- - .travis.yml | 2 +- - 2 files changed, 5 insertions(+), 6 deletions(-) - -commit 0d45c3cf63692151166ca7071f755dfaa8922a67 -Author: Behdad Esfahbod -Date: Wed Dec 30 16:09:39 2015 +0100 - - [docs] Turn bash tracing on - - .ci/deploy-docs.sh | 4 ++++ - 1 file changed, 4 insertions(+) - -commit 33b2d981a0b12ea165ef9282204a73f4a1ce0477 -Author: Behdad Esfahbod -Date: Wed Dec 30 15:56:56 2015 +0100 - - [docs] Another try, not sure why the bot isn't building - - .ci/deploy-docs.sh | 13 ++++--------- - 1 file changed, 4 insertions(+), 9 deletions(-) - -commit f3a051149b3b565b5ad4e489bf730c5203c3549e -Author: Behdad Esfahbod -Date: Wed Dec 30 15:45:43 2015 +0100 - - [docs] Shuffling code around in deploy-docs.sh - - Temporarily makes it rebuild docs on every change again. - - .ci/deploy-docs.sh | 46 +++++++++++++++++++++++++++------------------- - 1 file changed, 27 insertions(+), 19 deletions(-) - -commit 8f31d0a94b27bb658aabe600472fc10bc47885f6 -Merge: 9d280cf fb192c2 -Author: Behdad Esfahbod -Date: Wed Dec 30 15:13:37 2015 +0100 - - Merge pull request #202 from khaledhosny/doc-fixes - - Doc fixes - -commit fb192c263e17081c87f4cc971274d9be42f19513 -Author: Khaled Hosny -Date: Wed Dec 30 15:05:50 2015 +0400 - - [docs] A bit more buffers documentation - - docs/harfbuzz-sections.txt | 2 ++ - src/hb-buffer.cc | 7 +++--- - src/hb-buffer.h | 56 - ++++++++++++++++++++++++++++++++++++++++++++-- - 3 files changed, 60 insertions(+), 5 deletions(-) - -commit 8ab797c5b86c33eab6ee024471fd3c147325d26a -Author: Khaled Hosny -Date: Tue Dec 29 17:42:16 2015 +0400 - - [docs] A bit more buffers documentation - - docs/harfbuzz-sections.txt | 60 +++++++++++++++--------------- - src/hb-buffer.cc | 93 - +++++++++++++++++++++++++++++++--------------- - src/hb-buffer.h | 7 +++- - src/hb-common.cc | 43 +++++++++++++-------- - src/hb-common.h | 15 +++++--- - 5 files changed, 135 insertions(+), 83 deletions(-) - -commit f18d2226b62f20d29e6299c01ae8467c725ea971 -Author: Khaled Hosny -Date: Tue Dec 29 15:21:20 2015 +0400 - - [docs] Some documentation on buffers - - Some of it (create, reference, destroy) are adapted from Cairo docs. - - docs/harfbuzz-sections.txt | 55 +++++++------- - src/hb-buffer.cc | 174 - +++++++++++++++++++++++++++------------------ - 2 files changed, 132 insertions(+), 97 deletions(-) - -commit d7bf9d05c519a369a7b3a02e9ed5ecc05a20cd3e -Author: Khaled Hosny -Date: Tue Dec 29 02:23:24 2015 +0400 - - [docs] Fix comment syntax - - To lower the number of gtk-doc warnings. - - .travis.yml | 2 +- - src/hb-directwrite.cc | 4 ++-- - src/hb-ot-layout.cc | 14 ++++++++++++++ - src/hb-unicode.h | 16 ++++++++++++++++ - 4 files changed, 33 insertions(+), 3 deletions(-) - -commit 8b1224f0eece7a5b6846e206333e57ac4653a705 -Author: Nico Weber -Date: Mon Dec 28 21:31:28 2015 -0500 - - Remove unused `retry:` label. - - Fixes a -Wunused-label warning when building harfbuzz with clang - -Wall. - - src/hb-coretext.cc | 1 - - 1 file changed, 1 deletion(-) - -commit 1f5559293f9bb1b4e911f4bdecf276ff1f6ae01c -Author: Khaled Hosny -Date: Tue Dec 29 02:15:21 2015 +0400 - - [docs] Ignore the new HB_EXTERN decoration - - Otherwise, almost all API functions are not extracted. - - docs/Makefile.am | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -commit 9d280cf49f25181f64c978752f926b79e7c3746a -Author: Khaled Hosny -Date: Sat Dec 26 06:45:51 2015 +0400 - - Fix previous commit - - .ci/deploy-docs.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit b789199f107912cfce5e4a95d6152f9a1a7993f2 -Author: Khaled Hosny -Date: Sat Dec 26 06:35:08 2015 +0400 - - [travis] Build docs only on tagged revisions - - Lets see if it works… - - .ci/deploy-docs.sh | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -commit e5b90c08a4c1f475560209a5e47628f695606d89 -Author: Behdad Esfahbod -Date: Fri Dec 25 18:41:41 2015 +0100 - - [travis] Remove secure var - - I've set up a secure var for behdad/harfbuzz through Travis web - interface, no need - to set the var here. - - .ci/deploy-docs.sh | 2 +- - .travis.yml | 1 - - 2 files changed, 1 insertion(+), 2 deletions(-) - -commit e75c1ffdf548185ce1f1df7937f0d028e5e40efe -Merge: 6173c2a d25317f -Author: Behdad Esfahbod -Date: Fri Dec 25 18:21:08 2015 +0100 - - Merge pull request #199 from behdad/travis-docs - - Deploy docs to gh-pages branch from Travis builds - -commit 6173c2a6fc6ea0bf812f7f398770b5342974f9bf -Author: Behdad Esfahbod -Date: Fri Dec 25 18:18:23 2015 +0100 - - Fix flaky test - - This test font had a upem of 769, which results in rounding-related - errors with - the FreeType font funcs. Change the upem to 1024 to fix that. - - Fixes https://github.com/behdad/harfbuzz/issues/201 - - ...> 1c2fb74c1b2aa173262734c1f616148f1648cfd6.ttf} | Bin 4064 -> - 4064 bytes - test/shaping/fonts/sha1sum/MANIFEST | 2 +- - test/shaping/tests/ligature-id.tests | 70 - ++++++++++----------- - 3 files changed, 36 insertions(+), 36 deletions(-) - -commit 3fcae6d82da389c9944386a8ab41eb1c13b99330 -Author: Behdad Esfahbod -Date: Fri Dec 25 18:18:02 2015 +0100 - - [tests] Add --reference, for re-recording tests - - test/shaping/run-tests.sh | 18 ++++++++++++++---- - 1 file changed, 14 insertions(+), 4 deletions(-) - -commit d25317f67f3c5c77f9059961935b0f35cbaa9ac4 -Author: Khaled Hosny -Date: Wed Dec 23 01:29:48 2015 +0400 - - Move more docs from FreeDesktop page - - docs/Makefile.am | 1 + - docs/harfbuzz-docs.xml | 15 ++++---- - docs/usermanual-install-harfbuzz.xml | 70 - ++++++++++++++++++++++++++++++++++++ - 3 files changed, 80 insertions(+), 6 deletions(-) - -commit 493a92220844c8996be67c8a7a2c5447942fe2c1 -Author: Khaled Hosny -Date: Wed Dec 23 00:33:41 2015 +0400 - - Rename user manual files - - Use chapter ids instead of numbers, so that we can reorder them, - introduce new ones etc. without the numbers becoming out of date. - - docs/Makefile.am | 12 - ++++++------ - docs/harfbuzz-docs.xml | 12 - ++++++------ - ... => usermanual-buffers-language-script-and-direction.xml} | 0 - docs/{usermanual-ch04.xml => usermanual-fonts-and-faces.xml} | 0 - ...{usermanual-ch06.xml => usermanual-glyph-information.xml} | 0 - docs/{usermanual-ch02.xml => usermanual-hello-harfbuzz.xml} | 0 - ...{usermanual-ch05.xml => usermanual-opentype-features.xml} | 0 - .../{usermanual-ch01.xml => usermanual-what-is-harfbuzz.xml} | 0 - 8 files changed, 12 insertions(+), 12 deletions(-) - -commit 4dc2265918089ee08c6d82eed0cfd41e02d7d231 -Author: Khaled Hosny -Date: Wed Dec 23 00:26:20 2015 +0400 - - Intro from freedesktop.org/wiki/Software/HarfBuzz/ - - docs/HarfBuzz.png | Bin 0 -> 3419 bytes - docs/Makefile.am | 3 ++- - docs/harfbuzz-docs.xml | 31 ++++++++++++++++++++++++++++++- - 3 files changed, 32 insertions(+), 2 deletions(-) - -commit 22b07782ced6503a0bf33f2fe157b70540238f6d -Author: Khaled Hosny -Date: Mon Dec 14 23:33:51 2015 +0400 - - Deploy docs to gh-pages branch from Travis builds - - Build docs in Travis and push them to the gh-pages branch, which makes - them available at http://behdad.github.io/harfbuzz/ - - .ci/deploy-docs.sh | 25 +++++++++++++++++++++++++ - .travis.yml | 4 ++++ - 2 files changed, 29 insertions(+) - -commit fc38e6034c76d5450f5398d667184bc3696efcc4 -Author: Behdad Esfahbod -Date: Wed Dec 23 14:50:53 2015 +0100 - - [layout] Collect coverage glyphs in PairPos - - Apparently class=0 is used for ClassDef1. See: - https://github.com/adobe-type-tools/afdko/issues/90 - - src/hb-ot-layout-gpos-table.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 8718dae818b22c3933c33bdfc8a7413ef4c3110a -Author: Behdad Esfahbod -Date: Fri Dec 18 19:53:40 2015 +0000 - - [python] Hook up sample debugger - - src/sample.py | 6 ++++++ - 1 file changed, 6 insertions(+) - -commit 0475ef2f97e3035a2eea9a0f96031331e07e8e29 -Author: Behdad Esfahbod -Date: Fri Dec 18 18:17:07 2015 +0000 - - [buffer] Add debugging, aka, message, API - - Currently just announces lookup applications. Message-API *will* - change. - hb-shape / hb-view are updated to print-out messages to stder - if --debug - is specified. - - src/hb-buffer-private.hh | 18 ++++++++++++++++++ - src/hb-buffer.cc | 44 - ++++++++++++++++++++++++++++++++++++++++++++ - src/hb-buffer.h | 15 +++++++++++++++ - src/hb-ot-layout.cc | 12 ++---------- - util/main-font-text.hh | 18 ++++++++++++++++++ - 5 files changed, 97 insertions(+), 10 deletions(-) - -commit 9ea0aa43ac5cf243b698aae0ec80241b5efd7488 -Author: Behdad Esfahbod -Date: Fri Dec 18 17:30:18 2015 +0000 - - Don't deserialize positions if buffer has no positions - - src/hb-buffer-serialize.cc | 3 +++ - src/hb-ot-layout.cc | 2 -- - 2 files changed, 3 insertions(+), 2 deletions(-) - -commit 862b1644e9469a7e70555141f53729409d50d0d2 -Author: Behdad Esfahbod -Date: Fri Dec 18 13:54:06 2015 +0000 - - [use] Only set syllable-based topographical features if not - Arabic-joining - - src/hb-ot-shape-complex-use.cc | 3 +++ - 1 file changed, 3 insertions(+) - -commit 45b7ec365225109eb0854e6c417f48860b5f24af -Author: Behdad Esfahbod -Date: Fri Dec 18 13:47:16 2015 +0000 - - [indic] Followup fix for Malayalam context matching - - We regeressed Malayalam in 508cc3d3cfcfb0383df0fe795cc28db4e0fd5729 - This brings down the failures to 198 (from 750). - - BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) - DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) - GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) - GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) - KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%) - KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) - MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed - (0.0188871%) - ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) - SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) - TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) - TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) - MYANMAR: 1123865 out of 1123883 tests passed. 18 failed (0.00160159%) - - src/hb-ot-shape-complex-indic.cc | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -commit 2813e3049a69d64e5395f68c52c4690e1d256d55 -Author: Behdad Esfahbod -Date: Fri Dec 18 11:05:11 2015 +0000 - - [indic] Update data tables to Unicode 8.0 - - Test stats remain unchanged, except for Malayalam, which we - investigate: - - BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) - DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) - GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) - GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) - KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%) - KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) - MALAYALAM: 1047584 out of 1048334 tests passed. 750 failed - (0.0715421%) - ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) - SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) - TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) - TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) - - Myanmar, compared to Windows 10 mmrtext.ttf: - - MYANMAR: 1123865 out of 1123883 tests passed. 18 failed (0.00160159%) - - src/gen-indic-table.py | 1 + - src/hb-ot-shape-complex-indic-private.hh | 40 ++-- - src/hb-ot-shape-complex-indic-table.cc | 372 - ++++++++++++++++++------------- - src/hb-ot-shape-complex-indic.cc | 23 +- - src/hb-ot-shape-complex-myanmar.cc | 4 + - 5 files changed, 244 insertions(+), 196 deletions(-) - -commit fc06cff40f136440f6402d0a5e735e2a4a3c062a -Author: Behdad Esfahbod -Date: Thu Dec 17 17:47:35 2015 +0000 - - Remove HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT - - The DEFAULT naming wasn't helpful, so just remove it. - - src/hb-ot-shape-complex-default.cc | 2 +- - src/hb-ot-shape-complex-private.hh | 4 +--- - src/hb-ot-shape-complex-thai.cc | 2 +- - src/hb-ot-shape-complex-tibetan.cc | 2 +- - 4 files changed, 4 insertions(+), 6 deletions(-) - -commit 508cc3d3cfcfb0383df0fe795cc28db4e0fd5729 -Author: Behdad Esfahbod -Date: Thu Dec 17 17:31:17 2015 +0000 - - [indic] Allow context when matching for Malayalam new-spec - - Test sequence: - U+0995,U+09CD,U+09B0 - - With Nirmala shipped on Windows 10, this failed to form the below - form. - Works now. - - Reported by Sairus. - - src/hb-ot-shape-complex-indic.cc | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -commit eaf1e93ef1ee19a3e72d781e8abbd7f1165c1618 -Author: Behdad Esfahbod -Date: Thu Dec 17 16:57:47 2015 +0000 - - [uniscribe] Handle E_NOT_SUFFICIENT_BUFFER as well as E_OUTOFMEMORY - - On Windows 10 we are seeing that other error message... - - Test sequence: U+0995,U+-9CD,U+09B0 - With Nirmala shipped on Windows 10, this failed to form the below - form. - Works now. - - Reported by Sairus. - - src/hb-uniscribe.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 21e5d7edc4f28157254ef29a8ac247f3a572f6a6 -Author: Behdad Esfahbod -Date: Thu Dec 17 16:28:38 2015 +0000 - - [util] Use O_BINARY instead of _O_BINARY - - The latter doesn't seem to be available in Cygwin. I'm surprised it - compiled before... - - util/options.cc | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit 100fbeaf196515774c985ee839d0fa0695f9a6fa -Author: Behdad Esfahbod -Date: Thu Dec 17 15:23:09 2015 +0000 - - Fix ligature component of a mark happening after a ligature within - a ligature! - - Say, if we are ligating "A B_C m D", then previously 'm' was being - attached to 'B' in the combined A_B_C_D ligature. Now we attach it - to 'C'. No test for this though :(. - - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 2f02fc79a5018e3348fccf366c470803554e1e58 -Author: Behdad Esfahbod -Date: Thu Dec 17 15:21:14 2015 +0000 - - Improve ligature-component handling - - We use three bits for lig_id these days, so we finally got a report of - two separate ligatures with the same lig_id happening adjacent to each - other, and then the component-handling code was breaking things. - Protect against that by ignoring same-lig-id but lig-comp=0 glyphs - after - a new ligature. - - Fixes https://github.com/behdad/harfbuzz/issues/198 - - src/hb-ot-layout-gsubgpos-private.hh | 12 +++++-- - test/shaping/Makefile.am | 1 + - test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../c78d1f25ea1df1210414f2fe2e0e1e53082bba76.ttf | Bin 0 -> 4064 bytes - test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/ligature-id.tests | 35 - +++++++++++++++++++++ - 6 files changed, 47 insertions(+), 3 deletions(-) - -commit 2ab0de9fbd03231b647345b01e31b136e2e00978 -Author: Behdad Esfahbod -Date: Thu Dec 17 11:59:15 2015 +0000 - - [use] Fix halant detection - - Before, we were just checking the use_category(). This detects as - halant a ligature that had the halant as first glyph (as seen in - NotoSansBalinese.) Change that to use the is_ligated() glyph prop - bit. The font is forming this ligature in ccmp, which is before - the rphf / pref tests. So we need to make sure the "ligated" bit - survives those tests. Since those only check the "substituted" bit, - we now only clear that bit for them and "ligated" survives. - - Fixes https://github.com/behdad/harfbuzz/issues/180 - - src/hb-ot-layout-private.hh | 6 ++---- - src/hb-ot-shape-complex-use.cc | 19 - ++++++++++++------- - test/shaping/Makefile.am | 1 + - test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../fbb6c84c9e1fe0c39e152fbe845e51fd81f6748e.ttf | Bin 0 -> - 2616 bytes - test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/use.tests | 1 + - 7 files changed, 18 insertions(+), 11 deletions(-) - -commit 86bcbd65b0d98357fb3d67a2f4f2a704ace55e10 -Author: Behdad Esfahbod -Date: Thu Dec 17 11:04:33 2015 +0000 - - [arabic] Use glyph advance width in apply_stch() instead of extents - - That seems to be what Windows is doing, and makes more sense. - - src/hb-ot-shape-complex-arabic.cc | 24 +++++++----------------- - 1 file changed, 7 insertions(+), 17 deletions(-) - -commit f11c11a1f123ef245e59ba892230db14170a8e5a -Author: Behdad Esfahbod -Date: Wed Dec 16 17:08:36 2015 +0100 - - Fix Since: tags for new API - - https://github.com/behdad/harfbuzz/commit/e1d4d0f1dbd8518b5672245c05d73f22a9ed03ea#commitcomment-15006653 - - src/hb-font.cc | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -commit 15f2c055c17c54b0a6ae6eef50dcda13c58cda75 -Merge: 49e7263 a13b023 -Author: Behdad Esfahbod -Date: Mon Dec 14 14:19:03 2015 +0100 - - Merge pull request #196 from srl295/aix - - AIX fixes - -commit a13b023dbfd0532e8cd74c356fbbd4453d0ffaa0 -Author: Steven R. Loomis -Date: Fri Dec 11 10:21:27 2015 -0800 - - AIX fixes - - - use '-w' instead of '\<...\>' for check-header-guards - grep manpage says these are the same - - - put '-q' first in the grep options - - - move VAR into hb-private.hh - - - hb-font-private.hh - use [VAR] instead of [] for variable array - - src/check-header-guards.sh | 5 ++--- - src/hb-font-private.hh | 2 +- - src/hb-open-type-private.hh | 3 --- - src/hb-private.hh | 2 ++ - 4 files changed, 5 insertions(+), 7 deletions(-) - -commit 49e72634af74a9fbad01f42f48e104218413acc0 -Author: Behdad Esfahbod -Date: Thu Dec 10 17:44:19 2015 +0100 - - Limit use of AIX intrinsics to IBM's compiler - - src/hb-atomic-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit e1d4d0f1dbd8518b5672245c05d73f22a9ed03ea -Merge: 70b33ed 808d3fc -Author: Behdad Esfahbod -Date: Thu Dec 10 16:56:07 2015 +0100 - - Merge branch 'font-extents' - - Fixes https://github.com/behdad/harfbuzz/pull/165 - -commit 808d3fc0eadd379909f2a0308fd3db474f1efde8 -Author: Behdad Esfahbod -Date: Thu Dec 10 16:55:16 2015 +0100 - - [util] Port hb-view to use font metrics from HarfBuzz instead of cairo - - util/helper-cairo.cc | 4 +++- - util/view-cairo.cc | 24 ++++++++++++------------ - 2 files changed, 15 insertions(+), 13 deletions(-) - -commit 31fa3892947138c7950303ea3719bb5ceb813625 -Author: Behdad Esfahbod -Date: Thu Dec 10 16:38:29 2015 +0100 - - [ft] Use ftface->size->metrics for font extent info - - src/hb-ft.cc | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -commit 3ad16048fdd841f31f1cb98d7ff9ea1871841146 -Author: Behdad Esfahbod -Date: Thu Dec 10 16:37:49 2015 +0100 - - [ot-font] Respect OS/2 fsSelection USE_TYPO_METRICS bit - - src/hb-ot-font.cc | 12 ++++++++---- - 1 file changed, 8 insertions(+), 4 deletions(-) - -commit 70b33edae7c8b9c031b83c95f00cb383789f1041 -Author: Behdad Esfahbod -Date: Thu Dec 10 15:54:42 2015 +0100 - - Add atomic ops for AIX - - Patch from Volker Simonis. - - src/hb-atomic-private.hh | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -commit 98460779bae19e4d64d29461ff154b3527bf8420 -Author: Behdad Esfahbod -Date: Mon Dec 7 21:38:47 2015 +0100 - - Remove final pause from Arabic shaper - - Back in the old days, we used to apply 'calt' and 'cswh' in Arabic - shaper, - with a pause in between. Then we disabled the 'cswh' because - Microsoft - disabled it, but forgot to remove the unnecessary pause. Do that now. - - This has the benefit that it fixes shaping with monbaiti from - Windows 10. - In that version of that font, the lookups from 'calt' are duplicated - in - 'rclt', and Mongolian was changed to go through Universal Shaping - Engine. - We still use the Arabic shaper for Mongolian. With a pause after - 'calt', - we were applying the duplicate lookups from 'calt' and 'rclt' twice. - It - happened to be the case that these lookups were NOT idempotent. So we - were getting wrong shaping. See thread "Windows 10 monbaiti.ttf - upgrade - (5.01 -> 5.51) caused loss of diacritical marks when shaped with - harfbuz" - on the mailing list. This fixes that. - - src/hb-ot-shape-complex-arabic.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit dee0fbf9e2eac8b61730efc4978bc10c552b5227 -Merge: 255df68 a7ffe35 -Author: Behdad Esfahbod -Date: Mon Dec 7 10:44:08 2015 +0100 - - Merge pull request #192 from behdad/jfkthame-stch - - [issue 191] Make apply_stch() give a more precise fit - -commit 255df6801201fb22402420f7b7b7ea8b042df8ba -Author: Behdad Esfahbod -Date: Mon Dec 7 10:34:47 2015 +0100 - - Fix undefined behavior in cmp function - - Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93274 - - src/hb-ot-map-private.hh | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -commit fcf9e61bad13c828b5482f26491c82db65d91c96 -Author: Behdad Esfahbod -Date: Mon Dec 7 10:30:43 2015 +0100 - - Fix sorting order of ot_languages array - - Looks like the original sort was wrongly done. - Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93275 - - src/hb-ot-tag.cc | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -commit 70952ddb5a29c5bcbb4b6c3a05a428496033234a -Author: Behdad Esfahbod -Date: Mon Dec 7 10:28:46 2015 +0100 - - Add test to make sure ot-languages array is sorted - - Currently fails. Part of - https://bugs.freedesktop.org/show_bug.cgi?id=93275 - - src/Makefile.am | 9 ++++++++- - src/hb-ot-tag.cc | 23 +++++++++++++++++++++++ - 2 files changed, 31 insertions(+), 1 deletion(-) - -commit 8c37556f730d7e961394075cd863f624af4c53c4 -Merge: 8e5f902 f35b3e9 -Author: Behdad Esfahbod -Date: Mon Dec 7 09:34:58 2015 +0100 - - Merge pull request #134 from ebraminio/dwrite - - Add working but less prefect DirectWrite backend - -commit a7ffe3535836032dba5559080dffeec79473197b -Author: jfkthame -Date: Sat Dec 5 17:47:37 2015 +0000 - - Make apply_stch() give a more precise fit - - This aims to make Syriac Abbr Mark sizing more accurate when repeating - segments are used, by adding an extra repeat and tightening up the - spacing slightly rather than leaving a shortfall corresponding to - a partial repeat-width. - - src/hb-ot-shape-complex-arabic.cc | 15 ++++++++++++++- - 1 file changed, 14 insertions(+), 1 deletion(-) - -commit 8e5f902656d2882d24c30e8b26ddbd3963baa55c -Author: Behdad Esfahbod -Date: Mon Nov 30 16:53:21 2015 -0800 - - src/test.cc: wrong field printed - - Fixes https://github.com/behdad/harfbuzz/issues/188 - Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93182 - - src/test.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 6f2e6de1fae0ab2269b472a750788817de6c2a6e -Author: Simon Cozens -Date: Mon Oct 26 16:23:22 2015 +0900 - - Get font ascender and descender metrics from OS/2 table. - - src/hb-font-private.hh | 39 ++++++++++++++++++- - src/hb-font.cc | 102 - ++++++++++++++++++++++++++++++++++++++++++++++++- - src/hb-font.h | 62 ++++++++++++++++++++++++++++-- - src/hb-ft.cc | 21 ++++++++++ - src/hb-ot-font.cc | 58 ++++++++++++++++++++++++++-- - 5 files changed, 274 insertions(+), 8 deletions(-) - -commit 097c998a0c7b250924801bb69f5fa0c529edd183 -Author: Simon Cozens -Date: Mon Oct 26 16:22:38 2015 +0900 - - Parse the OS/2 table. - - src/Makefile.am | 1 + - src/hb-ot-os2-table.hh | 105 - +++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 106 insertions(+) - -commit d44d52bd0da033865641dfd39d94852119fd4fd7 -Author: Behdad Esfahbod -Date: Thu Nov 26 19:35:43 2015 -0500 - - 1.1.2 - - NEWS | 15 +++++++++++++++ - configure.ac | 2 +- - 2 files changed, 16 insertions(+), 1 deletion(-) - -commit 35d18585fc57750d817f57bfffe569069f9803b5 -Author: Behdad Esfahbod -Date: Thu Nov 26 19:30:37 2015 -0500 - - Fix a few docs blocks - - src/hb-buffer.cc | 4 ++++ - src/hb-glib.cc | 2 ++ - src/hb-ot-font.cc | 2 ++ - src/hb-ot-layout.cc | 6 ++++++ - src/hb-ot-shape.cc | 4 ++++ - 5 files changed, 18 insertions(+) - -commit 0e38c918b66df31978d8fd3d8271a9b781384545 -Author: Behdad Esfahbod -Date: Thu Nov 26 19:26:26 2015 -0500 - - [introspection] Make scanner happy with HB_EXTERN - - src/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -commit ea512f71084296be3bd893f78650def894066de0 -Author: Behdad Esfahbod -Date: Thu Nov 26 19:22:22 2015 -0500 - - Use C-style casts instead of compare to 0, to convert hb_bool_t - to bool - - src/hb-common.cc | 2 +- - src/hb-fallback-shape.cc | 2 +- - src/hb-font-private.hh | 2 +- - src/hb-ot-layout.cc | 2 +- - src/hb-ot-map.cc | 2 +- - src/hb-ot-shape-complex-hangul.cc | 2 +- - src/hb-ot-shape-complex-hebrew.cc | 2 +- - src/hb-ot-shape-complex-indic.cc | 4 ++-- - src/hb-ot-shape-normalize.cc | 6 +++--- - src/hb-ot-shape.cc | 2 +- - 10 files changed, 13 insertions(+), 13 deletions(-) - -commit 67a36a725e2a61a096ba0324f359d17f9b02d312 -Author: Behdad Esfahbod -Date: Thu Nov 26 18:48:42 2015 -0500 - - Fix vertical GPOS - - This was brorken earlier, though, it's really hard to notice it. - Unlike the glyph_h_origin(), an unset glyph_v_origin() does NOT - mean that the vertical origin is at 0,0. - - Related to https://github.com/behdad/harfbuzz/issues/187 - - src/hb-ot-shape.cc | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - -commit 1c6a057dd1a52511474630896a597bf8e5215214 -Author: Behdad Esfahbod -Date: Thu Nov 26 18:48:30 2015 -0500 - - Add tests for previous commit - - test/shaping/Makefile.am | 1 + - .../sha1sum/49c9f7485c1392fa09a1b801bc2ffea79275f22e.ttf | Bin 0 -> - 1496 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/simple.tests | 2 ++ - 5 files changed, 5 insertions(+) - -commit c41c145c7386ebe72b1cfb0475d836a689fecc5e -Author: Behdad Esfahbod -Date: Thu Nov 26 18:43:15 2015 -0500 - - Make nil glyph_h_origin() function return true - - Fixes https://github.com/behdad/harfbuzz/issues/187 - - Funcs implementations that have a non-zero horizontal origin must - implement the glyph_h_origin() callback, nothing new here. - - Other implementations (all I know of!) can simply not set - glyph_h_origin() now. I did that for hb-ot and hb-ft in - 44f82750807475aa5b16099ccccd917d488df703, though that broke the - fallback shaper because the default was returning false... - - src/hb-font.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 766963adba6770dcd45de4417481ed8eda60a716 -Merge: b344af8 f798b8e -Author: Behdad Esfahbod -Date: Tue Nov 24 15:38:43 2015 -0600 - - Merge pull request #114 from ThePhD/vc++-fixes - - Fix all VC++ warnings and errors - -commit b344af80ca95b9eddfd6017aa6ae103388d6b5f8 -Merge: 662acd2 835bbdc -Author: Behdad Esfahbod -Date: Tue Nov 24 15:30:27 2015 -0600 - - Merge pull request #177 from fanc999/exporting - - Enable use of compiler directives to export symbols - -commit 662acd26d10c38e96a9afcdaab2cb2979794966f -Merge: b24e93e 1979f6f -Author: Behdad Esfahbod -Date: Tue Nov 24 15:29:44 2015 -0600 - - Merge pull request #181 from mhosken/master - - Fix y_scale problems in hb-gr - -commit b24e93e3a4d98111c4684fa08e9080b471881d5c -Author: Behdad Esfahbod -Date: Tue Nov 24 13:18:20 2015 -0600 - - 1.1.1 - - NEWS | 7 +++++++ - configure.ac | 2 +- - 2 files changed, 8 insertions(+), 1 deletion(-) - -commit 233944ac91bb81250c0e63150eecfedfaf09f590 -Merge: 5a24b1d d538201 -Author: Khaled Hosny -Date: Tue Nov 24 18:37:35 2015 +0400 - - Merge pull request #185 from khaledhosny/travis-osx - - [travis] Enable Mac OS X support - -commit d538201918e6932ef7645f8d5b2c3491954936f8 -Author: Khaled Hosny -Date: Tue Nov 24 12:46:35 2015 +0400 - - [travis] Enable Mac OS X support - - Fixes https://github.com/behdad/harfbuzz/issues/182 - - .travis.yml | 22 ++++++++++++++++------ - 1 file changed, 16 insertions(+), 6 deletions(-) - -commit 5a24b1d25c59865e298bf105f54503e79587265c -Author: Behdad Esfahbod -Date: Mon Nov 23 16:46:14 2015 -0600 - - [travis] Remove coverity scan - - I never could get it to work, and it's a proprietary platform. - - .travis.yml | 11 ----------- - README | 1 - - 2 files changed, 12 deletions(-) - -commit 1979f6fedca82fa1e4f65491de491db1aa6dc645 -Author: Martin Hosken -Date: Mon Nov 23 10:03:56 2015 +0700 - - Fix y_scale problems in hb-gr - - src/hb-graphite2.cc | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -commit 835bbdc7c92bd774ff92c42a9277ded72066d29d -Author: Chun-wei Fan -Date: Thu Nov 19 18:34:12 2015 +0800 - - Public headers: Decorate public symbols with HB_EXTERN - - This prepares the headers for exporting symbols using visibility - attributes or __declspec(dllexport), so that we do not need to - maintain - symbols listing files, as this is what was and is done in GLib - and GTK+. - - src/hb-blob.h | 24 +++++----- - src/hb-buffer.h | 100 +++++++++++++++++++------------------- - src/hb-common.h | 22 ++++----- - src/hb-coretext.h | 6 +-- - src/hb-face.h | 34 ++++++------- - src/hb-font.h | 114 - ++++++++++++++++++++++---------------------- - src/hb-ft.h | 18 +++---- - src/hb-glib.h | 8 ++-- - src/hb-gobject-enums.h.tmpl | 2 +- - src/hb-gobject-structs.h | 26 +++++----- - src/hb-graphite2.h | 4 +- - src/hb-icu.h | 6 +-- - src/hb-ot-font.h | 2 +- - src/hb-ot-layout.h | 56 +++++++++++----------- - src/hb-ot-shape.h | 4 +- - src/hb-ot-tag.h | 8 ++-- - src/hb-set.h | 52 ++++++++++---------- - src/hb-shape-plan.h | 18 +++---- - src/hb-shape.h | 10 ++-- - src/hb-unicode.h | 52 ++++++++++---------- - src/hb-uniscribe.h | 4 +- - src/hb-version.h.in | 6 +-- - src/hb.h | 4 ++ - 23 files changed, 292 insertions(+), 288 deletions(-) - -commit f798b8e2d683a1b89b6905b1a8615375b847b468 -Author: ThePhD -Date: Sat Nov 21 16:57:26 2015 -0500 - - c-style cast - - src/hb-ot-shape-complex-use.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit a6991813659376a6a11c00a9f67d85b4f7ba9b5d -Merge: 1dc32ea f19c6db -Author: Behdad Esfahbod -Date: Fri Nov 20 13:28:42 2015 -0800 - - Merge pull request #176 from behdad/missing-braces - - Add braces for subobject initializer in _hb_font_funcs_nil - -commit 1dc32ea4d2f294f9d1ae1c8fd19fb75f9278223b -Author: Behdad Esfahbod -Date: Fri Nov 20 13:24:19 2015 -0800 - - Whitespace - - src/hb-private.hh | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -commit f94c0ecbb1488138d3ec3b9d6d9fb78113dfee4f -Author: Behdad Esfahbod -Date: Fri Nov 20 13:21:29 2015 -0800 - - Define HB_MARK_AS_FLAG_T as a macro instead of using templates - - The generic template operator overloading was causing more problems - than it - solved. Eg: - - https://github.com/behdad/harfbuzz/pull/163 - https://github.com/behdad/harfbuzz/issues/175 - - So, just use macros. - - Fixes https://github.com/behdad/harfbuzz/issues/175 - Fixes https://github.com/behdad/harfbuzz/pull/178 - - src/hb-private.hh | 27 +++++++++++---------------- - 1 file changed, 11 insertions(+), 16 deletions(-) - -commit f19c6db18e2e2dd0e9a406fc7e8533049fab48b0 -Author: jfkthame -Date: Fri Nov 20 08:43:49 2015 +0000 - - Add braces for subobject initializer in _hb_font_funcs_nil - - To avoid triggering -Wmissing-braces; see - https://bugzilla.mozilla.org/show_bug.cgi?id=1226175#c8 - - src/hb-font.cc | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -commit 9cc1ed4fa68075b3b142a2737438109772dd0002 -Author: Behdad Esfahbod -Date: Thu Nov 19 12:39:09 2015 -0800 - - Do not allow recursiving to same position and same lookup - - This is just to make it harder to be extremely slow. There definitely - are ways still, just harder. Oh well... how do we tame this problem - without solving halting problem?! - - Fixes https://github.com/behdad/harfbuzz/issues/174 - - src/hb-ot-layout-gsubgpos-private.hh | 5 +++++ - test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../sha1sum/fab39d60d758cb586db5a504f218442cd1395725.ttf | Bin 0 -> - 1894 bytes - test/shaping/tests/fuzzed.tests | 1 + - 4 files changed, 7 insertions(+) - -commit 7d75eee799bbb5ee7eef2651cf7b7d3aee6f09b0 -Author: Behdad Esfahbod -Date: Thu Nov 19 12:03:04 2015 -0800 - - [fuzzing] Run fuzzing tests using hb-fuzzer as well - - test/fuzzing/Makefile.am | 4 ++++ - 1 file changed, 4 insertions(+) - -commit 13188cba7f0eaacd587beeb1c2258526ae24c438 -Author: Behdad Esfahbod -Date: Thu Nov 19 11:59:03 2015 -0800 - - Revert "Fix hang in OOM situations" - - This reverts commit f0599db761d7fc2d585d86e757a797f75ebc7499. - - Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better - fix for this. - - src/hb-buffer-private.hh | 6 +----- - 1 file changed, 1 insertion(+), 5 deletions(-) - -commit 18e1c6b6ef7c85a1b02e3dae86280d8ed6b65118 -Author: Behdad Esfahbod -Date: Thu Nov 19 11:50:58 2015 -0800 - - Revert "Make sure we make progress in OOM situations" - - This reverts commit 68b507a3c3c62c28c38e13fee733702bb703b6ca. - - Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better - fix for this. - - src/hb-buffer-private.hh | 7 +++++-- - src/hb-buffer.cc | 31 ++++++++----------------------- - 2 files changed, 13 insertions(+), 25 deletions(-) - -commit e1118aeac3b5556df0ce502732df8ac92bdac45a -Author: Behdad Esfahbod -Date: Wed Nov 18 23:40:47 2015 -0800 - - 1.1.0 - - NEWS | 22 ++++++++++++++++++++++ - configure.ac | 2 +- - 2 files changed, 23 insertions(+), 1 deletion(-) - -commit 63fe05c8b1cd4f08b525028409e1299f34750810 -Author: Behdad Esfahbod -Date: Wed Nov 18 23:52:34 2015 -0800 - - Fix make distcheck - - src/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -commit 9b087dec7753ad96d256ce1b9ae347bd8d697c75 -Author: Behdad Esfahbod -Date: Wed Nov 18 23:23:35 2015 -0800 - - [travis] Only coverity-scan the coverity_scan branch - - This essentially disables coverity-scan right now, until we find - a pattern to continuously submit branches there. - - For background reasoning, see: - Fixes https://github.com/behdad/harfbuzz/issues/171 - - .travis.yml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 85062e3b4655ec6d5c3cf5344ce22cd88c21a2aa -Author: Behdad Esfahbod -Date: Wed Nov 18 23:09:13 2015 -0800 - - Add tests for previous two commits - - To fully test what these are supposed to test, they should be run - against libharfbuzz-fuzzing.la instead of libharfbuzz.la, but for - now just record the files. - - .../sha1sum/43979b90b2dd929723cf4fe1715990bcb9c9a56b.ttf | Bin 0 -> - 1804 bytes - test/shaping/fonts/sha1sum/MANIFEST | 2 ++ - .../sha1sum/b9e2aaa0d75fcef6971ec3a96d806ba4a6b31fe2.ttf | Bin 0 -> - 1804 bytes - test/shaping/tests/fuzzed.tests | 2 ++ - 4 files changed, 4 insertions(+) - -commit 37b40cd8a18e25d3324f829acec197f016f4a524 -Author: Behdad Esfahbod -Date: Wed Nov 18 23:04:45 2015 -0800 - - Fix another move_to assertion failure - - If buf->idx is at end, don't set end past it... - - Fixes https://github.com/behdad/harfbuzz/issues/173 - - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit abadc1717d997b69f987fdf1be9e12156d2d13d6 -Author: Behdad Esfahbod -Date: Wed Nov 18 17:52:08 2015 -0800 - - Try to better handle OOM situations - - Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161 - with libharfbuzz-fuzzing. - - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - src/hb-ot-layout.cc | 2 +- - src/hb-ot-shape-complex-hangul.cc | 2 +- - src/hb-ot-shape-complex-indic.cc | 2 +- - src/hb-ot-shape-complex-thai.cc | 2 +- - src/hb-ot-shape-complex-use.cc | 8 +------- - src/hb-ot-shape-normalize.cc | 10 +++++----- - src/hb-ot-shape.cc | 2 +- - 8 files changed, 12 insertions(+), 18 deletions(-) - -commit ec625f7dfb5f6df19d35d81af6605d05e08321f2 -Author: Behdad Esfahbod -Date: Wed Nov 18 16:37:59 2015 -0800 - - Try to fix gnome-continuous build fail - - test/fuzzing/Makefile.am | 2 ++ - 1 file changed, 2 insertions(+) - -commit ff16ef3379e06afe44b5e78b8893aeae0cee2b5b -Author: Behdad Esfahbod -Date: Wed Nov 18 16:27:32 2015 -0800 - - Enable building a bounded version of the library for fuzzing - - test/fuzzing/hb-fuzzer links against libharfbuzz-fuzzing.so now. - - src/Makefile.am | 16 ++++++++++++++++ - test/fuzzing/Makefile.am | 9 ++------- - test/fuzzing/README | 6 ++---- - 3 files changed, 20 insertions(+), 11 deletions(-) - -commit e0082ae60dbd87d433f3b2b9d2bfa64b9a4c3663 -Author: Behdad Esfahbod -Date: Tue Nov 17 18:42:13 2015 -0800 - - Move things around - - src/hb-private.hh | 22 +++++++++++----------- - 1 file changed, 11 insertions(+), 11 deletions(-) - -commit dde8cc87bd880bd35baf764820f4c85bd0a58696 -Merge: e97835a 167c327 -Author: Behdad Esfahbod -Date: Tue Nov 17 18:40:10 2015 -0800 - - Merge pull request #163 from fanc999/msvc.src - - Update the sources so they will compile under Visual Studio - -commit 167c3271778cd1a8c4433b9d2230901ce17c099e -Author: Chun-wei Fan -Date: Mon Nov 9 17:17:56 2015 +0800 - - Fix build on MSVC >= 2012 - - Use the DEFINE_ENUM_FLAG_OPERATORS macro in winnt.h on Visual Studio, - which defines the bitwise operators for the enumerations that we - want to - mark as hb_mark_as_flags_t, which will take care of the situation - on newer - Visual Studio (>= 2012), where the build breaks with C2057 errors - as the - underlying types of the enumerations is not clear to the compiler - when we - do a bitwise op within the declaration of the enumerations themselves. - - Also disable the C4200 (nonstandard extension used : zero-sized - array in - struct/union) and C4800 ('type' : forcing value to bool 'true' or - 'false' - (performance warning)) warnings as the C4200 is the intended - scenario and - C4800 is harmless but is so far an unavoidable side effect of using - DEFINE_ENUM_FLAG_OPERATORS. - - src/hb-buffer-private.hh | 6 +++--- - src/hb-ot-layout-common-private.hh | 2 +- - src/hb-ot-layout-private.hh | 4 ++-- - src/hb-ot-map-private.hh | 2 +- - src/hb-private.hh | 11 +++++++++++ - 5 files changed, 18 insertions(+), 7 deletions(-) - -commit 4d27bb87468a1b84387e7ce084e3d92c0fc8f065 -Author: Chun-wei Fan -Date: Fri Nov 6 14:28:30 2015 +0800 - - hb-ot-shape-complex-arabic.cc: Fix build on Visual Studio - - Visual Studio does not like declaring a enum variable within a for - statement, so fix the build by declaring the enum before doing the for - loop. - - src/hb-ot-shape-complex-arabic.cc | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -commit a49e7b7e40127beba25f39ef3c10d7a77e2bb0f0 -Author: Chun-wei Fan -Date: Tue Nov 3 18:49:34 2015 +0800 - - MSVC builds: Add fallback implementation for pre-2013 MSVC - - Pre-2013 MSVC does not have scalbn() and scalbnf(), which are used - in the - utility programs. Add fallback implementations for these, which - can be - used when necessary. - - util/options.hh | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -commit 998e8dda938cfef0146f1bfc4e8973a0e12d7d35 -Author: Chun-wei Fan -Date: Mon Nov 2 16:55:29 2015 +0800 - - util: Fix build on Visual Studio - - Use the fallback implementation for lround() only on pre-2013 Visual - Studio, and ensure we are clear about the types of the parameters for - lround() and scalbnf(), since Visual Studio can be quite picky on - ambiguous parameter types. Also, use g_ascii_strcasecmp() rather than - strcasecmp() as we are already using GLib for this code and we are - assured that g_ascii_strcasemp() is available. - - For scalbnf() on pre-2013 Visaul Studio, a fallback implementation is - needed, but use another forced-included header for those compilers, - which - will be added later. - - Also use (char)27 on Visual Studio builds as '\e' is not a recognized - escape sequence, which will do the same thing. - - util/ansi-print.cc | 16 +++++++++------- - util/helper-cairo.cc | 20 ++++++++++---------- - util/options.cc | 2 +- - 3 files changed, 20 insertions(+), 18 deletions(-) - -commit e97835ad43f5c68e8cb29599246cae0f4461d663 -Author: Behdad Esfahbod -Date: Tue Nov 10 11:37:01 2015 -0800 - - [util] Fix crash when --output-file is specified but not - --output-format - - util/options.hh | 3 +++ - 1 file changed, 3 insertions(+) - -commit d5f0d7c9fb14255388ab616f56e178cb7ca10ec2 -Merge: 04ff23e 529a933 -Author: Behdad Esfahbod -Date: Sat Nov 7 07:50:58 2015 -0800 - - Merge pull request #167 from KonstantinRitt/unicode_cp_opt - - Micro optimizations to UTF-16 and UTF-32 codecs - -commit 04ff23e73d847ab3a5da0e9fac4fbca19aefd284 -Author: Behdad Esfahbod -Date: Fri Nov 6 16:29:44 2015 -0800 - - [arabic] Improve stretch length calculation - - Err on the side of being too short, than too wide. Reduces chance - of overlaps with neighboring glyphs. - - src/hb-ot-shape-complex-arabic.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 59821ab8b413df3a444c38b80582a5137e364a70 -Author: Behdad Esfahbod -Date: Fri Nov 6 16:27:44 2015 -0800 - - [arabic] Don't stretch over cased letters - - Addresses - https://github.com/behdad/harfbuzz/commit/6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d#commitcomment-14248516 - - src/hb-ot-shape-complex-arabic.cc | 24 - +++++++++++++++++++++- - src/hb-unicode-private.hh | 20 - ------------------ - .../script-syriac/misc/abbreviation-mark.txt | 4 ++-- - 3 files changed, 25 insertions(+), 23 deletions(-) - -commit 5337db29af39084d677a63154f404eca0c20cfeb -Author: Behdad Esfahbod -Date: Fri Nov 6 16:18:09 2015 -0800 - - Revert "Don't process lookups if buffer is in error" - - This reverts commit f92bd86cc8c11d262d1830c631cb7c63fc9d4bc8. - - We don't want to be like cairo, where as soon as there's an error, - nothing works anymore. So, lets process lookups as long as there's - no new memory needed. That's also a model that hides fewer bugs. - - src/hb-ot-layout.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 529a93312815dff3c2f37f880bf6ccb428bd3da0 -Author: Konstantin Ritt -Date: Sat Nov 7 02:00:04 2015 +0400 - - Micro optimization to hb_utf16_t and hb_utf32_t ::prev() - - Implement reverse lookup instead of re-using next() - - src/hb-utf-private.hh | 29 +++++++++++++++++++---------- - 1 file changed, 19 insertions(+), 10 deletions(-) - -commit 44ae9be7a29eebd6003cad2fdb90b40512a9c8eb -Author: Konstantin Ritt -Date: Sat Nov 7 01:58:38 2015 +0400 - - Nano optimization to hb_utf16_t and hb_utf32_t ::next() - - src/hb-utf-private.hh | 17 ++++++----------- - 1 file changed, 6 insertions(+), 11 deletions(-) - -commit a6d7668a954a763a053f8af8edbff4731aa43729 -Author: Behdad Esfahbod -Date: Fri Nov 6 09:46:54 2015 -0800 - - [fuzzing] Cap max buffer len at 128 - - test/fuzzing/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -commit f1c4adbcd3f6275e81e118ddadc9396f82daeccf -Author: Behdad Esfahbod -Date: Fri Nov 6 09:46:05 2015 -0800 - - Fix typo - - src/hb-buffer-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 68b507a3c3c62c28c38e13fee733702bb703b6ca -Author: Behdad Esfahbod -Date: Fri Nov 6 00:09:26 2015 -0800 - - Make sure we make progress in OOM situations - - src/hb-buffer-private.hh | 7 ++----- - src/hb-buffer.cc | 31 +++++++++++++++++++++++-------- - 2 files changed, 25 insertions(+), 13 deletions(-) - -commit 5a7eb5d4d862f402136044c19ead87ad098bd78f -Author: Behdad Esfahbod -Date: Fri Nov 6 00:01:24 2015 -0800 - - [fuzzing] Add test case for OOM - - From https://github.com/behdad/harfbuzz/issues/161 - - .../sha1sum/3511ff5c1647150595846ac414c595cccac34f18.ttf | Bin 0 -> - 1483 bytes - test/shaping/fonts/sha1sum/MANIFEST | 2 +- - test/shaping/tests/fuzzed.tests | 1 + - 3 files changed, 2 insertions(+), 1 deletion(-) - -commit f0599db761d7fc2d585d86e757a797f75ebc7499 -Author: Behdad Esfahbod -Date: Thu Nov 5 23:52:41 2015 -0800 - - Fix hang in OOM situations - - Fixes https://github.com/behdad/harfbuzz/issues/161 - - src/hb-buffer-private.hh | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -commit f92bd86cc8c11d262d1830c631cb7c63fc9d4bc8 -Author: Behdad Esfahbod -Date: Thu Nov 5 23:52:29 2015 -0800 - - Don't process lookups if buffer is in error - - src/hb-ot-layout.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 4301703bddb63a01651a0d58474bb15ac0ebbcf6 -Author: Behdad Esfahbod -Date: Thu Nov 5 23:44:59 2015 -0800 - - Limit buffer max size growth - - https://github.com/behdad/harfbuzz/issues/161 - - src/hb-buffer-private.hh | 11 +++++++++++ - src/hb-buffer.cc | 8 ++++++++ - src/hb-ot-shape.cc | 6 ++++++ - test/fuzzing/Makefile.am | 2 ++ - 4 files changed, 27 insertions(+) - -commit 19300183a6f0bac0d23f7a994b40a51e9c90d6e1 -Author: Behdad Esfahbod -Date: Thu Nov 5 23:08:50 2015 -0800 - - [fuzzing] Add build system - - configure.ac | 1 + - test/Makefile.am | 2 +- - test/fuzzing/Makefile.am | 44 - ++++++++++++++++++++++++++++++++++++++++++++ - test/fuzzing/README | 2 ++ - test/fuzzing/hb-fuzzer.cc | 4 ++-- - 5 files changed, 50 insertions(+), 3 deletions(-) - -commit 9c9ad214af43685b00f6d8493b7807d6607d4e2d -Author: Behdad Esfahbod -Date: Thu Nov 5 22:50:52 2015 -0800 - - [fuzzer] Add README - - https://github.com/behdad/harfbuzz/issues/139#issuecomment-154202645 - - test/fuzzing/README | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -commit 6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d -Author: Behdad Esfahbod -Date: Thu Nov 5 17:29:03 2015 -0800 - - Implement SYRIAC ABBREVIATION MARK with 'stch' feature - - The feature is enabled for any character in the Arabic shaper. - We should experiment with using it for Arabic subtending marks. - Though, that has a directionality problem as well, since those - are used with digits... - - Fixes https://github.com/behdad/harfbuzz/issues/141 - - src/hb-ot-shape-complex-arabic.cc | 219 - ++++++++++++++++++++- - src/hb-unicode-private.hh | 19 ++ - .../shaper-arabic/script-syriac/misc/MANIFEST | 1 + - .../script-syriac/misc/abbreviation-mark.txt | 11 ++ - 4 files changed, 244 insertions(+), 6 deletions(-) - -commit c743ec5886a1f6d57de26da33a770a8706be83d6 -Author: Behdad Esfahbod -Date: Thu Nov 5 17:33:57 2015 -0800 - - [ft] Fix extents with negative scales - - Fixes https://github.com/behdad/harfbuzz/issues/162 - - src/hb-ft.cc | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -commit 73fec3992acb492829bde1d885f1ebeed8dcc133 -Author: Behdad Esfahbod -Date: Thu Nov 5 15:22:18 2015 -0800 - - Reserve a few scratch-flags bits for complex shapers - - src/hb-buffer-private.hh | 5 +++++ - 1 file changed, 5 insertions(+) - -commit 136863371c1402769426d892aef1b92f9ca1a25e -Author: Behdad Esfahbod -Date: Thu Nov 5 13:24:15 2015 -0800 - - Add new shaper method postprocess_glyphs() - - Unused currently. To be used for Syriac stretch implementation. - - https://github.com/behdad/harfbuzz/issues/141 - - src/hb-ot-shape-complex-arabic.cc | 3 ++- - src/hb-ot-shape-complex-default.cc | 1 + - src/hb-ot-shape-complex-hangul.cc | 7 ++++--- - src/hb-ot-shape-complex-hebrew.cc | 1 + - src/hb-ot-shape-complex-indic.cc | 1 + - src/hb-ot-shape-complex-myanmar.cc | 2 ++ - src/hb-ot-shape-complex-private.hh | 9 +++++++++ - src/hb-ot-shape-complex-thai.cc | 1 + - src/hb-ot-shape-complex-tibetan.cc | 1 + - src/hb-ot-shape-complex-use.cc | 1 + - src/hb-ot-shape.cc | 9 ++++++--- - 11 files changed, 29 insertions(+), 7 deletions(-) - -commit 6c0ebd02c99e7536975ba7194832a1f33abd7faf -Author: Behdad Esfahbod -Date: Thu Nov 5 11:37:48 2015 -0800 - - [util] If font has color, generate PNG with color - - util/helper-cairo.cc | 33 ++++++++++++++++++++++++++------- - util/helper-cairo.hh | 6 +++++- - util/view-cairo.cc | 7 ++++++- - 3 files changed, 37 insertions(+), 9 deletions(-) - -commit e95eb23a4ee920eab1e2f4eec9cf490bb431452c -Author: Behdad Esfahbod -Date: Wed Nov 4 22:55:11 2015 -0800 - - Don't try zeroing marks by GDEF if there are no non-ASCII - - This one is a hack, but should be ok. - - src/hb-ot-shape.cc | 4 ++++ - 1 file changed, 4 insertions(+) - -commit 7fa54ed75aa30ae1d6ee9136ccb83b630c24fb65 -Author: Behdad Esfahbod -Date: Wed Nov 4 22:54:49 2015 -0800 - - Don't try zeroing mark attachments by Unicode if there's no non-ASCII - - src/hb-ot-shape.cc | 3 +++ - 1 file changed, 3 insertions(+) - -commit 550bd14d2b21ec2a2b509ff42f4df4341dbf2d46 -Author: Behdad Esfahbod -Date: Wed Nov 4 22:58:58 2015 -0800 - - Actually commit changes for previous commit - - src/hb-buffer-private.hh | 2 ++ - src/hb-ot-layout-gpos-table.hh | 15 ++++++++------- - 2 files changed, 10 insertions(+), 7 deletions(-) - -commit ff31b3c1b8a2a21b57dba37eb5bb5db0579e0640 -Author: Behdad Esfahbod -Date: Wed Nov 4 22:42:41 2015 -0800 - - Skip GPOS cursive / attachment adjustmnent if none happened - - I'm starting to really like how free these new scratch_flags are. - - src/hb-ot-layout-gpos-table.hh | 3 +++ - 1 file changed, 3 insertions(+) - -commit 0f407325f6923db11d332585e8250e3646cb74d6 -Author: Behdad Esfahbod -Date: Wed Nov 4 22:28:44 2015 -0800 - - Minor - - src/hb-ot-shape.cc | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -commit 497a6c2071cd0638e4c6af07621d01335fd963a9 -Author: Behdad Esfahbod -Date: Wed Nov 4 22:24:19 2015 -0800 - - Skip forming clusters if text is all ASCII - - src/hb-ot-shape.cc | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -commit 28de104f15b80df4b678267c4488b7d09a42720c -Author: Behdad Esfahbod -Date: Wed Nov 4 22:00:25 2015 -0800 - - Move variable-sized struct member to end - - Hopefully makes clang build happy - - src/hb-font-private.hh | 21 ++++++++++----------- - src/hb-font.cc | 20 ++++++++++++++++++++ - 2 files changed, 30 insertions(+), 11 deletions(-) - -commit 5bc28b5f688ee90d103d052e98bc15d6e0e7e0b1 -Author: Behdad Esfahbod -Date: Wed Nov 4 21:53:16 2015 -0800 - - Optimize positioning for when h_origin is nil - - src/hb-ot-shape.cc | 38 ++++++++++++++++++++------------------ - 1 file changed, 20 insertions(+), 18 deletions(-) - -commit 762770c964f9f0591bf4c44427f73ea3e1c51733 -Author: Behdad Esfahbod -Date: Wed Nov 4 21:42:55 2015 -0800 - - Add font->has_...() to check for individual nil font funcs - - Hopefully this wouldn't break any compiler. There was some magic - moments to getting this to compile... - - src/hb-font-private.hh | 19 +++++++++++++++++-- - src/hb-font.cc | 7 +++++++ - 2 files changed, 24 insertions(+), 2 deletions(-) - -commit 88e9a9bcae61421d9dd65715d25e5f20b2847c03 -Author: Behdad Esfahbod -Date: Wed Nov 4 21:16:26 2015 -0800 - - Minor reshaping of hb_font_funcs_t implementation - - In anticipation of further changes. No functional changes. - - src/hb-font-private.hh | 80 - ++++++++++++++++++++++++++------------------------ - src/hb-font.cc | 4 +-- - 2 files changed, 43 insertions(+), 41 deletions(-) - -commit a6a7715bac8b0c8f5473b84bc649c315ad4d2d51 -Author: Behdad Esfahbod -Date: Wed Nov 4 20:51:21 2015 -0800 - - Comments - - src/hb-font-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 6c48ec830ffac00a920d047ed77acd1b05549074 -Author: Behdad Esfahbod -Date: Wed Nov 4 20:47:42 2015 -0800 - - [ot] Remove font funcs that do nothing - - src/hb-ot-font.cc | 95 - ++++--------------------------------------------------- - 1 file changed, 7 insertions(+), 88 deletions(-) - -commit 75ea2daa1d9bbe235cd4a8570efb1913d58c3c62 -Author: Behdad Esfahbod -Date: Wed Nov 4 20:43:59 2015 -0800 - - [ot] Port ot font funcs to allocated object - - src/hb-ot-font.cc | 47 ++++++++++++++++++++++++++++++++++++++--------- - 1 file changed, 38 insertions(+), 9 deletions(-) - -commit 44f82750807475aa5b16099ccccd917d488df703 -Author: Behdad Esfahbod -Date: Wed Nov 4 20:40:05 2015 -0800 - - [ft] Remove font funcs that do nothing - - src/hb-ft.cc | 29 ++++------------------------- - 1 file changed, 4 insertions(+), 25 deletions(-) - -commit 7918c261efd283e0428ce7836e9e42768a6aa05c -Author: Behdad Esfahbod -Date: Wed Nov 4 20:37:49 2015 -0800 - - [ft] Port ft font funcs to allocated object - - src/hb-ft.cc | 45 ++++++++++++++++++++++++++++++++++++--------- - 1 file changed, 36 insertions(+), 9 deletions(-) - -commit da29b43794cfa3f9a602c34b33c5d8a9c36f87b5 -Author: Behdad Esfahbod -Date: Wed Nov 4 20:22:44 2015 -0800 - - Separate nil font-funcs from parent-peeking font-funcs - - API change: all fonts created with hb_font_create() now inherit from - (ie have parent) hb_font_get_empty(). - - src/hb-font.cc | 211 - +++++++++++++++++++++++++++++++++++---------------- - test/api/test-font.c | 2 +- - 2 files changed, 145 insertions(+), 68 deletions(-) - -commit bee901b38ef3c26a04f69c299c8d5e028a0090e9 -Author: Behdad Esfahbod -Date: Wed Nov 4 19:28:17 2015 -0800 - - Optimize positioning direction calculations - - It makes the binary smaller AND faster. Yumm! - - src/hb-font-private.hh | 40 +++++++++++++++++++++++++++++++++++++++ - src/hb-ot-shape.cc | 51 - +++++++++++++++++++++++++++----------------------- - 2 files changed, 68 insertions(+), 23 deletions(-) - -commit e3e4bb011ae1a2f1ba05e7ea450595b185304bec -Author: Behdad Esfahbod -Date: Wed Nov 4 18:58:02 2015 -0800 - - Don't do fractions if buffer is ASCII-only - - src/hb-buffer-private.hh | 5 +++-- - src/hb-ot-layout-private.hh | 1 + - src/hb-ot-shape.cc | 3 ++- - 3 files changed, 6 insertions(+), 3 deletions(-) - -commit 6986208ba3b395534f4c7bcfa51df6bf9038f717 -Author: Behdad Esfahbod -Date: Wed Nov 4 18:46:22 2015 -0800 - - Optimize runs without Default_Ignorable's - - Now that we have a buffer-wide scratch flags facility, use it to - optimize away a few passes. - - src/hb-buffer-private.hh | 3 ++- - src/hb-ot-layout-private.hh | 4 +++- - src/hb-ot-shape-normalize.cc | 4 ++-- - src/hb-ot-shape.cc | 10 ++++++---- - src/hb-private.hh | 3 +++ - 5 files changed, 16 insertions(+), 8 deletions(-) - -commit 14c2de321826c36037adde859ccca3e2011325a9 -Author: Behdad Esfahbod -Date: Wed Nov 4 18:00:57 2015 -0800 - - Limit max edits during sanitize to 8 - - Used to be 100. If a tabe needs more than one or two edits, it's - probably completely bogus... - - Might help with speeding up fuzzing for - https://github.com/behdad/harfbuzz/issues/157 - - src/hb-open-type-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 9cbc39aef962a95b0eba32c24ff9c415d1316d56 -Author: Behdad Esfahbod -Date: Wed Nov 4 18:00:53 2015 -0800 - - Minor - - src/hb-ot-shape-normalize.cc | 2 ++ - 1 file changed, 2 insertions(+) - -commit 52e6c4e15893ed1cb0997795912a07b3e446b65a -Author: Behdad Esfahbod -Date: Wed Nov 4 17:45:06 2015 -0800 - - If font doesn't support U+2011, fall back to U+2010 - - Test passes now. - - src/hb-ot-shape-normalize.cc | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -commit 75483aafa6ad02d6391712d082d093823edcd758 -Author: Behdad Esfahbod -Date: Wed Nov 4 17:43:36 2015 -0800 - - Untangle if/else waterfall - - src/hb-ot-shape-normalize.cc | 40 - +++++++++++++++++++++++++++------------- - 1 file changed, 27 insertions(+), 13 deletions(-) - -commit 04fd8517f85ae9aa05b44f25578d2b19abfef7cb -Author: Behdad Esfahbod -Date: Wed Nov 4 17:38:22 2015 -0800 - - Add tests for hyphen fallback - - U+2011 is equivaent of U+2010, so we should do the fallback - for it. Currently fails. - - test/shaping/Makefile.am | 1 + - .../sha1sum/1c04a16f32a39c26c851b7fc014d2e8d298ba2b8.ttf | Bin 0 -> - 820 bytes - test/shaping/fonts/sha1sum/MANIFEST | 2 ++ - test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/hyphens.tests | 2 ++ - 5 files changed, 6 insertions(+) - -commit 550417117da7e14457a11f49a20145311f58587b -Author: Behdad Esfahbod -Date: Wed Nov 4 17:37:30 2015 -0800 - - [test] Drop hintings when subsetting fonts to record - - test/shaping/record-test.sh | 1 + - 1 file changed, 1 insertion(+) - -commit 49ef630936325b2e56a870fcef9aa8473a8f8526 -Author: Behdad Esfahbod -Date: Wed Nov 4 17:27:07 2015 -0800 - - Adjust the width of various spaces if font does not cover them - - See discussion here: - https://github.com/behdad/harfbuzz/commit/81ef4f407d9c7bd98cf62cef951dc538b13442eb - - There's no way to disable this fallback, but I don't think it would - be needed. Let's hope for the best! - - Fixes https://github.com/behdad/harfbuzz/issues/153 - - src/hb-buffer-private.hh | 7 ++++ - src/hb-buffer.cc | 2 ++ - src/hb-ot-shape-fallback-private.hh | 4 +++ - src/hb-ot-shape-fallback.cc | 67 - +++++++++++++++++++++++++++++++++++++ - src/hb-ot-shape-normalize.cc | 1 + - src/hb-ot-shape.cc | 3 ++ - src/hb-unicode-private.hh | 56 +++++++++++++++++-------------- - test/shaping/tests/spaces.tests | 24 ++++++------- - 8 files changed, 126 insertions(+), 38 deletions(-) - -commit aa7044de0ceacd71cab19212d266c3a66c03b41e -Author: Behdad Esfahbod -Date: Wed Nov 4 16:25:57 2015 -0800 - - Generalize flags types - - src/hb-buffer-private.hh | 3 +++ - src/hb-ot-layout-common-private.hh | 5 +++++ - src/hb-ot-layout-private.hh | 8 +++++--- - src/hb-ot-map-private.hh | 16 +--------------- - src/hb-ot-shape.cc | 2 +- - src/hb-private.hh | 14 ++++++++++++++ - 6 files changed, 29 insertions(+), 19 deletions(-) - -commit 7793aad946e09b53523b30d57de85abd1d15f8b6 -Author: Behdad Esfahbod -Date: Wed Nov 4 14:48:46 2015 -0800 - - Normalize various spaces to space if font doesn't support - - This resurrects the space fallback feature, after I disabled - the compatibility decomposition. Now I can release HarfBuzz - again without breaking Pango! - - It also remembers which space character it was, such that later - on we can approximate the width of this particular space - character. That part is not implemented yet. - - We normalize all GC=Zs chars except for U+1680 OGHA SPACE MARK, - which is better left alone. - - src/hb-ot-layout-private.hh | 47 - +++------------------ - src/hb-ot-shape-normalize.cc | 12 +++++- - src/hb-unicode-private.hh | 40 - ++++++++++++++++++ - test/shaping/Makefile.am | 1 + - .../1c2c3fc37b2d4c3cb2ef726c6cdaaabd4b7f3eb9.ttf | Bin 0 -> 316 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/spaces.tests | 17 ++++++++ - 8 files changed, 76 insertions(+), 43 deletions(-) - -commit 8b3c7f9ede77052225cff8495d660860bf9c7629 -Author: Behdad Esfahbod -Date: Wed Nov 4 15:30:48 2015 -0800 - - [test] Support recording multiple lines of text in record-test.sh - - test/shaping/record-test.sh | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -commit 85658394809fe0593ab5dfb30fd96118765c7dc5 -Author: Behdad Esfahbod -Date: Wed Nov 4 14:46:52 2015 -0800 - - Protect against possible invalid-memory access after OOM - - src/hb-buffer-private.hh | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit 4cc80bed25450af3d84a30ea417fa9275b15e014 -Author: Behdad Esfahbod -Date: Wed Nov 4 14:46:10 2015 -0800 - - Fix typo! - - Ouch! Fortunately that function was unused. - - src/hb-buffer-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 9ac4b9656dd78ffd129bc3d560a92e2692bc3058 -Author: Behdad Esfahbod -Date: Wed Nov 4 14:18:39 2015 -0800 - - Add Unicode space category - - Unused so far. - - src/hb-ot-layout-private.hh | 78 - +++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 76 insertions(+), 2 deletions(-) - -commit 8249ec3f86510fd24462ce71ed64a6978f0ade17 -Author: Behdad Esfahbod -Date: Wed Nov 4 13:26:17 2015 -0800 - - Make top-byte of unicode_props available to be used differently per-GC - - src/hb-ot-layout-private.hh | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -commit cc5d3a33882b52f906ee4346707700f5e846d2ac -Author: Behdad Esfahbod -Date: Wed Nov 4 13:21:25 2015 -0800 - - Towards using top-byte of unicode-props for more things - - src/hb-ot-layout-gsubgpos-private.hh | 1 - - src/hb-ot-layout-private.hh | 3 ++- - 2 files changed, 2 insertions(+), 2 deletions(-) - -commit 2f38dde5a1ea5459789fabaee661cae9235d204e -Author: Behdad Esfahbod -Date: Wed Nov 4 13:17:33 2015 -0800 - - Add _hb_glyph_info_is_unicode_mark() - - Unused right now. - - src/hb-ot-layout-private.hh | 6 ++++++ - 1 file changed, 6 insertions(+) - -commit 90d75f93bb85aeb627c4e6bb9e4cbd75895c99f7 -Author: Behdad Esfahbod -Date: Tue Nov 3 12:58:12 2015 -0800 - - Tighten ccc-setting a bit and document it - - src/hb-ot-layout-private.hh | 12 +++++++++++- - src/hb-unicode-private.hh | 5 +++++ - 2 files changed, 16 insertions(+), 1 deletion(-) - -commit 2f0dfd43cdc2259e6117704f8077ab6951c761e5 -Author: Behdad Esfahbod -Date: Tue Nov 3 12:28:34 2015 -0800 - - Fix test expectation - - test/shaping/tests/fuzzed.tests | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit df698f3299d92867e3305715f675b2621c316acd -Author: Behdad Esfahbod -Date: Tue Nov 3 12:15:12 2015 -0800 - - [ot-font] Fix hmtx table length checking, *again* - - Exactly the same problem that I fixed in - 63ef0b41dc48d6112d1918c1b1de9de8ea90adb5 - - I rewrote the table checking yesterday in - 67f8821fb25d9bd55719f5e29a582ae1af4b02b3 - and introduced the exact same issue again. :( - Good thing we have ongoing fuzzing going now. Was discovered - immediately by libFuzzer. Thanks kcc! - - https://github.com/behdad/harfbuzz/issues/139#issuecomment-153449473 - Fixes https://github.com/behdad/harfbuzz/issues/156 - - src/hb-ot-font.cc | 4 ++-- - .../sha1sum/8240789f6d12d4cfc4b5e8e6f246c3701bcf861f.ttf | Bin 0 -> - 633 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/fuzzed.tests | 1 + - 4 files changed, 4 insertions(+), 2 deletions(-) - -commit 3530cc2d7c3b7102902cb0e38b0bf9f46188078d -Author: Behdad Esfahbod -Date: Tue Nov 3 11:34:47 2015 -0800 - - [util] Fix option-parsing leaks - - util/helper-cairo.cc | 7 +++++-- - util/main-font-text.hh | 22 ++++++++++++++++++--- - util/options.cc | 21 ++++++++++---------- - util/options.hh | 53 - +++++++++++++++++++++++++++++++++----------------- - 4 files changed, 70 insertions(+), 33 deletions(-) - -commit 642135f3b2d6d6eb800153c76c4718239733c0e6 -Author: Behdad Esfahbod -Date: Tue Nov 3 11:26:34 2015 -0800 - - [util] In --debug mode, duplicate font data - - This has the effect that the font data will end up in a memory - section malloc()ed exactly to its size. This gives us better - valgrind detection of out-of-bounds access. - - Previously, the font data was placed in a mmap()ed section or - GString-allocated area, which didn't have proper protections - at the end when running under valgrind. - - util/options.cc | 3 +++ - 1 file changed, 3 insertions(+) - -commit ed2024ef93ac3af214082016e5aa8c14db9d7515 -Author: Behdad Esfahbod -Date: Mon Nov 2 17:58:12 2015 -0800 - - [perf] Micro-optimize - - src/hb-ot-layout-private.hh | 23 ++++++++++++++--------- - 1 file changed, 14 insertions(+), 9 deletions(-) - -commit 76a5310a830c7ae12037b768c5043bef0ff733a0 -Author: Behdad Esfahbod -Date: Mon Nov 2 17:52:45 2015 -0800 - - Remove irrelevant comment - - I tried moving the is_default_ignorable() function to an INTERNAL - function. That made the binary size grow by 5k AND things got a - tad bit slower! - - src/hb-ot-layout-private.hh | 1 - - 1 file changed, 1 deletion(-) - -commit 8259669fbd1b070fc02287325894caf1bc4d590e -Author: Behdad Esfahbod -Date: Mon Nov 2 17:44:05 2015 -0800 - - Minor - - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - src/hb-ot-shape-complex-thai.cc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -commit 9382c471eabce8d36d3a73c97499ab60af422716 -Author: Behdad Esfahbod -Date: Mon Nov 2 17:36:51 2015 -0800 - - Combine unicode_props0/1 into a uint16 - - Slightly faster. In prep for more changes. - - src/hb-ot-layout-private.hh | 55 - ++++++++++++++++++++++++--------------------- - 1 file changed, 29 insertions(+), 26 deletions(-) - -commit 71277185454482cff9b0c10b85c416eb4d6e0ed9 -Author: Behdad Esfahbod -Date: Mon Nov 2 17:27:48 2015 -0800 - - [perf] Only call combining_class() for marks - - Saves some time. Also preparing for reusing the ccc byte for - other stuff. - - src/hb-ot-layout-private.hh | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - -commit 5ba450407b9d9856453e63a815499da8721ff6a7 -Author: Behdad Esfahbod -Date: Mon Nov 2 15:43:08 2015 -0800 - - Make max context-length and max nesting level configurable - - ...at compile time. - - src/hb-ot-layout-common-private.hh | 10 ++++++++-- - src/hb-ot-layout-gsub-table.hh | 4 ++-- - src/hb-ot-layout-gsubgpos-private.hh | 20 ++++++++++---------- - 3 files changed, 20 insertions(+), 14 deletions(-) - -commit 67f8821fb25d9bd55719f5e29a582ae1af4b02b3 -Author: Behdad Esfahbod -Date: Mon Nov 2 15:37:29 2015 -0800 - - [ot] Make bad-hmtx handling match FreeType - - Also route fuzzing-related tests through hb-ot-font, to reduce - dependency - on FreeType behavior for badly-broken fonts. Fixes failing test with - FreeType master. - - src/hb-ot-font.cc | 24 ++++++++++++++---------- - test/shaping/tests/fuzzed.tests | 10 +++++----- - 2 files changed, 19 insertions(+), 15 deletions(-) - -commit 672ca3b4e65a75fb3a418ec5d117ad242a98acbb -Author: Behdad Esfahbod -Date: Mon Oct 26 14:05:05 2015 -0700 - - Use templates for making sure expression is constant - - src/hb-private.hh | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -commit 5c8174eda32c08187bc2ed40eefa1017f5b40668 -Author: Behdad Esfahbod -Date: Wed Oct 21 18:51:40 2015 -0200 - - Update comments for removal of compat decompositions - - src/hb-ot-shape-normalize.cc | 16 ++-------------- - 1 file changed, 2 insertions(+), 14 deletions(-) - -commit f6799700404c49ae0a6018fd51be19551c76768a -Author: Behdad Esfahbod -Date: Wed Oct 21 17:20:55 2015 -0200 - - Disable compatibility decomposition usage during normalization - - Fixes https://github.com/behdad/harfbuzz/issues/152 - - src/hb-ot-shape-normalize.cc | 24 ------------------------ - 1 file changed, 24 deletions(-) - -commit ce889189c1f8ef5b400a17f623dcb8b935d1102b -Author: Behdad Esfahbod -Date: Wed Oct 21 11:23:12 2015 -0200 - - Fix two more -Wshadow warnings - - https://bugzilla.mozilla.org/show_bug.cgi?id=1215894 - - src/hb-open-type-private.hh | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -commit 4a6b1eedbb0044b57505eea65a329d2dc4f9f917 -Author: Behdad Esfahbod -Date: Wed Oct 21 11:20:55 2015 -0200 - - Fix one more -Wshadow warning - - https://bugzilla.mozilla.org/show_bug.cgi?id=1215894 - - src/hb-ot-layout-gsubgpos-private.hh | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -commit 6f932bc8f9045b224613a617af2b4f3450c79467 -Author: Behdad Esfahbod -Date: Wed Oct 21 11:16:49 2015 -0200 - - Fix a few more -Wshadow-local warnings - - https://bugzilla.mozilla.org/show_bug.cgi?id=1215894 - - src/hb-ot-shape-complex-indic.cc | 10 +++++----- - src/hb-ot-shape-complex-myanmar.cc | 10 +++++----- - src/hb-ot-shape-complex-use.cc | 10 +++++----- - 3 files changed, 15 insertions(+), 15 deletions(-) - -commit b90cb366d7723c28758c6b75a0770613fbb5456e -Author: Behdad Esfahbod -Date: Wed Oct 21 11:13:21 2015 -0200 - - Fix one -Wshadow-compatible-local warning - - From https://bugzilla.mozilla.org/show_bug.cgi?id=1215894 - - src/hb-ot-shape-complex-indic.cc | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit 50e5750bd8670b4cf4463471a2348d4c99c9d054 -Author: Behdad Esfahbod -Date: Wed Oct 21 11:10:10 2015 -0200 - - Avoid unnecessary cast to 64-bit - - Fixes https://github.com/behdad/harfbuzz/issues/146 - - Or I think it should. - - src/hb-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 305d2fbf5a2db51447c8ed894a48a88896930673 -Author: Behdad Esfahbod -Date: Wed Oct 21 11:04:28 2015 -0200 - - Add HB_FALLTHROUGH - - Borrowed from https://bugzilla.mozilla.org/show_bug.cgi?id=1215411 - - src/hb-ot-shape-complex-indic.cc | 2 +- - src/hb-ot-shape-complex-thai.cc | 2 +- - src/hb-ot-shape-fallback.cc | 4 +++- - src/hb-private.hh | 30 ++++++++++++++++++++++++++++++ - 4 files changed, 35 insertions(+), 3 deletions(-) - -commit f35b3e931ddacd075c5d0810e9b17de07b232ee2 -Author: Ebrahim Byagowi -Date: Fri Sep 11 09:48:12 2015 +0430 - - Add a prototype of DirectWrite as a shaping backend - - src/hb-directwrite.cc | 827 - ++++++++++++++++++++++++++++++++++++++++++++++++++ - src/hb-directwrite.h | 34 +++ - src/hb-shaper-list.hh | 3 + - 3 files changed, 864 insertions(+) - -commit 6486e3755482563ecd89aeb3f8348ed190945e26 -Author: Behdad Esfahbod -Date: Tue Oct 20 16:39:41 2015 -0200 - - Fix typo - - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 753ea7b90904c951c199861409458bea182abb37 -Author: Behdad Esfahbod -Date: Tue Oct 20 15:21:18 2015 -0200 - - Add BUILD.md to dist - - Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -commit 5d7a30fde09320c2c62c7c73570ce3f2e298eba6 -Merge: 904b0dc 2fb95a0 -Author: Behdad Esfahbod -Date: Tue Oct 20 15:19:41 2015 -0200 - - Merge pull request #148 from ebraminio/inst - - Add BUILD.md based on harfbuzz.org docs - -commit 904b0dc3811464cf61dc9457664de95ee4f61a86 -Merge: 86cadc2 ba096bc -Author: Behdad Esfahbod -Date: Mon Oct 19 16:59:43 2015 -0200 - - Merge pull request #147 from ebraminio/dockerci - - [ci] change to docker infrastructure - -commit ba096bcc28ca80e2096e0a15191848fcd175e395 -Author: Ebrahim Byagowi -Date: Mon Oct 19 21:41:01 2015 +0330 - - [ci] change to docker infrastructure - - .travis.yml | 24 ++++++++++++++++-------- - 1 file changed, 16 insertions(+), 8 deletions(-) - -commit 2fb95a0c9d2cb8b03b7c158706d6b0e41283a6df -Author: Ebrahim Byagowi -Date: Mon Oct 19 22:02:12 2015 +0330 - - Add BUILD.md based on harfbuzz.org docs - - BUILD.md | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -commit 86cadc2cd4171050e9d74306b76c42f6ec74b861 -Author: Behdad Esfahbod -Date: Thu Oct 15 20:25:29 2015 -0300 - - 1.0.6 - - NEWS | 13 +++++++++++++ - configure.ac | 2 +- - 2 files changed, 14 insertions(+), 1 deletion(-) - -commit ca97ea7aa2cb7186f432aaba76f4f151aa90c1d0 -Author: Behdad Esfahbod -Date: Thu Oct 15 20:20:22 2015 -0300 - - [ft] Revert change-of-behavior of hb_ft_font_create() introduced - in 1.0.5 - - The default FreeType load flags where changed from FT_LOAD_NO_HINTING - to FT_LOAD_DEFAULT in 2a9627c5641cd000e2adff0e42a0dc687b53ec70. - This is crashing HarfBuzz-enabled FreeType as I suppose it causes - infinite recursion between HB and FT autohinter... - - Revert the behavior change. - - Fixes https://github.com/behdad/harfbuzz/issues/143 - - src/hb-ft.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 338ffec9e4a5819f2be21c3a320a567378c977b1 -Author: Behdad Esfahbod -Date: Thu Oct 15 12:55:57 2015 -0300 - - Add tests for a couple of fixed issues found by libFuzzer - - From: - https://github.com/behdad/harfbuzz/issues/139#issuecomment-147616887 - https://github.com/behdad/harfbuzz/issues/139#issuecomment-148289957 - - .../sha1sum/375d6ae32a3cbe52fbf81a4e5777e3377675d5a3.ttf | Bin 0 -> - 1024 bytes - .../sha1sum/641bd9db850193064d17575053ae2bf8ec149ddc.ttf | Bin 0 -> - 305 bytes - test/shaping/fonts/sha1sum/MANIFEST | 2 ++ - test/shaping/tests/fuzzed.tests | 2 ++ - 4 files changed, 4 insertions(+) - -commit 63ef0b41dc48d6112d1918c1b1de9de8ea90adb5 -Author: Behdad Esfahbod -Date: Thu Oct 15 12:47:22 2015 -0300 - - [ot-font] Fix hmtx wrong table length check - - Discovered by libFuzzer. Ouch! - - https://github.com/behdad/harfbuzz/issues/139#issuecomment-148289957 - - src/hb-ot-font.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 613e630617074eb9b62b794cc37c9b42a7fb079b -Author: Behdad Esfahbod -Date: Tue Oct 13 23:33:28 2015 -0300 - - Reduce max nesting level from 8 to 6 - - We probably should implement better system to catch cyclic lookups. - But for now, this speeds up worst case behavior with broken fonts - considerably without compromising legitimate usecases. - - https://github.com/behdad/harfbuzz/issues/139#issuecomment-147788447 - - src/hb-ot-layout-common-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit ab170529246ad80830bef2b3c8b48e9a8d2b7483 -Author: Behdad Esfahbod -Date: Tue Oct 13 10:55:33 2015 -0300 - - 1.0.5 - - NEWS | 24 ++++++++++++++++++++++++ - configure.ac | 2 +- - 2 files changed, 25 insertions(+), 1 deletion(-) - -commit ed13e2ce509408f849255be1d3cc3dbd7dbb3ba2 -Author: Behdad Esfahbod -Date: Tue Oct 13 10:32:56 2015 -0300 - - [ot-font] Fix leak - - https://github.com/behdad/harfbuzz/issues/139#issuecomment-147616887 - - src/hb-ot-font.cc | 1 + - 1 file changed, 1 insertion(+) - -commit 55db94be2b754ba9b9121f09abcf8496c798affc -Author: Behdad Esfahbod -Date: Tue Oct 13 00:33:59 2015 -0400 - - Add test for previous commit - - .../sha1sum/0509e80afb379d16560e9e47bdd7d888bebdebc6.ttf | Bin 0 -> - 61 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/fuzzed.tests | 1 + - 3 files changed, 2 insertions(+) - -commit f96664974774bfeb237a7274f512f64aaafb201e -Author: Behdad Esfahbod -Date: Tue Oct 13 00:30:50 2015 -0400 - - Fix another memory access issue discovered by libFuzzer - - Fixes - https://github.com/behdad/harfbuzz/issues/139#issuecomment-146984679 - - src/hb-ot-layout-gpos-table.hh | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -commit c1a5dc46c2231f7b62421e06b9766ccfebaf3ef5 -Author: Behdad Esfahbod -Date: Mon Oct 12 17:39:52 2015 -0400 - - [fuzz] Add fuzzing script from kcc@ - - https://github.com/behdad/harfbuzz/issues/139 - - test/fuzzing/hb-fuzzer.cc | 47 - +++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 47 insertions(+) - -commit cc6ea308d4c99b9dd6d625fa3a9b0ef62fa2614f -Author: Behdad Esfahbod -Date: Mon Oct 12 17:21:52 2015 -0400 - - Extern "C" custom-allocator declerations - - src/hb-private.hh | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -commit 98c6fccc00062ead7a86892dd059aa13d266b981 -Author: Behdad Esfahbod -Date: Sun Oct 11 21:41:04 2015 -0400 - - Add test for ee9b0b6cb5fdb08671ab064f26c299135f828260 - - .../sha1sum/5a5daf5eb5a4db77a2baa3ad9c7a6ed6e0655fa8.ttf | Bin 0 -> - 61 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/fuzzed.tests | 1 + - 3 files changed, 2 insertions(+) - -commit 50f489a0a013fc589626bb532a9f64f50bb41f58 -Author: Behdad Esfahbod -Date: Sun Oct 11 20:59:29 2015 -0400 - - Typo - - src/hb-font-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit ee9b0b6cb5fdb08671ab064f26c299135f828260 -Author: Behdad Esfahbod -Date: Fri Oct 9 14:23:15 2015 -0400 - - Fix another sanitize bug - - Also discovered by "libFuzzer". - - src/hb-open-type-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 34379b49e6922b86c15ee62f7fe3bf016cdc2514 -Author: Behdad Esfahbod -Date: Fri Oct 9 12:34:02 2015 -0400 - - Add test for previous fix - - test/shaping/Makefile.am | 1 + - .../sha1sum/1a6f1687b7a221f9f2c834b0b360d3c8463b6daf.ttf | Bin 0 -> - 64 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/fuzzed.tests | 1 + - 5 files changed, 4 insertions(+) - -commit f396fbb000dc1c8acddbf6a16e193b328c5e551e -Author: Behdad Esfahbod -Date: Fri Oct 9 12:25:55 2015 -0400 - - Fix return value of sanitize when subformat is not readable - - This is a fix on top of the previous issue fixed in - c917965b9e6fe2b21ed6c51559673288fa3af4b7. - - This was caught by "libFuzzer" testing. - - src/hb-open-type-private.hh | 2 ++ - src/hb-ot-layout-gpos-table.hh | 15 +++++++-------- - src/hb-ot-layout-gsub-table.hh | 13 ++++++------- - src/hb-ot-layout-gsubgpos-private.hh | 8 ++++---- - 4 files changed, 19 insertions(+), 19 deletions(-) - -commit 77a1a2bc18e7b04d4e352a8777ccce345b2f8659 -Author: Behdad Esfahbod -Date: Fri Oct 9 12:20:58 2015 -0400 - - Add hb_dispatch_context_t - - src/hb-open-type-private.hh | 26 ++++++++++++++++++++++---- - src/hb-ot-layout-gsubgpos-private.hh | 36 - ++++++++++++------------------------ - src/hb-ot-layout.cc | 8 +++----- - 3 files changed, 37 insertions(+), 33 deletions(-) - -commit 3e905e396bcd745bda88e751998a76556c5cb8c6 -Author: Behdad Esfahbod -Date: Thu Oct 8 12:51:02 2015 -0400 - - Add hb_font_set_parent() - - No reason to not have it. Makes life easier later. - We (hb-ft, hb-ot-font, etc) can use this API to inject new - parent into a font... - - src/hb-font.cc | 26 ++++++++++++++++++++++++++ - src/hb-font.h | 4 ++++ - test/api/test-font.c | 12 ++++++++++++ - 3 files changed, 42 insertions(+) - -commit edeb3dabf4a589d67c3f1da7ba43a74e4d3a9afd -Author: Behdad Esfahbod -Date: Thu Oct 8 12:47:15 2015 -0400 - - [ft] Add version for new API - - src/hb-ft.cc | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -commit 2a9627c5641cd000e2adff0e42a0dc687b53ec70 -Author: Behdad Esfahbod -Date: Wed Oct 7 17:33:20 2015 -0400 - - [ft] API: Add hb_font_[sg]et_load_flags() API - - This changes the default load_flags of fonts created using - hb_ft_font_create() from NO_HINTING to DEFAULT. Hope that doesn't - break too much client code. - - Code calling hb_ft_font_set_funcs() is unaffected. - - src/hb-ft.cc | 163 - +++++++++++++++++++++++++++++++++++++++-------------------- - src/hb-ft.h | 13 +++-- - 2 files changed, 118 insertions(+), 58 deletions(-) - -commit 3224a594dcf2164b5585b4ccba34f244af3f61b9 -Author: Behdad Esfahbod -Date: Wed Oct 7 17:33:02 2015 -0400 - - Minor - - src/hb-ot-font.cc | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -commit 52b418555b62a3b25399f202c1fa72ab7288c224 -Author: Behdad Esfahbod -Date: Sat Oct 3 13:20:55 2015 +0100 - - Allow compiling with custom allocators - - User can define hb_malloc_impl, etc, to name of custom allocator - functions - that have the same signature as malloc. - - src/hb-private.hh | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -commit 88da7bba9fa4665b33f5bfcd45add7443097eaf3 -Author: Behdad Esfahbod -Date: Fri Oct 2 14:38:20 2015 +0100 - - Default font scale to face upem - - Makes for a better default and avoids nasty inheritance issues. - See mailing list thread "Default hb_font_t scale". - - src/hb-font.cc | 2 ++ - test/api/test-font.c | 13 ++++++++----- - 2 files changed, 10 insertions(+), 5 deletions(-) - -commit 1866e17114b41d565eb066e7d9393c2ff3e0a12b -Author: Behdad Esfahbod -Date: Fri Oct 2 14:21:29 2015 +0100 - - Make hb_font_create_sub_font() NOT make parent immutable - - We don't rely on that. However, whenever hb_font_make_immutable() - is called, it makes its parenting chain immutable. - - src/hb-font.cc | 4 +++- - test/api/test-font.c | 21 +++++++++++++++------ - 2 files changed, 18 insertions(+), 7 deletions(-) - -commit 980e25cad2e58c31f5361862b9223d94ec47fc7a -Author: Behdad Esfahbod -Date: Fri Oct 2 08:21:12 2015 +0100 - - Fix hb-ot-shape-normalize with empty buffer - - Part of https://github.com/behdad/harfbuzz/issues/136 - - src/hb-ot-shape-normalize.cc | 2 ++ - 1 file changed, 2 insertions(+) - -commit a5efaac4ff61b587f228830b265b39fe8e5e4e47 -Author: Behdad Esfahbod -Date: Fri Oct 2 08:02:29 2015 +0100 - - Replace a couple of malloc()s with calloc() - - src/hb-face.cc | 2 +- - src/hb-shape-plan.cc | 2 +- - src/hb-shaper.cc | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -commit 26ba4d1e1fb8949632fe08e6a7600badfba4f142 -Author: Behdad Esfahbod -Date: Fri Oct 2 07:25:52 2015 +0100 - - Fix segfault with empty buffer in hb_shape_plan_execute() - - Move the empty-buffer check from hb_shape_full() to - hb_shape_plan_execute(). - - Reported by Simon Cozens. - - src/hb-shape-plan.cc | 9 +++++++-- - src/hb-shape.cc | 5 ----- - 2 files changed, 7 insertions(+), 7 deletions(-) - -commit 432ffc47a46d41bea17d839d0d3980e654c6e638 -Author: Behdad Esfahbod -Date: Wed Sep 30 22:51:16 2015 +0100 - - 1.0.4 - - NEWS | 7 +++++++ - configure.ac | 2 +- - 2 files changed, 8 insertions(+), 1 deletion(-) - -commit b47159011ca518c3b94d782ed16a91ffe9dd2ab2 -Author: Behdad Esfahbod -Date: Tue Sep 29 14:57:02 2015 +0100 - - Define return_trace() - - Not functional change (expected!). - - src/hb-open-file-private.hh | 20 +-- - src/hb-open-type-private.hh | 62 +++---- - src/hb-ot-cmap-table.hh | 56 +++---- - src/hb-ot-glyf-table.hh | 4 +- - src/hb-ot-head-table.hh | 2 +- - src/hb-ot-hhea-table.hh | 2 +- - src/hb-ot-hmtx-table.hh | 2 +- - src/hb-ot-layout-common-private.hh | 108 ++++++------- - src/hb-ot-layout-gdef-table.hh | 44 ++--- - src/hb-ot-layout-gpos-table.hh | 252 +++++++++++++++-------------- - src/hb-ot-layout-gsub-table.hh | 304 - ++++++++++++++++++----------------- - src/hb-ot-layout-gsubgpos-private.hh | 205 +++++++++++------------ - src/hb-ot-layout-jstf-table.hh | 35 ++-- - src/hb-ot-maxp-table.hh | 5 +- - src/hb-ot-name-table.hh | 14 +- - src/hb-private.hh | 6 +- - 16 files changed, 575 insertions(+), 546 deletions(-) - -commit c917965b9e6fe2b21ed6c51559673288fa3af4b7 -Author: Behdad Esfahbod -Date: Tue Sep 29 14:45:35 2015 +0100 - - Add missing returns - - Fixes possible invalid read of two bytes. - - Reported by Behzad Najjarpour Jabbari, Secunia Research. - - src/hb-ot-layout-gpos-table.hh | 14 +++++++------- - src/hb-ot-layout-gsub-table.hh | 12 ++++++------ - src/hb-ot-layout-gsubgpos-private.hh | 8 ++++---- - 3 files changed, 17 insertions(+), 17 deletions(-) - -commit f3159ba5141c2ab0e430e64742972df140f91c43 -Author: Behdad Esfahbod -Date: Tue Sep 29 14:34:56 2015 +0100 - - Micro-optimize hb_language_from_string() - - As measured / improved by Benson Limketkai. - - src/hb-common.cc | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -commit f2ad935e19338a29113492150f0c5a5fd5befd75 -Author: Sascha Brawer -Date: Sun Jun 28 03:29:47 2015 +0200 - - Handle language tags that indicate phonetic IPA transcription - - The BCP-47 registry defines a variant subtag "fonipa" that can be used - in combination with arbitrary other language tags. For example, - "rm-CH-fonipa-sursilv" indicates the Sursilvan dialect of Romansh - as used in Switzerland, transcribed used the International Phonetic - Alphabet. - - http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry - - src/hb-ot-tag.cc | 15 ++++++++++++++- - test/api/test-ot-tag.c | 7 +++++++ - 2 files changed, 21 insertions(+), 1 deletion(-) - -commit b8811429b6810c4f13be087b593a862c17d9d987 -Author: Behdad Esfahbod -Date: Thu Sep 3 15:53:22 2015 +0430 - - Fix Since tags - - Fixes https://github.com/behdad/harfbuzz/issues/103 - - src/hb-blob.cc | 24 +++++++++---------- - src/hb-buffer-serialize.cc | 10 ++++---- - src/hb-buffer.cc | 58 - +++++++++++++++++++++++----------------------- - src/hb-buffer.h | 9 +++++++ - src/hb-common.cc | 24 +++++++++---------- - src/hb-common.h | 3 +++ - src/hb-coretext.cc | 3 +++ - src/hb-font.h | 18 +++++++------- - src/hb-ft.cc | 6 ++--- - src/hb-graphite2.cc | 6 +++++ - src/hb-ot-layout.cc | 2 +- - src/hb-ot-tag.cc | 2 +- - src/hb-set.h | 3 +++ - src/hb-shape.cc | 2 +- - src/hb-unicode.cc | 18 +++++++------- - src/hb-unicode.h | 10 ++++---- - 16 files changed, 111 insertions(+), 87 deletions(-) - -commit 5d74ff02ab01df67808b416af8bb9cefb06f841e -Author: Behdad Esfahbod -Date: Thu Sep 3 14:55:59 2015 +0430 - - Fix Since: version tags on font and face APIs - - A while back we marked every API as version:1.0. We should fix - them all - to reflect real version they were introduced. This is a start. - - Patch from Nikolay Sivov. - - src/hb-face.cc | 22 ++++++++--------- - src/hb-font.cc | 76 - +++++++++++++++++++++++++++++----------------------------- - 2 files changed, 49 insertions(+), 49 deletions(-) - -commit 7f5405397406a24c5a001b5ef43dcf4d6926415e -Author: Behdad Esfahbod -Date: Tue Sep 1 17:03:50 2015 +0100 - - 1.0.3 - - NEWS | 11 +++++++++++ - configure.ac | 2 +- - 2 files changed, 12 insertions(+), 1 deletion(-) - -commit 5828c45d7a816ccd0a7f10a665ea3cf8cfd63b05 -Author: Behdad Esfahbod -Date: Tue Sep 1 16:26:35 2015 +0100 - - [indic] Add comments to merge_clusters calls - - src/hb-ot-shape-complex-indic.cc | 21 ++++++++++++++++----- - 1 file changed, 16 insertions(+), 5 deletions(-) - -commit bdc8215949a7add742cc800b4fdea6acaa37d152 -Author: Behdad Esfahbod -Date: Tue Sep 1 16:24:54 2015 +0100 - - [thai] Respect cluster-level > 0 - - src/hb-ot-shape-complex-thai.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 5b31fe383ead726ec77062501ed3bb24c02842b3 -Author: Behdad Esfahbod -Date: Tue Sep 1 16:24:34 2015 +0100 - - [use] Merge /before/ reordering - - src/hb-ot-shape-complex-use.cc | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit 0d438f89bd9422c66838c776eb4aa867de0a2ad8 -Author: Behdad Esfahbod -Date: Tue Sep 1 16:24:13 2015 +0100 - - [hangul] Merge /before/ reordering - - src/hb-ot-shape-complex-hangul.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit f883de664fc4bfe01e30c89e07e31dc113f906d9 -Author: Behdad Esfahbod -Date: Tue Sep 1 16:23:40 2015 +0100 - - [OT] Merge /before/ reordering - - src/hb-ot-shape.cc | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -commit c403d6320074455a5e8e48902c0ac4ee9685e33d -Author: Behdad Esfahbod -Date: Tue Sep 1 16:15:25 2015 +0100 - - [myanmar] Use buffer->sort() to sort cluster - - This can possibly produce more granular clusters. - - src/hb-ot-shape-complex-myanmar.cc | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -commit e995d33c10a4bd9404699d01bddb2b69d811e9ed -Author: Behdad Esfahbod -Date: Tue Sep 1 16:13:32 2015 +0100 - - [OT] Merge clusters when reordering marks for normalization - - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=541608 - and cluster test. - - src/hb-buffer-private.hh | 2 ++ - src/hb-buffer.cc | 21 +++++++++++++++++++++ - src/hb-ot-shape-normalize.cc | 2 +- - 3 files changed, 24 insertions(+), 1 deletion(-) - -commit b6d7d161a87b5dde710924e5c557d39c302f5630 -Author: Behdad Esfahbod -Date: Tue Sep 1 16:12:44 2015 +0100 - - [tests] Add Hebrew test for normalization under cluster-level=1 - - Currently fails. - https://bugzilla.gnome.org/show_bug.cgi?id=541608 - - .../sha1sum/43ef465752be9af900745f72fe29cb853a1401a5.ttf | Bin 0 -> - 4272 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/cluster.tests | 1 + - 3 files changed, 2 insertions(+) - -commit 93099748e39740a3f6f003c83d9dec1d21660ce8 -Author: Behdad Esfahbod -Date: Tue Sep 1 16:11:27 2015 +0100 - - Minor - - src/hb-private.hh | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -commit 85846b3de7491b6a07fed6a2c0c6c1b09943b249 -Author: Behdad Esfahbod -Date: Tue Sep 1 15:07:52 2015 +0100 - - Use insertion-sort instead of bubble-sort - - Needed for upcoming merge-clusters fix. - - src/hb-buffer.cc | 4 +-- - src/hb-ot-shape-complex-arabic-fallback.hh | 6 ++-- - src/hb-ot-shape-complex-indic.cc | 2 +- - src/hb-ot-shape-complex-myanmar.cc | 2 +- - src/hb-ot-shape-normalize.cc | 6 ++-- - src/hb-private.hh | 56 - +++++++++++++----------------- - 6 files changed, 34 insertions(+), 42 deletions(-) - -commit fad2674874591b4a1df822603144c8864f5364c1 -Author: Behdad Esfahbod -Date: Tue Sep 1 14:45:46 2015 +0100 - - Minor - - test/Makefile.am | 4 ++++ - test/api/Makefile.am | 4 ++++ - test/shaping/Makefile.am | 4 ++++ - 3 files changed, 12 insertions(+) - -commit 23e4fac6de913201f263a73e13d3c1fab31d1bdd -Author: Behdad Esfahbod -Date: Mon Aug 31 19:41:01 2015 +0100 - - Update git.mk from upstream - - git.mk | 17 ++++++++++++++++- - 1 file changed, 16 insertions(+), 1 deletion(-) - -commit 5783e05f81bbf6debf2618c8994d6852630d9847 -Author: Behdad Esfahbod -Date: Mon Aug 31 19:18:10 2015 +0100 - - [docs] Move docs/reference/ contents into docs/ - - configure.ac | 3 +- - docs/Makefile.am | 117 - ++++++++++++++++++++++++++- - docs/{reference => }/harfbuzz-docs.xml | 0 - docs/{reference => }/harfbuzz-overrides.txt | 0 - docs/{reference => }/harfbuzz-sections.txt | 0 - docs/reference/Makefile.am | 118 - ---------------------------- - docs/{reference => }/usermanual-ch01.xml | 0 - docs/{reference => }/usermanual-ch02.xml | 0 - docs/{reference => }/usermanual-ch03.xml | 0 - docs/{reference => }/usermanual-ch04.xml | 0 - docs/{reference => }/usermanual-ch05.xml | 0 - docs/{reference => }/usermanual-ch06.xml | 0 - docs/{reference => }/version.xml.in | 0 - 13 files changed, 117 insertions(+), 121 deletions(-) - -commit cd5e3a13a6e0b6606d3a421f8cd44cdfb8314907 -Author: Behdad Esfahbod -Date: Mon Aug 31 19:16:41 2015 +0100 - - [docs] Fix out-of-tree build - - docs/reference/Makefile.am | 9 ++++++++- - docs/reference/harfbuzz-docs.xml | 12 ++++++------ - docs/{ => reference}/usermanual-ch01.xml | 0 - docs/{ => reference}/usermanual-ch02.xml | 0 - docs/{ => reference}/usermanual-ch03.xml | 0 - docs/{ => reference}/usermanual-ch04.xml | 0 - docs/{ => reference}/usermanual-ch05.xml | 0 - docs/{ => reference}/usermanual-ch06.xml | 0 - 8 files changed, 14 insertions(+), 7 deletions(-) - -commit 3899795fa3c3e058e3885ec7a6638f0597a752cc -Merge: d205965 01e16e8 -Author: Behdad Esfahbod -Date: Mon Aug 31 10:46:01 2015 +0100 - - Merge pull request #131 from simoncozens/docs - - Use gtk-doc to build user's manual as well as reference - -commit 01e16e88f50b65b82dcb84773f532f18a351319f -Author: Simon Cozens -Date: Mon Aug 31 10:40:17 2015 +0100 - - Combine user / reference information into gtk-doc generated manual. - - docs/reference/harfbuzz-docs.xml | 91 - +++++++++++++++++++++++----------------- - 1 file changed, 52 insertions(+), 39 deletions(-) - -commit 11a07c4729174e1d4af028103ecb0a351e4c2707 -Author: Simon Cozens -Date: Mon Aug 31 10:39:10 2015 +0100 - - Correct tag hierarchy, to allow for table-of-contents entries. - - docs/usermanual-ch01.xml | 12 ++++++------ - docs/usermanual-ch02.xml | 8 ++++---- - docs/usermanual-ch03.xml | 24 ++++++++++++------------ - docs/usermanual-ch04.xml | 16 ++++++++-------- - docs/usermanual-ch05.xml | 12 ++++++------ - 5 files changed, 36 insertions(+), 36 deletions(-) - -commit 387d6af428ddd5d4f211fe5748412011013a3826 -Author: Simon Cozens -Date: Mon Aug 31 10:31:09 2015 +0100 - - Missing tag (oops). - - docs/usermanual-ch02.xml | 1 + - 1 file changed, 1 insertion(+) - -commit d205965286798af4b7ad07e1eafa58288bee4bdb -Author: Behdad Esfahbod -Date: Mon Aug 31 10:12:05 2015 +0100 - - [docs] Fix typo - - docs/usermanual-ch03.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit c424b41705b50055c7f92b268cf78a2680af73af -Merge: 31594b9 5470e74 -Author: Behdad Esfahbod -Date: Mon Aug 31 09:53:16 2015 +0100 - - Merge pull request #129 from simoncozens/docs - - First two chapters. More to follow. - -commit 31594b98af0c9181982c77d8d3803753007f8fd4 -Author: Behdad Esfahbod -Date: Sun Aug 30 17:33:04 2015 +0100 - - [test] Fix test-object - - See previous commit. - - test/api/test-object.c | 4 ---- - 1 file changed, 4 deletions(-) - -commit 326b5ebf5748f547e4eb7388d66b79fe23130e2a -Author: Behdad Esfahbod -Date: Sun Aug 30 17:29:21 2015 +0100 - - Poison freed objects such that double-free is detected - - Previously we were setting refcount of freed objects to the inert - value, which - was harmful because it caused further destroy()s of the freed object - to NOT - call free() and hence hide the bug. Indeed, after eb0bf3ae6688b7 - test-object - was double-free'ing objects and this was never caught on Linux. - It only was - caught as crashing on Mac. - - Now we poison refcount upon freeing and check that it's valid - whenever reading - it. Makes test-object fail now. - - src/hb-object-private.hh | 21 ++++++++++++++++----- - 1 file changed, 16 insertions(+), 5 deletions(-) - -commit 5470e744dd264c2dc33437a68d20bcf7c5ffb905 -Author: Simon Cozens -Date: Sat Aug 29 08:21:18 2015 +0100 - - Current state and skeleton outline - - docs/usermanual-ch03.xml | 77 - ++++++++++++++++++++++++++++++++++++++++++++++++ - docs/usermanual-ch04.xml | 18 +++++++++++ - docs/usermanual-ch05.xml | 13 ++++++++ - docs/usermanual-ch06.xml | 8 +++++ - 4 files changed, 116 insertions(+) - -commit 6578575cc8aeb05341f2053039acfcd735707674 -Author: Behdad Esfahbod -Date: Tue Aug 25 20:24:59 2015 +0100 - - [GPOS] Fix cursive connection with mix of RTL and non-RTL lookups - - See thread "Issue with cursive attachment" started by Khaled. - Turned out fixing this wasn't as bad as I had assumed. I like the - new code better; we now have a theoretical model of cursive - connections that is easier to reason about. - - src/hb-ot-layout-gpos-table.hh | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - -commit 7368da67244ea53195cd9b95a5c57485df695732 -Author: Behdad Esfahbod -Date: Tue Aug 25 20:28:39 2015 +0100 - - [test] Add test for cursive-positioning with mixed directions - - Fails now. Fix coming. See thread "Issue with cursive attachment" - started by Khaled. Test fonts were made by modifying test font - from Khaled to add more anchors. - - test/shaping/Makefile.am | 1 + - .../sha1sum/298c9e1d955f10f6f72c6915c3c6ff9bf9695cec.ttf | Bin 0 -> - 2520 bytes - test/shaping/fonts/sha1sum/MANIFEST | 2 ++ - .../sha1sum/c4e48b0886ef460f532fb49f00047ec92c432ec0.ttf | Bin 0 -> - 2512 bytes - test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/cursive-positioning.tests | 2 ++ - 6 files changed, 6 insertions(+) - -commit f0807654da160bd7ceb9aff5b8338ec0b643171c -Author: Simon Cozens -Date: Tue Aug 25 19:57:15 2015 +0100 - - First two chapters. More to follow. - - docs/usermanual-ch01.xml | 115 ++++++++++++++++++++++++++++++ - docs/usermanual-ch02.xml | 182 - +++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 297 insertions(+) - -commit 58f2a73fb95af42e264a91cdef7bb5a89e965601 -Author: Behdad Esfahbod -Date: Tue Aug 25 18:55:34 2015 +0100 - - [GPOS] Rewrite cursive attachment slightly differently - - In anticipation for upcoming fix for bug reported by - Khaled in thread "Issue with cursive attachment". - - src/hb-ot-layout-gpos-table.hh | 36 ++++++++++++++++++++++++------------ - 1 file changed, 24 insertions(+), 12 deletions(-) - -commit fdd1770e006ca2d2973c049177ceda87a575e07f -Author: Behdad Esfahbod -Date: Mon Aug 24 13:49:55 2015 +0100 - - Add API/cmdline to show glyph extents when serializing buffer - - New API: HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS - - hb-shape now accepts --show-extents. - - Patch from Simon Cozens. - - src/hb-buffer-serialize.cc | 17 +++++++++++++++++ - src/hb-buffer.h | 3 ++- - util/hb-shape.cc | 2 ++ - util/options.cc | 1 + - util/options.hh | 2 ++ - 5 files changed, 24 insertions(+), 1 deletion(-) - -commit 2cee5b68a07b99214ef9428fe5d03e7b378a558f -Author: Behdad Esfahbod -Date: Mon Aug 24 13:45:12 2015 +0100 - - [ot-font] Fix short-offset calculation - - src/hb-ot-font.cc | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit b50fcfa82994f93568a54dd1eb7fd327f6db5586 -Author: Behdad Esfahbod -Date: Sun Aug 23 14:42:20 2015 +0100 - - [ot-font] Implement glyph_extents() for TrueType fonts - - This brings ot-fonts into almost-complete shape and mostly in par with - ft font. - - src/Makefile.am | 1 + - src/hb-font.h | 9 +++-- - src/hb-ot-font.cc | 90 +++++++++++++++++++++++++++++++++++++++-- - src/hb-ot-glyf-table.hh | 104 - ++++++++++++++++++++++++++++++++++++++++++++++++ - src/hb-ot-head-table.hh | 3 +- - 5 files changed, 198 insertions(+), 9 deletions(-) - -commit 0299b45000b5047c0b9bf0fe51f3b8b68a7982f8 -Author: Behdad Esfahbod -Date: Fri Aug 21 12:44:36 2015 +0100 - - Make BYTE a real type - - src/hb-open-type-private.hh | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - -commit ed6962c795ae7c54aaee9ed5667fa65ccf7412bf -Author: Behdad Esfahbod -Date: Thu Aug 20 15:39:53 2015 +0100 - - [coretext] Use i32 instead of u32 as well - - Shouldn't cause *any* functional changes, but is more correct. - - src/hb-coretext.cc | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -commit 163c435f1807c138da9f74f09d29d913eb9e29e9 -Author: Behdad Esfahbod -Date: Thu Aug 20 15:39:06 2015 +0100 - - [uniscribe] Fix negative offsets - - Ouch! - - src/hb-uniscribe.cc | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -commit 789b89ef7130ffe5f22c571fc3cb4e6d35456654 -Author: Behdad Esfahbod -Date: Wed Aug 19 13:39:57 2015 +0100 - - 1.0.2 - - NEWS | 13 +++++++++++++ - configure.ac | 2 +- - 2 files changed, 14 insertions(+), 1 deletion(-) - -commit 958c268fa3a520666436e77a2111a3b564a36d96 -Author: Behdad Esfahbod -Date: Wed Aug 19 13:22:12 2015 +0100 - - [coretext] Add TODO item - - src/hb-coretext.cc | 1 + - 1 file changed, 1 insertion(+) - -commit 7c5bee09d9c7c25672c7c77572ebae0b731892d0 -Author: Behdad Esfahbod -Date: Wed Aug 19 13:20:31 2015 +0100 - - [uniscribe] Fix font scale handling - - By default shape at upem (or ppem), and scale results. - Similar to work done in CoreText backend, but using upem as default. - - src/hb-uniscribe.cc | 25 +++++++++++++++++++------ - 1 file changed, 19 insertions(+), 6 deletions(-) - -commit 902e74a098dad8c3b487856284f9fdf99b04f9f1 -Author: Behdad Esfahbod -Date: Tue Aug 18 18:55:03 2015 +0100 - - Commented-out code to print buffer before each lookup - - To be turned into a useful HB_DEBUG_SHAPE infrastructure... - - src/hb-ot-layout.cc | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -commit 75504a50488a6aac0b9789f728fb5b87e641d4c3 -Author: Behdad Esfahbod -Date: Tue Aug 18 18:47:02 2015 +0100 - - Allow serializing buffer with output-buffer being used - - Ie, don't call get_positions() if positions are not - requested for serialization. - - src/hb-buffer-serialize.cc | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -commit e47b772a56af44a9a4f9ec907ee2091b725b94c1 -Author: Behdad Esfahbod -Date: Tue Aug 18 18:42:47 2015 +0100 - - [ot] Change buffer content type right after we map to glyphs - - Needed for upcoming debug output changes. - - src/hb-ot-shape.cc | 2 ++ - 1 file changed, 2 insertions(+) - -commit d104415e4c1e0f9140f794cd8d09c6460c63e966 -Author: Behdad Esfahbod -Date: Tue Aug 18 17:33:34 2015 +0100 - - [Android.mk] Update for SEA removal and USE addition - - Android.mk | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -commit ddd6bf12f1cabaa298feed820313483b9893528c -Author: Behdad Esfahbod -Date: Tue Aug 18 15:55:09 2015 +0100 - - Don't declare dependency on freetype in harfbuzz.pc - - See comments. - - src/Makefile.am | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -commit 2c8b3b2e5312c9858584f568b1528c57e5bb8a10 -Author: Behdad Esfahbod -Date: Tue Aug 18 14:36:43 2015 +0100 - - [debug] Print lookup index in debug-apply output - - src/hb-ot-layout-gpos-table.hh | 5 ++++- - src/hb-ot-layout-gsub-table.hh | 5 ++++- - src/hb-ot-layout-gsubgpos-private.hh | 7 +++++-- - src/hb-ot-layout.cc | 3 ++- - 4 files changed, 15 insertions(+), 5 deletions(-) - -commit 50ad7788eeb7160caef4ec78e65c7c630e601b06 -Author: Behdad Esfahbod -Date: Tue Aug 18 10:22:16 2015 +0100 - - [coretext] Remove assert that kicks in on Mac OS 10.6 - - http://crbug.com/419769 - - src/hb-coretext.cc | 18 ++++++++++++++---- - 1 file changed, 14 insertions(+), 4 deletions(-) - -commit 2b646fa07f5f9d4d10d563a91d22a2750b5fc771 -Author: Behdad Esfahbod -Date: Mon Aug 17 16:03:28 2015 +0200 - - Remove unused function - - src/hb-ot-shape-complex-use.cc | 8 -------- - 1 file changed, 8 deletions(-) - -commit 23237b0279a04407addf33f599c45faa60f002ca -Author: ThePhD -Date: Fri Aug 14 01:19:08 2015 -0400 - - Last apparent boolean fix! - - src/hb-ot-shape-complex-use.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 5c99cf93d6242803bddcac2ca8300fdec7e0f8a7 -Merge: 8ad89f0 539a610 -Author: ThePhD -Date: Fri Aug 14 01:02:00 2015 -0400 - - Merge branch 'master' into vc++-fixes - -commit 539a610e2e72375e598ab29fd390ed9ec93816d5 -Author: Behdad Esfahbod -Date: Tue Aug 11 12:58:49 2015 +0200 - - Add Libs.private and Requires.private to harfbuzz.pc - - Fixes https://bugs.freedesktop.org/show_bug.cgi?id=64501 - - configure.ac | 12 +++++++++--- - src/Makefile.am | 15 ++++++++++++--- - src/harfbuzz.pc.in | 2 ++ - 3 files changed, 23 insertions(+), 6 deletions(-) - -commit c7dfe316f8c0fc04b7976fca5e58eb46d91b4821 -Author: jfkthame -Date: Fri Aug 7 17:55:03 2015 +0100 - - Don't rely on .cluster in _hb_ot_shape_normalize() - - Fixes https://github.com/behdad/harfbuzz/pull/124 - - src/hb-ot-shape-normalize.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 9099e48e29fe5cfdf8566c8f1ba6ddc8c0799e7e -Author: jfkthame -Date: Fri Aug 7 17:51:28 2015 +0100 - - Don't rely on .cluster field in fallback_position - - Fixes tests/cluster. - - Fixes https://github.com/behdad/harfbuzz/pull/123 - - src/hb-ot-shape-fallback.cc | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -commit f3792342f670978cdc3f8512fb5e80314ca0678d -Author: Behdad Esfahbod -Date: Sat Aug 8 18:02:18 2015 +0200 - - [tests] Add test for fallback positioning with cluster_level > 0 - - For https://github.com/behdad/harfbuzz/pull/123 - Currently fails. Fix coming. - - test/shaping/Makefile.am | 1 + - .../sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf | Bin 0 -> - 824 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/cluster.tests | 1 + - 5 files changed, 4 insertions(+) - -commit bd22a5cfae24b3b9253bccaeb139e698e74cd0c3 -Author: Behdad Esfahbod -Date: Fri Aug 7 11:13:27 2015 +0200 - - Bug 91559 - HarfBuzz 1.0.1: Inconsistent DLL files - specified/created... - - Fixes https://bugs.freedesktop.org/show_bug.cgi?id=91559 - - src/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 02d6439f420d959183dd446abd0b0118ee1ee061 -Merge: 9002c27 160f635 -Author: Behdad Esfahbod -Date: Mon Aug 3 22:47:18 2015 +0300 - - Merge pull request #122 from RomainNaour/static-fix - - fix static linking with icu-uc - -commit 160f635523d596f61e292776f638d4eb09673463 -Author: Romain Naour -Date: Wed Jul 22 23:26:23 2015 +0200 - - fix static linking with icu-uc - - When linking test-unicode statically it needs $(ICU_LIBS) - which contains all required flags. - Especially -lstdc++. - - Fixes: - http://autobuild.buildroot.net/results/210/2107f9dfb39eeb6559fb4271c7af8b39aef521ca/ - - Signed-off-by: Romain Naour - - test/api/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 9002c27b2f54bb5135db92045c0d770b47317577 -Author: Behdad Esfahbod -Date: Mon Jul 27 12:17:54 2015 +0200 - - 1.0.1 - - NEWS | 9 ++++++++- - configure.ac | 2 +- - 2 files changed, 9 insertions(+), 2 deletions(-) - -commit f1c20e1ba5bf218df7dc3e198bdcf1f449fc9387 -Author: Behdad Esfahbod -Date: Mon Jul 27 12:16:02 2015 +0200 - - [USE] Fix out-of-bounds static array access - - src/hb-ot-shape-complex-use.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 260442346a5756c3538ee8fcbf157d1cddcf6f36 -Author: Behdad Esfahbod -Date: Sun Jul 26 23:39:10 2015 +0200 - - 1.0.0 - - NEWS | 10 ++++++++++ - configure.ac | 4 ++-- - src/Makefile.am | 2 +- - 3 files changed, 13 insertions(+), 3 deletions(-) - -commit df6cb84449a473d540821e41fb5007b59644780f -Merge: 2ed6be6 786ba45 -Author: Behdad Esfahbod -Date: Sun Jul 26 19:40:55 2015 +0200 - - Merge branch 'use' - -commit 2ed6be66703e6cc67f3a3746e197001dad3d9b74 -Author: Behdad Esfahbod -Date: Sun Jul 26 19:29:53 2015 +0200 - - 0.9.42 - - NEWS | 12 ++++++++++++ - configure.ac | 2 +- - 2 files changed, 13 insertions(+), 1 deletion(-) - -commit 23e56e088a721863cfdef4f027fb66eecbd77457 -Author: Behdad Esfahbod -Date: Sat Jul 25 17:36:46 2015 +0200 - - Fix broken sentence - - src/hb-set-private.hh | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -commit 91a2e5d2878a8c0b4d4500e3d52d4fbaaf1ac0d7 -Author: Grigori Goronzy -Date: Wed Jul 8 23:28:11 2015 +0200 - - Update UCDN to upstream commit 8af93f30 - - This adds support for Unicode 8.0 and fixes a bug with wrong - properties - for ranges of codepoints. - - src/hb-ucdn.cc | 6 + - src/hb-ucdn/ucdn.h | 6 + - src/hb-ucdn/unicodedata_db.h | 2167 - +++++++++++++++++++++--------------------- - 3 files changed, 1118 insertions(+), 1061 deletions(-) - -commit 786ba45847127b9cd4d9c0c01ae0e6c61f3a8e06 -Author: Behdad Esfahbod -Date: Thu Jul 23 13:04:34 2015 +0100 - - [test] Encode Kharoshti text - - Ouch! - - .../in-tree/shaper-use/script-kharoshti/misc.txt | 72 - +++++++++++----------- - 1 file changed, 36 insertions(+), 36 deletions(-) - -commit b4231255032e243153a6f32cf8c93c158cb0bf6a -Author: Behdad Esfahbod -Date: Thu Jul 23 13:01:55 2015 +0100 - - [test] Add Batak and Buginese test texts - - test/shaping/texts/in-tree/shaper-use/MANIFEST | 2 + - .../texts/in-tree/shaper-use/script-batak/MANIFEST | 1 + - .../texts/in-tree/shaper-use/script-batak/misc.txt | 9 +++ - .../in-tree/shaper-use/script-buginese/MANIFEST | 1 + - .../in-tree/shaper-use/script-buginese/misc.txt | 70 - ++++++++++++++++++++++ - 5 files changed, 83 insertions(+) - -commit b8c159ffccad090974a2b97be0a0140fa09af132 -Author: Behdad Esfahbod -Date: Thu Jul 23 12:59:17 2015 +0100 - - [test] Remove shaper-sea texts under shaper-use - - test/shaping/texts/in-tree/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-sea/MANIFEST | - 2 -- - test/shaping/texts/in-tree/shaper-sea/script-cham/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-sea/script-tai-tham/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-use/MANIFEST | - 2 ++ - .../{shaper-sea/script-cham/misc => shaper-use/script-cham}/MANIFEST - | 0 - .../{shaper-sea/script-cham/misc => shaper-use/script-cham}/misc.txt - | 0 - .../script-tai-tham/misc => shaper-use/script-tai-tham}/MANIFEST - | 0 - .../script-tai-tham/misc => shaper-use/script-tai-tham}/misc.txt - | 0 - .../script-tai-tham/misc => shaper-use/script-tai-tham}/torture.txt - | 0 - 10 files changed, 2 insertions(+), 5 deletions(-) - -commit 67ba7320cc5545baeacfcff64cea338223b9bd6d -Author: Behdad Esfahbod -Date: Thu Jul 23 12:58:21 2015 +0100 - - [test] Remove New Tai Lue texts - - New Tai Lue changed encoding to visual, boring, model. - - test/shaping/texts/in-tree/shaper-sea/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/misc/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/misc/misc.txt | - 1 - - 4 files changed, 4 deletions(-) - -commit c81d957a264539dfe3252f9a94ee066c4a44edf4 -Author: Behdad Esfahbod -Date: Thu Jul 23 12:50:48 2015 +0100 - - [test] Add tests for improved 'vert' feature - - test/shaping/Makefile.am | 1 + - .../sha1sum/191826b9643e3f124d865d617ae609db6a2ce203.ttf | Bin 0 -> - 2140 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/vertical.tests | 1 + - 5 files changed, 4 insertions(+) - -commit 8a6a16dbcb1808c7ed50f9ba320384565bbf405a -Author: Behdad Esfahbod -Date: Thu Jul 23 12:49:09 2015 +0100 - - [test] Add recently added test - - Ouch. - - test/shaping/Makefile.am | 1 + - 1 file changed, 1 insertion(+) - -commit 895fb31c7f0201f13df5a6866b367476bc4aab2e -Author: Behdad Esfahbod -Date: Thu Jul 23 12:14:03 2015 +0100 - - [test] Support additional options to hb-shape in micro-test suite - - test/shaping/record-test.sh | 47 - ++++++++++++++++++---- - test/shaping/run-tests.sh | 9 ++++- - test/shaping/tests/arabic-fallback-shaping.tests | 2 +- - test/shaping/tests/arabic-feature-order.tests | 6 +-- - test/shaping/tests/context-matching.tests | 6 +-- - test/shaping/tests/default-ignorables.tests | 2 +- - test/shaping/tests/hangul-jamo.tests | 4 +- - test/shaping/tests/indic-joiner-candrabindu.tests | 4 +- - test/shaping/tests/indic-old-spec.tests | 4 +- - test/shaping/tests/indic-pref-blocking.tests | 4 +- - .../tests/mongolian-variation-selector.tests | 6 +-- - test/shaping/tests/zero-width-marks.tests | 4 +- - 12 files changed, 67 insertions(+), 31 deletions(-) - -commit 0f98fe88f42471eb8fb28d08d45eca9cd8303f7a -Author: Behdad Esfahbod -Date: Thu Jul 23 11:52:11 2015 +0100 - - [ot] Search globally for 'vert' feature if not found in specified - script/lang - - Fixes https://github.com/behdad/harfbuzz/issues/63 - - src/hb-ot-layout-private.hh | 9 +++++++++ - src/hb-ot-layout.cc | 22 ++++++++++++++++++++++ - src/hb-ot-map-private.hh | 7 ++++--- - src/hb-ot-map.cc | 10 ++++++++++ - src/hb-ot-shape.cc | 6 +++++- - 5 files changed, 50 insertions(+), 4 deletions(-) - -commit f327aacfa107bbef0c823ef9c3b7dfc91316040c -Author: Behdad Esfahbod -Date: Thu Jul 23 11:32:59 2015 +0100 - - [ot] Minor - - src/hb-ot-shape.cc | 11 +++-------- - 1 file changed, 3 insertions(+), 8 deletions(-) - -commit d78463c8016ff1852233479a1ebde30c3bb6de6e -Author: Behdad Esfahbod -Date: Thu Jul 23 10:11:35 2015 +0100 - - Minor debug output fix - - src/hb-ot-layout.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit d99f50bde0e8be0866385ca6886938d2023dbd4f -Author: Behdad Esfahbod -Date: Thu Jul 23 10:08:48 2015 +0100 - - Add missing TRACE_RETURN - - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 2dc8e3f470d7c0b579f867605b8bf40688bc5722 -Author: Behdad Esfahbod -Date: Thu Jul 23 10:07:21 2015 +0100 - - [ot] Add missing return! - - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 582069172c39326c7f94373793c656439a4c2b59 -Author: Behdad Esfahbod -Date: Wed Jul 22 18:44:59 2015 +0100 - - Add test case for deleting default ignorables with positioning - - .../sha1sum/051d92f8bc6ff724511b296c27623f824de256e9.ttf | Bin 0 -> - 2028 bytes - test/shaping/fonts/sha1sum/MANIFEST | 1 + - test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/default-ignorables.tests | 1 + - 4 files changed, 3 insertions(+) - -commit 8cfbc304ee563ec96e402beed34b10b6c0950a6a -Author: Behdad Esfahbod -Date: Wed Jul 22 18:41:10 2015 +0100 - - Fix hide-default-ignorables after - f0010dfd01ef4a927b0bdc175dd4e343a8637174 - - We can't delete things before hb_ot_layout_position_finish(). So, - just zero the advance before it, and remove later. - - src/hb-ot-shape.cc | 25 +++++++++++++++++++------ - 1 file changed, 19 insertions(+), 6 deletions(-) - -commit 2dbd3d29d6548bd96fd976606ed689fac8ad8817 -Author: Behdad Esfahbod -Date: Wed Jul 22 18:28:39 2015 +0100 - - Fix hide-ignorables if font doesn't have space glyph - - Was broken by 82b521aeb7cc73879b44ca4278d6fa8b4347527f, as we have - positioning data by then and can't use the output buffer. Ouch! - - src/hb-buffer-private.hh | 18 ------------------ - src/hb-ot-shape.cc | 44 - +++++++++++++++++++++++++++++++++++--------- - 2 files changed, 35 insertions(+), 27 deletions(-) - -commit 4ba796b26ee62de0d2830a550f3aa3b4aecf6f59 -Author: Behdad Esfahbod -Date: Wed Jul 22 17:41:31 2015 +0100 - - Refactor _hb_glyph_info_is_default_ignorable() - - src/hb-ot-layout-gsubgpos-private.hh | 3 +-- - src/hb-ot-layout-private.hh | 4 +++- - src/hb-ot-shape.cc | 9 +++------ - 3 files changed, 7 insertions(+), 9 deletions(-) - -commit f0010dfd01ef4a927b0bdc175dd4e343a8637174 -Author: Behdad Esfahbod -Date: Wed Jul 22 17:36:23 2015 +0100 - - [ot] Hide default-ignorables before finishing off positioning - - For example, fixes the following sequence with Arial XP: - 628 25cc 651 25cc 64e 3a 20 628 651 34f 64e - 628 25cc 64e 25cc 651 3a 20 628 64e 34f 651 - - Discovered as part of: - https://bugs.freedesktop.org/show_bug.cgi?id=85873 - - src/hb-ot-shape.cc | 125 - +++++++++++++++++++++++++++-------------------------- - 1 file changed, 63 insertions(+), 62 deletions(-) - -commit 376d587f36b4ff10342ee6ca3bacd73532ea44c8 -Author: Behdad Esfahbod -Date: Wed Jul 22 16:51:12 2015 +0100 - - Implement more granular cluster-merging - - TODO: Documentation. - - Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71445 - - NEWS | 8 +++++++ - src/hb-buffer-private.hh | 1 + - src/hb-buffer.cc | 46 - ++++++++++++++++++++++++++++++++++----- - src/hb-buffer.h | 12 ++++++++++ - src/hb-ot-shape-complex-hangul.cc | 13 +++++------ - src/hb-ot-shape.cc | 7 ++++++ - util/options.cc | 1 + - util/options.hh | 3 +++ - 8 files changed, 77 insertions(+), 14 deletions(-) - -commit a60e2cfa395718cde48eb81f43adc27b4a92e117 -Author: Behdad Esfahbod -Date: Wed Jul 22 15:49:08 2015 +0100 - - [ot] Don't rely on cluster numbers for ensure_native_direction() - - src/hb-ot-shape.cc | 19 ++++++++++++++++++- - 1 file changed, 18 insertions(+), 1 deletion(-) - -commit 701112dad9f6e690b253f1e64f4e7e549f5ae65f -Author: Behdad Esfahbod -Date: Wed Jul 22 15:42:20 2015 +0100 - - [ot] Simplify form_clusters() - - src/hb-buffer-private.hh | 9 ++++++++- - src/hb-buffer.cc | 7 ++----- - src/hb-ot-shape.cc | 11 +++++++++-- - 3 files changed, 19 insertions(+), 8 deletions(-) - -commit 7b8b63adc5e0389fc4cf2720ef7e5804ab6c29cc -Author: Behdad Esfahbod -Date: Wed Jul 22 15:24:26 2015 +0100 - - [ot] Don't mirror character if font doesn't support mirrored - character! - - src/hb-ot-shape.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 97d7c3a100e2673279f066540229d229aaf0df78 -Author: Behdad Esfahbod -Date: Wed Jul 22 14:28:25 2015 +0100 - - [graphite2] Fix bunch of stuff - - Based on patch from Martin Hosken, with review from Jonathan and I. - - src/hb-graphite2.cc | 82 - +++++++++++++++++++++++++++++++++++------------------ - 1 file changed, 54 insertions(+), 28 deletions(-) - -commit ea7f8414e34d4b5efc7b98974637c08f75440f0e -Author: Behdad Esfahbod -Date: Wed Jul 22 13:53:45 2015 +0100 - - [graphite2] Enlarge buffer for output glyphs! - - src/hb-graphite2.cc | 1 + - 1 file changed, 1 insertion(+) - -commit 9cd59db1af47ff511edf251949d58b82673cf704 -Author: Behdad Esfahbod -Date: Wed Jul 22 13:27:06 2015 +0100 - - [USE] Implement topographical features for non-Arabic-joining scripts - - This works per-syllable as per the spec, but we think it should be per - spacing/base/??? glyph instead. - - src/hb-ot-shape-complex-use.cc | 87 - ++++++++++++++++++++++++++++++++++++++---- - 1 file changed, 80 insertions(+), 7 deletions(-) - -commit ecb0b24ef3f8177e7c789f45a2e858bd67e31be3 -Author: Behdad Esfahbod -Date: Wed Jul 22 12:02:09 2015 +0100 - - Use foreach_cluster in Indic shaper - - src/hb-ot-shape-complex-indic.cc | 90 - +++++++++------------------------------- - 1 file changed, 19 insertions(+), 71 deletions(-) - -commit 56f71ff98890fc4fd13e8d9743dc34c4b9407309 -Author: Behdad Esfahbod -Date: Wed Jul 22 11:58:11 2015 +0100 - - Use foreach_syllable in Myanmar shaper - - src/hb-ot-shape-complex-myanmar.cc | 62 - ++++++++------------------------------ - 1 file changed, 12 insertions(+), 50 deletions(-) - -commit ac596511a8c9eeaeb455ca16b5b9c5f1b9923b3a -Author: Behdad Esfahbod -Date: Wed Jul 22 11:54:02 2015 +0100 - - Add foreach_syllable - - Use it in USE. - - src/hb-ot-layout-private.hh | 24 ++++++++ - src/hb-ot-shape-complex-use.cc | 129 - +++++++++++++---------------------------- - 2 files changed, 64 insertions(+), 89 deletions(-) - -commit 8ba9e689680f7685c04cfe7c6019222bdf0c52b0 -Author: Behdad Esfahbod -Date: Wed Jul 22 11:16:01 2015 +0100 - - [USE] Do Arabic-like shaping - - src/hb-ot-shape-complex-use.cc | 77 - ++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 75 insertions(+), 2 deletions(-) - -commit 9daf2dfb6bd5683fd951bdf166c8b87938257e52 -Author: Behdad Esfahbod -Date: Wed Jul 22 10:32:30 2015 +0100 - - Add hb-ot-shape-complex-arabic-private.hh - - src/Makefile.am | 1 + - src/hb-ot-shape-complex-arabic-private.hh | 50 - +++++++++++++++++++++++++++++++ - src/hb-ot-shape-complex-arabic.cc | 37 +++++++++++++---------- - 3 files changed, 73 insertions(+), 15 deletions(-) - -commit a51a661fe1dcfdd3a274a6be6ad741c68d430c8c -Author: Behdad Esfahbod -Date: Tue Jul 21 18:24:21 2015 +0100 - - [USE] Only reorder the first component of a split left mark - - src/hb-ot-shape-complex-use.cc | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -commit a08a278b15c7e57a1d0a783f2bc877471b9d8229 -Author: Behdad Esfahbod -Date: Tue Jul 21 18:09:40 2015 +0100 - - [USE] Don't compose split matras - - Same logic as in Indic shaper. - - src/hb-ot-shape-complex-use.cc | 15 ++++++++++++++- - 1 file changed, 14 insertions(+), 1 deletion(-) - -commit 21cb08a417f1203523191192d6a342e8cd0ea14c -Author: Behdad Esfahbod -Date: Tue Jul 21 17:47:06 2015 +0100 - - Remove unused SEA shaper - - src/Makefile.am | 4 - - src/hb-ot-shape-complex-sea-machine.rl | 102 --------- - src/hb-ot-shape-complex-sea.cc | 380 - --------------------------------- - 3 files changed, 486 deletions(-) - -commit db1e9cdd41ff7c97c29b4d9b64b2351ed0ef0403 -Author: Behdad Esfahbod -Date: Tue Jul 21 17:46:06 2015 +0100 - - Retire SEA shaper in favor of USE - - src/hb-ot-shape-complex-private.hh | 25 +++---------------------- - 1 file changed, 3 insertions(+), 22 deletions(-) - -commit 87dde9c64753dea4017f11a7734e7528b8eecac0 -Author: Behdad Esfahbod -Date: Tue Jul 21 17:31:43 2015 +0100 - - [USE] Only use USE shaper if script system is not DFLT - - Same logic as Indic and SEA. - - src/hb-ot-shape-complex-private.hh | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -commit 29832d797ff2f3a96721dd44f2f03a83fb2e8dda -Author: Behdad Esfahbod -Date: Tue Jul 21 17:24:18 2015 +0100 - - Route misc untested scripts through USE shaper instead of Indic - - These were never tested with Indic shaper, and indeed wouldn't - work there - because they didn't have their viramas and other config defined. - They are - all also supported by MS through USE, so route them there. - - src/hb-ot-shape-complex-private.hh | 91 - +++++--------------------------------- - 1 file changed, 11 insertions(+), 80 deletions(-) - -commit 40c4a991c7ea18017273ff8993eecc3953869e69 -Author: Behdad Esfahbod -Date: Tue Jul 21 17:14:54 2015 +0100 - - [USE] Implement dotted-circle - - This makes USE feature-complete as far as the Indic-like features - are concerned. - - src/hb-ot-shape-complex-use-machine.rl | 10 ++++++++++ - src/hb-ot-shape-complex-use.cc | 18 +++++++++++++++--- - 2 files changed, 25 insertions(+), 3 deletions(-) - -commit 7ce03ebe7c525919ce22d9094480847ff1b3c2b2 -Author: Behdad Esfahbod -Date: Tue Jul 21 16:55:26 2015 +0100 - - [USE] Move pref - - src/hb-ot-shape-complex-use-machine.rl | 9 +++++---- - src/hb-ot-shape-complex-use-private.hh | 9 +++++---- - src/hb-ot-shape-complex-use.cc | 24 ++++++++++++++++++++++-- - 3 files changed, 32 insertions(+), 10 deletions(-) - -commit 2d4b62ead931b13f95f5dc0e5b740d997a8d1a8e -Author: Behdad Esfahbod -Date: Tue Jul 21 16:46:37 2015 +0100 - - [USE] Fix-up variation selectors and word joiner in table - - src/gen-use-table.py | 7 ++++++- - src/hb-ot-shape-complex-use-table.cc | 34 - +++++++++++++++++++++++----------- - 2 files changed, 29 insertions(+), 12 deletions(-) - -commit ad7178227f16abc17456f122deac1508031cbbc3 -Author: Behdad Esfahbod -Date: Tue Jul 21 16:43:27 2015 +0100 - - [USE] Use a couple warnings - - src/gen-use-table.py | 20 ++++----- - src/hb-ot-shape-complex-use-table.cc | 82 - ++++++++++++++++++------------------ - 2 files changed, 51 insertions(+), 51 deletions(-) - -commit a85c4da9b1750c2f994f9f85226a3e755fafe50b -Author: Behdad Esfahbod -Date: Tue Jul 21 16:07:10 2015 +0100 - - [USE] Move rphf - - src/hb-ot-shape-complex-use.cc | 105 - ++++++++++++++--------------------------- - 1 file changed, 35 insertions(+), 70 deletions(-) - -commit 5b5617e0664e59770910d04d15175f643a5ffb73 -Author: Behdad Esfahbod -Date: Tue Jul 21 15:52:15 2015 +0100 - - Add FLAG_UNSAFE() - - Unused right now. - - src/hb-private.hh | 1 + - 1 file changed, 1 insertion(+) - -commit f8160a495966c790b79134a9f9382b6545f8c733 -Author: Behdad Esfahbod -Date: Tue Jul 21 15:50:02 2015 +0100 - - Add FLAG_SAFE() for values known to be small-enough - - And add check to FLAG() - - src/hb-ot-shape-complex-arabic.cc | 2 +- - src/hb-ot-shape-complex-indic.cc | 12 ++++++------ - src/hb-ot-shape-complex-myanmar.cc | 2 +- - src/hb-private.hh | 5 +++-- - src/hb-unicode-private.hh | 2 +- - 5 files changed, 12 insertions(+), 11 deletions(-) - -commit 366aeaad006b230481a3c08ab4d239fb6b64fef8 -Author: Behdad Esfahbod -Date: Tue Jul 21 15:45:48 2015 +0100 - - Add note re ASSERT_STATIC_EXPR_ZERO() - - src/hb-private.hh | 2 ++ - 1 file changed, 2 insertions(+) - -commit d6adca9fbbbd6fc7c8906121b50c3930fbe2de8e -Author: Behdad Esfahbod -Date: Tue Jul 21 15:17:27 2015 +0100 - - Remove unused macro ASSERT_STATIC_EXPR() - - src/hb-ot-shape-complex-arabic-win1256.hh | 4 ++-- - src/hb-ot-shape-complex-indic-private.hh | 2 -- - src/hb-private.hh | 1 - - 3 files changed, 2 insertions(+), 5 deletions(-) - -commit 1025e1a9e7785ac67cc90d05b02862e38b3e6026 -Author: Behdad Esfahbod -Date: Tue Jul 21 15:05:35 2015 +0100 - - Use unsigned in FLAG() - - src/hb-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit cf59c7589c2b4064f4b9f4936115f830089a8ee7 -Author: Behdad Esfahbod -Date: Tue Jul 21 14:51:45 2015 +0100 - - [USE] Use use_category() for rphf/pref memory - - src/hb-ot-shape-complex-use.cc | 63 - +++++++++++++++--------------------------- - 1 file changed, 22 insertions(+), 41 deletions(-) - -commit 595936ec25e9c0924851bd1aa1af5eed3723b54f -Author: Behdad Esfahbod -Date: Tue Jul 21 14:15:35 2015 +0100 - - [USE] Hook of rphf and pref custom processing - - Still no reordering. - - src/hb-ot-layout-private.hh | 8 ++ - src/hb-ot-shape-complex-use.cc | 181 - +++++++++++++++++++++++++++++++++++++++-- - 2 files changed, 181 insertions(+), 8 deletions(-) - -commit ba72801325e4bd58f7597938d4409762c9fa530c -Author: Behdad Esfahbod -Date: Tue Jul 21 11:57:23 2015 +0100 - - [USE] Add CGJ to table - - src/gen-use-table.py | 13 ++++++++++--- - src/hb-ot-shape-complex-use-table.cc | 1 + - 2 files changed, 11 insertions(+), 3 deletions(-) - -commit 4febed61edc5367543e5a206ae01d3393841b612 -Author: Behdad Esfahbod -Date: Tue Jul 21 10:24:32 2015 +0100 - - [USE] Set up features - - src/hb-ot-shape-complex-use.cc | 68 - +++++++++++++++++++++++------------------- - 1 file changed, 38 insertions(+), 30 deletions(-) - -commit 52a957795697085a5d379921ddd8aa6cf2f1a99d -Author: Behdad Esfahbod -Date: Tue Jul 21 10:02:04 2015 +0100 - - [USE] Hook up new scripts to USE shaper - - Don't reroute scripts that we were routing to other shapers - before (just yet). - - src/hb-ot-shape-complex-private.hh | 71 - ++++++++++++++++++++++++++++++++++++++ - 1 file changed, 71 insertions(+) - -commit b4c0829bc18b696f140a260fa2e1089d10164519 -Author: Behdad Esfahbod -Date: Tue Jul 21 09:31:19 2015 +0100 - - [USE] Remove unused Unicode data enums from USE C++ side - - src/hb-ot-shape-complex-use-private.hh | 66 - +--------------------------------- - src/hb-ot-shape-complex-use.cc | 14 ++------ - 2 files changed, 3 insertions(+), 77 deletions(-) - -commit 44910cef626e6d03baa4d89d8fbe2c088971902d -Author: Behdad Esfahbod -Date: Mon Jul 20 18:01:10 2015 +0100 - - [USE] Finish converting Unicode positional categories to USE - - Even compiles. - - src/gen-use-table.py | 114 +++++- - src/hb-ot-shape-complex-use-table.cc | 702 - ++++++++++++++++++----------------- - 2 files changed, 467 insertions(+), 349 deletions(-) - -commit ad725552521273a1f571f04bc96a04221c3e067a -Author: Behdad Esfahbod -Date: Mon Jul 20 17:00:06 2015 +0100 - - [USE] Map from Unicode data to USE syllabic categories - - Positional sub-categories not applied yet. - - src/gen-use-table.py | 128 ++-- - src/hb-ot-shape-complex-use-table.cc | 1062 - ++++++++++++---------------------- - 2 files changed, 409 insertions(+), 781 deletions(-) - -commit 20e246e674155d5fb6527722fc3ef3accf2413df -Author: Behdad Esfahbod -Date: Mon Jul 20 15:56:19 2015 +0100 - - [USE] Start moving Unicode-to-USE mapping into Python code - - src/Makefile.am | 2 +- - src/gen-use-table.py | 176 - +++++++++++++++++++++++++++++++++-- - src/hb-ot-shape-complex-use-table.cc | 3 +- - 3 files changed, 169 insertions(+), 12 deletions(-) - -commit eb74535cc2c0d0de41e54e75bdc71825ec969523 -Author: Behdad Esfahbod -Date: Mon Jul 20 15:33:25 2015 +0100 - - [USE] Fix Number clusters - - The spec wrongly has "H" where "HN" is meant. - - src/hb-ot-shape-complex-use-machine.rl | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit a9663958fe861950b6f389b389f146232b2cd909 -Author: Behdad Esfahbod -Date: Mon Jul 20 14:24:55 2015 +0100 - - [USE] Start putting together the shaper body - - src/hb-ot-shape-complex-use-private.hh | 2 +- - src/hb-ot-shape-complex-use.cc | 339 - +++++++++++++++++++++++++++++++++ - 2 files changed, 340 insertions(+), 1 deletion(-) - -commit e0eabd7f67462ac34fbfc749d897be478fbd1224 -Author: Behdad Esfahbod -Date: Mon Jul 20 13:30:51 2015 +0100 - - [USE] Put a Ragel machine together - - Grammar from the spec! - - src/hb-ot-shape-complex-use-machine.rl | 169 - +++++++++++++++++++++++++++++++++ - src/hb-ot-shape-complex-use-private.hh | 160 - +++++++++++++++++++++++++++++++ - 2 files changed, 329 insertions(+) - -commit fd74b939b176f47d34d34b3d33e2a09d255c2d9e -Author: Behdad Esfahbod -Date: Mon Jul 20 13:30:45 2015 +0100 - - Minor - - src/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 5e5c8560cca3cb9c6be90c7c18ecb77d5cca0c0f -Author: Behdad Esfahbod -Date: Mon Jul 20 12:01:20 2015 +0100 - - [USE] Minor optimization of USE table - - src/gen-use-table.py | 2 +- - src/hb-ot-shape-complex-use-table.cc | 30 ++++++++++++------------------ - 2 files changed, 13 insertions(+), 19 deletions(-) - -commit 14b12f92a9ef7db57c5252ef0442239319ce4bca -Author: Behdad Esfahbod -Date: Mon Jul 20 11:57:44 2015 +0100 - - [USE] Add Kharoshti test data from Unicode proposal - - test/shaping/texts/in-tree/MANIFEST | 1 + - test/shaping/texts/in-tree/shaper-use/MANIFEST | 1 + - .../in-tree/shaper-use/script-kharoshti/MANIFEST | 1 + - .../in-tree/shaper-use/script-kharoshti/misc.txt | 36 - ++++++++++++++++++++++ - 4 files changed, 39 insertions(+) - -commit c48ff288522f33dc6c78520de0a0a74306630895 -Author: Behdad Esfahbod -Date: Mon Jul 20 11:46:17 2015 +0100 - - [USE] Build Universal Shaping Engine data table from Unicode 8 files - - src/gen-use-table.py | 35 +- - src/hb-ot-shape-complex-use-table.cc | 1016 - ++++++++++++++++++++++++++++++++++ - 2 files changed, 1032 insertions(+), 19 deletions(-) - -commit e2c95116e1423f83a692d6170553d0cc95733d24 -Author: Behdad Esfahbod -Date: Mon Jul 20 11:32:48 2015 +0100 - - [USE] Add Universal Shaping Engine to Makefile - - src/Makefile.am | 23 +++- - src/gen-use-table.py | 237 - +++++++++++++++++++++++++++++++++ - src/hb-ot-shape-complex-use-machine.rl | 0 - src/hb-ot-shape-complex-use-private.hh | 0 - src/hb-ot-shape-complex-use-table.cc | 0 - src/hb-ot-shape-complex-use.cc | 0 - 6 files changed, 254 insertions(+), 6 deletions(-) - -commit 41a29af8053782e3a9c6a96a394bd76ef6d42099 -Author: Behdad Esfahbod -Date: Wed Jul 15 01:39:57 2015 +0100 - - Update Arabic shaping table for Unicode 8.0 - - src/hb-ot-shape-complex-arabic-table.hh | 26 +++++++++++++------------- - 1 file changed, 13 insertions(+), 13 deletions(-) - -commit 64a2726e2c6efce4379a7609024ec21eb4b5e4dc -Author: Behdad Esfahbod -Date: Wed Jul 15 01:36:39 2015 +0100 - - Add Unicode 8.0 scripts - - Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1183209 - - src/hb-common.cc | 3 +++ - src/hb-common.h | 7 +++++++ - 2 files changed, 10 insertions(+) - -commit 9ae156b76820d9079bae062e7e38c34a386d9bd2 -Author: Behdad Esfahbod -Date: Sun Jul 5 22:43:17 2015 +0100 - - Fix pragma usage - - https://bugs.freedesktop.org/show_bug.cgi?id=91228 - - Commit cdcdfe61b97a0a48ccf834b6d924d187da9609be changed two `#pragma - message` to `#pragma error` in hb-unicode.cc, however MSVC uses - #error, - just like the #else branch. `#pragma error` is an unknown pragma so - MSVC does not fail the build because of it, which I believe was the - intention of that commit. - - If it's meant to be an #error, then the #ifdef for _MSC_VER can be - removed entirely. - - src/hb-unicode.cc | 5 ----- - src/hb-warning.cc | 10 ---------- - 2 files changed, 15 deletions(-) - -commit 8ad89f057d737ccbc6f411e9ebcf11b8130a50bb -Author: ThePhD -Date: Tue Jun 23 09:09:24 2015 -0400 - - Spelling words is not my strong point. - - src/hb-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit e0a828ecbd708757d67977f7e92a6f4c1b0b92fd -Author: ThePhD -Date: Tue Jun 23 09:07:17 2015 -0400 - - Back to using regular `strdup`, with an `hb-private.hh` fix that - special-cases VC++'s - definition and usage of the words - - src/hb-common.cc | 2 +- - src/hb-private.hh | 3 +++ - 2 files changed, 4 insertions(+), 1 deletion(-) - -commit 8e545d59610211261e684c10158b9e5df6fae24d -Author: ThePhD -Date: Mon Jun 22 22:29:04 2015 -0400 - - Fix all VC++ warnings and errors in the current commit's builds. - - src/hb-common.cc | 4 ++-- - src/hb-fallback-shape.cc | 2 +- - src/hb-ot-layout.cc | 2 +- - src/hb-ot-map.cc | 2 +- - src/hb-ot-shape-complex-hangul.cc | 2 +- - src/hb-ot-shape-complex-hebrew.cc | 2 +- - src/hb-ot-shape-complex-indic.cc | 4 ++-- - src/hb-ot-shape-normalize.cc | 6 +++--- - src/hb-ot-shape.cc | 2 +- - 9 files changed, 13 insertions(+), 13 deletions(-) - -commit 5f13bbd9d4b0970851626e2ce3cf4ecb3cfde801 -Author: Behdad Esfahbod -Date: Fri Jun 19 13:31:49 2015 -0700 - - When removing default-ignorables, merge clusters - - Fixes test-shape, and: - https://code.google.com/p/chromium/issues/detail?id=497578 - - src/hb-buffer-private.hh | 2 ++ - src/hb-buffer.cc | 36 ++++++++++++++++++++++++++++++++++-- - src/hb-ot-shape.cc | 2 +- - 3 files changed, 37 insertions(+), 3 deletions(-) - -commit 82b521aeb7cc73879b44ca4278d6fa8b4347527f -Author: Behdad Esfahbod -Date: Fri Jun 19 11:57:57 2015 -0700 - - Rewrite hide_default_ignorables - - Separate the loops for the two cases of replacing with space - and deleting. For deleting, use the out-buffer machinery. - - Needed for upcoming cluster merge fix. - - src/hb-buffer-private.hh | 18 ++++++++++++++ - src/hb-ot-shape.cc | 65 - +++++++++++++++++++++++++++++------------------- - 2 files changed, 57 insertions(+), 26 deletions(-) - -commit b3a2f6afbac1956b65f29a17b9dc896e86135329 -Author: Behdad Esfahbod -Date: Thu Jun 18 17:15:33 2015 -0700 - - [test] Add test for cluster merging - - Based on test from - https://code.google.com/p/chromium/issues/detail?id=497578 - - Currently fails. Basically, if there's a default_ignorable at the - start of text, and font has no space glyph, we remove the - default_ignorable, - and that makes the first char in text to correspond to no cluster. - - Fix coming. - - test/api/test-shape.c | 43 +++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 43 insertions(+) - -commit a6446d44e6d04e1eeea994682e29f9cb6265f7f6 -Author: Behdad Esfahbod -Date: Thu Jun 18 11:14:56 2015 -0700 - - 0.9.41 - - NEWS | 10 ++++++++++ - configure.ac | 2 +- - 2 files changed, 11 insertions(+), 1 deletion(-) - -commit cd042fc8c4a3984c3647cd22a27c34f00636f6e8 -Author: Behdad Esfahbod -Date: Thu Jun 18 10:55:13 2015 -0700 - - [util] Disable hb-fc-list for now - - Until I figure out what to do about the API, and finalize - the tool. - - util/Makefile.am | 28 ++++++++++++++-------------- - 1 file changed, 14 insertions(+), 14 deletions(-) - -commit 351f68f4e01a107f62e4eb3458d7c7ae379939fb -Author: Behdad Esfahbod -Date: Fri Jun 12 17:46:06 2015 -0700 - - [bindings] Fix hb_language_get_default() and hb_ot_tag_to_language() - - Part of https://github.com/behdad/harfbuzz/issues/91 - - src/hb-common.cc | 2 +- - src/hb-ot-tag.cc | 9 +++++++++ - 2 files changed, 10 insertions(+), 1 deletion(-) - -commit f0c80060763475aa34a18ecbef600b6811855cb6 -Author: Behdad Esfahbod -Date: Fri Jun 12 17:37:41 2015 -0700 - - [TravisCI] Hook up Coverity - - First try... - - .travis.yml | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -commit 8ac446908ca75bea989414a0f551a6da8885bf52 -Author: Behdad Esfahbod -Date: Fri Jun 12 17:29:05 2015 -0700 - - Add Coverity Scan badge - - README | 1 + - 1 file changed, 1 insertion(+) - -commit a5e4f6d6088f6ed37fb1d68d3682b8eb4c9b46fe -Author: Behdad Esfahbod -Date: Wed Jun 10 10:57:46 2015 -0700 - - Fix warnings: "member call on null pointer of type" - - https://bugzilla.mozilla.org/show_bug.cgi?id=1167119 - - src/hb-private.hh | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit 16dac7eccf04bb357e95a8e4c18c8418dcfb4030 -Author: Behdad Esfahbod -Date: Wed Jun 3 12:07:46 2015 -0700 - - Fix build - - util/options.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 8dacb7f8b46c70f22b70c78e0a8efc3309137650 -Author: Behdad Esfahbod -Date: Wed Jun 3 11:53:42 2015 -0700 - - Add include check to hb-ot-font.h - - src/hb-ot-font.h | 4 ++++ - 1 file changed, 4 insertions(+) - -commit 37c8daf724add4a41a06385e571277d137dc2a2f -Merge: f1b4430 01c3a88 -Author: Behdad Esfahbod -Date: Mon Jun 1 13:27:37 2015 -0700 - - Merge pull request #111 from brawer/since - - Fix "Since:" tags - -commit 01c3a88543850c87483fd8671044df53b368c520 -Author: Sascha Brawer -Date: Mon Jun 1 13:22:01 2015 +0200 - - Fix "Since:" tags - - Based on data from http://upstream-tracker.org/versions/harfbuzz.html - Resolves #103 - - src/hb-buffer.cc | 32 +++++++++++++++++------------ - src/hb-common.cc | 4 ++-- - src/hb-face.cc | 12 +++++------ - src/hb-font.cc | 14 ++++++------- - src/hb-font.h | 4 ++-- - src/hb-ft.cc | 4 ++-- - src/hb-glib.cc | 3 +++ - src/hb-gobject-structs.h | 18 +++++++++++++++++ - src/hb-ot-font.cc | 3 +++ - src/hb-ot-layout.cc | 30 ++++++++++++++++++++++++++++ - src/hb-ot-shape.cc | 6 ++++++ - src/hb-set.cc | 52 - ++++++++++++++++++++++++------------------------ - src/hb-shape-plan.cc | 18 ++++++++--------- - src/hb-shape.cc | 8 ++++---- - src/hb-unicode.cc | 6 +++--- - src/hb-unicode.h | 31 ++++++++++++++++++++++++++--- - 16 files changed, 168 insertions(+), 77 deletions(-) - -commit f1b44303df0712b433e35e1e1e75115c353b279e -Author: Behdad Esfahbod -Date: Thu May 21 14:00:15 2015 -0700 - - Fix unary minus operator applied to unsigned int - - Applying unary minus operator to unsigned int causes the following - warning on MSVS: - - warning C4146: unary minus operator applied to unsigned type, - result still unsigned - - Based on patch from Koji Ishi. - - Fixes https://github.com/behdad/harfbuzz/pull/110 - - src/hb-ot-font.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 1ae6cdb365c15405500d4f50ec98016dde23a26b -Author: Behdad Esfahbod -Date: Tue May 19 17:42:30 2015 -0700 - - [gobject] Remove hb_language_t workarounds for g-i shortcomings - - Using latest gobject-introspection, I don't seem to be having this - problem anymore: - - https://bugzilla.gnome.org/show_bug.cgi?id=707656 - - Removing that kludge makes language_t behave more like the way I - expect it - in Python. - - Also fixes: - https://github.com/behdad/harfbuzz/issues/91 - - src/hb-gobject-structs.cc | 1 - - src/hb-gobject-structs.h | 8 -------- - 2 files changed, 9 deletions(-) - -commit ece434fa0fec6754e5164d881c1e967376729eca -Author: Behdad Esfahbod -Date: Tue May 19 17:20:58 2015 -0700 - - [gobject] Macroize value types - - Fixes user_data_t - - src/hb-gobject-structs.cc | 73 - +++++++++++------------------------------------ - 1 file changed, 17 insertions(+), 56 deletions(-) - -commit 9df099b4837df722e738675af318efcc9ac39a78 -Author: Behdad Esfahbod -Date: Mon May 18 18:37:06 2015 -0700 - - [ft] Don't set *glyph in get_glyph() if glyph not found - - src/hb-ft.cc | 16 ++++++++++------ - 1 file changed, 10 insertions(+), 6 deletions(-) - -commit ff0f210519bcb0e44d4b986f7eef2004383cd344 -Author: Behdad Esfahbod -Date: Mon May 18 14:16:28 2015 -0700 - - [util] Minor - - util/ansi-print.cc | 26 +++++++++++++------------- - 1 file changed, 13 insertions(+), 13 deletions(-) - -commit fbecde3d5c5c6d5af315140e4966dc850388ad63 -Merge: 5801521 74139f9 -Author: Behdad Esfahbod -Date: Thu May 7 10:46:42 2015 -0700 - - Merge pull request #105 from ebraminio/master - - Fix Travis CI config to pass again - -commit 74139f9839f69ea3e7a1d17627f52fea6c06d58a -Author: Ebrahim Byagowi -Date: Thu May 7 13:09:32 2015 +0000 - - Fix Travis CI config to pass again - - .travis.yml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 58015215321a76d68df8e0d51039904a67291108 -Author: Behdad Esfahbod -Date: Wed May 6 00:40:31 2015 -0700 - - Add note re OpenType 1.7 language tags - - src/hb-ot-tag.cc | 15 ++++++++++----- - 1 file changed, 10 insertions(+), 5 deletions(-) - -commit f6266ad291d7686d5e110255ace5f2ff9e70bf38 -Author: Roozbeh Pournader -Date: Tue May 5 22:31:19 2015 -0700 - - [minor] Remove comment about Navajo OpenType code. - - Apparently the code is already standardized: - https://www.microsoft.com/typography/otspec/languagetags.htm - - src/hb-ot-tag.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 42b00118eae46a5183e885e89e0856f41361f57e -Merge: c60f3c8 cfeb056 -Author: Behdad Esfahbod -Date: Tue May 5 14:49:47 2015 -0700 - - Merge pull request #102 from roozbehp/master - - Add OpenType language tag 'NAV ' for Navajo. - -commit c60f3c8e1156fe7328d42851013cca97333c3bf7 -Author: Behdad Esfahbod -Date: Mon May 4 23:10:32 2015 -0700 - - [README.python] Add package name for gobject-introspection on Ubuntu - - README.python | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -commit 82010a4bdb32248deb1337a3357dfae5b203c48d -Author: Behdad Esfahbod -Date: Mon May 4 23:09:51 2015 -0700 - - [travis] Comment out gobject-introspection again - - Apparently the version on Travis is 1.32.0, while we require 1.34.0. - - .travis.yml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit 8a254bdd29a99eb91b37e9e540179a1a01f77605 -Author: Behdad Esfahbod -Date: Mon May 4 19:22:11 2015 -0700 - - [travis] Build with introspection enabled - - .travis.yml | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -commit be66ec5373634234f221ace9cfed45d76b87f20e -Author: Behdad Esfahbod -Date: Thu Apr 30 18:27:13 2015 -0400 - - Use TRUE/FALSE instead of true/false in docs - - src/hb-shape.cc | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -commit d055e1fc781c123f38d321846937965ef794257e -Author: Khaled Hosny -Date: Wed Jan 8 02:28:55 2014 +0200 - - Some attempt into initial hb-shape documentation - - Very anaemic, needs to descripe the format understood by - hb_feature_from_string() etc., but it is just start. - - src/hb-shape.cc | 70 - ++++++++++++++++++++++++++++++++++++++------------------- - src/hb-shape.h | 3 --- - 2 files changed, 47 insertions(+), 26 deletions(-) - -commit 81bedda58cfc15f1987aa1952290cf9d87b4d074 -Author: Behdad Esfahbod -Date: Thu Apr 30 13:04:16 2015 -0400 - - New API: hb_buffer_reverse_range() - - src/hb-buffer.cc | 17 +++++++++++++++++ - src/hb-buffer.h | 4 ++++ - 2 files changed, 21 insertions(+) - -commit cfeb0562ebd8804dad731625153549eafeb78213 -Author: Roozbeh Pournader -Date: Wed Apr 29 09:32:42 2015 -0700 - - Add OpenType language tag 'NAV ' for Navajo. - - The code is not standardized yet, but is used in some Google fonts. - - src/hb-ot-tag.cc | 1 + - 1 file changed, 1 insertion(+) - -commit f724cc351640ee075a9867ef42df32cf5e0ef3b7 -Author: Jonathan Kew -Date: Thu Apr 23 12:45:02 2015 +0100 - - Don't apply Arabic shaping to vertical text. - - src/hb-ot-shape-complex-private.hh | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -commit 97942420bbee1bc6953d5f805621066301fa17ca -Author: Behdad Esfahbod -Date: Thu Apr 23 18:56:24 2015 -0700 - - Update check-libstdc++ for clang - - src/check-libstdc++.sh | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -commit 8f0a4d67143ccdef0b5a6ac99fb9b680c3a2f69c -Author: Behdad Esfahbod -Date: Thu Apr 23 14:32:33 2015 -0700 - - [test] Ignor 'n' and 'i' in hb-unicode-encode - - Allows accepting uniXXXX format. - - test/shaping/hb_test_tools.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 39851ce84efd30f6d0570324ff8f3808a01b813b -Author: Behdad Esfahbod -Date: Tue Apr 21 19:23:27 2015 -0700 - - [coretext] Oops; fix issue number for previous commit - - src/hb-coretext.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 24f17afeafd40ff77177ed42c9007a0f34fcbb78 -Author: Behdad Esfahbod -Date: Tue Apr 21 19:21:32 2015 -0700 - - [coretext] Fix positioning with trailing whitespace - - Fixes https://code.google.com/p/chromium/issues/detail?id=476913 - - src/hb-coretext.cc | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -commit dba482fc4458776ffebdeb2d34b970b4223fa8fd -Author: Behdad Esfahbod -Date: Fri Apr 17 13:08:08 2015 -0700 - - [ot-font] Accept MS Symbol cmap if nothing else found - - src/hb-ot-font.cc | 1 + - 1 file changed, 1 insertion(+) - -commit 3029e8b59d1667dc6a53355be89a2b55d7089b88 -Author: Behdad Esfahbod -Date: Tue Apr 14 13:32:22 2015 -0700 - - Revert "Add MSVC pragma for UTF-8 source code" - - This reverts commit 89cbd4d9533011fb5487caa99a0cd58923e7cf59. - - See discussion: - https://bugzilla.gnome.org/show_bug.cgi?id=747772 - - src/hb-private.hh | 1 - - 1 file changed, 1 deletion(-) - -commit 820505a186ff60e4bae9d717fe4d7ab2390e6fef -Author: Behdad Esfahbod -Date: Mon Apr 13 23:51:45 2015 -0700 - - Whitespace - - util/options.cc | 18 +++++++++++------- - 1 file changed, 11 insertions(+), 7 deletions(-) - -commit 76d57331117be8e0c2d4a2aee8341969b62b6888 -Merge: 89cbd4d 9ee176e -Author: Behdad Esfahbod -Date: Mon Apr 13 23:40:35 2015 -0700 - - Merge pull request #86 from cpfair/hb-shape-output-help-improvement - - Improve hb-shape/hb-view's help text w.r.t. output options - -commit 89cbd4d9533011fb5487caa99a0cd58923e7cf59 -Author: Behdad Esfahbod -Date: Mon Apr 13 12:27:08 2015 -0700 - - Add MSVC pragma for UTF-8 source code - - Not sure we have any right now; motivated by this: - https://bugzilla.gnome.org/show_bug.cgi?id=747772 - - src/hb-private.hh | 1 + - 1 file changed, 1 insertion(+) - -commit 713f99ff6138b4149d9fd382f9af3ace01ee0da5 -Merge: 1086f21 22524a5 -Author: Behdad Esfahbod -Date: Fri Apr 10 14:34:05 2015 -0700 - - Merge pull request #99 from khaledhosny/introspection-fixes2 - - More ntrospection fixes - -commit 22524a514f6609a2bc009b6035f6b5b932c719c7 -Author: Khaled Hosny -Date: Fri Apr 10 18:14:45 2015 +0200 - - [bindings] Fix hb_buffer_get_segment_properties - - Annotate the output parameter. - - src/hb-buffer.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 1086f21e546e2435d9da6024fd6afa7a36ba3707 -Merge: 125cb08 fe97b65 -Author: Behdad Esfahbod -Date: Fri Apr 10 12:21:04 2015 -0700 - - Merge branch 'hb-fc' - -commit 125cb08345a7f27e565329d37093b1a60a41a403 -Merge: e8fd839 855a5d7 -Author: Behdad Esfahbod -Date: Fri Apr 10 12:19:57 2015 -0700 - - Merge pull request #98 from KonstantinRitt/WEC2013 - - Fix build on WEC2013 - -commit 04f89e8f7dfdb882e8c98afb613cba3f1d02ed7d -Author: Khaled Hosny -Date: Fri Apr 10 17:49:01 2015 +0200 - - [bindings] Fix ownership of returned hb_language_t - - It should not be freed by the caller. - - src/hb-buffer.cc | 2 +- - src/hb-common.cc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -commit 855a5d7cb8f585bf66dd18cb480b8c3feef62480 -Author: Konstantin Ritt -Date: Fri Apr 10 17:18:01 2015 +0400 - - Fix build on WEC2013 - - Based on patch from Björn Breitmeyer - - src/hb-private.hh | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -commit fe97b65a54a416229e28b1c931e5e01ca19f31d3 -Author: Behdad Esfahbod -Date: Wed Aug 6 16:49:51 2014 -0400 - - [utils] Add hb-fc-list - - This is a tool that lists all fonts that can render a given string. - It uses hb_shape() to do so, and as such is aware of HarfBuzz's - normalizer. - - configure.ac | 19 +++++ - util/Makefile.am | 15 ++++ - util/hb-fc-list.c | 222 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++ - util/hb-fc.cc | 149 ++++++++++++++++++++++++++++++++++++ - util/hb-fc.h | 46 +++++++++++ - 5 files changed, 451 insertions(+) - -commit eb0bf3ae6688b7e98a706df2ad2714c071d77e22 -Author: Behdad Esfahbod -Date: Wed Aug 6 15:36:41 2014 -0400 - - Relax inert checks - - Previously, when creating an object from inert inputs (eg: - "hb_font_create(hb_face_get_empty())") we returned the inert - empty object. This is not helpful as there are legitimate - usecases to do that. - - We now never return the inert object unless allocation failed. - - Tests are revised to reflect. - - src/hb-face.cc | 4 ++-- - src/hb-font.cc | 4 +--- - src/hb-shape-plan.cc | 7 +++++-- - test/api/test-font.c | 10 +++++----- - test/api/test-object.c | 34 +++++++++++++++++----------------- - 5 files changed, 30 insertions(+), 29 deletions(-) - -commit e8fd83932a75cfbaa4638a757868915ebfac3c1f -Author: Behdad Esfahbod -Date: Thu Apr 9 15:52:26 2015 -0700 - - [util/hb-view] Fix rendering with all combinations of negative scales - - util/view-cairo.cc | 90 - ++++++++++++++++++++++++++++-------------------------- - util/view-cairo.hh | 2 -- - 2 files changed, 47 insertions(+), 45 deletions(-) - -commit 69d5af93169ea2d87276b65d43c889a359d5d81e -Author: Behdad Esfahbod -Date: Thu Apr 9 15:17:16 2015 -0700 - - [util] Minor - - util/view-cairo.cc | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -commit a664810e38b479e05ea32cac263cb5730629f9d8 -Author: Behdad Esfahbod -Date: Thu Apr 9 15:04:42 2015 -0700 - - [util] Accept comma as well as space when separating components - of args - - Applies to --font-size and --margin. - - Hopefully the scanf usage here doesn't have compatibility issues - (star being counted in the return value, etc). - - util/options.cc | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit 9c974360febcfd67247107352425fe8590d9d452 -Author: Behdad Esfahbod -Date: Thu Apr 9 12:04:14 2015 -0700 - - Minor rename - - src/hb-atomic-private.hh | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -commit f3b170bdd970e31e9dbfed94c07c3cda41269aed -Author: Behdad Esfahbod -Date: Wed Apr 8 16:26:24 2015 -0700 - - Minor - - src/hb-common.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 2958f2c147fc6327175b51a4eaca694263e34ac9 -Author: Behdad Esfahbod -Date: Wed Apr 8 16:26:16 2015 -0700 - - Fixup - - src/hb-atomic-private.hh | 1 + - 1 file changed, 1 insertion(+) - -commit b931e0b0ceeab0e4819d9c4b838c1a1eb87b52e4 -Author: Behdad Esfahbod -Date: Wed Apr 8 14:39:00 2015 -0700 - - Fix warnings - - Part of https://github.com/behdad/harfbuzz/pull/68 - - src/hb-ot-font.cc | 4 ++-- - src/hb-ot-layout-gsubgpos-private.hh | 22 +++++++++++----------- - 2 files changed, 13 insertions(+), 13 deletions(-) - -commit cdcdfe61b97a0a48ccf834b6d924d187da9609be -Author: Behdad Esfahbod -Date: Wed Apr 8 13:25:04 2015 -0700 - - Err, instead of warn, if mutex / atomic / unicode funcs are missing - - Hopefully this results in fewer badly built HarfBuzz integrations. - - src/hb-unicode.cc | 8 ++++---- - src/hb-warning.cc | 22 ++++++++-------------- - 2 files changed, 12 insertions(+), 18 deletions(-) - -commit fc3c59a1d746c5280f6216a94fdc1be3e826051f -Author: Behdad Esfahbod -Date: Wed Apr 8 13:03:27 2015 -0700 - - Fix unused var warnings - - src/hb-ot-layout-gpos-table.hh | 1 - - src/hb-ot-layout-gsub-table.hh | 1 - - 2 files changed, 2 deletions(-) - -commit 3f174cd020b7762fae96f20ce14fc9e9abec748f -Author: Konstantin Ritt -Date: Sat Mar 28 00:49:33 2015 +0400 - - Minor refactoring to the atomics implementation - - s/atomic_int/atomic_int_impl/ and s/atomic_ptr/atomic_ptr_impl/ - to bring it in par with hb_mutex_impl_t, then re-introduce - hb_atomic_int_t as a wrapper around hb_atomic_int_impl_t. - - In hb_reference_count_t, make it clear the non-atomic get and set - are intentional due to nature of the cases they are used in - (comparison to -1 and the debug output/tracing). - - src/hb-atomic-private.hh | 86 - +++++++++++++++++++++++++++++++----------------- - src/hb-mutex-private.hh | 4 ++- - src/hb-object-private.hh | 21 ++++++------ - 3 files changed, 69 insertions(+), 42 deletions(-) - -commit 24930d544ee9e247e4cf6a5f6d5207ba9d7a3ddc -Author: Behdad Esfahbod -Date: Wed Apr 8 12:52:06 2015 -0700 - - Minor - - src/hb-mutex-private.hh | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -commit 45a8b46f478d4aa63ae5df74b6bb28ebdd7521ac -Author: Behdad Esfahbod -Date: Wed Apr 8 12:49:38 2015 -0700 - - Allow implementing atomic and mutex ops in config - - Motivated by - https://github.com/behdad/harfbuzz/pull/92 - - src/hb-atomic-private.hh | 6 +++++- - src/hb-mutex-private.hh | 7 ++++++- - 2 files changed, 11 insertions(+), 2 deletions(-) - -commit 3fe4e92bc5ff09d84c6763cedf06ce80d15a5fb2 -Author: Behdad Esfahbod -Date: Wed Apr 8 12:49:23 2015 -0700 - - Minor - - src/hb-set-private.hh | 1 - - 1 file changed, 1 deletion(-) - -commit 9868749abe468130d89c80a2501847a83acb4579 -Author: Behdad Esfahbod -Date: Mon Apr 6 14:51:31 2015 -0700 - - [test] Use /usr/bin/env python instead of /usr/bin/python - - Bug 76494 - #!/usr/bin/python in testsuite - - https://bugs.freedesktop.org/show_bug.cgi?id=76494 - - test/shaping/hb-diff | 2 +- - test/shaping/hb-diff-colorize | 2 +- - test/shaping/hb-diff-filter-failures | 2 +- - test/shaping/hb-diff-ngrams | 2 +- - test/shaping/hb-diff-stat | 2 +- - test/shaping/hb-manifest-read | 2 +- - test/shaping/hb-manifest-update | 2 +- - test/shaping/hb-unicode-decode | 2 +- - test/shaping/hb-unicode-encode | 2 +- - test/shaping/hb-unicode-prettyname | 2 +- - test/shaping/hb_test_tools.py | 2 +- - 11 files changed, 11 insertions(+), 11 deletions(-) - -commit bfcddd32a674dd19fca1bf521e95466a0eec5179 -Merge: ce01ad7 363ceec -Author: Behdad Esfahbod -Date: Mon Apr 6 14:41:32 2015 -0700 - - Merge pull request #93 from ebraminio/archpy3 - - Make hb_test_tools.py compatible with python 3 - -commit ce01ad7c2f5a259030f4dbec746f85522aa9c3f9 -Author: Behdad Esfahbod -Date: Wed Apr 1 11:05:59 2015 -0700 - - MSVC 2015 supports snprintf and not _snprintf - - src/hb-private.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 560718862f0bd994b62361652d6fd558c4182e2a -Author: Behdad Esfahbod -Date: Wed Apr 1 11:04:33 2015 -0700 - - Move WinCE define to better place - - src/hb-private.hh | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -commit 363ceec3fb0c9566db5a59da31e508f69dea1e92 -Author: Ebrahim Byagowi -Date: Mon Mar 30 03:27:14 2015 +0430 - - Make hb_test_tools.py compatible with python 3 - - On ArchLinux, /usr/bin/python is linked to python 3 so - HarfBuzz `make check` is broken there. - - This makes hb_test_tools.py compatible with python 3 while - no breaking it on python 2. - - test/shaping/hb_test_tools.py | 44 - ++++++++++++++++++++++++------------------- - 1 file changed, 25 insertions(+), 19 deletions(-) - -commit aee685086c8fde6f6c4590e483a177c19f222540 -Author: Behdad Esfahbod -Date: Thu Mar 26 14:13:53 2015 -0400 - - Fix VC++ /analyze warnings - - out\debug\hb-buffer-deserialize-text.rl(47) : warning C6001: Using - uninitialized memory 'pos'. - - src/hb-buffer-deserialize-text.rl | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit 8886ab430ca68539cb318e175647e9f6973718b0 -Merge: e3671b8 a394bb6 -Author: Behdad Esfahbod -Date: Sun Mar 22 16:18:57 2015 -0400 - - Merge pull request #90 from khaledhosny/introspection-fixes - - [bindings] Fix *_from_string functions - -commit a394bb66707184c995fe2d08c80e98220e6ec0b0 -Author: Khaled Hosny -Date: Sun Mar 22 20:29:10 2015 +0200 - - [bindings] Fix *_from_string functions - - Without the element-type they will be getting garbage, at least with - Python. - - src/hb-common.cc | 8 ++++---- - src/hb-font.cc | 2 +- - src/hb-shape.cc | 2 +- - 3 files changed, 6 insertions(+), 6 deletions(-) - -commit e3671b8f8bb339e8a563a9da9cd5069073200fec -Author: Behdad Esfahbod -Date: Fri Mar 20 18:03:02 2015 -0400 - - 0.9.40 - - NEWS | 8 ++++++++ - configure.ac | 2 +- - 2 files changed, 9 insertions(+), 1 deletion(-) - commit 9e401f6890f2bea1d11914bca436c2230f8d0f1b Author: Behdad Esfahbod -Date: Fri Mar 20 16:08:38 2015 -0400 +Date: Fri Mar 20 16:08:38 2015 -0400 Fix reverse_range() for empty range @@ -7231,7 +13,7 @@ Date: Fri Mar 20 16:08:38 2015 -0400 commit 7481bd49d56d4e814ab1f85fc2df8bf934d520f4 Author: Behdad Esfahbod -Date: Wed Mar 4 15:47:25 2015 -0800 +Date: Wed Mar 4 15:47:25 2015 -0800 Fix previous commit @@ -7242,7 +24,7 @@ Date: Wed Mar 4 15:47:25 2015 -0800 commit 6763e21afb77b250ad4416ff921d46c63ea12443 Author: Behdad Esfahbod -Date: Wed Mar 4 15:43:05 2015 -0800 +Date: Wed Mar 4 15:43:05 2015 -0800 Accept glibtoolize as libtoolize @@ -7255,17 +37,17 @@ Date: Wed Mar 4 15:43:05 2015 -0800 commit 02a04e6afb1a76894f3723a467716607970d95d3 Author: Behdad Esfahbod -Date: Wed Mar 4 12:32:03 2015 -0800 +Date: Wed Mar 4 12:32:03 2015 -0800 0.9.39 - NEWS | 10 ++++++++++ + NEWS | 10 ++++++++++ configure.ac | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) commit 98e3ea8e34c798ce003e946c9a150bb41be9d09b Author: Behdad Esfahbod -Date: Wed Mar 4 12:03:39 2015 -0800 +Date: Wed Mar 4 12:03:39 2015 -0800 Fix hb-uniscribe build @@ -7274,7 +56,7 @@ Date: Wed Mar 4 12:03:39 2015 -0800 commit 8ac345e5c0ed0aad6547592ea0839aabfb4ba980 Author: Behdad Esfahbod -Date: Mon Mar 2 16:06:55 2015 -0800 +Date: Mon Mar 2 16:06:55 2015 -0800 Fix reverse_range() to only reverse alt array if positions are used @@ -7287,7 +69,7 @@ Date: Mon Mar 2 16:06:55 2015 -0800 commit 1e03d7ac83f3e17aafed1e37390d9ff8394e36da Author: Behdad Esfahbod -Date: Thu Feb 26 13:58:32 2015 -0800 +Date: Thu Feb 26 13:58:32 2015 -0800 Better error message if libtool is not installed @@ -7298,7 +80,7 @@ Date: Thu Feb 26 13:58:32 2015 -0800 commit 6c918e2997fb82e89485f2b50bee2bf4fcd70592 Author: Behdad Esfahbod -Date: Thu Feb 26 13:55:34 2015 -0800 +Date: Thu Feb 26 13:55:34 2015 -0800 Clean up gtk-doc.make @@ -7307,7 +89,7 @@ Date: Thu Feb 26 13:55:34 2015 -0800 commit 5ec5875acb12cf07447c9ebfb03212601368dfc4 Author: Behdad Esfahbod -Date: Thu Feb 26 13:53:05 2015 -0800 +Date: Thu Feb 26 13:53:05 2015 -0800 Install git.mk in docs/ @@ -7316,7 +98,7 @@ Date: Thu Feb 26 13:53:05 2015 -0800 commit d146678d103425b3da7ef393bc6d66f6ba4c5593 Author: Behdad Esfahbod -Date: Thu Feb 26 13:52:50 2015 -0800 +Date: Thu Feb 26 13:52:50 2015 -0800 Update git.mk from upstream @@ -7325,7 +107,7 @@ Date: Thu Feb 26 13:52:50 2015 -0800 commit 5f541f8f7be82f29b77b481827deb212e12d53e4 Author: Behdad Esfahbod -Date: Sat Feb 21 16:51:17 2015 +0300 +Date: Sat Feb 21 16:51:17 2015 +0300 Minor refactoring @@ -7334,7 +116,7 @@ Date: Sat Feb 21 16:51:17 2015 +0300 commit ef79bdf73bbfde1bfaa222834809d105ab7755b3 Author: Behdad Esfahbod -Date: Sat Feb 21 16:49:15 2015 +0300 +Date: Sat Feb 21 16:49:15 2015 +0300 Minor @@ -7343,7 +125,7 @@ Date: Sat Feb 21 16:49:15 2015 +0300 commit 68e04afbb1e1073c47474f7a4d6d2cacf7057f6f Author: Behdad Esfahbod -Date: Sat Feb 21 16:30:28 2015 +0300 +Date: Sat Feb 21 16:30:28 2015 +0300 Typo @@ -7352,7 +134,7 @@ Date: Sat Feb 21 16:30:28 2015 +0300 commit 55553699b38d6481fbfacd0a32fc266e55553b34 Author: Behdad Esfahbod -Date: Sat Feb 21 16:29:08 2015 +0300 +Date: Sat Feb 21 16:29:08 2015 +0300 Minor @@ -7361,7 +143,7 @@ Date: Sat Feb 21 16:29:08 2015 +0300 commit 5175300fbaf4ff19b7d38c14c86331bb614b0390 Author: Behdad Esfahbod -Date: Sat Feb 21 12:50:01 2015 +0300 +Date: Sat Feb 21 12:50:01 2015 +0300 [layout] Fix comparison of GlyphID and hb_codepoint_t @@ -7376,7 +158,7 @@ Date: Sat Feb 21 12:50:01 2015 +0300 commit 7cce809cb11e0ce65dbdab899779ece3dc337763 Author: Behdad Esfahbod -Date: Sat Feb 21 12:41:08 2015 +0300 +Date: Sat Feb 21 12:41:08 2015 +0300 Remove unused (and wrong as of a few commits ago) cmp() function @@ -7385,7 +167,7 @@ Date: Sat Feb 21 12:41:08 2015 +0300 commit 8e3d4bae033bdec649676da26cfc3eb7610832a8 Author: Behdad Esfahbod -Date: Sat Feb 21 12:31:59 2015 +0300 +Date: Sat Feb 21 12:31:59 2015 +0300 Minor @@ -7394,7 +176,7 @@ Date: Sat Feb 21 12:31:59 2015 +0300 commit f47cf1f12dd1fa3cd3aa84502139caca9d469af8 Author: Behdad Esfahbod -Date: Sat Feb 21 11:45:22 2015 +0300 +Date: Sat Feb 21 11:45:22 2015 +0300 Minor @@ -7403,7 +185,7 @@ Date: Sat Feb 21 11:45:22 2015 +0300 commit 640b66c6348653bfd7cf88ea9caa2133c0eb949f Author: Behdad Esfahbod -Date: Thu Feb 19 17:30:05 2015 +0300 +Date: Thu Feb 19 17:30:05 2015 +0300 [layout] If lookup has only one subtable, move the forward loop down to subtable @@ -7416,7 +198,7 @@ Date: Thu Feb 19 17:30:05 2015 +0300 commit e2f50f2a7ebf9882ea89dc3f0c740e7fce964e37 Author: Behdad Esfahbod -Date: Thu Feb 19 17:15:05 2015 +0300 +Date: Thu Feb 19 17:15:05 2015 +0300 [layout] Add apply_forward / apply_backward @@ -7426,7 +208,7 @@ Date: Thu Feb 19 17:15:05 2015 +0300 commit 1d4a328472f094c0d75a062f6e176c6b1875cfdc Author: Behdad Esfahbod -Date: Thu Feb 19 11:33:30 2015 +0300 +Date: Thu Feb 19 11:33:30 2015 +0300 [layout] Remove unneeded return value from apply() @@ -7435,7 +217,7 @@ Date: Thu Feb 19 11:33:30 2015 +0300 commit bbdd6fd21cc2e079defff7cb17c3eb8eff3f9e09 Author: Behdad Esfahbod -Date: Thu Feb 19 17:03:02 2015 +0300 +Date: Thu Feb 19 17:03:02 2015 +0300 Minor simpilfy BEInt @@ -7444,7 +226,7 @@ Date: Thu Feb 19 17:03:02 2015 +0300 commit 88a399acdc0fcb060803da0e7db56de2866981e3 Author: Behdad Esfahbod -Date: Thu Feb 19 16:57:12 2015 +0300 +Date: Thu Feb 19 16:57:12 2015 +0300 Optimize IntType comparison to avoid branches for 16bit numbers @@ -7453,7 +235,7 @@ Date: Thu Feb 19 16:57:12 2015 +0300 commit 37de2d533126245774417234e3536fcfb24f3a6b Author: Behdad Esfahbod -Date: Thu Feb 19 16:55:51 2015 +0300 +Date: Thu Feb 19 16:55:51 2015 +0300 Minor simplify IntType @@ -7462,18 +244,18 @@ Date: Thu Feb 19 16:55:51 2015 +0300 commit bd047d3b7f04d551c0a26bc0ce9b9d61481e34e1 Author: Behdad Esfahbod -Date: Thu Feb 19 10:47:18 2015 +0300 +Date: Thu Feb 19 10:47:18 2015 +0300 [layout] Minor src/hb-ot-layout-gpos-table.hh | 6 ++++++ src/hb-ot-layout-gsub-table.hh | 6 ++++++ - src/hb-ot-layout.cc | 4 ++-- + src/hb-ot-layout.cc | 4 ++-- 3 files changed, 14 insertions(+), 2 deletions(-) commit b9d3f60520c022dc952e65a66eb138d1f7cae2e1 Author: Behdad Esfahbod -Date: Thu Feb 19 10:42:41 2015 +0300 +Date: Thu Feb 19 10:42:41 2015 +0300 [layout] Minor @@ -7482,7 +264,7 @@ Date: Thu Feb 19 10:42:41 2015 +0300 commit 1a2322134a5d7bba990da28baf893b35879a5a7a Author: Behdad Esfahbod -Date: Thu Feb 19 10:40:23 2015 +0300 +Date: Thu Feb 19 10:40:23 2015 +0300 [layout] Don't check glyph props against lookup flags when recursing @@ -7495,14 +277,14 @@ Date: Thu Feb 19 10:40:23 2015 +0300 commit 095a1257cc3cc56b044b4cd842a92f0d0f933a50 Author: Behdad Esfahbod -Date: Thu Feb 19 10:29:41 2015 +0300 +Date: Thu Feb 19 10:29:41 2015 +0300 [layout] Port sanitize() to use dispatch() Needed some rework of Extension table. Hopefully I got it right, and the new template usage doesn't break any compilers... - src/hb-open-type-private.hh | 5 ++- + src/hb-open-type-private.hh | 5 ++- src/hb-ot-layout-gpos-table.hh | 82 +---------------------------------- src/hb-ot-layout-gsub-table.hh | 72 ++----------------------------- @@ -7512,7 +294,7 @@ Date: Thu Feb 19 10:29:41 2015 +0300 commit 758fb20630f84c3d373cda37974b88f16c02995e Author: Behdad Esfahbod -Date: Wed Feb 18 13:45:03 2015 +0300 +Date: Wed Feb 18 13:45:03 2015 +0300 Remove unused macro @@ -7521,7 +303,7 @@ Date: Wed Feb 18 13:45:03 2015 +0300 commit 40c58923cbf689c465f9b65334c455a9b7f71ab0 Author: Behdad Esfahbod -Date: Wed Feb 18 13:18:46 2015 +0300 +Date: Wed Feb 18 13:18:46 2015 +0300 [layout] Refactor Lookup::dispatch() @@ -7533,7 +315,7 @@ Date: Wed Feb 18 13:18:46 2015 +0300 commit 70366f5d19df2e654f0933474fecf1aa16e27812 Author: Behdad Esfahbod -Date: Wed Feb 18 13:09:54 2015 +0300 +Date: Wed Feb 18 13:09:54 2015 +0300 [layout] Refactor get_subtable() @@ -7544,7 +326,7 @@ Date: Wed Feb 18 13:09:54 2015 +0300 commit f72f326aea6d1e93f63040730f7aecd401676c1c Author: Behdad Esfahbod -Date: Tue Feb 17 19:18:07 2015 +0300 +Date: Tue Feb 17 19:18:07 2015 +0300 Minor @@ -7553,7 +335,7 @@ Date: Tue Feb 17 19:18:07 2015 +0300 commit 8e36ccfd4f076888076ca176c055c18104af03b6 Author: Behdad Esfahbod -Date: Tue Feb 17 19:15:34 2015 +0300 +Date: Tue Feb 17 19:15:34 2015 +0300 [layout] Use dispatch() for add_coverage() @@ -7564,7 +346,7 @@ Date: Tue Feb 17 19:15:34 2015 +0300 commit 50b8dc79daffc7ef671dd5eedfea47f8d5e946f4 Author: Behdad Esfahbod -Date: Tue Feb 17 18:14:17 2015 +0300 +Date: Tue Feb 17 18:14:17 2015 +0300 [layout] Add may_dispatch() @@ -7577,7 +359,7 @@ Date: Tue Feb 17 18:14:17 2015 +0300 commit de2118ed7a998a1df9b28fd1be96b4af89ed82c3 Author: Behdad Esfahbod -Date: Tue Feb 17 17:27:44 2015 +0300 +Date: Tue Feb 17 17:27:44 2015 +0300 Make sanitize() a const method @@ -7586,12 +368,12 @@ Date: Tue Feb 17 17:27:44 2015 +0300 place, after making sure it's safe to do so. So, do a const_cast<> in that one place... - src/hb-open-file-private.hh | 15 +++-- - src/hb-open-type-private.hh | 51 +++++++++++------ - src/hb-ot-cmap-table.hh | 35 ++++++++---- - src/hb-ot-head-table.hh | 6 +- - src/hb-ot-hhea-table.hh | 3 +- - src/hb-ot-hmtx-table.hh | 3 +- + src/hb-open-file-private.hh | 15 +++-- + src/hb-open-type-private.hh | 51 +++++++++++------ + src/hb-ot-cmap-table.hh | 35 ++++++++---- + src/hb-ot-head-table.hh | 6 +- + src/hb-ot-hhea-table.hh | 3 +- + src/hb-ot-hmtx-table.hh | 3 +- src/hb-ot-layout-common-private.hh | 58 ++++++++++++------- src/hb-ot-layout-gdef-table.hh | 30 ++++++---- src/hb-ot-layout-gpos-table.hh | 108 @@ -7599,13 +381,13 @@ Date: Tue Feb 17 17:27:44 2015 +0300 src/hb-ot-layout-gsub-table.hh | 58 ++++++++++++------- src/hb-ot-layout-gsubgpos-private.hh | 65 +++++++++++++-------- src/hb-ot-layout-jstf-table.hh | 12 ++-- - src/hb-ot-maxp-table.hh | 6 +- - src/hb-ot-name-table.hh | 6 +- + src/hb-ot-maxp-table.hh | 6 +- + src/hb-ot-name-table.hh | 6 +- 14 files changed, 296 insertions(+), 160 deletions(-) commit 6759ed95a3bec2874826376b68ebff19ba277ef2 Author: Behdad Esfahbod -Date: Tue Feb 17 16:05:30 2015 +0300 +Date: Tue Feb 17 16:05:30 2015 +0300 Minor @@ -7615,7 +397,7 @@ Date: Tue Feb 17 16:05:30 2015 +0300 commit 6b599dac1f814a3c900300241d4c492a8f8b66d2 Author: Behdad Esfahbod -Date: Tue Feb 17 16:04:07 2015 +0300 +Date: Tue Feb 17 16:04:07 2015 +0300 Remove unnecessary check in sanitize @@ -7625,7 +407,7 @@ Date: Tue Feb 17 16:04:07 2015 +0300 commit 365576d246949f9d587e90cf0539dc0381e4d0a3 Author: Behdad Esfahbod -Date: Thu Jan 29 13:59:42 2015 +0100 +Date: Thu Jan 29 13:59:42 2015 +0100 [layout] Allocate iters in the context @@ -7635,23 +417,23 @@ Date: Thu Jan 29 13:59:42 2015 +0100 src/hb-ot-layout-gpos-table.hh | 18 ++++++------------ src/hb-ot-layout-gsubgpos-private.hh | 21 +++++++++++++-------- - src/hb-ot-shape-fallback.cc | 2 +- + src/hb-ot-shape-fallback.cc | 2 +- 3 files changed, 20 insertions(+), 21 deletions(-) commit 514564f5444b8ad2f210b1e3d7d66378f7275317 Author: Behdad Esfahbod -Date: Thu Jan 29 13:48:48 2015 +0100 +Date: Thu Jan 29 13:48:48 2015 +0100 [layout] Move skippy_iter setup from constructor into init() src/hb-ot-layout-gpos-table.hh | 18 ++++++++++++------ src/hb-ot-layout-gsubgpos-private.hh | 28 +++++++++++++++------------- - src/hb-ot-shape-fallback.cc | 3 ++- + src/hb-ot-shape-fallback.cc | 3 ++- 3 files changed, 29 insertions(+), 20 deletions(-) commit b051be542a8945ec14b0192bbc285f3e1a78c8f1 Author: Behdad Esfahbod -Date: Thu Jan 29 13:40:39 2015 +0100 +Date: Thu Jan 29 13:40:39 2015 +0100 [lookup] Add skippy_iter.reset() @@ -7659,12 +441,12 @@ Date: Thu Jan 29 13:40:39 2015 +0100 src/hb-ot-layout-gpos-table.hh | 18 ++++++++++++------ src/hb-ot-layout-gsubgpos-private.hh | 27 ++++++++++++++++++--------- - src/hb-ot-shape-fallback.cc | 3 ++- + src/hb-ot-shape-fallback.cc | 3 ++- 3 files changed, 32 insertions(+), 16 deletions(-) commit 2cecc38c7cf49b2cf697efa7e974ceee7055f2c5 Author: Behdad Esfahbod -Date: Thu Jan 29 13:32:05 2015 +0100 +Date: Thu Jan 29 13:32:05 2015 +0100 [layout] Shuffle code around @@ -7674,19 +456,19 @@ Date: Thu Jan 29 13:32:05 2015 +0100 commit 696266981df5ef6c62ad0115133dad1d6c1d9acc Author: Behdad Esfahbod -Date: Thu Jan 29 13:08:41 2015 +0100 +Date: Thu Jan 29 13:08:41 2015 +0100 [layout] Merge forward and backward iterators src/hb-ot-layout-gpos-table.hh | 12 +++--- src/hb-ot-layout-gsubgpos-private.hh | 71 ++++++++---------------------------- - src/hb-ot-shape-fallback.cc | 2 +- + src/hb-ot-shape-fallback.cc | 2 +- 3 files changed, 23 insertions(+), 62 deletions(-) commit 1f038eec3c0dd6331036f795614fe1ddcbf613b0 Author: Behdad Esfahbod -Date: Thu Jan 29 13:05:25 2015 +0100 +Date: Thu Jan 29 13:05:25 2015 +0100 [layout] Fix backward reject() @@ -7698,7 +480,7 @@ Date: Thu Jan 29 13:05:25 2015 +0100 commit 37d13acd8d414a4b53fac0152addfadecf755cd4 Author: Behdad Esfahbod -Date: Thu Jan 29 11:38:01 2015 +0100 +Date: Thu Jan 29 11:38:01 2015 +0100 [layout] Remove some unnecessary checks in skippy @@ -7708,7 +490,7 @@ Date: Thu Jan 29 11:38:01 2015 +0100 commit baa14e18148d3f5493f78b4fe9e0c835a01f50f7 Author: Behdad Esfahbod -Date: Thu Jan 29 11:08:43 2015 +0100 +Date: Thu Jan 29 11:08:43 2015 +0100 [lookup] Don't initialize skippy if coverage match fails @@ -7733,7 +515,7 @@ Date: Thu Jan 29 11:08:43 2015 +0100 commit 7788993bc19bf122f1e143ab64cc1da2ed1865a3 Author: Behdad Esfahbod -Date: Wed Jan 28 23:01:12 2015 -0800 +Date: Wed Jan 28 23:01:12 2015 -0800 [layout] Use setter method to set c->lookup_props @@ -7743,7 +525,7 @@ Date: Wed Jan 28 23:01:12 2015 -0800 commit f4ee48fd7b312550faf9b0be4cd1b2f2849dd08d Author: Behdad Esfahbod -Date: Wed Jan 28 22:53:54 2015 -0800 +Date: Wed Jan 28 22:53:54 2015 -0800 [layout] Remove unused wrapper method @@ -7752,7 +534,7 @@ Date: Wed Jan 28 22:53:54 2015 -0800 commit 7b7129c7a997def599fb4d2ba05fda40d27aed20 Author: Behdad Esfahbod -Date: Wed Jan 28 21:46:07 2015 -0800 +Date: Wed Jan 28 21:46:07 2015 -0800 Add hb_frozen_set_t @@ -7767,18 +549,18 @@ Date: Wed Jan 28 21:46:07 2015 -0800 commit 241eac9559465fa79f396570af4e87f455b7e9d5 Author: Behdad Esfahbod -Date: Wed Jan 28 20:55:42 2015 -0800 +Date: Wed Jan 28 20:55:42 2015 -0800 Hide internals of lookup accelerators src/hb-ot-layout-gsub-table.hh | 5 +++-- - src/hb-ot-layout-private.hh | 5 +++++ - src/hb-ot-layout.cc | 6 +++--- + src/hb-ot-layout-private.hh | 5 +++++ + src/hb-ot-layout.cc | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) commit e2d4e8480d85436a3acad8145acac345ed593f5a Author: Behdad Esfahbod -Date: Wed Jan 28 20:29:48 2015 -0800 +Date: Wed Jan 28 20:29:48 2015 -0800 [util] Add convenience "make lib" target @@ -7788,53 +570,15 @@ Date: Wed Jan 28 20:29:48 2015 -0800 commit faaae64bf28abdcdd15185374bc09a3809794118 Merge: 7888a6b 9768e65 Author: Behdad Esfahbod -Date: Wed Feb 25 15:34:34 2015 -0800 +Date: Wed Feb 25 15:34:34 2015 -0800 Merge pull request #85 from KonstantinRitt/define_inline Fix build with MSVC on CE -commit 9ee176ee978e6668c4faf00028811ce70979122e -Author: Collin Fair -Date: Sat Feb 14 09:59:44 2015 -0500 - - Stop hb-shape docs leaking into hb-view - - util/options.cc | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -commit 952b8dbdf61da9b4814e09ad3c1b9b76483bef5c -Author: Collin Fair -Date: Sat Feb 14 09:44:00 2015 -0500 - - 'All' of the above, not 'each' - - util/options.cc | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -commit 9e867b64467c46eea5cc9b1d5a9404a1221bbbfc -Author: Collin Fair -Date: Sat Feb 14 09:32:04 2015 -0500 - - Remove reference to --help-output-content in --help-output (as - --help-output-format's options aren't available in hb-view) - - util/options.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -commit 1d55ffeb66381889f11ebb9039ca4ec2ca5efbab -Author: Collin Fair -Date: Sat Feb 14 09:29:35 2015 -0500 - - Add serialization syntax documentation. Clarify naming and wording - in --help-output/--help-format - - util/options.cc | 30 ++++++++++++++++-------------- - 1 file changed, 16 insertions(+), 14 deletions(-) - commit 9768e651be0561f07d6f38c3ed8bc5ee04882990 Author: Konstantin Ritt -Date: Sat Feb 14 00:58:51 2015 +0400 +Date: Sat Feb 14 00:58:51 2015 +0400 Fix build with MSVC on CE @@ -7864,7 +608,7 @@ Date: Sat Feb 14 00:58:51 2015 +0400 commit 7888a6b07a9922cedd3e0d235959058e0011357b Author: Behdad Esfahbod -Date: Wed Jan 28 12:40:40 2015 -0800 +Date: Wed Jan 28 12:40:40 2015 -0800 [ft] Handle negative scales with vertical writing @@ -7873,7 +617,7 @@ Date: Wed Jan 28 12:40:40 2015 -0800 commit 982d94eaa2a377616f22f39427e5ed9f1ce43263 Author: Behdad Esfahbod -Date: Wed Jan 28 10:51:33 2015 -0800 +Date: Wed Jan 28 10:51:33 2015 -0800 [coretext] Don't generate notdef glyph for default-ignorables @@ -7886,7 +630,7 @@ Date: Wed Jan 28 10:51:33 2015 -0800 commit 6917a045fd8d16952cad75fda8b291b11e1d3564 Author: Behdad Esfahbod -Date: Wed Jan 28 10:43:32 2015 -0800 +Date: Wed Jan 28 10:43:32 2015 -0800 [coretext] Unbreak glyph positioning in presence of notdef runs @@ -12411,29 +5155,29 @@ Date: Mon Apr 28 12:43:18 2014 -0700 Reshuffle test data - test/shaping/texts/in-tree/MANIFEST | - 3 +++ - test/shaping/texts/in-tree/shaper-default/MANIFEST | - 3 --- - .../script-tibetan => shaper-hangul/script-hangul}/MANIFEST | - 0 - .../script-tibetan => shaper-hangul/script-hangul}/misc/MANIFEST - | 0 - .../{shaper-default => shaper-hangul}/script-hangul/misc/misc.txt - | 0 - .../in-tree/{shaper-default => shaper-hebrew}/script-hebrew/MANIFEST - | 0 - .../{shaper-default => shaper-hebrew}/script-hebrew/misc/MANIFEST - | 0 - .../script-hebrew/misc/diacritics.txt | - 0 - .../script-hangul => shaper-tibetan/script-tibetan}/MANIFEST | - 0 - .../script-hangul => shaper-tibetan/script-tibetan}/misc/MANIFEST - | 0 - .../{shaper-default => shaper-tibetan}/script-tibetan/misc/misc.txt - | 0 - 11 files changed, 3 insertions(+), 3 deletions(-) + test/shaping/texts/in-tree/MANIFEST | 3 +++ + test/shaping/texts/in-tree/shaper-default/MANIFEST | 3 --- + .../texts/in-tree/shaper-default/script-hangul/MANIFEST | 1 - + .../in-tree/shaper-default/script-hangul/misc/MANIFEST | 1 - + .../in-tree/shaper-default/script-hangul/misc/misc.txt | 4 ---- + .../texts/in-tree/shaper-default/script-hebrew/MANIFEST | 1 - + .../in-tree/shaper-default/script-hebrew/misc/MANIFEST | 1 - + .../shaper-default/script-hebrew/misc/diacritics.txt | 16 + ---------------- + .../texts/in-tree/shaper-default/script-tibetan/MANIFEST | 1 - + .../in-tree/shaper-default/script-tibetan/misc/MANIFEST | 1 - + .../in-tree/shaper-default/script-tibetan/misc/misc.txt | 1 - + .../texts/in-tree/shaper-hangul/script-hangul/MANIFEST | 1 + + .../in-tree/shaper-hangul/script-hangul/misc/MANIFEST | 1 + + .../in-tree/shaper-hangul/script-hangul/misc/misc.txt | 4 ++++ + .../texts/in-tree/shaper-hebrew/script-hebrew/MANIFEST | 1 + + .../in-tree/shaper-hebrew/script-hebrew/misc/MANIFEST | 1 + + .../shaper-hebrew/script-hebrew/misc/diacritics.txt | 16 + ++++++++++++++++ + .../texts/in-tree/shaper-tibetan/script-tibetan/MANIFEST | 1 + + .../in-tree/shaper-tibetan/script-tibetan/misc/MANIFEST | 1 + + .../in-tree/shaper-tibetan/script-tibetan/misc/misc.txt | 1 + + 20 files changed, 30 insertions(+), 30 deletions(-) commit b082ef373cefb35dd98b5f2f0b677ccc7806f51e Author: Behdad Esfahbod @@ -12604,18 +5348,19 @@ Date: Mon Mar 24 14:26:36 2014 -0700 Start fleshing out builtin font functions - src/Makefile.am | 3 +- - src/hb-glib.cc | 2 +- - src/hb-icu.cc | 2 +- - src/hb-ot-font.cc | 260 - ++++++++++++++++++++++++++++++++++++ - src/{hb-tt-font.cc => hb-ot-font.h} | 56 ++------ - src/hb-ot-hhea-table.hh | 2 +- - src/hb-ot-hmtx-table.hh | 2 +- - src/hb-ot.h | 1 + - util/Makefile.am | 4 +- - util/options.cc | 4 + - 10 files changed, 283 insertions(+), 53 deletions(-) + src/Makefile.am | 3 +- + src/hb-glib.cc | 2 +- + src/hb-icu.cc | 2 +- + src/hb-ot-font.cc | 260 + ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-font.h | 41 ++++++++ + src/hb-ot-hhea-table.hh | 2 +- + src/hb-ot-hmtx-table.hh | 2 +- + src/hb-ot.h | 1 + + src/hb-tt-font.cc | 77 -------------- + util/Makefile.am | 4 +- + util/options.cc | 4 + + 11 files changed, 314 insertions(+), 84 deletions(-) commit 343a0e4e747d93eeeb724c5d585f5ba036a0df84 Author: Behdad Esfahbod @@ -12797,13 +5542,13 @@ Date: Mon Mar 10 14:57:55 2014 -0700 Minor - test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/MANIFEST - | 1 - - test/shaping/texts/in-tree/shaper-sea/script-tai-tham/misc/MANIFEST - | 1 + - .../script-myanmar => shaper-sea/script-tai-tham}/misc/torture.txt - | 0 - 3 files changed, 1 insertion(+), 1 deletion(-) + .../shaper-myanmar/script-myanmar/misc/MANIFEST | 1 - + .../shaper-myanmar/script-myanmar/misc/torture.txt | 23 + ---------------------- + .../shaper-sea/script-tai-tham/misc/MANIFEST | 1 + + .../shaper-sea/script-tai-tham/misc/torture.txt | 23 + ++++++++++++++++++++++ + 4 files changed, 24 insertions(+), 24 deletions(-) commit bb8ffb581b89cf27fb8e0743b81bbda21654233e Author: Behdad Esfahbod @@ -17531,8 +10276,9 @@ Date: Wed Mar 6 20:20:45 2013 -0500 Move valgrind suppressions to the correct directory - test/{ => api}/.valgrind-suppressions | 0 - 1 file changed, 0 insertions(+), 0 deletions(-) + test/.valgrind-suppressions | 0 + test/api/.valgrind-suppressions | 0 + 2 files changed, 0 insertions(+), 0 deletions(-) commit a8ac1d33c731f6200ee472ab6c37a80b72770564 Author: Behdad Esfahbod @@ -18013,25 +10759,37 @@ Date: Tue Feb 19 00:50:46 2013 -0500 Moving files around - test/shaping/texts/in-tree/MANIFEST | + test/shaping/texts/in-tree/MANIFEST | 2 -- - test/shaping/texts/in-tree/shaper-default/MANIFEST | + test/shaping/texts/in-tree/script-default/MANIFEST | + 1 - + test/shaping/texts/in-tree/script-default/misc/MANIFEST | + 1 - + test/shaping/texts/in-tree/script-default/misc/misc.txt | + 1 - + test/shaping/texts/in-tree/shaper-default/MANIFEST | 2 ++ - .../in-tree/{shaper-hangul => shaper-default}/script-hangul/MANIFEST - | 0 - .../{shaper-hangul => shaper-default}/script-hangul/misc/MANIFEST - | 0 - .../{shaper-hangul => shaper-default}/script-hangul/misc/misc.txt - | 0 - .../in-tree/{script-default => shaper-default/script-tibetan}/MANIFEST - | 0 - .../{script-default => shaper-default/script-tibetan}/misc/MANIFEST - | 0 - .../{script-default => shaper-default/script-tibetan}/misc/misc.txt - | 0 - test/shaping/texts/in-tree/shaper-hangul/MANIFEST | + test/shaping/texts/in-tree/shaper-default/script-hangul/MANIFEST | + 1 + + test/shaping/texts/in-tree/shaper-default/script-hangul/misc/MANIFEST | + 1 + + test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt | + 3 +++ + test/shaping/texts/in-tree/shaper-default/script-tibetan/MANIFEST | + 1 + + test/shaping/texts/in-tree/shaper-default/script-tibetan/misc/MANIFEST | + 1 + + test/shaping/texts/in-tree/shaper-default/script-tibetan/misc/misc.txt | + 1 + + test/shaping/texts/in-tree/shaper-hangul/MANIFEST | + 1 - + test/shaping/texts/in-tree/shaper-hangul/script-hangul/MANIFEST | + 1 - + test/shaping/texts/in-tree/shaper-hangul/script-hangul/misc/MANIFEST | 1 - - 9 files changed, 2 insertions(+), 3 deletions(-) + test/shaping/texts/in-tree/shaper-hangul/script-hangul/misc/misc.txt | + 3 --- + 15 files changed, 10 insertions(+), 11 deletions(-) commit b1f440759161cb5a54e1b1b910f3a8383b8e8472 Author: Behdad Esfahbod @@ -18672,28 +11430,33 @@ Date: Tue Feb 12 12:14:10 2013 -0500 src/Makefile.am | 12 +- src/gen-indic-table.py | 9 +- - src/hb-ot-shape-complex-indic-private.hh | 241 +------------ - ...table.hh => hb-ot-shape-complex-indic-table.cc} | 9 +- - src/hb-ot-shape-complex-indic.cc | 239 ++++++++++++ + src/hb-ot-shape-complex-indic-private.hh | 241 +----- + src/hb-ot-shape-complex-indic-table.cc | 869 + ++++++++++++++++++++ + src/hb-ot-shape-complex-indic-table.hh | 872 + --------------------- + src/hb-ot-shape-complex-indic.cc | 239 ++++++ src/hb-ot-shape-complex-myanmar.cc | 2 +- src/hb-ot-shape-complex-private.hh | 28 +- - src/hb-ot-shape-complex-sea-machine.rl | 102 ++++++ - src/hb-ot-shape-complex-sea.cc | 400 - +++++++++++++++++++++ + src/hb-ot-shape-complex-sea-machine.rl | 102 +++ + src/hb-ot-shape-complex-sea.cc | 400 ++++++++++ test/shaping/texts/in-tree/MANIFEST | 1 + .../in-tree/shaper-indic/south-east-asian/MANIFEST | 1 - + .../south-east-asian/script-new-tai-lue/MANIFEST | 1 - + .../script-new-tai-lue/misc/MANIFEST | 1 - + .../script-new-tai-lue/misc/misc.txt | 1 - test/shaping/texts/in-tree/shaper-myanmar/MANIFEST | 1 + test/shaping/texts/in-tree/shaper-sea/MANIFEST | 3 + - .../script-cham}/MANIFEST | 0 - .../script-cham}/misc/MANIFEST | 0 + .../texts/in-tree/shaper-sea/script-cham/MANIFEST | 1 + + .../in-tree/shaper-sea/script-cham/misc/MANIFEST | 1 + .../in-tree/shaper-sea/script-cham/misc/misc.txt | 1 + .../in-tree/shaper-sea/script-new-tai-lue/MANIFEST | 1 + .../shaper-sea/script-new-tai-lue/misc/MANIFEST | 1 + - .../script-new-tai-lue/misc/misc.txt | 0 + .../shaper-sea/script-new-tai-lue/misc/misc.txt | 1 + .../in-tree/shaper-sea/script-tai-tham/MANIFEST | 1 + .../shaper-sea/script-tai-tham/misc/MANIFEST | 1 + .../shaper-sea/script-tai-tham/misc/misc.txt | 2 + - 22 files changed, 792 insertions(+), 263 deletions(-) + 26 files changed, 1661 insertions(+), 1132 deletions(-) commit fb960212063016656dfaba83f072c81d1efc3202 Author: Behdad Esfahbod @@ -18703,23 +11466,29 @@ Date: Tue Feb 12 10:33:58 2013 -0500 test/shaping/texts/in-tree/MANIFEST | 1 + - .../south-east-asian/script-thai => script-default}/MANIFEST - | 0 - .../south-asian/script-tibetan => script-default}/misc/MANIFEST - | 0 - .../south-asian/script-tibetan => script-default}/misc/misc.txt - | 0 + test/shaping/texts/in-tree/script-default/MANIFEST + | 1 + + test/shaping/texts/in-tree/script-default/misc/MANIFEST + | 1 + + test/shaping/texts/in-tree/script-default/misc/misc.txt + | 1 + test/shaping/texts/in-tree/shaper-indic/MANIFEST | 1 - test/shaping/texts/in-tree/shaper-indic/south-asian/MANIFEST | 1 - .../texts/in-tree/shaper-indic/south-asian/script-tibetan/MANIFEST | 1 - + .../texts/in-tree/shaper-indic/south-asian/script-tibetan/misc/MANIFEST + | 1 - + .../texts/in-tree/shaper-indic/south-asian/script-tibetan/misc/misc.txt + | 1 - test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 - + .../texts/in-tree/shaper-indic/south-east-asian/script-thai/MANIFEST + | 1 - .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST | 0 - 9 files changed, 1 insertion(+), 4 deletions(-) + 12 files changed, 4 insertions(+), 7 deletions(-) commit 5676d5d52784e16068ae483103d59111a8081854 Author: Behdad Esfahbod @@ -18842,25 +11611,23 @@ Date: Mon Feb 11 14:24:03 2013 -0500 Shuffle test data around - test/shaping/texts/in-tree/MANIFEST - | 1 + - test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST - | 1 - - .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST - | 1 - - .../south-east-asian => shaper-myanmar}/script-myanmar/MANIFEST - | 0 - .../south-east-asian => shaper-myanmar}/script-myanmar/misc/MANIFEST - | 0 - .../south-east-asian => shaper-myanmar}/script-myanmar/misc/misc.txt - | 0 - .../south-east-asian => shaper-myanmar}/script-myanmar/misc/utn11.txt - | 0 - test/shaping/texts/in-tree/shaper-thai/script-thai/misc/MANIFEST - | 1 + - .../south-east-asian => shaper-thai}/script-thai/misc/misc.txt - | 0 - 9 files changed, 2 insertions(+), 2 deletions(-) + test/shaping/texts/in-tree/MANIFEST | 1 + + .../in-tree/shaper-indic/south-east-asian/MANIFEST | 1 - + .../south-east-asian/script-myanmar/MANIFEST | 1 - + .../south-east-asian/script-myanmar/misc/MANIFEST | 2 -- + .../south-east-asian/script-myanmar/misc/misc.txt | 1 - + .../south-east-asian/script-myanmar/misc/utn11.txt | 34 + ---------------------- + .../south-east-asian/script-thai/misc/MANIFEST | 1 - + .../south-east-asian/script-thai/misc/misc.txt | 11 ------- + .../in-tree/shaper-myanmar/script-myanmar/MANIFEST | 1 + + .../shaper-myanmar/script-myanmar/misc/MANIFEST | 2 ++ + .../shaper-myanmar/script-myanmar/misc/misc.txt | 1 + + .../shaper-myanmar/script-myanmar/misc/utn11.txt | 34 + ++++++++++++++++++++++ + .../in-tree/shaper-thai/script-thai/misc/MANIFEST | 1 + + .../in-tree/shaper-thai/script-thai/misc/misc.txt | 11 +++++++ + 14 files changed, 51 insertions(+), 51 deletions(-) commit 98628cac9f733f2674d6409954cddb7d0634c233 Author: Behdad Esfahbod @@ -19045,11 +11812,12 @@ Date: Mon Feb 4 23:06:50 2013 -0500 Merge check-internal-symbols.sh and check-exported-symbols.sh - src/Makefile.am | 3 +- - src/check-internal-symbols.sh | 34 - ---------------------- - ...{check-exported-symbols.sh => check-symbols.sh} | 16 ++++++++-- - 3 files changed, 14 insertions(+), 39 deletions(-) + src/Makefile.am | 3 +-- + src/check-exported-symbols.sh | 40 ---------------------------------- + src/check-internal-symbols.sh | 34 ----------------------------- + src/check-symbols.sh | 50 + +++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 51 insertions(+), 76 deletions(-) commit ceeae30f47b9d628484ae398bc38f3f60ee8eab4 Author: Behdad Esfahbod @@ -20973,12 +13741,12 @@ Date: Wed Nov 14 15:51:54 2012 -0800 Move Thai shaper into a separate file - src/Makefile.am | 3 +- - ...plex-misc.cc => hb-ot-shape-complex-default.cc} | 114 - ----------------- - src/hb-ot-shape-complex-thai.cc | 141 - +++++++++++++++++++++ - 3 files changed, 143 insertions(+), 115 deletions(-) + src/Makefile.am | 3 +- + src/hb-ot-shape-complex-default.cc | 225 ++++++++++++++++++++++++ + src/hb-ot-shape-complex-misc.cc | 339 + ------------------------------------- + src/hb-ot-shape-complex-thai.cc | 141 +++++++++++++++ + 4 files changed, 368 insertions(+), 340 deletions(-) commit ba82325b7a6311b787ae47f41a56964e2f2cba9f Author: Behdad Esfahbod @@ -23603,35 +16371,37 @@ Date: Fri Aug 10 09:06:30 2012 -0400 [test] Move around - test/shaping/texts/in-tree/shaper-arabic/script-arabic/MANIFEST | - 2 +- - .../texts/in-tree/shaper-arabic/script-arabic/language-urdu/MANIFEST | - 1 + - .../shaper-arabic/script-arabic/{ => language-urdu}/crulp/MANIFEST - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/2grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/3grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/4grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/5grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/6grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/7grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/8grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/LICENSE - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/MANIFEST - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/README | - 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/SOURCES - | 0 - 14 files changed, 2 insertions(+), 1 deletion(-) + .../in-tree/shaper-arabic/script-arabic/MANIFEST | 2 +- + .../shaper-arabic/script-arabic/crulp/MANIFEST | 1 - + .../script-arabic/crulp/ligatures/2grams.txt | 601 -- + .../script-arabic/crulp/ligatures/3grams.txt | 3415 ----------- + .../script-arabic/crulp/ligatures/4grams.txt | 6316 + -------------------- + .../script-arabic/crulp/ligatures/5grams.txt | 5029 + ---------------- + .../script-arabic/crulp/ligatures/6grams.txt | 1542 ----- + .../script-arabic/crulp/ligatures/7grams.txt | 354 -- + .../script-arabic/crulp/ligatures/8grams.txt | 26 - + .../script-arabic/crulp/ligatures/LICENSE | 3 - + .../script-arabic/crulp/ligatures/MANIFEST | 7 - + .../script-arabic/crulp/ligatures/README | 16 - + .../script-arabic/crulp/ligatures/SOURCES | 4 - + .../script-arabic/language-urdu/MANIFEST | 1 + + .../script-arabic/language-urdu/crulp/MANIFEST | 1 + + .../language-urdu/crulp/ligatures/2grams.txt | 601 ++ + .../language-urdu/crulp/ligatures/3grams.txt | 3415 +++++++++++ + .../language-urdu/crulp/ligatures/4grams.txt | 6316 + ++++++++++++++++++++ + .../language-urdu/crulp/ligatures/5grams.txt | 5029 + ++++++++++++++++ + .../language-urdu/crulp/ligatures/6grams.txt | 1542 +++++ + .../language-urdu/crulp/ligatures/7grams.txt | 354 ++ + .../language-urdu/crulp/ligatures/8grams.txt | 26 + + .../language-urdu/crulp/ligatures/LICENSE | 3 + + .../language-urdu/crulp/ligatures/MANIFEST | 7 + + .../language-urdu/crulp/ligatures/README | 16 + + .../language-urdu/crulp/ligatures/SOURCES | 4 + + 26 files changed, 17316 insertions(+), 17315 deletions(-) commit 7a484c601e0958533eb85a6902296733c39537fe Author: Behdad Esfahbod @@ -23906,15 +16676,15 @@ Date: Wed Aug 8 14:33:37 2012 -0400 Minor renaming - src/Makefile.am | - 4 ++-- - ...sition-fallback-private.hh => hb-ot-shape-fallback-private.hh} | - 8 ++++---- - src/{hb-ot-shape-position-fallback.cc => hb-ot-shape-fallback.cc} | - 4 ++-- - src/hb-ot-shape.cc | - 4 ++-- - 4 files changed, 10 insertions(+), 10 deletions(-) + src/Makefile.am | 4 +- + src/hb-ot-shape-fallback-private.hh | 39 ++++ + src/hb-ot-shape-fallback.cc | 276 + +++++++++++++++++++++++++++ + src/hb-ot-shape-position-fallback-private.hh | 39 ---- + src/hb-ot-shape-position-fallback.cc | 276 + --------------------------- + src/hb-ot-shape.cc | 4 +- + 6 files changed, 319 insertions(+), 319 deletions(-) commit 801298b590effd768607bb532dc83c73ba65d16b Author: Behdad Esfahbod @@ -25510,25 +18280,29 @@ Date: Thu Jul 26 17:34:25 2012 -0400 Add global shape_plan. Unused so far. - src/Makefile.am | 15 +- - src/hb-coretext-private.hh | 42 ----- - src/hb-coretext.cc | 6 +- - src/hb-fallback-shape.cc | 62 ++++++- - src/hb-font-private.hh | 12 ++ - src/hb-font.cc | 15 +- - src/hb-old.cc | 109 +++++++++--- - src/hb-ot-shape-private.hh | 8 - - src/hb-ot-shape.cc | 60 ++++++- - ...aphite2-private.hh => hb-shape-plan-private.hh} | 28 +++- - src/hb-shape-plan.cc | 85 ++++++++++ - ...b-fallback-shape-private.hh => hb-shape-plan.h} | 39 +++-- - src/hb-shape.cc | 48 +----- - ...scribe-private.hh => hb-shaper-impl-private.hh} | 20 ++- - src/{hb-old-private.hh => hb-shaper-list.hh} | 30 ++-- - src/hb-shaper-private.hh | 81 +++++++++ - src/hb-uniscribe.cc | 186 - +++++++++++++-------- - 17 files changed, 608 insertions(+), 238 deletions(-) + src/Makefile.am | 15 ++-- + src/hb-coretext-private.hh | 42 --------- + src/hb-coretext.cc | 6 +- + src/hb-fallback-shape-private.hh | 41 --------- + src/hb-fallback-shape.cc | 62 ++++++++++++- + src/hb-font-private.hh | 12 +++ + src/hb-font.cc | 15 +++- + src/hb-graphite2-private.hh | 42 --------- + src/hb-old-private.hh | 40 --------- + src/hb-old.cc | 109 ++++++++++++++++++----- + src/hb-ot-shape-private.hh | 8 -- + src/hb-ot-shape.cc | 60 ++++++++++++- + src/hb-shape-plan-private.hh | 52 +++++++++++ + src/hb-shape-plan.cc | 85 ++++++++++++++++++ + src/hb-shape-plan.h | 60 +++++++++++++ + src/hb-shape.cc | 48 ++-------- + src/hb-shaper-impl-private.hh | 44 +++++++++ + src/hb-shaper-list.hh | 50 +++++++++++ + src/hb-shaper-private.hh | 81 +++++++++++++++++ + src/hb-uniscribe-private.hh | 42 --------- + src/hb-uniscribe.cc | 186 + ++++++++++++++++++++++++--------------- + 21 files changed, 735 insertions(+), 365 deletions(-) commit fa2dfcd560444d8c54b6349ee106134d3536f79b Author: Behdad Esfahbod @@ -27883,11 +20657,13 @@ Date: Tue Jul 3 11:38:46 2012 -0400 test/shaping/texts/in-tree/shaper-thai/MANIFEST | 2 +- test/shaping/texts/in-tree/shaper-thai/misc/MANIFEST | 1 - + test/shaping/texts/in-tree/shaper-thai/misc/misc.txt | + 6 ------ test/shaping/texts/in-tree/shaper-thai/script-thai/MANIFEST | 1 + test/shaping/texts/in-tree/shaper-thai/script-thai/misc/MANIFEST | 1 + - .../shaper-thai/{misc/misc.txt => script-thai/misc/sara-am.txt} | - 6 ++---- - 5 files changed, 5 insertions(+), 6 deletions(-) + test/shaping/texts/in-tree/shaper-thai/script-thai/misc/sara-am.txt | + 4 ++++ + 6 files changed, 7 insertions(+), 8 deletions(-) commit aa116582e69d18777448e7993078e5d6335ddfed Author: Behdad Esfahbod @@ -28929,49 +21705,50 @@ Date: Mon Jun 4 10:21:22 2012 -0400 s/script-punjabi/script-gurmukhi/ - test/shaping/texts/in-tree/shaper-indic/indic/MANIFEST | - 2 +- - .../shaper-indic/indic/{script-punjabi => script-gurmukhi}/MANIFEST - | 0 - .../indic/{script-punjabi => script-gurmukhi}/misc/MANIFEST | - 0 - .../indic/{script-punjabi => script-gurmukhi}/misc/misc.txt | - 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/LICENSE | - 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/MANIFEST | - 0 - .../shaper-indic/indic/{script-punjabi => script-gurmukhi}/utrrs/README - | 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/SOURCES | - 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | - 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | - 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | - 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/codepoint/MANIFEST - | 0 - .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | - 0 - .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | - 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/gpos/MANIFEST - | 0 - .../utrrs/gsub/IndicFontFeatureGSUB.txt | - 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/gsub/MANIFEST - | 0 - 21 files changed, 1 insertion(+), 1 deletion(-) + .../texts/in-tree/shaper-indic/indic/MANIFEST | 2 +- + .../shaper-indic/indic/script-gurmukhi/MANIFEST | 2 + + .../indic/script-gurmukhi/misc/MANIFEST | 1 + + .../indic/script-gurmukhi/misc/misc.txt | 1 + + .../indic/script-gurmukhi/utrrs/LICENSE | 19 +++ + .../indic/script-gurmukhi/utrrs/MANIFEST | 3 + + .../indic/script-gurmukhi/utrrs/README | 13 ++ + .../indic/script-gurmukhi/utrrs/SOURCES | 2 + + .../IndicFontFeatureCodepoint-Consonants.txt | 38 ++++++ + .../IndicFontFeatureCodepoint-DependentVowels.txt | 9 ++ + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 ++ + .../IndicFontFeatureCodepoint-GurmukhiSpecific.txt | 6 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 10 ++ + .../IndicFontFeatureCodepoint-Reserved.txt | 2 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 6 + + .../indic/script-gurmukhi/utrrs/codepoint/MANIFEST | 7 + + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 22 +++ + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 2 + + .../indic/script-gurmukhi/utrrs/gpos/MANIFEST | 2 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 152 + +++++++++++++++++++++ + .../indic/script-gurmukhi/utrrs/gsub/MANIFEST | 1 + + .../shaper-indic/indic/script-punjabi/MANIFEST | 2 - + .../indic/script-punjabi/misc/MANIFEST | 1 - + .../indic/script-punjabi/misc/misc.txt | 1 - + .../indic/script-punjabi/utrrs/LICENSE | 19 --- + .../indic/script-punjabi/utrrs/MANIFEST | 3 - + .../shaper-indic/indic/script-punjabi/utrrs/README | 13 -- + .../indic/script-punjabi/utrrs/SOURCES | 2 - + .../IndicFontFeatureCodepoint-Consonants.txt | 38 ------ + .../IndicFontFeatureCodepoint-DependentVowels.txt | 9 -- + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 -- + .../IndicFontFeatureCodepoint-GurmukhiSpecific.txt | 6 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 10 -- + .../IndicFontFeatureCodepoint-Reserved.txt | 2 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 6 - + .../indic/script-punjabi/utrrs/codepoint/MANIFEST | 7 - + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 22 --- + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 2 - + .../indic/script-punjabi/utrrs/gpos/MANIFEST | 2 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 152 + --------------------- + .../indic/script-punjabi/utrrs/gsub/MANIFEST | 1 - + 41 files changed, 309 insertions(+), 309 deletions(-) commit c1885483120d4b686b2fe95b217dce7248e040b1 Author: Behdad Esfahbod @@ -29277,8 +22054,9 @@ Date: Wed May 23 21:50:43 2012 -0400 +++++++++++++++++++++ .../misc/diacritics/language-persian.txt | 48 ++ .../misc/diacritics/language-urdu.txt | 188 ++++++ - .../misc/{ => diacritics}/ligature-diacritics.txt | 0 - 7 files changed, 965 insertions(+), 1 deletion(-) + .../misc/diacritics/ligature-diacritics.txt | 1 + + .../script-arabic/misc/ligature-diacritics.txt | 1 - + 8 files changed, 966 insertions(+), 2 deletions(-) commit ed2f1363a391add41f10cff18792003583a10257 Author: Behdad Esfahbod @@ -29304,23 +22082,21 @@ Date: Fri May 18 15:04:35 2012 -0400 From: http://people.mozilla.org/~jdaggett/tests/cjkcompat.html - test/shaping/texts/in-tree/shaper-default/MANIFEST | - 3 ++- - .../in-tree/shaper-default/{script-japanese => script-han}/MANIFEST - | 0 - test/shaping/texts/in-tree/shaper-default/script-han/misc/MANIFEST | - 1 + - .../texts/in-tree/shaper-default/script-han/misc/cjk-compat.txt | - 3 +++ - test/shaping/texts/in-tree/shaper-default/script-hiragana/MANIFEST | - 1 + - .../shaper-default/{script-japanese => script-hiragana}/misc/MANIFEST - | 0 - .../{script-japanese => script-hiragana}/misc/kazuraki-liga-lines.txt - | 0 - .../{script-japanese => script-hiragana}/misc/kazuraki-liga.txt - | 0 - 8 files changed, 7 insertions(+), 1 deletion(-) + test/shaping/texts/in-tree/shaper-default/MANIFEST | 3 +- + .../in-tree/shaper-default/script-han/MANIFEST | 1 + + .../shaper-default/script-han/misc/MANIFEST | 1 + + .../shaper-default/script-han/misc/cjk-compat.txt | 3 ++ + .../shaper-default/script-hiragana/MANIFEST | 1 + + .../shaper-default/script-hiragana/misc/MANIFEST | 2 + + .../script-hiragana/misc/kazuraki-liga-lines.txt | 8 ++++ + .../script-hiragana/misc/kazuraki-liga.txt | 53 + ++++++++++++++++++++++ + .../shaper-default/script-japanese/MANIFEST | 1 - + .../shaper-default/script-japanese/misc/MANIFEST | 2 - + .../script-japanese/misc/kazuraki-liga-lines.txt | 8 ---- + .../script-japanese/misc/kazuraki-liga.txt | 53 + ---------------------- + 12 files changed, 71 insertions(+), 65 deletions(-) commit 20fdb0f41d81b226e076a4830d4b0d03da31fc19 Author: Behdad Esfahbod @@ -29467,14 +22243,15 @@ Date: Tue May 15 23:10:39 2012 -0400 [util] Refactor to accommodate for upcoming new tool - util/Makefile.am | 10 +++-- - util/hb-shape.cc | 70 - +++++++++++++++------------------- - util/hb-view.cc | 8 ++-- - util/{hb-view.hh => main-font-text.hh} | 48 +++++++++++------------ - util/shape-consumer.hh | 69 - +++++++++++++++++++++++++++++++++ - 5 files changed, 135 insertions(+), 70 deletions(-) + util/Makefile.am | 10 ++++--- + util/hb-shape.cc | 70 +++++++++++++++++++------------------------ + util/hb-view.cc | 8 +++-- + util/hb-view.hh | 80 + -------------------------------------------------- + util/main-font-text.hh | 80 + ++++++++++++++++++++++++++++++++++++++++++++++++++ + util/shape-consumer.hh | 69 +++++++++++++++++++++++++++++++++++++++++++ + 6 files changed, 191 insertions(+), 126 deletions(-) commit 1d6846db9ebf84561bb30a4e48c6c43184914099 Author: Behdad Esfahbod @@ -31392,24 +24169,25 @@ Date: Thu Apr 12 14:53:53 2012 -0400 More shaper API coming in preparation for plan/planned API. - configure.ac | 6 ++-- - src/Makefile.am | 11 +++---- - src/hb-fallback-shape-private.hh | 9 +++--- - src/hb-fallback-shape.cc | 9 +++--- - src/{hb-ot-shape.h => hb-graphite2-private.hh} | 30 ++++++++---------- - src/hb-graphite2.cc | 5 ++- - src/hb-graphite2.h | 7 ----- - src/hb-ot-shape-private.hh | 8 +++-- - src/hb-ot-shape.cc | 11 +++---- - src/hb-ot.h | 1 - - src/hb-shape.cc | 24 ++++++--------- - src/hb-shape.h | 1 - - src/hb-uniscribe-private.hh | 42 - ++++++++++++++++++++++++++ - src/hb-uniscribe.cc | 9 +++--- - src/hb-uniscribe.h | 7 ----- - util/options.hh | 2 +- - 16 files changed, 96 insertions(+), 86 deletions(-) + configure.ac | 6 ++--- + src/Makefile.am | 11 +++++---- + src/hb-fallback-shape-private.hh | 9 ++++---- + src/hb-fallback-shape.cc | 9 ++++---- + src/hb-graphite2-private.hh | 42 +++++++++++++++++++++++++++++++++++ + src/hb-graphite2.cc | 5 ++--- + src/hb-graphite2.h | 7 ------ + src/hb-ot-shape-private.hh | 8 +++++-- + src/hb-ot-shape.cc | 11 ++++----- + src/hb-ot-shape.h | 48 + ---------------------------------------- + src/hb-ot.h | 1 - + src/hb-shape.cc | 24 ++++++++------------ + src/hb-shape.h | 1 - + src/hb-uniscribe-private.hh | 42 +++++++++++++++++++++++++++++++++++ + src/hb-uniscribe.cc | 9 ++++---- + src/hb-uniscribe.h | 7 ------ + util/options.hh | 2 +- + 17 files changed, 126 insertions(+), 116 deletions(-) commit c6035cf802c60f0526f421f39a55886061df94ee Author: Behdad Esfahbod @@ -31713,17 +24491,23 @@ Date: Sat Apr 7 22:07:23 2012 -0400 Move around - test/shaping/texts/in-tree/MANIFEST - | 1 + - test/shaping/texts/in-tree/shaper-default/MANIFEST - | 1 - - .../in-tree/{shaper-default => shaper-hangul}/script-hangul/MANIFEST - | 0 - .../{shaper-default => shaper-hangul}/script-hangul/misc/MANIFEST - | 0 - .../{shaper-default => shaper-hangul}/script-hangul/misc/misc.txt - | 0 - 5 files changed, 1 insertion(+), 1 deletion(-) + test/shaping/texts/in-tree/MANIFEST | + 1 + + test/shaping/texts/in-tree/shaper-default/MANIFEST | + 1 - + test/shaping/texts/in-tree/shaper-default/script-hangul/MANIFEST | + 1 - + test/shaping/texts/in-tree/shaper-default/script-hangul/misc/MANIFEST | + 1 - + test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt | + 2 -- + test/shaping/texts/in-tree/shaper-hangul/script-hangul/MANIFEST | + 1 + + test/shaping/texts/in-tree/shaper-hangul/script-hangul/misc/MANIFEST | + 1 + + test/shaping/texts/in-tree/shaper-hangul/script-hangul/misc/misc.txt | + 2 ++ + 8 files changed, 5 insertions(+), 5 deletions(-) commit d4cc44716c1e098f8abbc0e495404598026ef242 Author: Behdad Esfahbod @@ -32590,221 +25374,433 @@ Date: Fri Jan 20 17:16:35 2012 -0500 Move - test/shaping/texts/MANIFEST | - 4 +--- - test/shaping/texts/in-tree/MANIFEST | - 3 +++ - test/shaping/texts/{ => in-tree}/shaper-arabic/MANIFEST | 0 - .../{shaper-default => in-tree/shaper-arabic/script-arabic}/MANIFEST | 0 - .../script-syriac => in-tree/shaper-arabic/script-mandaic}/MANIFEST | 0 - .../script-nko => in-tree/shaper-arabic/script-mongolian}/MANIFEST | 0 - .../script-mongolian => in-tree/shaper-arabic/script-nko}/MANIFEST | 0 - .../script-mandaic => in-tree/shaper-arabic/script-syriac}/MANIFEST | 0 - .../{shaper-arabic/script-arabic => in-tree/shaper-default}/MANIFEST | 0 - test/shaping/texts/{ => in-tree}/shaper-indic/MANIFEST | 0 - test/shaping/texts/{ => in-tree}/shaper-indic/indic/MANIFEST | 0 - .../shaper-indic/indic/script-assamese}/MANIFEST | 0 - .../shaper-indic/indic/script-assamese}/utrrs/LICENSE | 0 - .../shaper-indic/indic/script-assamese}/utrrs/MANIFEST | 0 - .../shaper-indic/indic/script-assamese}/utrrs/README | 0 - .../shaper-indic/indic/script-assamese}/utrrs/SOURCES | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-assamese}/utrrs/codepoint/MANIFEST | 0 - .../script-assamese/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 - .../script-assamese/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 - .../shaper-indic/indic/script-assamese}/utrrs/gpos/MANIFEST | 0 - .../indic/script-assamese/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-assamese}/utrrs/gsub/MANIFEST | 0 - .../shaper-indic/indic/script-bengali}/MANIFEST | 0 - .../shaper-indic/indic/script-bengali}/utrrs/LICENSE | 0 - .../shaper-indic/indic/script-bengali}/utrrs/MANIFEST | 0 - .../shaper-indic/indic/script-bengali}/utrrs/README | 0 - .../shaper-indic/indic/script-bengali}/utrrs/SOURCES | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-bengali}/utrrs/codepoint/MANIFEST | 0 - .../script-bengali/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 - .../script-bengali/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 - .../shaper-indic/indic/script-bengali}/utrrs/gpos/MANIFEST | 0 - .../indic/script-bengali/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-bengali}/utrrs/gsub/MANIFEST | 0 - .../shaper-indic/indic/script-devanagari}/MANIFEST | 0 - .../shaper-indic/indic/script-devanagari}/utrrs/LICENSE | 0 - .../shaper-indic/indic/script-devanagari}/utrrs/MANIFEST | 0 - .../shaper-indic/indic/script-devanagari}/utrrs/README | 0 - .../shaper-indic/indic/script-devanagari}/utrrs/SOURCES | 0 - .../codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../codepoint/IndicFontFeatureCodepoint-DevnagariSpecificAddition.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-GenericPunctuation.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-devanagari/utrrs/codepoint/MANIFEST | 0 - .../script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 - .../script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 - .../shaper-indic/indic/script-devanagari}/utrrs/gpos/MANIFEST | 0 - .../indic/script-devanagari/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-devanagari}/utrrs/gsub/MANIFEST | 0 - .../shaper-indic/indic/script-gujarati}/MANIFEST | 0 - .../shaper-indic/indic/script-gujarati}/utrrs/LICENSE | 0 - .../shaper-indic/indic/script-gujarati}/utrrs/MANIFEST | 0 - .../shaper-indic/indic/script-gujarati}/utrrs/README | 0 - .../shaper-indic/indic/script-gujarati}/utrrs/SOURCES | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-gujarati/utrrs/codepoint/MANIFEST | 0 - .../script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 - .../script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 - .../shaper-indic/indic/script-gujarati}/utrrs/gpos/MANIFEST | 0 - .../indic/script-gujarati/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-gujarati}/utrrs/gsub/MANIFEST | 0 - .../shaper-indic/indic/script-kannada}/MANIFEST | 0 - .../shaper-indic/indic/script-kannada}/utrrs/LICENSE | 0 - .../{ => in-tree}/shaper-indic/indic/script-kannada/utrrs/MANIFEST | 0 - .../shaper-indic/indic/script-kannada}/utrrs/README | 0 - .../shaper-indic/indic/script-kannada}/utrrs/SOURCES | 0 - .../codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-kannada/utrrs/codepoint/MANIFEST | 0 - .../script-kannada/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 - .../shaper-indic/indic/script-kannada}/utrrs/gpos/MANIFEST | 0 - .../indic/script-kannada/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-kannada}/utrrs/gsub/MANIFEST | 0 - .../texts/{ => in-tree}/shaper-indic/indic/script-malayalam/MANIFEST | 0 - .../{ => in-tree}/shaper-indic/indic/script-malayalam/utrrs/LICENSE | 0 - .../shaper-indic/indic/script-malayalam}/utrrs/MANIFEST | 0 - .../{ => in-tree}/shaper-indic/indic/script-malayalam/utrrs/README | 0 - .../{ => in-tree}/shaper-indic/indic/script-malayalam/utrrs/SOURCES | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-malayalam}/utrrs/codepoint/MANIFEST | 0 - .../indic/script-malayalam/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-malayalam}/utrrs/gsub/MANIFEST | 0 - .../shaper-indic/indic/script-oriya}/MANIFEST | 0 - .../shaper-indic/indic/script-oriya}/utrrs/LICENSE | 0 - .../shaper-indic/indic/script-oriya}/utrrs/MANIFEST | 0 - .../shaper-indic/indic/script-oriya}/utrrs/README | 0 - .../shaper-indic/indic/script-oriya}/utrrs/SOURCES | 0 - .../codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-OriyaSpecific.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-oriya/utrrs/codepoint/MANIFEST | 0 - .../indic/script-oriya/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-oriya}/utrrs/gsub/MANIFEST | 0 - .../shaper-indic/indic/script-punjabi}/MANIFEST | 0 - .../shaper-indic/indic/script-punjabi}/utrrs/LICENSE | 0 - .../shaper-indic/indic/script-punjabi}/utrrs/MANIFEST | 0 - .../shaper-indic/indic/script-punjabi}/utrrs/README | 0 - .../shaper-indic/indic/script-punjabi}/utrrs/SOURCES | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-punjabi/utrrs/codepoint/MANIFEST | 0 - .../script-punjabi/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 - .../script-punjabi/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 - .../shaper-indic/indic/script-punjabi}/utrrs/gpos/MANIFEST | 0 - .../indic/script-punjabi/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-punjabi}/utrrs/gsub/MANIFEST | 0 - .../shaper-indic/indic/script-sinhala}/MANIFEST | 0 - .../shaper-indic/indic/script-sinhala}/utrrs/LICENSE | 0 - .../shaper-indic/indic/script-sinhala}/utrrs/MANIFEST | 0 - .../shaper-indic/indic/script-sinhala}/utrrs/README | 0 - .../shaper-indic/indic/script-sinhala}/utrrs/SOURCES | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Punctuation.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-sinhala/utrrs/codepoint/MANIFEST | 0 - .../indic/script-sinhala/utrrs/gpos/IndicFontFeatureGPOS.txt | 0 - .../shaper-indic/indic/script-sinhala/utrrs/gpos/MANIFEST | 0 - .../indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Conjunct.txt | 0 - .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Rakaaraansaya.txt | 0 - .../indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Repaya.txt | 0 - .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Special-Cases.txt | 0 - .../utrrs/gsub/IndicFontFeatureGSUB-TouchingLetters.txt | 0 - .../indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Yansaya.txt | 0 - .../indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-sinhala/utrrs/gsub/MANIFEST | 0 - .../shaper-indic/indic/script-tamil}/MANIFEST | 0 - .../shaper-indic/indic/script-tamil}/utrrs/LICENSE | 0 - .../shaper-indic/indic/script-tamil}/utrrs/MANIFEST | 0 - .../shaper-indic/indic/script-tamil}/utrrs/README | 0 - .../shaper-indic/indic/script-tamil}/utrrs/SOURCES | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-CurrencySymbols.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Numerics.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Symbols.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-TamilSymbol.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-tamil/utrrs/codepoint/MANIFEST | 0 - .../indic/script-tamil/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 - .../indic/script-tamil/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 - .../shaper-indic/indic/script-tamil}/utrrs/gpos/MANIFEST | 0 - .../indic/script-tamil/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-tamil}/utrrs/gsub/MANIFEST | 0 - .../shaper-indic/indic/script-telugu}/MANIFEST | 0 - .../shaper-indic/indic/script-telugu}/utrrs/LICENSE | 0 - .../shaper-indic/indic/script-telugu}/utrrs/MANIFEST | 0 - .../shaper-indic/indic/script-telugu}/utrrs/README | 0 - .../shaper-indic/indic/script-telugu}/utrrs/SOURCES | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 - .../shaper-indic/indic/script-telugu}/utrrs/codepoint/MANIFEST | 0 - .../indic/script-telugu/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 - .../shaper-indic/indic/script-telugu}/utrrs/gpos/MANIFEST | 0 - .../indic/script-telugu/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 - .../shaper-indic/indic/script-telugu}/utrrs/gsub/MANIFEST | 0 - 212 files changed, 4 insertions(+), 3 deletions(-) + test/shaping/texts/MANIFEST | 4 +- + test/shaping/texts/in-tree/MANIFEST | 3 + + test/shaping/texts/in-tree/shaper-arabic/MANIFEST | 5 + + .../in-tree/shaper-arabic/script-arabic/MANIFEST | 0 + .../in-tree/shaper-arabic/script-mandaic/MANIFEST | 0 + .../shaper-arabic/script-mongolian/MANIFEST | 0 + .../in-tree/shaper-arabic/script-nko/MANIFEST | 0 + .../in-tree/shaper-arabic/script-syriac/MANIFEST | 0 + test/shaping/texts/in-tree/shaper-default/MANIFEST | 0 + test/shaping/texts/in-tree/shaper-indic/MANIFEST | 1 + + .../texts/in-tree/shaper-indic/indic/MANIFEST | 11 + + .../shaper-indic/indic/script-assamese/MANIFEST | 1 + + .../indic/script-assamese/utrrs/LICENSE | 19 + + .../indic/script-assamese/utrrs/MANIFEST | 3 + + .../indic/script-assamese/utrrs/README | 13 + + .../indic/script-assamese/utrrs/SOURCES | 2 + + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 4 + + .../IndicFontFeatureCodepoint-Consonants.txt | 40 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 10 + + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 11 + + .../IndicFontFeatureCodepoint-Reserved.txt | 2 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 6 + + .../indic/script-assamese/utrrs/codepoint/MANIFEST | 7 + + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 59 + + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 131 ++ + .../indic/script-assamese/utrrs/gpos/MANIFEST | 2 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 139 ++ + .../indic/script-assamese/utrrs/gsub/MANIFEST | 1 + + .../shaper-indic/indic/script-bengali/MANIFEST | 1 + + .../indic/script-bengali/utrrs/LICENSE | 19 + + .../indic/script-bengali/utrrs/MANIFEST | 3 + + .../shaper-indic/indic/script-bengali/utrrs/README | 13 + + .../indic/script-bengali/utrrs/SOURCES | 2 + + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 1 + + .../IndicFontFeatureCodepoint-Consonants.txt | 36 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 10 + + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 12 + + .../IndicFontFeatureCodepoint-Reserved.txt | 2 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 6 + + .../indic/script-bengali/utrrs/codepoint/MANIFEST | 7 + + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 58 + + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 119 ++ + .../indic/script-bengali/utrrs/gpos/MANIFEST | 2 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 215 +++ + .../indic/script-bengali/utrrs/gsub/MANIFEST | 1 + + .../shaper-indic/indic/script-devanagari/MANIFEST | 1 + + .../indic/script-devanagari/utrrs/LICENSE | 19 + + .../indic/script-devanagari/utrrs/MANIFEST | 3 + + .../indic/script-devanagari/utrrs/README | 13 + + .../indic/script-devanagari/utrrs/SOURCES | 2 + + ...icFontFeatureCodepoint-AdditionalConsonants.txt | 8 + + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 4 + + .../IndicFontFeatureCodepoint-Consonants.txt | 45 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 14 + + ...tFeatureCodepoint-DevnagariSpecificAddition.txt | 1 + + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 + + ...ndicFontFeatureCodepoint-GenericPunctuation.txt | 2 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 16 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 10 + + .../script-devanagari/utrrs/codepoint/MANIFEST | 9 + + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 185 +++ + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 185 +++ + .../indic/script-devanagari/utrrs/gpos/MANIFEST | 2 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1367 + ++++++++++++++++++++ + .../indic/script-devanagari/utrrs/gsub/MANIFEST | 1 + + .../shaper-indic/indic/script-gujarati/MANIFEST | 1 + + .../indic/script-gujarati/utrrs/LICENSE | 19 + + .../indic/script-gujarati/utrrs/MANIFEST | 3 + + .../indic/script-gujarati/utrrs/README | 13 + + .../indic/script-gujarati/utrrs/SOURCES | 2 + + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 1 + + .../IndicFontFeatureCodepoint-Consonants.txt | 34 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 12 + + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 13 + + .../IndicFontFeatureCodepoint-Reserved.txt | 2 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 7 + + .../indic/script-gujarati/utrrs/codepoint/MANIFEST | 7 + + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 170 +++ + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 170 +++ + .../indic/script-gujarati/utrrs/gpos/MANIFEST | 2 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1156 + +++++++++++++++++ + .../indic/script-gujarati/utrrs/gsub/MANIFEST | 1 + + .../shaper-indic/indic/script-kannada/MANIFEST | 1 + + .../indic/script-kannada/utrrs/LICENSE | 19 + + .../indic/script-kannada/utrrs/MANIFEST | 3 + + .../shaper-indic/indic/script-kannada/utrrs/README | 13 + + .../indic/script-kannada/utrrs/SOURCES | 2 + + ...icFontFeatureCodepoint-AdditionalConsonants.txt | 1 + + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 4 + + .../IndicFontFeatureCodepoint-Consonants.txt | 40 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 13 + + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 14 + + .../IndicFontFeatureCodepoint-Reserved.txt | 2 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 9 + + .../indic/script-kannada/utrrs/codepoint/MANIFEST | 8 + + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 188 +++ + .../indic/script-kannada/utrrs/gpos/MANIFEST | 1 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 306 +++++ + .../indic/script-kannada/utrrs/gsub/MANIFEST | 1 + + .../shaper-indic/indic/script-malayalam/MANIFEST | 1 + + .../indic/script-malayalam/utrrs/LICENSE | 19 + + .../indic/script-malayalam/utrrs/MANIFEST | 2 + + .../indic/script-malayalam/utrrs/README | 13 + + .../indic/script-malayalam/utrrs/SOURCES | 2 + + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 2 + + .../IndicFontFeatureCodepoint-Consonants.txt | 36 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 12 + + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 14 + + .../IndicFontFeatureCodepoint-Reserved.txt | 2 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 4 + + .../script-malayalam/utrrs/codepoint/MANIFEST | 7 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 254 ++++ + .../indic/script-malayalam/utrrs/gsub/MANIFEST | 1 + + .../shaper-indic/indic/script-oriya/MANIFEST | 1 + + .../shaper-indic/indic/script-oriya/utrrs/LICENSE | 19 + + .../shaper-indic/indic/script-oriya/utrrs/MANIFEST | 2 + + .../shaper-indic/indic/script-oriya/utrrs/README | 13 + + .../shaper-indic/indic/script-oriya/utrrs/SOURCES | 2 + + ...icFontFeatureCodepoint-AdditionalConsonants.txt | 3 + + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 2 + + .../IndicFontFeatureCodepoint-Consonants.txt | 34 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 12 + + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 12 + + .../IndicFontFeatureCodepoint-OriyaSpecific.txt | 2 + + .../IndicFontFeatureCodepoint-Reserved.txt | 2 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 8 + + .../indic/script-oriya/utrrs/codepoint/MANIFEST | 9 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 170 +++ + .../indic/script-oriya/utrrs/gsub/MANIFEST | 1 + + .../shaper-indic/indic/script-punjabi/MANIFEST | 1 + + .../indic/script-punjabi/utrrs/LICENSE | 19 + + .../indic/script-punjabi/utrrs/MANIFEST | 3 + + .../shaper-indic/indic/script-punjabi/utrrs/README | 13 + + .../indic/script-punjabi/utrrs/SOURCES | 2 + + .../IndicFontFeatureCodepoint-Consonants.txt | 38 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 9 + + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 + + .../IndicFontFeatureCodepoint-GurmukhiSpecific.txt | 6 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 10 + + .../IndicFontFeatureCodepoint-Reserved.txt | 2 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 6 + + .../indic/script-punjabi/utrrs/codepoint/MANIFEST | 7 + + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 22 + + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 2 + + .../indic/script-punjabi/utrrs/gpos/MANIFEST | 2 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 152 +++ + .../indic/script-punjabi/utrrs/gsub/MANIFEST | 1 + + .../shaper-indic/indic/script-sinhala/MANIFEST | 1 + + .../indic/script-sinhala/utrrs/LICENSE | 19 + + .../indic/script-sinhala/utrrs/MANIFEST | 3 + + .../shaper-indic/indic/script-sinhala/utrrs/README | 13 + + .../indic/script-sinhala/utrrs/SOURCES | 2 + + .../IndicFontFeatureCodepoint-Consonants.txt | 41 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 17 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 18 + + .../IndicFontFeatureCodepoint-Punctuation.txt | 1 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 3 + + .../indic/script-sinhala/utrrs/codepoint/MANIFEST | 5 + + .../utrrs/gpos/IndicFontFeatureGPOS.txt | 162 +++ + .../indic/script-sinhala/utrrs/gpos/MANIFEST | 1 + + .../utrrs/gsub/IndicFontFeatureGSUB-Conjunct.txt | 1 + + .../gsub/IndicFontFeatureGSUB-Rakaaraansaya.txt | 41 + + .../utrrs/gsub/IndicFontFeatureGSUB-Repaya.txt | 42 + + .../gsub/IndicFontFeatureGSUB-Special-Cases.txt | 2 + + .../gsub/IndicFontFeatureGSUB-TouchingLetters.txt | 1 + + .../utrrs/gsub/IndicFontFeatureGSUB-Yansaya.txt | 41 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1 + + .../indic/script-sinhala/utrrs/gsub/MANIFEST | 7 + + .../shaper-indic/indic/script-tamil/MANIFEST | 1 + + .../shaper-indic/indic/script-tamil/utrrs/LICENSE | 19 + + .../shaper-indic/indic/script-tamil/utrrs/MANIFEST | 3 + + .../shaper-indic/indic/script-tamil/utrrs/README | 13 + + .../shaper-indic/indic/script-tamil/utrrs/SOURCES | 2 + + .../IndicFontFeatureCodepoint-Consonants.txt | 23 + + .../IndicFontFeatureCodepoint-CurrencySymbols.txt | 1 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 11 + + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 12 + + .../IndicFontFeatureCodepoint-Numerics.txt | 3 + + .../IndicFontFeatureCodepoint-Reserved.txt | 2 + + .../IndicFontFeatureCodepoint-Symbols.txt | 6 + + .../IndicFontFeatureCodepoint-TamilSymbol.txt | 1 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 4 + + .../indic/script-tamil/utrrs/codepoint/MANIFEST | 10 + + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 64 + + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 44 + + .../indic/script-tamil/utrrs/gpos/MANIFEST | 2 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 4 + + .../indic/script-tamil/utrrs/gsub/MANIFEST | 1 + + .../shaper-indic/indic/script-telugu/MANIFEST | 1 + + .../shaper-indic/indic/script-telugu/utrrs/LICENSE | 19 + + .../indic/script-telugu/utrrs/MANIFEST | 3 + + .../shaper-indic/indic/script-telugu/utrrs/README | 13 + + .../shaper-indic/indic/script-telugu/utrrs/SOURCES | 2 + + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 2 + + .../IndicFontFeatureCodepoint-Consonants.txt | 38 + + .../IndicFontFeatureCodepoint-DependentVowels.txt | 13 + + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 + + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 14 + + .../IndicFontFeatureCodepoint-Reserved.txt | 2 + + .../IndicFontFeatureCodepoint-VariousSigns.txt | 6 + + .../indic/script-telugu/utrrs/codepoint/MANIFEST | 7 + + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 385 ++++++ + .../indic/script-telugu/utrrs/gpos/MANIFEST | 1 + + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 287 ++++ + .../indic/script-telugu/utrrs/gsub/MANIFEST | 1 + + test/shaping/texts/shaper-arabic/MANIFEST | 5 - + .../texts/shaper-arabic/script-arabic/MANIFEST | 0 + .../texts/shaper-arabic/script-mandaic/MANIFEST | 0 + .../texts/shaper-arabic/script-mongolian/MANIFEST | 0 + .../texts/shaper-arabic/script-nko/MANIFEST | 0 + .../texts/shaper-arabic/script-syriac/MANIFEST | 0 + test/shaping/texts/shaper-default/MANIFEST | 0 + test/shaping/texts/shaper-indic/MANIFEST | 1 - + test/shaping/texts/shaper-indic/indic/MANIFEST | 11 - + .../shaper-indic/indic/script-assamese/MANIFEST | 1 - + .../indic/script-assamese/utrrs/LICENSE | 19 - + .../indic/script-assamese/utrrs/MANIFEST | 3 - + .../indic/script-assamese/utrrs/README | 13 - + .../indic/script-assamese/utrrs/SOURCES | 2 - + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 4 - + .../IndicFontFeatureCodepoint-Consonants.txt | 40 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 10 - + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 11 - + .../IndicFontFeatureCodepoint-Reserved.txt | 2 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 6 - + .../indic/script-assamese/utrrs/codepoint/MANIFEST | 7 - + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 59 - + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 131 -- + .../indic/script-assamese/utrrs/gpos/MANIFEST | 2 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 139 -- + .../indic/script-assamese/utrrs/gsub/MANIFEST | 1 - + .../shaper-indic/indic/script-bengali/MANIFEST | 1 - + .../indic/script-bengali/utrrs/LICENSE | 19 - + .../indic/script-bengali/utrrs/MANIFEST | 3 - + .../shaper-indic/indic/script-bengali/utrrs/README | 13 - + .../indic/script-bengali/utrrs/SOURCES | 2 - + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 1 - + .../IndicFontFeatureCodepoint-Consonants.txt | 36 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 10 - + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 12 - + .../IndicFontFeatureCodepoint-Reserved.txt | 2 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 6 - + .../indic/script-bengali/utrrs/codepoint/MANIFEST | 7 - + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 58 - + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 119 -- + .../indic/script-bengali/utrrs/gpos/MANIFEST | 2 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 215 --- + .../indic/script-bengali/utrrs/gsub/MANIFEST | 1 - + .../shaper-indic/indic/script-devanagari/MANIFEST | 1 - + .../indic/script-devanagari/utrrs/LICENSE | 19 - + .../indic/script-devanagari/utrrs/MANIFEST | 3 - + .../indic/script-devanagari/utrrs/README | 13 - + .../indic/script-devanagari/utrrs/SOURCES | 2 - + ...icFontFeatureCodepoint-AdditionalConsonants.txt | 8 - + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 4 - + .../IndicFontFeatureCodepoint-Consonants.txt | 45 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 14 - + ...tFeatureCodepoint-DevnagariSpecificAddition.txt | 1 - + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 - + ...ndicFontFeatureCodepoint-GenericPunctuation.txt | 2 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 16 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 10 - + .../script-devanagari/utrrs/codepoint/MANIFEST | 9 - + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 185 --- + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 185 --- + .../indic/script-devanagari/utrrs/gpos/MANIFEST | 2 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1367 + -------------------- + .../indic/script-devanagari/utrrs/gsub/MANIFEST | 1 - + .../shaper-indic/indic/script-gujarati/MANIFEST | 1 - + .../indic/script-gujarati/utrrs/LICENSE | 19 - + .../indic/script-gujarati/utrrs/MANIFEST | 3 - + .../indic/script-gujarati/utrrs/README | 13 - + .../indic/script-gujarati/utrrs/SOURCES | 2 - + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 1 - + .../IndicFontFeatureCodepoint-Consonants.txt | 34 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 12 - + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 13 - + .../IndicFontFeatureCodepoint-Reserved.txt | 2 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 7 - + .../indic/script-gujarati/utrrs/codepoint/MANIFEST | 7 - + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 170 --- + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 170 --- + .../indic/script-gujarati/utrrs/gpos/MANIFEST | 2 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1156 + ----------------- + .../indic/script-gujarati/utrrs/gsub/MANIFEST | 1 - + .../shaper-indic/indic/script-kannada/MANIFEST | 1 - + .../indic/script-kannada/utrrs/LICENSE | 19 - + .../indic/script-kannada/utrrs/MANIFEST | 3 - + .../shaper-indic/indic/script-kannada/utrrs/README | 13 - + .../indic/script-kannada/utrrs/SOURCES | 2 - + ...icFontFeatureCodepoint-AdditionalConsonants.txt | 1 - + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 4 - + .../IndicFontFeatureCodepoint-Consonants.txt | 40 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 13 - + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 14 - + .../IndicFontFeatureCodepoint-Reserved.txt | 2 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 9 - + .../indic/script-kannada/utrrs/codepoint/MANIFEST | 8 - + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 188 --- + .../indic/script-kannada/utrrs/gpos/MANIFEST | 1 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 306 ----- + .../indic/script-kannada/utrrs/gsub/MANIFEST | 1 - + .../shaper-indic/indic/script-malayalam/MANIFEST | 1 - + .../indic/script-malayalam/utrrs/LICENSE | 19 - + .../indic/script-malayalam/utrrs/MANIFEST | 2 - + .../indic/script-malayalam/utrrs/README | 13 - + .../indic/script-malayalam/utrrs/SOURCES | 2 - + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 2 - + .../IndicFontFeatureCodepoint-Consonants.txt | 36 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 12 - + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 14 - + .../IndicFontFeatureCodepoint-Reserved.txt | 2 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 4 - + .../script-malayalam/utrrs/codepoint/MANIFEST | 7 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 254 ---- + .../indic/script-malayalam/utrrs/gsub/MANIFEST | 1 - + .../texts/shaper-indic/indic/script-oriya/MANIFEST | 1 - + .../shaper-indic/indic/script-oriya/utrrs/LICENSE | 19 - + .../shaper-indic/indic/script-oriya/utrrs/MANIFEST | 2 - + .../shaper-indic/indic/script-oriya/utrrs/README | 13 - + .../shaper-indic/indic/script-oriya/utrrs/SOURCES | 2 - + ...icFontFeatureCodepoint-AdditionalConsonants.txt | 3 - + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 2 - + .../IndicFontFeatureCodepoint-Consonants.txt | 34 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 12 - + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 12 - + .../IndicFontFeatureCodepoint-OriyaSpecific.txt | 2 - + .../IndicFontFeatureCodepoint-Reserved.txt | 2 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 8 - + .../indic/script-oriya/utrrs/codepoint/MANIFEST | 9 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 170 --- + .../indic/script-oriya/utrrs/gsub/MANIFEST | 1 - + .../shaper-indic/indic/script-punjabi/MANIFEST | 1 - + .../indic/script-punjabi/utrrs/LICENSE | 19 - + .../indic/script-punjabi/utrrs/MANIFEST | 3 - + .../shaper-indic/indic/script-punjabi/utrrs/README | 13 - + .../indic/script-punjabi/utrrs/SOURCES | 2 - + .../IndicFontFeatureCodepoint-Consonants.txt | 38 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 9 - + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 - + .../IndicFontFeatureCodepoint-GurmukhiSpecific.txt | 6 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 10 - + .../IndicFontFeatureCodepoint-Reserved.txt | 2 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 6 - + .../indic/script-punjabi/utrrs/codepoint/MANIFEST | 7 - + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 22 - + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 2 - + .../indic/script-punjabi/utrrs/gpos/MANIFEST | 2 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 152 --- + .../indic/script-punjabi/utrrs/gsub/MANIFEST | 1 - + .../shaper-indic/indic/script-sinhala/MANIFEST | 1 - + .../indic/script-sinhala/utrrs/LICENSE | 19 - + .../indic/script-sinhala/utrrs/MANIFEST | 3 - + .../shaper-indic/indic/script-sinhala/utrrs/README | 13 - + .../indic/script-sinhala/utrrs/SOURCES | 2 - + .../IndicFontFeatureCodepoint-Consonants.txt | 41 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 17 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 18 - + .../IndicFontFeatureCodepoint-Punctuation.txt | 1 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 3 - + .../indic/script-sinhala/utrrs/codepoint/MANIFEST | 5 - + .../utrrs/gpos/IndicFontFeatureGPOS.txt | 162 --- + .../indic/script-sinhala/utrrs/gpos/MANIFEST | 1 - + .../utrrs/gsub/IndicFontFeatureGSUB-Conjunct.txt | 1 - + .../gsub/IndicFontFeatureGSUB-Rakaaraansaya.txt | 41 - + .../utrrs/gsub/IndicFontFeatureGSUB-Repaya.txt | 42 - + .../gsub/IndicFontFeatureGSUB-Special-Cases.txt | 2 - + .../gsub/IndicFontFeatureGSUB-TouchingLetters.txt | 1 - + .../utrrs/gsub/IndicFontFeatureGSUB-Yansaya.txt | 41 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1 - + .../indic/script-sinhala/utrrs/gsub/MANIFEST | 7 - + .../texts/shaper-indic/indic/script-tamil/MANIFEST | 1 - + .../shaper-indic/indic/script-tamil/utrrs/LICENSE | 19 - + .../shaper-indic/indic/script-tamil/utrrs/MANIFEST | 3 - + .../shaper-indic/indic/script-tamil/utrrs/README | 13 - + .../shaper-indic/indic/script-tamil/utrrs/SOURCES | 2 - + .../IndicFontFeatureCodepoint-Consonants.txt | 23 - + .../IndicFontFeatureCodepoint-CurrencySymbols.txt | 1 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 11 - + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 12 - + .../IndicFontFeatureCodepoint-Numerics.txt | 3 - + .../IndicFontFeatureCodepoint-Reserved.txt | 2 - + .../IndicFontFeatureCodepoint-Symbols.txt | 6 - + .../IndicFontFeatureCodepoint-TamilSymbol.txt | 1 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 4 - + .../indic/script-tamil/utrrs/codepoint/MANIFEST | 10 - + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 64 - + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 44 - + .../indic/script-tamil/utrrs/gpos/MANIFEST | 2 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 4 - + .../indic/script-tamil/utrrs/gsub/MANIFEST | 1 - + .../shaper-indic/indic/script-telugu/MANIFEST | 1 - + .../shaper-indic/indic/script-telugu/utrrs/LICENSE | 19 - + .../indic/script-telugu/utrrs/MANIFEST | 3 - + .../shaper-indic/indic/script-telugu/utrrs/README | 13 - + .../shaper-indic/indic/script-telugu/utrrs/SOURCES | 2 - + .../IndicFontFeatureCodepoint-AdditionalVowels.txt | 2 - + .../IndicFontFeatureCodepoint-Consonants.txt | 38 - + .../IndicFontFeatureCodepoint-DependentVowels.txt | 13 - + .../codepoint/IndicFontFeatureCodepoint-Digits.txt | 10 - + ...IndicFontFeatureCodepoint-IndependentVowels.txt | 14 - + .../IndicFontFeatureCodepoint-Reserved.txt | 2 - + .../IndicFontFeatureCodepoint-VariousSigns.txt | 6 - + .../indic/script-telugu/utrrs/codepoint/MANIFEST | 7 - + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 385 ------ + .../indic/script-telugu/utrrs/gpos/MANIFEST | 1 - + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 287 ---- + .../indic/script-telugu/utrrs/gsub/MANIFEST | 1 - + 422 files changed, 7601 insertions(+), 7600 deletions(-) commit 45f640c98d752161e51eda63061d70fad9ab9f68 Author: Behdad Esfahbod @@ -33054,9 +26050,12 @@ Date: Fri Jan 20 13:50:55 2012 -0500 Move hb-diff to test/shaping/ - {util => test/shaping}/hb-diff | 0 - util/Makefile.am | 2 -- - 2 files changed, 2 deletions(-) + test/shaping/hb-diff | 70 + ++++++++++++++++++++++++++++++++++++++++++++++++++++ + util/Makefile.am | 2 -- + util/hb-diff | 70 + ---------------------------------------------------- + 3 files changed, 70 insertions(+), 72 deletions(-) commit f868e1b84d2f73688d4d6558d44610b1ac75ec13 Author: Behdad Esfahbod @@ -33064,11 +26063,14 @@ Date: Fri Jan 20 13:50:05 2012 -0500 Add hb-unicode-decode - test/shaping/{hb-read-manifest => hb-manifest-read} | 0 - .../{hb-update-manifests => hb-manifest-update} | 0 - test/shaping/hb-unicode-decode | 19 - +++++++++++++++++++ - 3 files changed, 19 insertions(+) + test/shaping/hb-manifest-read | 36 + ++++++++++++++++++++++++++++++++++++ + test/shaping/hb-manifest-update | 22 ++++++++++++++++++++++ + test/shaping/hb-read-manifest | 36 + ------------------------------------ + test/shaping/hb-unicode-decode | 19 +++++++++++++++++++ + test/shaping/hb-update-manifests | 22 ---------------------- + 5 files changed, 77 insertions(+), 58 deletions(-) commit 9ab23ef4749b51e60464b9ef2a92739cdc2b36ba Author: Behdad Esfahbod @@ -33207,25 +26209,38 @@ Date: Thu Jan 19 14:52:02 2012 -0500 Rename test/ to test/api/ - configure.ac | 1 + - test/Makefile.am | 128 - +---------------------------------- - test/api/Makefile.am | 131 - ++++++++++++++++++++++++++++++++++++ - test/{ => api}/hb-test.h | 0 - test/{ => api}/test-blob.c | 0 - test/{ => api}/test-buffer.c | 0 - test/{ => api}/test-c.c | 0 - test/{ => api}/test-common.c | 0 - test/{ => api}/test-cplusplus.cc | 0 - test/{ => api}/test-font.c | 0 - test/{ => api}/test-object.c | 0 - test/{ => api}/test-ot-tag.c | 0 - test/{ => api}/test-shape-complex.c | 0 - test/{ => api}/test-shape.c | 0 - test/{ => api}/test-unicode.c | 0 - test/{ => api}/test-version.c | 0 - 16 files changed, 133 insertions(+), 127 deletions(-) + configure.ac | 1 + + test/Makefile.am | 128 +---- + test/api/Makefile.am | 131 +++++ + test/api/hb-test.h | 265 +++++++++ + test/api/test-blob.c | 301 +++++++++++ + test/api/test-buffer.c | 783 +++++++++++++++++++++++++++ + test/api/test-c.c | 58 ++ + test/api/test-common.c | 213 ++++++++ + test/api/test-cplusplus.cc | 30 ++ + test/api/test-font.c | 502 +++++++++++++++++ + test/api/test-object.c | 367 +++++++++++++ + test/api/test-ot-tag.c | 241 +++++++++ + test/api/test-shape-complex.c | 1189 + +++++++++++++++++++++++++++++++++++++++++ + test/api/test-shape.c | 165 ++++++ + test/api/test-unicode.c | 887 ++++++++++++++++++++++++++++++ + test/api/test-version.c | 80 +++ + test/hb-test.h | 265 --------- + test/test-blob.c | 301 ----------- + test/test-buffer.c | 783 --------------------------- + test/test-c.c | 58 -- + test/test-common.c | 213 -------- + test/test-cplusplus.cc | 30 -- + test/test-font.c | 502 ----------------- + test/test-object.c | 367 ------------- + test/test-ot-tag.c | 241 --------- + test/test-shape-complex.c | 1189 + ----------------------------------------- + test/test-shape.c | 165 ------ + test/test-unicode.c | 887 ------------------------------ + test/test-version.c | 80 --- + 29 files changed, 5214 insertions(+), 5208 deletions(-) commit 3b5c22c39b87155f315853fb0c40edcf14e99b54 Author: Behdad Esfahbod @@ -33719,20 +26734,22 @@ Date: Mon Sep 19 16:41:17 2011 -0400 The output format is kinda cryptic. Suggestions welcome. - configure.ac | 6 - - util/Makefile.am | 44 +++-- - util/{common.cc => hb-shape.cc} | 57 ++++-- - util/hb-view.cc | 44 +---- - util/hb-view.hh | 79 ++++++++ - util/helper-cairo.cc | 375 - +++++++++++++++++++++++++++++++++++ - util/{common.hh => helper-cairo.hh} | 64 ++++-- - util/options.cc | 79 ++++++++ - util/options.hh | 53 ++++- - util/view-cairo.cc | 381 - ++---------------------------------- - util/view-cairo.hh | 8 +- - 11 files changed, 717 insertions(+), 473 deletions(-) + configure.ac | 6 - + util/Makefile.am | 44 +++--- + util/common.cc | 43 ------ + util/common.hh | 57 -------- + util/hb-shape.cc | 78 +++++++++++ + util/hb-view.cc | 44 +----- + util/hb-view.hh | 79 +++++++++++ + util/helper-cairo.cc | 375 + ++++++++++++++++++++++++++++++++++++++++++++++++++ + util/helper-cairo.hh | 79 +++++++++++ + util/options.cc | 79 +++++++++++ + util/options.hh | 53 ++++++- + util/view-cairo.cc | 381 + ++------------------------------------------------- + util/view-cairo.hh | 8 +- + 13 files changed, 785 insertions(+), 541 deletions(-) commit eb2d8be7a8ede0c0f5e346cf06516792f83f36f7 Author: Behdad Esfahbod @@ -34325,9 +27342,12 @@ Date: Wed Aug 24 01:31:29 2011 +0200 Minor - src/Makefile.am | 2 +- - src/{hb-uniscribe-shape.cc => hb-uniscribe.cc} | 0 - 2 files changed, 1 insertion(+), 1 deletion(-) + src/Makefile.am | 2 +- + src/hb-uniscribe-shape.cc | 454 + ---------------------------------------------- + src/hb-uniscribe.cc | 454 + ++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 455 insertions(+), 455 deletions(-) commit efde8113258b117ec0a7fbffe6d681442d045c41 Author: Behdad Esfahbod @@ -34349,12 +27369,13 @@ Date: Fri Aug 19 19:59:24 2011 +0200 need to figure out the naming. The generated code doesn't have the right name. - configure.ac | 2 + - src/Makefile.am | 13 +++-- - src/hb-gobject-enums.cc.tmpl | 74 - ++++++++++++++++++++++++++++ - src/{hb-gobject.cc => hb-gobject-structs.cc} | 0 - 4 files changed, 86 insertions(+), 3 deletions(-) + configure.ac | 2 ++ + src/Makefile.am | 13 ++++++-- + src/hb-gobject-enums.cc.tmpl | 74 + ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-gobject-structs.cc | 63 +++++++++++++++++++++++++++++++++++++ + src/hb-gobject.cc | 63 ------------------------------------- + 5 files changed, 149 insertions(+), 66 deletions(-) commit 7d235d272f4c9213f54c9c807fb8fba5068c45b0 Author: Behdad Esfahbod @@ -34444,21 +27465,27 @@ Date: Wed Aug 17 14:19:59 2011 +0200 Rename table files from eg maxp-private.hh to maxp-table.hh - src/Makefile.am | 12 - ++++++------ - src/hb-font.cc | 2 +- - src/{hb-ot-head-private.hh => hb-ot-head-table.hh} | 6 +++--- - ...-ot-layout-gdef-private.hh => hb-ot-layout-gdef-table.hh} | 6 +++--- - ...-ot-layout-gpos-private.hh => hb-ot-layout-gpos-table.hh} | 6 +++--- - ...-ot-layout-gsub-private.hh => hb-ot-layout-gsub-table.hh} | 6 +++--- - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - src/hb-ot-layout.cc | - 8 ++++---- - src/{hb-ot-maxp-private.hh => hb-ot-maxp-table.hh} | 6 +++--- - src/{hb-ot-name-private.hh => hb-ot-name-table.hh} | 6 +++--- - src/hb-uniscribe-shape.cc | 2 +- - src/main.cc | 2 +- - 12 files changed, 32 insertions(+), 32 deletions(-) + src/Makefile.am | 12 +- + src/hb-font.cc | 2 +- + src/hb-ot-head-private.hh | 143 --- + src/hb-ot-head-table.hh | 143 +++ + src/hb-ot-layout-gdef-private.hh | 427 --------- + src/hb-ot-layout-gdef-table.hh | 427 +++++++++ + src/hb-ot-layout-gpos-private.hh | 1633 + ---------------------------------- + src/hb-ot-layout-gpos-table.hh | 1633 + ++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gsub-private.hh | 943 -------------------- + src/hb-ot-layout-gsub-table.hh | 943 ++++++++++++++++++++ + src/hb-ot-layout-gsubgpos-private.hh | 2 +- + src/hb-ot-layout.cc | 8 +- + src/hb-ot-maxp-private.hh | 66 -- + src/hb-ot-maxp-table.hh | 66 ++ + src/hb-ot-name-private.hh | 128 --- + src/hb-ot-name-table.hh | 128 +++ + src/hb-uniscribe-shape.cc | 2 +- + src/main.cc | 2 +- + 18 files changed, 3354 insertions(+), 3354 deletions(-) commit 0b7e4d9f20b3ed947d0c441ca59b43c4097cdb0e Author: Behdad Esfahbod @@ -34660,12 +27687,15 @@ Date: Tue Aug 9 15:03:00 2011 +0200 Move hb-view into util/ - Makefile.am | 3 +-- - configure.ac | 1 + - src/Makefile.am | 13 ------------- - util/Makefile.am | 24 ++++++++++++++++++++++++ - {src => util}/hb-view.cc | 0 - 5 files changed, 26 insertions(+), 15 deletions(-) + Makefile.am | 3 +- + configure.ac | 1 + + src/Makefile.am | 13 -- + src/hb-view.cc | 568 + ------------------------------------------------------- + util/Makefile.am | 24 +++ + util/hb-view.cc | 568 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 6 files changed, 594 insertions(+), 583 deletions(-) commit d753ac78da5619a0a545cdaf7a8e65787e996570 Author: Behdad Esfahbod @@ -36828,10 +29858,13 @@ Date: Wed Jun 1 18:10:10 2011 -0400 Minor rename - src/Makefile.am | 2 +- - src/{gen-arabic-joining-table.py => gen-arabic-table.py} | 2 +- - src/hb-ot-shape-complex-arabic-table.hh | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) + src/Makefile.am | 2 +- + src/gen-arabic-joining-table.py | 83 + --------------------------------- + src/gen-arabic-table.py | 83 + +++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-arabic-table.hh | 2 +- + 4 files changed, 85 insertions(+), 85 deletions(-) commit 0eafce56eed4c5166ee5b97b121a452ffd292a7a Author: Behdad Esfahbod @@ -39123,10 +32156,14 @@ Date: Wed Apr 27 12:15:06 2011 -0400 Rename hb-view.c and test.c to .cc files - src/Makefile.am | 4 ++-- - src/{hb-view.c => hb-view.cc} | 2 +- - src/{test.c => test.cc} | 5 ++++- - 3 files changed, 7 insertions(+), 4 deletions(-) + src/Makefile.am | 4 +- + src/hb-view.c | 540 + -------------------------------------------------------- + src/hb-view.cc | 540 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/test.c | 94 ---------- + src/test.cc | 97 ++++++++++ + 5 files changed, 639 insertions(+), 636 deletions(-) commit eb5796f58897ecfb9d76fd99915bf1a30669a0fa Author: Behdad Esfahbod @@ -39422,32 +32459,43 @@ Date: Wed Apr 20 18:50:27 2011 -0400 So we can liberally use the simple features of C++ that parts of the codebase is already using. - src/Makefile.am | 17 - +++++++++-------- - src/{hb-blob-private.h => hb-blob-private.hh} | 8 ++++---- - src/hb-blob.cc | 4 ++-- - src/hb-buffer-private.hh | 2 +- - src/{hb-common.c => hb-common.cc} | 8 ++++---- - src/{hb-font-private.h => hb-font-private.hh} | 8 ++++---- - src/hb-font.cc | 6 +++--- - src/{hb-ft.c => hb-ft.cc} | 4 ++-- - src/hb-glib.cc | 2 +- - src/hb-icu.cc | 2 +- - src/{hb-object-private.h => hb-object-private.hh} | 10 ++++------ - src/hb-open-type-private.hh | 2 +- - src/hb-ot-layout-gdef-private.hh | 2 +- - src/hb-ot-layout-private.hh | 4 ++-- - ...abic-table.h => hb-ot-shape-complex-arabic-table.hh} | 8 ++++---- - src/hb-ot-shape-complex-arabic.cc | 2 +- - src/hb-ot-shape-complex-private.hh | 2 +- - src/hb-ot-shape-private.hh | 2 +- - src/{hb-ot-tag.c => hb-ot-tag.cc} | 8 ++++---- - src/{hb-private.h => hb-private.hh} | 8 ++++---- - src/hb-shape.cc | 2 +- - src/hb-unicode-private.hh | 2 +- - src/hb-unicode.cc | 2 +- - src/hb-view.c | 6 ++++++ - 24 files changed, 63 insertions(+), 58 deletions(-) + src/Makefile.am | 17 +- + src/hb-blob-private.h | 59 --- + src/hb-blob-private.hh | 59 +++ + src/hb-blob.cc | 4 +- + src/hb-buffer-private.hh | 2 +- + src/hb-common.c | 222 ----------- + src/hb-common.cc | 222 +++++++++++ + src/hb-font-private.h | 97 ----- + src/hb-font-private.hh | 97 +++++ + src/hb-font.cc | 6 +- + src/hb-ft.c | 262 ------------ + src/hb-ft.cc | 262 ++++++++++++ + src/hb-glib.cc | 2 +- + src/hb-icu.cc | 2 +- + src/hb-object-private.h | 134 ------- + src/hb-object-private.hh | 132 +++++++ + src/hb-open-type-private.hh | 2 +- + src/hb-ot-layout-gdef-private.hh | 2 +- + src/hb-ot-layout-private.hh | 4 +- + src/hb-ot-shape-complex-arabic-table.h | 674 + ------------------------------- + src/hb-ot-shape-complex-arabic-table.hh | 674 + +++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-arabic.cc | 2 +- + src/hb-ot-shape-complex-private.hh | 2 +- + src/hb-ot-shape-private.hh | 2 +- + src/hb-ot-tag.c | 677 + -------------------------------- + src/hb-ot-tag.cc | 677 + ++++++++++++++++++++++++++++++++ + src/hb-private.h | 301 -------------- + src/hb-private.hh | 301 ++++++++++++++ + src/hb-shape.cc | 2 +- + src/hb-unicode-private.hh | 2 +- + src/hb-unicode.cc | 2 +- + src/hb-view.c | 6 + + 32 files changed, 2457 insertions(+), 2452 deletions(-) commit f19f4f9b0965ad7473a0f3a1ffcdbf16930e35d4 Author: Behdad Esfahbod @@ -39455,9 +32503,12 @@ Date: Wed Apr 20 18:25:56 2011 -0400 Rename hb-blob.c to hb-blob.cc in preparation of more changes - src/Makefile.am | 2 +- - src/{hb-blob.c => hb-blob.cc} | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + src/Makefile.am | 2 +- + src/hb-blob.c | 356 + -------------------------------------------------------- + src/hb-blob.cc | 356 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 357 insertions(+), 357 deletions(-) commit 04744e73bad22d679986173b5f0d84dbbf49dd57 Author: Behdad Esfahbod @@ -39607,9 +32658,12 @@ Date: Wed Apr 20 02:56:39 2011 -0400 [test] Rename test-types to test-common - test/Makefile.am | 2 +- - test/{test-types.c => test-common.c} | 0 - 2 files changed, 1 insertion(+), 1 deletion(-) + test/Makefile.am | 2 +- + test/test-common.c | 166 + +++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-types.c | 166 + ----------------------------------------------------- + 3 files changed, 167 insertions(+), 167 deletions(-) commit f144a8ea840c6452c1fece2fd988b42a8ea7c5a6 Author: Behdad Esfahbod @@ -39657,18 +32711,23 @@ Date: Wed Apr 20 02:00:47 2011 -0400 unicode: Cleanup implementation - src/Makefile.am | 8 +- - src/hb-buffer-private.hh | 2 +- - src/{hb-glib.c => hb-glib.cc} | 65 +++---- - src/{hb-icu.c => hb-icu.cc} | 30 +-- - src/hb-ot-shape.cc | 14 +- - src/hb-shape.cc | 4 +- - ...{hb-unicode-private.h => hb-unicode-private.hh} | 65 ++++--- - src/{hb-unicode.c => hb-unicode.cc} | 213 - +++++++++------------ - src/hb-unicode.h | 57 +++--- - test/test-unicode.c | 23 ++- - 10 files changed, 237 insertions(+), 244 deletions(-) + src/Makefile.am | 8 +- + src/hb-buffer-private.hh | 2 +- + src/hb-glib.c | 230 ------------------------------------- + src/hb-glib.cc | 231 +++++++++++++++++++++++++++++++++++++ + src/hb-icu.c | 285 + ---------------------------------------------- + src/hb-icu.cc | 285 + ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape.cc | 14 +-- + src/hb-shape.cc | 4 +- + src/hb-unicode-private.h | 77 ------------- + src/hb-unicode-private.hh | 96 ++++++++++++++++ + src/hb-unicode.c | 256 ----------------------------------------- + src/hb-unicode.cc | 223 ++++++++++++++++++++++++++++++++++++ + src/hb-unicode.h | 57 +++++----- + test/test-unicode.c | 23 ++-- + 14 files changed, 892 insertions(+), 899 deletions(-) commit ecfb773829a5d98a4f5456a992f3e5ecd6731435 Author: Behdad Esfahbod @@ -41485,15 +34544,17 @@ Date: Tue Oct 12 16:50:36 2010 -0400 Add hb_ot_complex_shaper_t stuff and start hooking Arabic shaper up - src/Makefile.am | 3 +- - src/hb-ot-map-private.hh | 2 +- - src/hb-ot-map.cc | 2 +- - ...ape-arabic.cc => hb-ot-shape-complex-arabic.cc} | 9 +++ - src/hb-ot-shape-complex-private.hh | 88 - ++++++++++++++++++++++ - src/hb-ot-shape-private.hh | 12 +-- - src/hb-ot-shape.cc | 8 +- - 7 files changed, 107 insertions(+), 17 deletions(-) + src/Makefile.am | 3 +- + src/hb-ot-map-private.hh | 2 +- + src/hb-ot-map.cc | 2 +- + src/hb-ot-shape-arabic.cc | 706 + ------------------------------------ + src/hb-ot-shape-complex-arabic.cc | 715 + +++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-private.hh | 88 +++++ + src/hb-ot-shape-private.hh | 12 +- + src/hb-ot-shape.cc | 8 +- + 8 files changed, 813 insertions(+), 723 deletions(-) commit 605ed468f380f86d642031f6451447d270cb6de1 Author: Behdad Esfahbod @@ -42172,15 +35233,19 @@ Date: Fri Jul 23 15:00:13 2010 -0400 Helps with avoiding many "extern C" declarations in source files. - src/Makefile.am | 4 ++-- - src/check-header-guards.sh | 2 +- - src/{hb-font-private.hh => hb-font-private.h} | 6 +++--- - src/hb-font.cc | 2 +- - src/{hb-ft.cc => hb-ft.c} | 2 +- - src/hb-graphite.cc | 2 +- - src/hb-ot-layout-gdef-private.hh | 2 +- - src/hb-ot-layout-private.hh | 2 +- - 8 files changed, 11 insertions(+), 11 deletions(-) + src/Makefile.am | 4 +- + src/check-header-guards.sh | 2 +- + src/hb-font-private.h | 95 ++++++++++++++++ + src/hb-font-private.hh | 95 ---------------- + src/hb-font.cc | 2 +- + src/hb-ft.c | 240 + +++++++++++++++++++++++++++++++++++++++ + src/hb-ft.cc | 240 + --------------------------------------- + src/hb-graphite.cc | 2 +- + src/hb-ot-layout-gdef-private.hh | 2 +- + src/hb-ot-layout-private.hh | 2 +- + 10 files changed, 342 insertions(+), 342 deletions(-) commit 0dd200d28f51bf4062d8a377432c8977c80cb210 Author: Behdad Esfahbod @@ -43507,24 +36572,32 @@ Date: Wed May 12 18:23:21 2010 -0400 In anticipation for buffer revamp coming. - src/Makefile.am | 16 - ++++++++-------- - src/{hb-buffer-private.h => hb-buffer-private.hh} | 2 +- - src/{hb-buffer.c => hb-buffer.cc} | 14 - +++++++------- - src/hb-common.h | 1 + - src/{hb-font-private.h => hb-font-private.hh} | 2 +- - src/hb-font.cc | 4 ++-- - src/{hb-ft.c => hb-ft.cc} | 8 ++++---- - src/hb-ot-layout-common-private.hh | 2 +- - src/hb-ot-layout-gdef-private.hh | 2 +- - src/hb-ot-layout-gsubgpos-private.hh | 2 +- - src/{hb-ot-layout-private.h => hb-ot-layout-private.hh} | 2 +- - src/hb-ot-layout.cc | 2 +- - src/{hb-ot-shape-private.h => hb-ot-shape-private.hh} | 0 - src/{hb-ot-shape.c => hb-ot-shape.cc} | 4 ++-- - src/{hb-shape.c => hb-shape.cc} | 6 +++--- - 15 files changed, 34 insertions(+), 33 deletions(-) + src/Makefile.am | 16 +- + src/hb-buffer-private.h | 155 --------- + src/hb-buffer-private.hh | 155 +++++++++ + src/hb-buffer.c | 650 + ----------------------------------- + src/hb-buffer.cc | 650 + +++++++++++++++++++++++++++++++++++ + src/hb-common.h | 1 + + src/hb-font-private.h | 92 ----- + src/hb-font-private.hh | 92 +++++ + src/hb-font.cc | 4 +- + src/hb-ft.c | 240 ------------- + src/hb-ft.cc | 240 +++++++++++++ + src/hb-ot-layout-common-private.hh | 2 +- + src/hb-ot-layout-gdef-private.hh | 2 +- + src/hb-ot-layout-gsubgpos-private.hh | 2 +- + src/hb-ot-layout-private.h | 121 ------- + src/hb-ot-layout-private.hh | 121 +++++++ + src/hb-ot-layout.cc | 2 +- + src/hb-ot-shape-private.h | 53 --- + src/hb-ot-shape-private.hh | 53 +++ + src/hb-ot-shape.c | 164 --------- + src/hb-ot-shape.cc | 164 +++++++++ + src/hb-shape.c | 258 -------------- + src/hb-shape.cc | 258 ++++++++++++++ + 23 files changed, 1748 insertions(+), 1747 deletions(-) commit c3df649f258b334e93c7626a43cd8ebfbd5a610e Author: Behdad Esfahbod @@ -46726,21 +39799,24 @@ Date: Mon Nov 2 16:28:39 2009 -0500 Add build system - AUTHORS | 0 - src/COPYING => COPYING | 0 - Makefile.am | 3 + - NEWS | 0 - src/README => README | 0 - src/TODO => TODO | 0 - autogen.sh | 189 - +++++++++++++++++++++++++++++++++++++++++++++++++ - configure.ac | 40 +++++++++++ - git.mk | 184 - +++++++++++++++++++++++++++++++++++++++++++++++ - harfbuzz.pc.in | 11 +++ - src/.gitignore | 1 - - src/Makefile.ng | 11 --- - 12 files changed, 427 insertions(+), 12 deletions(-) + AUTHORS | 0 + COPYING | 17 +++++ + Makefile.am | 3 + + NEWS | 0 + README | 9 +++ + TODO | 6 ++ + autogen.sh | 189 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + configure.ac | 40 ++++++++++++ + git.mk | 184 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + harfbuzz.pc.in | 11 ++++ + src/.gitignore | 1 - + src/COPYING | 17 ----- + src/Makefile.ng | 11 ---- + src/README | 9 --- + src/TODO | 6 -- + 15 files changed, 459 insertions(+), 44 deletions(-) commit c09ed9801ead002d6f8e507ce664b83707b202e9 Author: Behdad Esfahbod @@ -47833,11 +40909,14 @@ Date: Tue Aug 4 22:06:57 2009 -0400 [HB] Rename open-types to open-type; beauty - src/Makefile.am | 2 +- - src/hb-open-file-private.hh | 2 +- - src/{hb-open-types-private.hh => hb-open-type-private.hh} | 0 - src/hb-ot-layout-common-private.hh | 2 +- - 4 files changed, 3 insertions(+), 3 deletions(-) + src/Makefile.am | 2 +- + src/hb-open-file-private.hh | 2 +- + src/hb-open-type-private.hh | 565 + +++++++++++++++++++++++++++++++++++++ + src/hb-open-types-private.hh | 565 + ------------------------------------- + src/hb-ot-layout-common-private.hh | 2 +- + 5 files changed, 568 insertions(+), 568 deletions(-) commit f4b58d3fc2956a9d1b6178588d809c781f7a5c0c Author: Behdad Esfahbod @@ -48234,9 +41313,12 @@ Date: Sun Aug 2 20:06:48 2009 -0400 [HB] Rename hb-font.c to hb-font.cc - src/Makefile.am | 2 +- - src/{hb-font.c => hb-font.cc} | 0 - 2 files changed, 1 insertion(+), 1 deletion(-) + src/Makefile.am | 2 +- + src/hb-font.c | 349 + -------------------------------------------------------- + src/hb-font.cc | 349 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 350 insertions(+), 350 deletions(-) commit 5f5b24f99f52bbc922e238b65c06061ba07c8548 Author: Behdad Esfahbod @@ -48244,18 +41326,26 @@ Date: Sun Aug 2 20:03:12 2009 -0400 [OT] Rename C++ header files from *.h to *.hh - src/Makefile.am | 14 - +++++++------- - src/{hb-open-file-private.h => hb-open-file-private.hh} | 8 ++++---- - src/{hb-open-types-private.h => hb-open-types-private.hh} | 6 +++--- - ...out-common-private.h => hb-ot-layout-common-private.hh} | 8 ++++---- - ...-layout-gdef-private.h => hb-ot-layout-gdef-private.hh} | 8 ++++---- - ...-layout-gpos-private.h => hb-ot-layout-gpos-private.hh} | 8 ++++---- - ...-layout-gsub-private.h => hb-ot-layout-gsub-private.hh} | 8 ++++---- - ...gsubgpos-private.h => hb-ot-layout-gsubgpos-private.hh} | 8 ++++---- - src/hb-ot-layout.cc | 8 ++++---- - src/main.cc | 6 +++--- - 10 files changed, 41 insertions(+), 41 deletions(-) + src/Makefile.am | 14 +- + src/hb-open-file-private.h | 145 ---- + src/hb-open-file-private.hh | 145 ++++ + src/hb-open-types-private.h | 386 ---------- + src/hb-open-types-private.hh | 386 ++++++++++ + src/hb-ot-layout-common-private.h | 447 ----------- + src/hb-ot-layout-common-private.hh | 447 +++++++++++ + src/hb-ot-layout-gdef-private.h | 320 -------- + src/hb-ot-layout-gdef-private.hh | 320 ++++++++ + src/hb-ot-layout-gpos-private.h | 1355 + ---------------------------------- + src/hb-ot-layout-gpos-private.hh | 1355 + ++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gsub-private.h | 751 ------------------- + src/hb-ot-layout-gsub-private.hh | 751 +++++++++++++++++++ + src/hb-ot-layout-gsubgpos-private.h | 773 ------------------- + src/hb-ot-layout-gsubgpos-private.hh | 773 +++++++++++++++++++ + src/hb-ot-layout.cc | 8 +- + src/main.cc | 6 +- + 17 files changed, 4191 insertions(+), 4191 deletions(-) commit 2098a021a826e76ee27d5db74e32738d7d1c3d30 Author: Behdad Esfahbod @@ -48263,15 +41353,15 @@ Date: Sun Aug 2 19:57:00 2009 -0400 [HB] Move OT file handling out of ot-layout - src/Makefile.am | 3 +- - src/hb-open-file-private.h | 145 - +++++++++++++++++++++ - ...yout-open-private.h => hb-open-types-private.h} | 117 - +---------------- - src/hb-ot-layout-common-private.h | 4 +- - src/hb-ot-layout.cc | 2 +- - src/main.cc | 4 +- - 6 files changed, 157 insertions(+), 118 deletions(-) + src/Makefile.am | 3 +- + src/hb-open-file-private.h | 145 +++++++++++ + src/hb-open-types-private.h | 386 +++++++++++++++++++++++++++++ + src/hb-ot-layout-common-private.h | 4 +- + src/hb-ot-layout-open-private.h | 495 + -------------------------------------- + src/hb-ot-layout.cc | 2 +- + src/main.cc | 4 +- + 7 files changed, 539 insertions(+), 500 deletions(-) commit 0ead481a5a8623103565fd7d924666e7342278dd Author: Behdad Esfahbod @@ -48427,14 +41517,15 @@ Date: Sat Aug 1 20:29:22 2009 -0400 [HB] Simplify object creation - src/Makefile.am | 2 +- - src/hb-blob.c | 6 +--- - src/hb-font-private.h | 1 - - src/hb-font.c | 37 - +++++++--------------- - src/{hb-refcount-private.h => hb-object-private.h} | 14 ++++++-- - src/hb-private.h | 2 ++ - 6 files changed, 27 insertions(+), 35 deletions(-) + src/Makefile.am | 2 +- + src/hb-blob.c | 6 +-- + src/hb-font-private.h | 1 - + src/hb-font.c | 37 ++++++------------ + src/hb-object-private.h | 97 + +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-private.h | 2 + + src/hb-refcount-private.h | 87 ------------------------------------------ + 7 files changed, 112 insertions(+), 120 deletions(-) commit c62b503770325819f249885dfc9d4683a69c9efd Author: Behdad Esfahbod @@ -49225,15 +42316,20 @@ Date: Wed May 20 05:42:12 2009 -0400 [HB] Rename harfbuzz-buffer to hb-buffer - src/Makefile.am | 5 +++-- - src/{harfbuzz-buffer-private.h => hb-buffer-private.h} | 8 ++++---- - src/{harfbuzz-buffer.c => hb-buffer.c} | 6 ++---- - src/{harfbuzz-buffer.h => hb-buffer.h} | 8 ++++---- - src/hb-ot-layout-gsubgpos-private.h | 2 +- - src/hb-ot-layout-private.h | 2 +- - src/hb-ot-layout.cc | 5 +++-- - src/hb-ot-layout.h | 2 +- - 8 files changed, 19 insertions(+), 19 deletions(-) + src/Makefile.am | 5 +- + src/harfbuzz-buffer-private.h | 106 ----------- + src/harfbuzz-buffer.c | 349 + ------------------------------------ + src/harfbuzz-buffer.h | 94 ---------- + src/hb-buffer-private.h | 106 +++++++++++ + src/hb-buffer.c | 347 + +++++++++++++++++++++++++++++++++++ + src/hb-buffer.h | 94 ++++++++++ + src/hb-ot-layout-gsubgpos-private.h | 2 +- + src/hb-ot-layout-private.h | 2 +- + src/hb-ot-layout.cc | 5 +- + src/hb-ot-layout.h | 2 +- + 11 files changed, 556 insertions(+), 556 deletions(-) commit b857b49c82782d29d6d189f1a9f4a84d39cd84ea Author: Behdad Esfahbod @@ -50696,7 +43792,8 @@ Date: Thu Jan 24 03:11:09 2008 -0500 Starting public interface - src/{Makefile => Makefile.ng} | 0 + src/Makefile | 11 ----- + src/Makefile.ng | 11 +++++ src/hb-ot-layout-gdef-private.h | 17 ++++---- src/hb-ot-layout-gsub-private.h | 3 +- src/hb-ot-layout-open-private.h | 92 @@ -50705,7 +43802,7 @@ Date: Thu Jan 24 03:11:09 2008 -0500 src/hb-ot-layout.cc | 67 ++++++++++++++++++++++++++++++ src/hb-ot-layout.h | 35 ++++++++++++++-- src/main.cc | 1 + - 8 files changed, 225 insertions(+), 41 deletions(-) + 9 files changed, 236 insertions(+), 52 deletions(-) commit 7d6b95b000ec6cd8ca93113b2d81a049ad2f9bbe Author: Behdad Esfahbod @@ -50785,20 +43882,21 @@ Date: Wed Jan 23 05:00:30 2008 -0500 Clean up file names, add namespace - src/harfbuzz-common.h | 14 - -------------- - src/harfbuzz-gdef.h | 11 - ----------- - src/hb-common.h | 14 - ++++++++++++++ - ...harfbuzz-gdef-private.h => hb-ot-layout-gdef-private.h} | 8 ++++---- - ...harfbuzz-open-private.h => hb-ot-layout-open-private.h} | 10 - +++++----- - src/{harfbuzz-open.h => hb-ot-layout.h} | 12 - ++++++------ - src/{harfbuzz-private.h => hb-private.h} | 6 +++--- - src/main.cc | 4 ++-- - 8 files changed, 34 insertions(+), 45 deletions(-) + src/harfbuzz-common.h | 14 - + src/harfbuzz-gdef-private.h | 213 ----------- + src/harfbuzz-gdef.h | 11 - + src/harfbuzz-open-private.h | 804 + ---------------------------------------- + src/harfbuzz-open.h | 17 - + src/harfbuzz-private.h | 12 - + src/hb-common.h | 14 + + src/hb-ot-layout-gdef-private.h | 213 +++++++++++ + src/hb-ot-layout-open-private.h | 804 + ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout.h | 17 + + src/hb-private.h | 12 + + src/main.cc | 4 +- + 12 files changed, 1062 insertions(+), 1073 deletions(-) commit 1f437e6f47fb6c15761021bd2078f31778f2179c Author: Behdad Esfahbod @@ -51118,24 +44216,26 @@ Date: Thu Oct 25 00:23:46 2007 +0000 and more type renames and moving code around. - src/Makefile.am | 3 +- - src/ftglue.h | 151 - -------------------------------------- - src/harfbuzz-dump-main.c | 48 ++---------- - src/harfbuzz-dump.c | 30 ++++---- - src/harfbuzz-gdef.c | 18 ++--- - src/harfbuzz-global.h | 18 +++++ - src/harfbuzz-gpos-private.h | 2 +- - src/harfbuzz-gpos.c | 90 +++++++++++------------ - src/harfbuzz-gsub-private.h | 2 +- - src/harfbuzz-gsub.c | 64 ++++++++-------- - src/{ftglue.c => harfbuzz-impl.c} | 64 ++++++++-------- - src/harfbuzz-impl.h | 114 ++++++++++++++++++++++++++-- - src/harfbuzz-open-private.h | 14 ++-- - src/harfbuzz-open.c | 32 ++++---- - src/harfbuzz-open.h | 16 ---- - src/harfbuzz.c | 4 +- - 16 files changed, 289 insertions(+), 381 deletions(-) + src/Makefile.am | 3 +- + src/ftglue.c | 287 + -------------------------------------------- + src/ftglue.h | 151 ----------------------- + src/harfbuzz-dump-main.c | 48 +------- + src/harfbuzz-dump.c | 30 ++--- + src/harfbuzz-gdef.c | 18 +-- + src/harfbuzz-global.h | 18 +++ + src/harfbuzz-gpos-private.h | 2 +- + src/harfbuzz-gpos.c | 90 +++++++------- + src/harfbuzz-gsub-private.h | 2 +- + src/harfbuzz-gsub.c | 64 +++++----- + src/harfbuzz-impl.c | 283 + +++++++++++++++++++++++++++++++++++++++++++ + src/harfbuzz-impl.h | 114 ++++++++++++++++-- + src/harfbuzz-open-private.h | 14 +-- + src/harfbuzz-open.c | 32 ++--- + src/harfbuzz-open.h | 16 --- + src/harfbuzz.c | 4 +- + 17 files changed, 542 insertions(+), 634 deletions(-) commit 5716ae278a82d318ddbfeba01d0785d4efbe1454 Author: Behdad Esfahbod @@ -51635,15 +44735,15 @@ Date: Thu Dec 28 06:10:59 2006 -0500 Break and rename, in the layout of old HarfBuzz codebase - src/.gitignore | 1 + - src/Makefile | 2 +- - src/harfbuzz-common.h | 14 +++ - src/{harfbuzz-ng.cc => harfbuzz-open-private.h} | 117 - ++---------------------- - src/harfbuzz-open.h | 13 +++ - src/main.cc | 98 - ++++++++++++++++++++ - 6 files changed, 133 insertions(+), 112 deletions(-) + src/.gitignore | 1 + + src/Makefile | 2 +- + src/harfbuzz-common.h | 14 + + src/harfbuzz-ng.cc | 802 + -------------------------------------------- + src/harfbuzz-open-private.h | 697 ++++++++++++++++++++++++++++++++++++++ + src/harfbuzz-open.h | 13 + + src/main.cc | 98 ++++++ + 7 files changed, 824 insertions(+), 803 deletions(-) commit 3158d84b0dfe5032e7c56c03f2da97b8ab549d94 Author: Behdad Esfahbod @@ -51771,9 +44871,12 @@ Date: Mon Dec 25 10:28:31 2006 -0500 Rename to harfbuzz-ng.cc - src/Makefile | 2 +- - src/{hb-types-private.cc => harfbuzz-ng.cc} | 0 - 2 files changed, 1 insertion(+), 1 deletion(-) + src/Makefile | 2 +- + src/harfbuzz-ng.cc | 513 + ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-types-private.cc | 513 + ------------------------------------------------ + 3 files changed, 514 insertions(+), 514 deletions(-) commit f8ba99f6f322800a915428ffc3b5eaf1be2e6c21 Author: Behdad Esfahbod @@ -52140,48 +45243,52 @@ Date: Fri Mar 31 12:28:09 2006 +0000 * pango/pango-ot-*: Updated to use HarfBuzz symbol names. - src/COPYING | 15 + - src/{FTL.TXT => COPYING.FTL} | 0 - src/COPYING.GPL | 340 ++ - src/FT-license.txt | 28 - - src/Makefile.am | 89 +- - src/README | 44 +- - src/ftglue.c | 88 +- - src/ftglue.h | 68 +- - src/ftxgdef.c | 1225 ------- - src/ftxgdef.h | 224 -- - src/ftxgpos.c | 6199 - ------------------------------- - src/ftxgpos.h | 838 ----- - src/ftxgsub.c | 4533 ----------------------- - src/ftxgsub.h | 594 --- - src/ftxopen.c | 1552 -------- - src/ftxopen.h | 317 -- - src/ftxopenf.h | 166 - - src/harfbuzz-buffer.c | 227 ++ - src/harfbuzz-buffer.h | 106 + - src/{ottest.c => harfbuzz-dump-main.c} | 84 +- - src/{disasm.c => harfbuzz-dump.c} | 186 +- - src/{disasm.h => harfbuzz-dump.h} | 18 +- - src/harfbuzz-gdef-private.h | 101 + - src/harfbuzz-gdef.c | 1228 +++++++ - src/harfbuzz-gdef.h | 127 + - src/harfbuzz-gpos-private.h | 683 ++++ - src/harfbuzz-gpos.c | 6269 - ++++++++++++++++++++++++++++++++ - src/harfbuzz-gpos.h | 168 + - src/harfbuzz-gsub-private.h | 448 +++ - src/harfbuzz-gsub.c | 4581 +++++++++++++++++++++++ - src/harfbuzz-gsub.h | 132 + - src/harfbuzz-impl.h | 64 + - src/harfbuzz-open-private.h | 81 + - src/harfbuzz-open.c | 1426 ++++++++ - src/harfbuzz-open.h | 285 ++ - src/harfbuzz.c | 19 + - src/harfbuzz.h | 23 + - src/otlbuffer.c | 238 -- - src/otlbuffer.h | 103 - - 39 files changed, 16582 insertions(+), 16335 deletions(-) + src/COPYING | 15 + + src/COPYING.FTL | 174 ++ + src/COPYING.GPL | 340 +++ + src/FT-license.txt | 28 - + src/FTL.TXT | 174 -- + src/Makefile.am | 89 +- + src/README | 44 +- + src/disasm.c | 720 ----- + src/disasm.h | 26 - + src/ftglue.c | 88 +- + src/ftglue.h | 68 +- + src/ftxgdef.c | 1225 --------- + src/ftxgdef.h | 224 -- + src/ftxgpos.c | 6199 + ------------------------------------------ + src/ftxgpos.h | 838 ------ + src/ftxgsub.c | 4533 ------------------------------- + src/ftxgsub.h | 594 ---- + src/ftxopen.c | 1552 ----------- + src/ftxopen.h | 317 --- + src/ftxopenf.h | 166 -- + src/harfbuzz-buffer.c | 227 ++ + src/harfbuzz-buffer.h | 106 + + src/harfbuzz-dump-main.c | 272 ++ + src/harfbuzz-dump.c | 720 +++++ + src/harfbuzz-dump.h | 34 + + src/harfbuzz-gdef-private.h | 101 + + src/harfbuzz-gdef.c | 1228 +++++++++ + src/harfbuzz-gdef.h | 127 + + src/harfbuzz-gpos-private.h | 683 +++++ + src/harfbuzz-gpos.c | 6269 + +++++++++++++++++++++++++++++++++++++++++++ + src/harfbuzz-gpos.h | 168 ++ + src/harfbuzz-gsub-private.h | 448 ++++ + src/harfbuzz-gsub.c | 4581 +++++++++++++++++++++++++++++++ + src/harfbuzz-gsub.h | 132 + + src/harfbuzz-impl.h | 64 + + src/harfbuzz-open-private.h | 81 + + src/harfbuzz-open.c | 1426 ++++++++++ + src/harfbuzz-open.h | 285 ++ + src/harfbuzz.c | 19 + + src/harfbuzz.h | 23 + + src/otlbuffer.c | 238 -- + src/otlbuffer.h | 103 - + src/ottest.c | 274 -- + 43 files changed, 17635 insertions(+), 17388 deletions(-) commit dd2a8d4d490df1d310e7553ba6c7c8de661f28a1 Author: Behdad Esfahbod diff --git a/INSTALL b/INSTALL index 2099840..007e939 100644 --- a/INSTALL +++ b/INSTALL @@ -12,8 +12,8 @@ without warranty of any kind. Basic Installation ================== - Briefly, the shell command `./configure && make && make install' -should configure, build, and install this package. The following + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented diff --git a/Makefile.am b/Makefile.am index d56a151..47aeb97 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,14 +4,13 @@ NULL = ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src util test docs win32 +SUBDIRS = src util test docs EXTRA_DIST = \ autogen.sh \ harfbuzz.doap \ Android.mk \ README.python \ - BUILD.md \ $(NULL) MAINTAINERCLEANFILES = \ @@ -21,7 +20,6 @@ MAINTAINERCLEANFILES = \ $(srcdir)/INSTALL \ $(srcdir)/ChangeLog \ $(srcdir)/gtk-doc.make \ - $(srcdir)/m4/gtk-doc.m4 \ $(NULL) diff --git a/Makefile.in b/Makefile.in index e817519..badd4c0 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -224,8 +224,6 @@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DIRECTWRITE_CXXFLAGS = @DIRECTWRITE_CXXFLAGS@ -DIRECTWRITE_LIBS = @DIRECTWRITE_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -235,20 +233,15 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_DEPS = @FREETYPE_DEPS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_DEPS = @GLIB_DEPS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ GOBJECT_LIBS = @GOBJECT_LIBS@ GRAPHITE2_CFLAGS = @GRAPHITE2_CFLAGS@ -GRAPHITE2_DEPS = @GRAPHITE2_DEPS@ GRAPHITE2_LIBS = @GRAPHITE2_LIBS@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ @@ -373,13 +366,12 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = src util test docs win32 +SUBDIRS = src util test docs EXTRA_DIST = \ autogen.sh \ harfbuzz.doap \ Android.mk \ README.python \ - BUILD.md \ $(NULL) MAINTAINERCLEANFILES = \ @@ -389,7 +381,6 @@ MAINTAINERCLEANFILES = \ $(srcdir)/INSTALL \ $(srcdir)/ChangeLog \ $(srcdir)/gtk-doc.make \ - $(srcdir)/m4/gtk-doc.m4 \ $(NULL) @@ -725,10 +716,9 @@ distcheck: dist && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ diff --git a/NEWS b/NEWS index e62b198..c4950e2 100644 --- a/NEWS +++ b/NEWS @@ -1,322 +1,3 @@ -Overview of changes leading to 1.2.7 -Monday, May 2, 2016 -==================================== - -- Blacklist another version of Times New Roman (Bold) Italic from Windows 7. -- Fix Mongolian Free Variation Selectors shaping with certain fonts. -- Fix Tibetan shorthand contractions shaping. -- Improved list of language tag mappings. -- Unbreak build on Windows CE. -- Make 'glyf' table loading lazy in hb-ot-font. - - -Overview of changes leading to 1.2.6 -Friday, April 8, 2016 -==================================== - -- Blacklist GDEF table of another set of Times New Roman (Bold) Italic. -- DirectWrite backend improvements. Note: DirectWrite backend is - exclusively for our internal testing and should NOT be used in any - production system whatsoever. - - -Overview of changes leading to 1.2.5 -Monday, April 4, 2016 -==================================== - -- Fix GDEF mark-filtering-set, which was broken in 1.2.3. - - -Overview of changes leading to 1.2.4 -Thursday, March 17, 2016 -==================================== - -- Synthesize GDEF glyph class for any glyph that does not have one in GDEF. - I really hope we don't discover broken fonts that shape badly with this - change. -- Misc build and other minor fixes. -- API changes: - - Added HB_NDEBUG. It's fine for production systems to define this to - disable high-overhead debugging checks. However, I also reduced the - overhead of those checks, so it's a non-issue right now. You can - forget it. Just not defining anything at all is fine. - - -Overview of changes leading to 1.2.3 -Thursday, February 25, 2016 -==================================== - -- Blacklist GDEF table of certain versions of Times New Roman (Bold) Italic, - due to bug in glyph class of ASCII double-quote character. This should - address "regression" introduced in 1.2.0 when we switched mark zeroing - in most shapers from BY_UNICODE_LATE to BY_GDEF_LATE. - This fourth release in a week should finally stablize things... - -- hb-ot-font's get_glyph() implementation saw some optimizations. Though, - might be really hard to measure in real-world situations. - -- Also, two rather small API changes: - -We now disable some time-consuming internal bookkeeping if built with NDEBUG -defined. This is a first time that we use NDEBUG to disable debug code. If -there exist production systems that do NOT want to enable NDEBUG, please let -me know and I'll add HB_NDEBUG. - -Added get_nominal_glyph() and get_variation_glyph() instead of get_glyph() - -New API: -- hb_font_get_nominal_glyph_func_t -- hb_font_get_variation_glyph_func_t -- hb_font_funcs_set_nominal_glyph_func() -- hb_font_funcs_set_variation_glyph_func() -- hb_font_get_nominal_glyph() -- hb_font_get_variation_glyph() - -Deprecated API: -- hb_font_get_glyph_func_t -- hb_font_funcs_set_glyph_func() - -Clients that implement their own font-funcs are encouraged to replace -their get_glyph() implementation with a get_nominal_glyph() and -get_variation_glyph() pair. The variation version can assume that -variation_selector argument is not zero. Old (deprecated) functions -will continue working indefinitely using internal gymnastics; it is -just more efficient to use the new functions. - - -Overview of changes leading to 1.2.2 -Wednesday, February 24, 2016 -==================================== - -- Fix regression with mark positioning with fonts that have - non-zero mark advances. This was introduced in 1.2.0 while - trying to make mark and cursive attachments to work together. - I have partially reverted that, so this version is much more - like what we had before. All clients who updated to 1.2.0 - should update to this version. - - -Overview of changes leading to 1.2.1 -Tuesday, February 23, 2016 -==================================== - -- CoreText: Fix bug with wrong scale if font scale was changed later. - https://github.com/libass/libass/issues/212 -- CoreText: Drastically speed up font initialization. -- CoreText: Fix tiny leak. -- Group ZWJ/ZWNJ with previous syllable under cluster-level=0. - https://github.com/behdad/harfbuzz/issues/217 -- Add test/shaping/README.md about how to add tests to the suite. - - -Overview of changes leading to 1.2.0 -Friday, February 19, 2016 -==================================== - -- Fix various issues (hangs mostly) in case of memory allocation failure. -- Change mark zeroing types of most shapers from BY_UNICODE_LATE to - BY_GDEF_LATE. This seems to be what Uniscribe does. -- Change mark zeroing of USE shaper from NONE to BY_GDEF_EARLY. That's - what Windows does. -- Allow GPOS cursive connection on marks, and fix the interaction with - mark attachment. This work resulted in some changes to how mark - attachments work. See: - https://github.com/behdad/harfbuzz/issues/211 - https://github.com/behdad/harfbuzz/commit/86c68c7a2c971efe8e35b1f1bd99401dc8b688d2 -- Graphite2 shaper: improved negative advance handling (eg. Nastaliq). -- Add nmake-based build system for Windows. -- Minor speedup. -- Misc. improvements. - - -Overview of changes leading to 1.1.3 -Monday, January 11, 2016 -==================================== - -- Ported Indic shaper to Unicode 8.0 data. -- Universal Shaping Engine fixes. -- Speed up CoreText shaper when font fallback happens in CoreText. -- Documentation improvements, thanks to Khaled Hosny. -- Very rough directwrite shaper for testing, thanks to Ebrahim Byagowi. -- Misc bug fixes. -- New API: - - * Font extents: - hb_font_extents_t - hb_font_get_font_extents_func_t - hb_font_get_font_h_extents_func_t - hb_font_get_font_v_extents_func_t - hb_font_funcs_set_font_h_extents_func - hb_font_funcs_set_font_v_extents_func - hb_font_get_h_extents - hb_font_get_v_extents - hb_font_get_extents_for_direction - - * Buffer message (aka debug): - hb_buffer_message_func_t - hb_buffer_set_message_func() - Actual message protocol to be fleshed out later. - - -Overview of changes leading to 1.1.2 -Wednesday, November 26, 2015 -==================================== - -- Fix badly-broken fallback shaper that affected terminology. - https://github.com/behdad/harfbuzz/issues/187 -- Fix y_scaling in Graphite shaper. -- API changes: - * An unset glyph_h_origin() function in font-funcs now (sensibly) - implies horizontal origin at 0,0. Ie, the nil callback returns - true instead of false. As such, implementations that have a - glyph_h_origin() that simply returns true, can remove that function - with HarfBuzz >= 1.1.2. This results in a tiny speedup. - - -Overview of changes leading to 1.1.1 -Wednesday, November 24, 2015 -==================================== - -- Build fixes, specially for hb-coretext. - - -Overview of changes leading to 1.1.0 -Wednesday, November 18, 2015 -==================================== - -- Implement 'stch' stretch feature for Syriac Abbreviation Mark. - https://github.com/behdad/harfbuzz/issues/141 -- Disable use of decompose_compatibility() callback. -- Implement "shaping" of various Unicode space characters, even - if the font does not support them. - https://github.com/behdad/harfbuzz/issues/153 -- If font does not support U+2011 NO-BREAK HYPHEN, fallback to - U+2010 HYPHEN. -- Changes resulting from libFuzzer continuous fuzzing: - * Reject font tables that need more than 8 edits, - * Bound buffer growth during shaping to 32x, - * Fix assertions and other issues at OOM / buffer max-growth. -- Misc fixes and optimizations. -- API changes: - * All fonts created with hb_font_create() now inherit from - (ie. have parent) hb_font_get_empty(). - - -Overview of changes leading to 1.0.6 -Thursday, October 15, 2015 -==================================== - -- Reduce max nesting level in OT lookups from 8 to 6. - Should not affect any real font as far as I know. -- Fix memory access issue in ot-font. -- Revert default load-flags of fonts created using hb_ft_font_create() - back to FT_LOAD_DEFAULT|FT_LOAD_NO_HINTING. This was changed in - last release (1.0.5), but caused major issues, so revert. - https://github.com/behdad/harfbuzz/issues/143 - - -Overview of changes leading to 1.0.5 -Tuesday, October 13, 2015 -==================================== - -- Fix multiple memory access bugs discovered using libFuzzer. - https://github.com/behdad/harfbuzz/issues/139 - Everyone should upgrade to this version as soon as possible. - We now have continuous fuzzing set up, to avoid issues like - these creeping in again. -- Misc fixes. - -- New API: - * hb_font_set_parent(). - * hb_ft_font_[sg]et_load_flags() - The default flags for fonts created using hb_ft_font_create() - has changed to default to FT_LOAD_DEFAULT now. Previously it - was defaulting to FT_LOAD_DFEAULT|FT_LOAD_NO_HINTING. - -- API changes: - * Fonts now default to units-per-EM as their scale, instead of 0. - * hb_font_create_sub_font() does NOT make parent font immutable - anymore. hb_font_make_immutable() does. - - -Overview of changes leading to 1.0.4 -Wednesday, September 30, 2015 -==================================== - -- Fix minor out-of-bounds read error. - - -Overview of changes leading to 1.0.3 -Tuesday, September 1, 2015 -==================================== - -- Start of user documentation, from Simon Cozens! -- Implement glyph_extents() for TrueType fonts in hb-ot-font. -- Improve GPOS cursive attachments with conflicting lookups. -- More fixes for cluster-level = 1. -- Uniscribe positioning fix. - - -Overview of changes leading to 1.0.2 -Wednesday, August 19, 2015 -==================================== - -- Fix shaping with cluster-level > 0. -- Fix Uniscribe backend font-size scaling. -- Declare dependencies in harfbuzz.pc. - FreeType is not declared though, to avoid bugs in pkg-config - 0.26 with recursive dependencies. -- Slightly improved debug infrastructure. More to come later. -- Misc build fixes. - - -Overview of changes leading to 1.0.1 -Monday, July 27, 2015 -==================================== - -- Fix out-of-bounds access in USE shaper. - - -Overview of changes leading to 1.0.0 -Sunday, July 26, 2015 -==================================== - -- Implement Universal Shaping Engine: - https://www.microsoft.com/typography/OpenTypeDev/USE/intro.htm - http://blogs.windows.com/bloggingwindows/2015/02/23/windows-shapes-the-worlds-languages/ -- Bump version to 1.0.0. The soname was NOT bumped. - - -Overview of changes leading to 0.9.42 -Thursday, July 26, 2015 -===================================== - -- New API to allow for retrieving finer-grained cluster - mappings if the client desires to handle them. Default - behavior is unchanged. -- Fix cluster merging when removing default-ignorables. -- Update to Unicode 8.0 -- hb-graphite2 fixes. -- Misc fixes. -- Removed HB_NO_MERGE_CLUSTERS hack. -- New API: - hb_buffer_cluster_level_t enum - hb_buffer_get_cluster_level() - hb_buffer_set_cluster_level() - hb-shape / hb-view --cluster-level - - -Overview of changes leading to 0.9.41 -Thursday, June 18, 2015 -===================================== - -- Fix hb-coretext with trailing whitespace in right-to-left. -- New API: hb_buffer_reverse_range(). -- Allow implementing atomic ops in config.h. -- Fix hb_language_t in language bindings. -- Misc fixes. - - Overview of changes leading to 0.9.40 Friday, March 20, 2015 ===================================== diff --git a/README b/README index 3fcdfb4..d34bc74 100644 --- a/README +++ b/README @@ -1,6 +1,5 @@ [![Build Status](https://travis-ci.org/behdad/harfbuzz.svg)](https://travis-ci.org/behdad/harfbuzz) [![Coverage Status](https://img.shields.io/coveralls/behdad/harfbuzz.svg)](https://coveralls.io/r/behdad/harfbuzz) -[ABI Tracker](http://abi-laboratory.pro/tracker/timeline/harfbuzz/) This is HarfBuzz, a text shaping library. diff --git a/README.python b/README.python index cd31264..eabdf5b 100644 --- a/README.python +++ b/README.python @@ -1,10 +1,6 @@ To enable HarfBuzz bindings for Python among other languages, make sure -you have latest version of gobject-introspection available. On Ubuntu, -you can install that this way: - - sudo apt-get install libgirepository1.0-dev - -And then run autogen.sh (if building from git), and then: +you have latest version of gobject-introspection compiled, and then +run autogen.sh (if building from git), and then: ./configure --with-gobject --enable-introspection diff --git a/TODO b/TODO index 4f37f60..e1aa39c 100644 --- a/TODO +++ b/TODO @@ -9,14 +9,26 @@ General fixes: - mask propagation? (when ligation, "or" the masks). +- Warn at compile time (and runtime with HB_DEBUG?) if no Unicode / font + funcs found / set. -API issues: -=========== +- Do proper rounding when scaling from font space? May be a non-issue. + +- Misc features: + * init/medi/fina/isol for non-cursive scripts + + +API issues to fix before 1.0: +============================ - API to accept a list of languages? - Add init_func to font_funcs. Adjust ft. +- hb-ft load_flags issues. + +- Add pkg-config files for glue codes (harfbuzz-glib, etc) + - 'const' for getter APIs? (use mutable internally) - Remove hb_ot_shape_glyphs_closure()? diff --git a/aclocal.m4 b/aclocal.m4 index c0e8135..0a02487 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.14.1 -*- Autoconf -*- +# generated automatically by aclocal 1.14 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -132,7 +132,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14.1], [], +m4_if([$1], [1.14], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -148,7 +148,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14.1])dnl +[AM_AUTOMAKE_VERSION([1.14])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) diff --git a/config.h.in b/config.h.in index c4ca473..35395c3 100644 --- a/config.h.in +++ b/config.h.in @@ -15,21 +15,12 @@ /* Have Core Text backend */ #undef HAVE_CORETEXT -/* Have DirectWrite library */ -#undef HAVE_DIRECTWRITE - /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Define to 1 if you have the header file. */ -#undef HAVE_DWRITE_H - /* Have simple TrueType Layout backend */ #undef HAVE_FALLBACK -/* Have fontconfig library */ -#undef HAVE_FONTCONFIG - /* Have FreeType 2 library */ #undef HAVE_FREETYPE @@ -48,9 +39,6 @@ /* Have ICU library */ #undef HAVE_ICU -/* Use hb-icu Unicode callbacks */ -#undef HAVE_ICU_BUILTIN - /* Have Intel __sync_* atomic primitives */ #undef HAVE_INTEL_ATOMIC_PRIMITIVES @@ -126,8 +114,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_WINDOWS_H -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ +/* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Define to the address where bug reports for this package should be sent. */ diff --git a/config.sub b/config.sub index 9633db7..8b612ab 100755 --- a/config.sub +++ b/config.sub @@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2013 Free Software Foundation, Inc. -timestamp='2013-08-10' +timestamp='2013-04-24' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -257,7 +257,7 @@ case $basic_machine in | avr | avr32 \ | be32 | be64 \ | bfin \ - | c4x | c8051 | clipper \ + | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ @@ -372,7 +372,7 @@ case $basic_machine in | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ + | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ @@ -794,7 +794,7 @@ case $basic_machine in os=-mingw64 ;; mingw32) - basic_machine=i686-pc + basic_machine=i386-pc os=-mingw32 ;; mingw32ce) @@ -830,7 +830,7 @@ case $basic_machine in basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) - basic_machine=i686-pc + basic_machine=i386-pc os=-msys ;; mvs) @@ -1546,9 +1546,6 @@ case $basic_machine in c4x-* | tic4x-*) os=-coff ;; - c8051-*) - os=-elf - ;; hexagon-*) os=-elf ;; diff --git a/configure b/configure index 1b45257..1c08cae 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HarfBuzz 1.2.7. +# Generated by GNU Autoconf 2.69 for HarfBuzz 0.9.40. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HarfBuzz' PACKAGE_TARNAME='harfbuzz' -PACKAGE_VERSION='1.2.7' -PACKAGE_STRING='HarfBuzz 1.2.7' +PACKAGE_VERSION='0.9.40' +PACKAGE_STRING='HarfBuzz 0.9.40' PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz' PACKAGE_URL='http://harfbuzz.org/' @@ -641,10 +641,6 @@ HAVE_CORETEXT_FALSE HAVE_CORETEXT_TRUE CORETEXT_LIBS CORETEXT_CFLAGS -HAVE_DIRECTWRITE_FALSE -HAVE_DIRECTWRITE_TRUE -DIRECTWRITE_LIBS -DIRECTWRITE_CXXFLAGS HAVE_UNISCRIBE_FALSE HAVE_UNISCRIBE_TRUE UNISCRIBE_LIBS @@ -653,25 +649,15 @@ HAVE_FREETYPE_FALSE HAVE_FREETYPE_TRUE FREETYPE_LIBS FREETYPE_CFLAGS -FREETYPE_DEPS HAVE_GRAPHITE2_FALSE HAVE_GRAPHITE2_TRUE GRAPHITE2_LIBS GRAPHITE2_CFLAGS -GRAPHITE2_DEPS -HAVE_UCDN_FALSE -HAVE_UCDN_TRUE -HAVE_ICU_BUILTIN_FALSE -HAVE_ICU_BUILTIN_TRUE HAVE_ICU_FALSE HAVE_ICU_TRUE ICU_CONFIG ICU_LIBS ICU_CFLAGS -HAVE_FONTCONFIG_FALSE -HAVE_FONTCONFIG_TRUE -FONTCONFIG_LIBS -FONTCONFIG_CFLAGS HAVE_CAIRO_FT_FALSE HAVE_CAIRO_FT_TRUE CAIRO_FT_LIBS @@ -680,6 +666,8 @@ HAVE_CAIRO_FALSE HAVE_CAIRO_TRUE CAIRO_LIBS CAIRO_CFLAGS +HAVE_UCDN_FALSE +HAVE_UCDN_TRUE HAVE_INTROSPECTION_FALSE HAVE_INTROSPECTION_TRUE INTROSPECTION_MAKEFILE @@ -699,7 +687,6 @@ HAVE_GLIB_FALSE HAVE_GLIB_TRUE GLIB_LIBS GLIB_CFLAGS -GLIB_DEPS HAVE_FALLBACK_FALSE HAVE_FALLBACK_TRUE HAVE_OT_FALSE @@ -882,12 +869,10 @@ with_glib with_gobject enable_introspection with_cairo -with_fontconfig with_icu with_graphite2 with_freetype with_uniscribe -with_directwrite with_coretext ' ac_precious_vars='build_alias @@ -914,8 +899,6 @@ CAIRO_CFLAGS CAIRO_LIBS CAIRO_FT_CFLAGS CAIRO_FT_LIBS -FONTCONFIG_CFLAGS -FONTCONFIG_LIBS ICU_CFLAGS ICU_LIBS GRAPHITE2_CFLAGS @@ -1462,7 +1445,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HarfBuzz 1.2.7 to adapt to many kinds of systems. +\`configure' configures HarfBuzz 0.9.40 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1532,7 +1515,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HarfBuzz 1.2.7:";; + short | recursive ) echo "Configuration of HarfBuzz 0.9.40:";; esac cat <<\_ACEOF @@ -1563,8 +1546,8 @@ Optional Packages: --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sysroot=DIR Search for dependent libraries within DIR - (or the compiler's sysroot if not specified). + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). --with-html-dir=PATH path to installed docs --with-glib=[yes/no/auto] Use glib [default=auto] @@ -1572,9 +1555,7 @@ Optional Packages: Use gobject [default=auto] --with-cairo=[yes/no/auto] Use cairo [default=auto] - --with-fontconfig=[yes/no/auto] - Use fontconfig [default=auto] - --with-icu=[yes/no/builtin/auto] + --with-icu=[yes/no/auto] Use ICU [default=auto] --with-graphite2=[yes/no/auto] Use the graphite2 library [default=no] @@ -1582,9 +1563,6 @@ Optional Packages: Use the FreeType library [default=auto] --with-uniscribe=[yes/no/auto] Use the Uniscribe library [default=no] - --with-directwrite=[yes/no/auto] - Use the DirectWrite library (experimental) - [default=no] --with-coretext=[yes/no/auto] Use CoreText [default=no] @@ -1618,10 +1596,6 @@ Some influential environment variables: C compiler flags for CAIRO_FT, overriding pkg-config CAIRO_FT_LIBS linker flags for CAIRO_FT, overriding pkg-config - FONTCONFIG_CFLAGS - C compiler flags for FONTCONFIG, overriding pkg-config - FONTCONFIG_LIBS - linker flags for FONTCONFIG, overriding pkg-config ICU_CFLAGS C compiler flags for ICU, overriding pkg-config ICU_LIBS linker flags for ICU, overriding pkg-config GRAPHITE2_CFLAGS @@ -1700,7 +1674,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HarfBuzz configure 1.2.7 +HarfBuzz configure 0.9.40 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2370,97 +2344,6 @@ rm -f conftest.val } # ac_fn_c_compute_int -# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES -# --------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_cxx_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ------------------------------------------------------------------------- ## -## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz ## -## ------------------------------------------------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_cxx_check_header_mongrel - # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache @@ -2518,7 +2401,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HarfBuzz $as_me 1.2.7, which was +It was created by HarfBuzz $as_me 0.9.40, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3387,7 +3270,7 @@ fi # Define the identity of the package. PACKAGE='harfbuzz' - VERSION='1.2.7' + VERSION='0.9.40' # Some tools Automake needs. @@ -3420,47 +3303,16 @@ AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar plaintar pax cpio none' - -# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 -$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } - if test $am_uid -le $am_max_uid; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - _am_tools=none - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 -$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } - if test $am_gid -le $am_max_gid; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - _am_tools=none - fi +_am_tools='gnutar pax cpio none' + - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 -$as_echo_n "checking how to create a ustar tar archive... " >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 +$as_echo_n "checking how to create a pax tar archive... " >&6; } # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_ustar-$_am_tools} + _am_tools=${am_cv_prog_tar_pax-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in @@ -3472,8 +3324,8 @@ $as_echo_n "checking how to create a ustar tar archive... " >&6; } echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break done - am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__tar="$_am_tar --format=posix -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=posix -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) @@ -3485,14 +3337,14 @@ $as_echo_n "checking how to create a ustar tar archive... " >&6; } am__untar='tar xf -' ;; pax) - am__tar='pax -L -x ustar -w "$$tardir"' - am__tar_='pax -L -x ustar -w "$tardir"' + am__tar='pax -L -x pax -w "$$tardir"' + am__tar_='pax -L -x pax -w "$tardir"' am__untar='pax -r' ;; cpio) - am__tar='find "$$tardir" -print | cpio -o -H ustar -L' - am__tar_='find "$tardir" -print | cpio -o -H ustar -L' - am__untar='cpio -i -H ustar -d' + am__tar='find "$$tardir" -print | cpio -o -H pax -L' + am__tar_='find "$tardir" -print | cpio -o -H pax -L' + am__untar='cpio -i -H pax -d' ;; none) am__tar=false @@ -3503,7 +3355,7 @@ $as_echo_n "checking how to create a ustar tar archive... " >&6; } # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. - test -n "${am_cv_prog_tar_ustar}" && break + test -n "${am_cv_prog_tar_pax}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir @@ -3531,14 +3383,14 @@ $as_echo_n "checking how to create a ustar tar archive... " >&6; } done rm -rf conftest.dir - if ${am_cv_prog_tar_ustar+:} false; then : + if ${am_cv_prog_tar_pax+:} false; then : $as_echo_n "(cached) " >&6 else - am_cv_prog_tar_ustar=$_am_tool + am_cv_prog_tar_pax=$_am_tool fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 -$as_echo "$am_cv_prog_tar_ustar" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 +$as_echo "$am_cv_prog_tar_pax" >&6; } @@ -4855,8 +4707,8 @@ esac -macro_version='2.4.2' -macro_revision='1.3337' +macro_version='2.4.2.418' +macro_revision='2.4.2.418' @@ -4870,7 +4722,7 @@ macro_revision='1.3337' -ltmain="$ac_aux_dir/ltmain.sh" +ltmain=$ac_aux_dir/ltmain.sh # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || @@ -4990,7 +4842,7 @@ func_echo_all () $ECHO "" } -case "$ECHO" in +case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 @@ -5313,19 +5165,19 @@ test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld -if test "$GCC" = yes; then +if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw + # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; @@ -5339,7 +5191,7 @@ $as_echo_n "checking for ld used by $CC... " >&6; } while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done - test -z "$LD" && LD="$ac_prog" + test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. @@ -5350,7 +5202,7 @@ $as_echo_n "checking for ld used by $CC... " >&6; } with_gnu_ld=unknown ;; esac -elif test "$with_gnu_ld" = yes; then +elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else @@ -5361,32 +5213,32 @@ if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" + lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } @@ -5429,33 +5281,33 @@ if ${lt_cv_path_NM+:} false; then : else if test -n "$NM"; then # Let the user override the test. - lt_cv_path_NM="$NM" + lt_cv_path_NM=$NM else - lt_nm_to_check="${ac_tool_prefix}nm" + lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" - break + break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" - break + break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but @@ -5466,15 +5318,15 @@ else esac fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : @@ -5580,9 +5432,9 @@ esac fi fi - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) - DUMPBIN="$DUMPBIN -symbols" + DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: @@ -5590,8 +5442,8 @@ fi esac fi - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" + if test : != "$DUMPBIN"; then + NM=$DUMPBIN fi fi test -z "$NM" && NM=nm @@ -5642,7 +5494,7 @@ if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 - teststring="ABCD" + teststring=ABCD case $build_os in msdosdjgpp*) @@ -5682,7 +5534,7 @@ else lt_cv_sys_max_cmd_len=8192; ;; - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -5733,22 +5585,22 @@ else *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ - test undefined != "$lt_cv_sys_max_cmd_len"; then + test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do + for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough + test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring @@ -5766,7 +5618,7 @@ else fi -if test -n $lt_cv_sys_max_cmd_len ; then +if test -n "$lt_cv_sys_max_cmd_len"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else @@ -5784,30 +5636,6 @@ max_cmd_len=$lt_cv_sys_max_cmd_len : ${MV="mv -f"} : ${RM="rm -f"} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 -$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 -$as_echo "$xsi_shell" >&6; } - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 -$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } -lt_shell_append=no -( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 -$as_echo "$lt_shell_append" >&6; } - - if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else @@ -5930,13 +5758,13 @@ esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) - if test "$GCC" != yes; then + if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi @@ -6064,13 +5892,13 @@ lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. -# `unknown' -- same as none, but documents that we really don't know. +# 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path -# which responds to the $file_magic_cmd with a given extended regex. -# If you have `file' or equivalent on your system and you're not sure -# whether `pass_all' will *always* work, you probably want this one. +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) @@ -6097,8 +5925,7 @@ mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. - # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. - if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else @@ -6176,7 +6003,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd* | netbsdelf*-gnu) +netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else @@ -6194,8 +6021,8 @@ newos6*) lt_cv_deplibs_check_method=pass_all ;; -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' @@ -6405,8 +6232,8 @@ else case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib @@ -6418,7 +6245,7 @@ cygwin* | mingw* | pw32* | cegcc*) ;; *) # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" + lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac @@ -6572,7 +6399,7 @@ if ac_fn_c_try_compile "$LINENO"; then : ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - if test "$ac_status" -eq 0; then + if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 @@ -6580,7 +6407,7 @@ if ac_fn_c_try_compile "$LINENO"; then : ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - if test "$ac_status" -ne 0; then + if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi @@ -6593,7 +6420,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } -if test "x$lt_cv_ar_at_file" = xno; then +if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file @@ -6810,7 +6637,7 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in - openbsd*) + bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) @@ -6900,7 +6727,7 @@ cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; @@ -6933,14 +6760,44 @@ case `$NM -V 2>&1` in symcode='[ABCDGIRSTW]' ;; esac +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= @@ -6958,21 +6815,24 @@ for ac_symprfx in "" "_"; do # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" @@ -7020,11 +6880,11 @@ _LT_EOF if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST -#elif defined(__osf__) +#elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else @@ -7050,7 +6910,7 @@ lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; @@ -7070,13 +6930,13 @@ _LT_EOF mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" + LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext}; then + test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS @@ -7097,7 +6957,7 @@ _LT_EOF rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then + if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= @@ -7150,6 +7010,16 @@ fi + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } @@ -7162,9 +7032,9 @@ fi lt_sysroot= -case ${with_sysroot} in #( +case $with_sysroot in #( yes) - if test "$GCC" = yes; then + if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( @@ -7174,8 +7044,8 @@ case ${with_sysroot} in #( no|'') ;; #( *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 -$as_echo "${with_sysroot}" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac @@ -7192,13 +7062,14 @@ if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes +test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 @@ -7207,24 +7078,25 @@ ia64-*-hpux*) test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) - HPUX_IA64_MODE="32" + HPUX_IA64_MODE=32 ;; *ELF-64*) - HPUX_IA64_MODE="64" + HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - if test "$lt_cv_prog_gnu_ld" = yes; then + if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" @@ -7253,9 +7125,50 @@ ia64-*-hpux*) rm -rf conftest* ;; +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 @@ -7278,10 +7191,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) ;; esac ;; - powerpc64le-*) + powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; - powerpc64-*) + powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -7300,10 +7213,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - powerpcle-*) + powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; - powerpc-*) + powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) @@ -7321,7 +7234,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" + SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } @@ -7361,13 +7274,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } - if test x"$lt_cv_cc_needs_belf" != x"yes"; then + if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" + CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 @@ -7379,7 +7293,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } case $lt_cv_prog_gnu_ld in yes*) case $host in - i?86-*-solaris*) + i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) @@ -7388,7 +7302,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" + LD=${LD-ld}_sol2 fi ;; *) @@ -7404,7 +7318,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } ;; esac -need_locks="$enable_libtool_lock" +need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. @@ -7515,7 +7429,7 @@ else fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } -if test "x$lt_cv_path_mainfest_tool" != xyes; then +if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi @@ -8018,7 +7932,7 @@ if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then + if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the @@ -8036,7 +7950,7 @@ else cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 @@ -8075,7 +7989,7 @@ else fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 @@ -8104,7 +8018,7 @@ _LT_EOF _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 @@ -8117,32 +8031,32 @@ fi $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then + if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -8444,14 +8358,14 @@ if test "${enable_static+set}" = set; then : *) enable_static=no # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac else @@ -8482,14 +8396,14 @@ if test "${enable_shared+set}" = set; then : *) enable_shared=no # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac else @@ -8514,14 +8428,14 @@ if test "${with_pic+set}" = set; then : *) pic_mode=default # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac else @@ -8529,8 +8443,6 @@ else fi -test -z "$pic_mode" && pic_mode=default - @@ -8546,14 +8458,14 @@ if test "${enable_fast_install+set}" = set; then : *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac else @@ -8571,7 +8483,7 @@ fi # This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" +LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' @@ -8620,7 +8532,7 @@ test -z "$LN_S" && LN_S="ln -s" -if test -n "${ZSH_VERSION+set}" ; then +if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi @@ -8659,7 +8571,7 @@ aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then + if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi @@ -8670,14 +8582,14 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a `.a' archive for static linking (except MSVC, +# All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a -with_gnu_ld="$lt_cv_prog_gnu_ld" +with_gnu_ld=$lt_cv_prog_gnu_ld -old_CC="$CC" -old_CFLAGS="$CFLAGS" +old_CC=$CC +old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc @@ -8709,22 +8621,22 @@ if ${lt_cv_path_MAGIC_CMD+:} false; then : else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/${ac_tool_prefix}file; then - lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : @@ -8747,13 +8659,13 @@ _LT_EOF break fi done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } @@ -8775,22 +8687,22 @@ if ${lt_cv_path_MAGIC_CMD+:} false; then : else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : @@ -8813,13 +8725,13 @@ _LT_EOF break fi done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } @@ -8840,7 +8752,7 @@ esac # Use C for the default configuration in the libtool script -lt_save_CC="$CC" +lt_save_CC=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -8902,7 +8814,7 @@ if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= -if test "$GCC" = yes; then +if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; @@ -8918,7 +8830,7 @@ else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins @@ -8948,7 +8860,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } -if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : @@ -8966,17 +8878,18 @@ lt_prog_compiler_pic= lt_prog_compiler_static= - if test "$GCC" = yes; then + if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi + lt_prog_compiler_pic='-fPIC' ;; amigaos*) @@ -8987,8 +8900,8 @@ lt_prog_compiler_static= ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac @@ -9074,7 +8987,7 @@ lt_prog_compiler_static= case $host_os in aix*) lt_prog_compiler_wl='-Wl,' - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else @@ -9082,6 +8995,20 @@ lt_prog_compiler_static= fi ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). @@ -9101,7 +9028,7 @@ lt_prog_compiler_static= ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='${wl}-a ${wl}archive' + lt_prog_compiler_static='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) @@ -9112,7 +9039,7 @@ lt_prog_compiler_static= linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. + # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' @@ -9137,6 +9064,12 @@ lt_prog_compiler_static= lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) @@ -9234,7 +9167,7 @@ lt_prog_compiler_static= ;; sysv4*MP*) - if test -d /usr/nec ;then + if test -d /usr/nec; then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi @@ -9263,7 +9196,7 @@ lt_prog_compiler_static= fi case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: + # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; @@ -9295,7 +9228,7 @@ else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins @@ -9325,7 +9258,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } -if test x"$lt_cv_prog_compiler_pic_works" = xyes; then +if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; @@ -9357,7 +9290,7 @@ if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then @@ -9376,13 +9309,13 @@ else fi fi $RM -r conftest* - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } -if test x"$lt_cv_prog_compiler_static_works" = xyes; then +if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= @@ -9502,8 +9435,8 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; } -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } @@ -9515,9 +9448,9 @@ $as_echo_n "checking if we can lock with hard links... " >&6; } ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -9560,9 +9493,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if @@ -9577,7 +9510,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. - if test "$GCC" != yes; then + if test yes != "$GCC"; then with_gnu_ld=no fi ;; @@ -9585,12 +9518,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; - openbsd*) + openbsd* | bitrig*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu | gnu*) - link_all_deplibs=no - ;; esac ld_shlibs=yes @@ -9598,7 +9528,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility @@ -9620,24 +9550,24 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie esac fi - if test "$lt_use_gnu_ld_interface" = yes; then + if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' + wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no - case `$LD -v 2>&1` in + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -9650,7 +9580,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then + if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 @@ -9669,7 +9599,7 @@ _LT_EOF case $host_cpu in powerpc) # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) @@ -9685,7 +9615,7 @@ _LT_EOF allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs=no fi @@ -9695,7 +9625,7 @@ _LT_EOF # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='${wl}--export-all-symbols' + export_dynamic_flag_spec='$wl--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes @@ -9703,61 +9633,61 @@ _LT_EOF exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no - if test "$host_os" = linux-dietlibc; then + if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no + && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -9768,42 +9698,44 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then + if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then + if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -9812,13 +9744,13 @@ _LT_EOF fi ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -9836,8 +9768,8 @@ _LT_EOF _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -9849,7 +9781,7 @@ _LT_EOF ld_shlibs=no cat <<_LT_EOF 1>&2 -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify @@ -9864,9 +9796,9 @@ _LT_EOF # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -9883,15 +9815,15 @@ _LT_EOF *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac - if test "$ld_shlibs" = no; then + if test no = "$ld_shlibs"; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= @@ -9907,7 +9839,7 @@ _LT_EOF # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported @@ -9915,12 +9847,12 @@ _LT_EOF ;; aix[4-9]*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' - no_entry_flag="" + no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm @@ -9938,7 +9870,7 @@ _LT_EOF # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi @@ -9961,13 +9893,13 @@ _LT_EOF hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes - file_list_spec='${wl}-f,' + file_list_spec='$wl-f,' - if test "$GCC" = yes; then + if test yes = "$GCC"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` + collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then @@ -9986,36 +9918,35 @@ _LT_EOF ;; esac shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' fi - link_all_deplibs=no else # not using gcc - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' else - shared_flag='${wl}-bM:SRE' + shared_flag='$wl-bM:SRE' fi fi fi - export_dynamic_flag_spec='${wl}-bexpall' + export_dynamic_flag_spec='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes - if test "$aix_use_runtimelinking" = yes; then + if test yes = "$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then + if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : @@ -10050,7 +9981,7 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" + lt_cv_aix_libpath_=/usr/lib:/lib fi fi @@ -10058,17 +9989,17 @@ fi aix_libpath=$lt_cv_aix_libpath_ fi - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then + if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : @@ -10103,7 +10034,7 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_="/usr/lib:/lib" + lt_cv_aix_libpath_=/usr/lib:/lib fi fi @@ -10111,21 +10042,21 @@ fi aix_libpath=$lt_cv_aix_libpath_ fi - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. - no_undefined_flag=' ${wl}-bernotok' - allow_undefined_flag=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $wl-bnoentry $compiler_flags $wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; @@ -10134,7 +10065,7 @@ fi case $host_cpu in powerpc) # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) @@ -10164,16 +10095,17 @@ fi # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" + shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes @@ -10182,18 +10114,18 @@ fi # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' ;; *) # Assume MSVC wrapper @@ -10202,7 +10134,7 @@ fi # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" + shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. @@ -10221,24 +10153,24 @@ fi hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes - allow_undefined_flag="$_lt_dar_allow_undefined" + allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; + ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac - if test "$_lt_dar_can_shared" = "yes"; then + if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no @@ -10280,33 +10212,33 @@ fi ;; hpux9*) - if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' + export_dynamic_flag_spec='$wl-E' ;; hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' + export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes @@ -10314,25 +10246,25 @@ fi ;; hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then + if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) @@ -10344,7 +10276,7 @@ if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then @@ -10363,14 +10295,14 @@ else fi fi $RM -r conftest* - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } -if test x"$lt_cv_prog_compiler__b" = xyes; then - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi @@ -10378,8 +10310,8 @@ fi ;; esac fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in @@ -10390,7 +10322,7 @@ fi *) hardcode_direct=yes hardcode_direct_absolute=yes - export_dynamic_flag_spec='${wl}-E' + export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. @@ -10401,8 +10333,8 @@ fi ;; irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. @@ -10412,8 +10344,8 @@ $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " > if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } @@ -10425,25 +10357,25 @@ else fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } - if test "$lt_cv_irix_exported_symbol" = yes; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -10457,7 +10389,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; @@ -10465,27 +10397,19 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } *nto* | *qnx*) ;; - openbsd*) + openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' else - case $host_os in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no @@ -10501,28 +10425,28 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } ;; osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' @@ -10533,24 +10457,24 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } solaris*) no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) - wlarc='${wl}' - archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi @@ -10560,11 +10484,11 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', + # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi @@ -10574,10 +10498,10 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } ;; sunos4*) - if test "x$host_vendor" = xsequent; then + if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi @@ -10626,43 +10550,43 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' + no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not + # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_flag_spec='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' + export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; @@ -10677,10 +10601,10 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } ;; esac - if test x$host_vendor = xsni; then + if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='${wl}-Blargedynsym' + export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi @@ -10688,7 +10612,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no +test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld @@ -10714,7 +10638,7 @@ x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes - if test "$enable_shared" = yes && test "$GCC" = yes; then + if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. @@ -10929,14 +10853,14 @@ esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } -if test "$GCC" = yes; then +if test yes = "$GCC"; then case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in @@ -10952,28 +10876,35 @@ if test "$GCC" = yes; then ;; esac # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. + # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; + lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } @@ -10987,7 +10918,7 @@ BEGIN {RS=" "; FS="/|\n";} { # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([A-Za-z]:\),\1,g'` ;; + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else @@ -10996,7 +10927,7 @@ fi library_names_spec= libname_spec='lib$name' soname_spec= -shrext_cmds=".so" +shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -11016,11 +10947,11 @@ need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' + soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) @@ -11028,40 +10959,40 @@ aix[4-9]*) need_lib_prefix=no need_version=no hardcode_into_libs=yes - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then + if test yes = "$aix_use_runtimelinking"; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' fi shlibpath_var=LIBPATH fi @@ -11072,18 +11003,18 @@ amigaos*) powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) - library_names_spec='${libname}${shared_ext}' + library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; @@ -11091,8 +11022,8 @@ beos*) bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" @@ -11104,7 +11035,7 @@ bsdi[45]*) cygwin* | mingw* | pw32* | cegcc*) version_type=windows - shrext_cmds=".dll" + shrext_cmds=.dll need_version=no need_lib_prefix=no @@ -11113,8 +11044,8 @@ cygwin* | mingw* | pw32* | cegcc*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ @@ -11130,17 +11061,17 @@ cygwin* | mingw* | pw32* | cegcc*) case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' @@ -11149,8 +11080,8 @@ cygwin* | mingw* | pw32* | cegcc*) *,cl*) # Native MSVC libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' case $build_os in mingw*) @@ -11177,7 +11108,7 @@ cygwin* | mingw* | pw32* | cegcc*) sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) - sys_lib_search_path_spec="$LIB" + sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` @@ -11190,8 +11121,8 @@ cygwin* | mingw* | pw32* | cegcc*) esac # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' @@ -11204,7 +11135,7 @@ cygwin* | mingw* | pw32* | cegcc*) *) # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac @@ -11217,8 +11148,8 @@ darwin* | rhapsody*) version_type=darwin need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' @@ -11231,8 +11162,8 @@ dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; @@ -11250,12 +11181,12 @@ freebsd* | dragonfly*) version_type=freebsd-$objformat case $version_type in freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' need_version=no need_lib_prefix=no ;; freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac @@ -11285,10 +11216,10 @@ haiku*) need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes + shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -11306,9 +11237,9 @@ hpux9* | hpux10* | hpux11*) dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" @@ -11321,8 +11252,8 @@ hpux9* | hpux10* | hpux11*) dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; @@ -11331,8 +11262,8 @@ hpux9* | hpux10* | hpux11*) dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... @@ -11345,8 +11276,8 @@ interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -11357,7 +11288,7 @@ irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) - if test "$lt_cv_prog_gnu_ld" = yes; then + if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix @@ -11365,8 +11296,8 @@ irix5* | irix6* | nonstopux*) esac need_lib_prefix=no need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= @@ -11385,8 +11316,8 @@ irix5* | irix6* | nonstopux*) esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; @@ -11395,13 +11326,33 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -11460,29 +11411,17 @@ fi dynamic_linker='GNU/Linux ld.so' ;; -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH @@ -11492,7 +11431,7 @@ netbsd*) newsos6) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; @@ -11501,45 +11440,34 @@ newsos6) version_type=qnx need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; -openbsd*) +openbsd* | bitrig*) version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" + sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no else - shlibpath_overrides_runpath=yes + need_version=yes fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' - shrext_cmds=".dll" + shrext_cmds=.dll need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' + library_names_spec='$libname$shared_ext $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; @@ -11548,11 +11476,11 @@ osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) @@ -11563,8 +11491,8 @@ solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes @@ -11574,11 +11502,11 @@ solaris*) sunos4*) version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes @@ -11586,8 +11514,8 @@ sunos4*) sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) @@ -11608,10 +11536,10 @@ sysv4 | sysv4.3*) ;; sysv4*MP*) - if test -d /usr/nec ;then + if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; @@ -11620,12 +11548,12 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' @@ -11643,7 +11571,7 @@ tpf*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes @@ -11651,8 +11579,8 @@ tpf*) uts4*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; @@ -11662,18 +11590,18 @@ uts4*) esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no +test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then +if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi @@ -11772,15 +11700,15 @@ $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || - test "X$hardcode_automatic" = "Xyes" ; then + test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. - if test "$hardcode_direct" != no && + if test no != "$hardcode_direct" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && - test "$hardcode_minus_L" != no; then + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else @@ -11795,12 +11723,12 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } -if test "$hardcode_action" = relink || - test "$inherit_rpath" = yes; then +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi @@ -11810,7 +11738,7 @@ fi - if test "x$enable_dlopen" != xyes; then + if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown @@ -11820,23 +11748,23 @@ else case $host_os in beos*) - lt_cv_dlopen="load_add_on" + lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) - lt_cv_dlopen="dlopen" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) - # if libdl is installed we need to link against it + # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : @@ -11874,10 +11802,10 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else - lt_cv_dlopen="dyld" + lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes @@ -11885,10 +11813,18 @@ fi ;; + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" + lt_cv_dlopen=shl_load else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } @@ -11927,11 +11863,11 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" + lt_cv_dlopen=dlopen else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } @@ -11970,7 +11906,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } @@ -12009,7 +11945,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } @@ -12048,7 +11984,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi @@ -12069,21 +12005,21 @@ fi ;; esac - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else + if test no = "$lt_cv_dlopen"; then enable_dlopen=no + else + enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - save_LIBS="$LIBS" + save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 @@ -12091,7 +12027,7 @@ $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -12140,7 +12076,7 @@ else /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif @@ -12170,7 +12106,7 @@ _LT_EOF (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in @@ -12190,14 +12126,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } - if test "x$lt_cv_dlopen_self" = xyes; then + if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else - if test "$cross_compiling" = yes; then : + if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -12246,7 +12182,7 @@ else /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif @@ -12276,7 +12212,7 @@ _LT_EOF (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in @@ -12297,9 +12233,9 @@ fi $as_echo "$lt_cv_dlopen_self_static" >&6; } fi - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS ;; esac @@ -12343,7 +12279,7 @@ else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) - if test -n "$STRIP" ; then + if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -12371,7 +12307,7 @@ fi - # Report which library types will actually be built + # Report what library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 @@ -12379,13 +12315,13 @@ $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } - test "$can_build_shared" = "no" && enable_shared=no + test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) - test "$enable_shared" = yes && enable_static=no + test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' @@ -12393,8 +12329,8 @@ $as_echo_n "checking whether to build shared libraries... " >&6; } ;; aix[4-9]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no + if test ia64 != "$host_cpu" && test no = "$aix_use_runtimelinking"; then + test yes = "$enable_shared" && enable_static=no fi ;; esac @@ -12404,7 +12340,7 @@ $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes + test yes = "$enable_shared" || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } @@ -12418,7 +12354,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -CC="$lt_save_CC" +CC=$lt_save_CC @@ -13560,15 +13496,15 @@ fi func_stripname_cnf () { - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;; esac } # func_stripname_cnf - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then + if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -13747,7 +13683,7 @@ objext_CXX=$objext # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_caught_CXX_error" != yes; then +if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" @@ -13822,32 +13758,32 @@ cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately - if test "$GXX" = yes; then + if test yes = "$GXX"; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi - if test "$GXX" = yes; then + if test yes = "$GXX"; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : - withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld -if test "$GCC" = yes; then +if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw + # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; @@ -13861,7 +13797,7 @@ $as_echo_n "checking for ld used by $CC... " >&6; } while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done - test -z "$LD" && LD="$ac_prog" + test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. @@ -13872,7 +13808,7 @@ $as_echo_n "checking for ld used by $CC... " >&6; } with_gnu_ld=unknown ;; esac -elif test "$with_gnu_ld" = yes; then +elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else @@ -13883,32 +13819,32 @@ if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" + lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } @@ -13944,22 +13880,22 @@ with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + if test yes = "$with_gnu_ld"; then + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) - wlarc='${wl}' + wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec_CXX= fi @@ -13996,12 +13932,12 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie ld_shlibs_CXX=no ;; aix[4-9]*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' - no_entry_flag="" + no_entry_flag= else aix_use_runtimelinking=no @@ -14035,13 +13971,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes - file_list_spec_CXX='${wl}-f,' + file_list_spec_CXX='$wl-f,' - if test "$GXX" = yes; then + if test yes = "$GXX"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` + collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then @@ -14059,36 +13995,36 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie fi esac shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' fi else # not using gcc - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' else - shared_flag='${wl}-bM:SRE' + shared_flag='$wl-bM:SRE' fi fi fi - export_dynamic_flag_spec_CXX='${wl}-bexpall' + export_dynamic_flag_spec_CXX='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes - if test "$aix_use_runtimelinking" = yes; then + if test yes = "$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. - if test "${lt_cv_aix_libpath+set}" = set; then + if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : @@ -14123,7 +14059,7 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then - lt_cv_aix_libpath__CXX="/usr/lib:/lib" + lt_cv_aix_libpath__CXX=/usr/lib:/lib fi fi @@ -14131,18 +14067,18 @@ fi aix_libpath=$lt_cv_aix_libpath__CXX fi - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. - if test "${lt_cv_aix_libpath+set}" = set; then + if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : @@ -14177,7 +14113,7 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then - lt_cv_aix_libpath__CXX="/usr/lib:/lib" + lt_cv_aix_libpath__CXX=/usr/lib:/lib fi fi @@ -14185,14 +14121,14 @@ fi aix_libpath=$lt_cv_aix_libpath__CXX fi - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. - no_undefined_flag_CXX=' ${wl}-bernotok' - allow_undefined_flag_CXX=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then + no_undefined_flag_CXX=' $wl-bernotok' + allow_undefined_flag_CXX=' $wl-berok' + if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' @@ -14200,7 +14136,7 @@ fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $wl-bnoentry $compiler_flags $wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; @@ -14210,7 +14146,7 @@ fi allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME - archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi @@ -14238,57 +14174,58 @@ fi # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" + shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. - archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' + archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - func_to_tool_file "$lt_outputfile"~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' + export_dynamic_flag_spec_CXX='$wl--export-all-symbols' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi @@ -14302,27 +14239,27 @@ fi hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_CXX='' fi link_all_deplibs_CXX=yes - allow_undefined_flag_CXX="$_lt_dar_allow_undefined" + allow_undefined_flag_CXX=$_lt_dar_allow_undefined case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; + ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac - if test "$_lt_dar_can_shared" = "yes"; then + if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all - archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" - if test "$lt_cv_apple_cc_single_mod" != "yes"; then - archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + if test yes != "$lt_cv_apple_cc_single_mod"; then + archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi else @@ -14366,14 +14303,14 @@ fi ;; haiku*) - archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; hpux9*) - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' hardcode_libdir_separator_CXX=: - export_dynamic_flag_spec_CXX='${wl}-E' + export_dynamic_flag_spec_CXX='$wl-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default @@ -14385,7 +14322,7 @@ fi ld_shlibs_CXX=no ;; aCC*) - archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. @@ -14394,11 +14331,11 @@ fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) - if test "$GXX" = yes; then - archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + if test yes = "$GXX"; then + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no @@ -14408,15 +14345,15 @@ fi ;; hpux10*|hpux11*) - if test $with_gnu_ld = no; then - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) - export_dynamic_flag_spec_CXX='${wl}-E' + export_dynamic_flag_spec_CXX='$wl-E' ;; esac fi @@ -14442,13 +14379,13 @@ fi aCC*) case $host_cpu in hppa*64*) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists @@ -14459,20 +14396,20 @@ fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) - archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi @@ -14487,22 +14424,22 @@ fi interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + export_dynamic_flag_spec_CXX='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ - archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is @@ -14511,17 +14448,17 @@ fi old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else - archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; @@ -14534,8 +14471,8 @@ fi # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. @@ -14544,10 +14481,10 @@ fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. @@ -14561,59 +14498,59 @@ fi # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac - archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac - hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' @@ -14627,18 +14564,18 @@ fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' - export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) @@ -14646,10 +14583,10 @@ fi *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' - whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on @@ -14707,22 +14644,17 @@ fi ld_shlibs_CXX=yes ;; - openbsd2*) - # C++ shared libraries are fairly broken - ld_shlibs_CXX=no - ;; - - openbsd*) + openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - export_dynamic_flag_spec_CXX='${wl}-E' - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='$wl-E' + whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else @@ -14738,9 +14670,9 @@ fi # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. - archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using @@ -14758,17 +14690,17 @@ fi cxx*) case $host in osf3*) - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' + archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ - $RM $lib.exp' + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac @@ -14783,21 +14715,21 @@ fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + if test yes,no = "$GXX,$with_gnu_ld"; then + allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' case $host in osf3*) - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) - archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac - hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists @@ -14843,9 +14775,9 @@ fi # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no @@ -14853,7 +14785,7 @@ fi solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. + # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; @@ -14870,30 +14802,30 @@ fi ;; gcx*) # Green Hills C++ Compiler - archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if test yes,no = "$GXX,$with_gnu_ld"; then + no_undefined_flag_CXX=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then - archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else - # g++ 2.7 appears to require `-G' NOT `-shared' on this + # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. - archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when @@ -14901,11 +14833,11 @@ fi output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi - hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) - whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi @@ -14914,52 +14846,52 @@ fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag_CXX='${wl}-z,text' + no_undefined_flag_CXX='$wl-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) - archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not + # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. - no_undefined_flag_CXX='${wl}-z,text' - allow_undefined_flag_CXX='${wl}-z,nodefs' + no_undefined_flag_CXX='$wl-z,text' + allow_undefined_flag_CXX='$wl-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no - hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' + hardcode_libdir_flag_spec_CXX='$wl-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes - export_dynamic_flag_spec_CXX='${wl}-Bexport' + export_dynamic_flag_spec_CXX='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) - archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ - '"$old_archive_cmds_CXX" + '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ - '"$reload_cmds_CXX" + '"$reload_cmds_CXX" ;; *) - archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; @@ -14991,10 +14923,10 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } - test "$ld_shlibs_CXX" = no && can_build_shared=no + test no = "$ld_shlibs_CXX" && can_build_shared=no - GCC_CXX="$GXX" - LD_CXX="$LD" + GCC_CXX=$GXX + LD_CXX=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change @@ -15038,13 +14970,13 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do - case ${prev}${p} in + case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. - if test $p = "-L" || - test $p = "-R"; then + if test x-L = "$p" || + test x-R = "$p"; then prev=$p continue fi @@ -15060,16 +14992,16 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac - if test "$pre_test_object_deps_done" = no; then - case ${prev} in + if test no = "$pre_test_object_deps_done"; then + case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then - compiler_lib_search_path_CXX="${prev}${p}" + compiler_lib_search_path_CXX=$prev$p else - compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p" fi ;; # The "-l" case would never come before the object being @@ -15077,9 +15009,9 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 esac else if test -z "$postdeps_CXX"; then - postdeps_CXX="${prev}${p}" + postdeps_CXX=$prev$p else - postdeps_CXX="${postdeps_CXX} ${prev}${p}" + postdeps_CXX="${postdeps_CXX} $prev$p" fi fi prev= @@ -15094,15 +15026,15 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 continue fi - if test "$pre_test_object_deps_done" = no; then + if test no = "$pre_test_object_deps_done"; then if test -z "$predep_objects_CXX"; then - predep_objects_CXX="$p" + predep_objects_CXX=$p else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then - postdep_objects_CXX="$p" + postdep_objects_CXX=$p else postdep_objects_CXX="$postdep_objects_CXX $p" fi @@ -15148,7 +15080,7 @@ linux*) ;; esac - if test "$solaris_use_stlport4" != yes; then + if test yes != "$solaris_use_stlport4"; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; @@ -15171,7 +15103,7 @@ solaris*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then + if test yes != "$solaris_use_stlport4"; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; @@ -15185,7 +15117,7 @@ case " $postdeps_CXX " in esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then - compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi @@ -15224,17 +15156,18 @@ lt_prog_compiler_static_CXX= # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then + if test yes = "$GXX"; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi + lt_prog_compiler_pic_CXX='-fPIC' ;; amigaos*) @@ -15245,8 +15178,8 @@ lt_prog_compiler_static_CXX= ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac @@ -15310,7 +15243,7 @@ lt_prog_compiler_static_CXX= case $host_os in aix[4-9]*) # All AIX code is PIC. - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else @@ -15350,14 +15283,14 @@ lt_prog_compiler_static_CXX= case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then + lt_prog_compiler_static_CXX='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + lt_prog_compiler_static_CXX='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default @@ -15394,7 +15327,7 @@ lt_prog_compiler_static_CXX= lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) - # old Intel C++ for x86_64 which still supported -KPIC. + # old Intel C++ for x86_64, which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' @@ -15450,7 +15383,7 @@ lt_prog_compiler_static_CXX= ;; esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -15539,7 +15472,7 @@ lt_prog_compiler_static_CXX= fi case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: + # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; @@ -15571,7 +15504,7 @@ else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins @@ -15601,7 +15534,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } -if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then +if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; @@ -15627,7 +15560,7 @@ if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then @@ -15646,13 +15579,13 @@ else fi fi $RM -r conftest* - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } -if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then +if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then : else lt_prog_compiler_static_CXX= @@ -15766,8 +15699,8 @@ $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } -hard_links="nottested" -if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } @@ -15779,9 +15712,9 @@ $as_echo_n "checking if we can lock with hard links... " >&6; } ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -15808,7 +15741,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie fi ;; pw32*) - export_symbols_cmds_CXX="$ltdll_cmds" + export_symbols_cmds_CXX=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in @@ -15821,9 +15754,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie ;; esac ;; - linux* | k*bsd*-gnu | gnu*) - link_all_deplibs_CXX=no - ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -15831,7 +15761,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } -test "$ld_shlibs_CXX" = no && can_build_shared=no +test no = "$ld_shlibs_CXX" && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld @@ -15848,7 +15778,7 @@ x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes - if test "$enable_shared" = yes && test "$GCC" = yes; then + if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. @@ -15976,7 +15906,7 @@ $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= -shrext_cmds=".so" +shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -15996,11 +15926,11 @@ need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' + soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) @@ -16008,40 +15938,40 @@ aix[4-9]*) need_lib_prefix=no need_version=no hardcode_into_libs=yes - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then + if test yes = "$aix_use_runtimelinking"; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' fi shlibpath_var=LIBPATH fi @@ -16052,18 +15982,18 @@ amigaos*) powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) - library_names_spec='${libname}${shared_ext}' + library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; @@ -16071,8 +16001,8 @@ beos*) bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" @@ -16084,7 +16014,7 @@ bsdi[45]*) cygwin* | mingw* | pw32* | cegcc*) version_type=windows - shrext_cmds=".dll" + shrext_cmds=.dll need_version=no need_lib_prefix=no @@ -16093,8 +16023,8 @@ cygwin* | mingw* | pw32* | cegcc*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ @@ -16110,16 +16040,16 @@ cygwin* | mingw* | pw32* | cegcc*) case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' @@ -16128,8 +16058,8 @@ cygwin* | mingw* | pw32* | cegcc*) *,cl*) # Native MSVC libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' case $build_os in mingw*) @@ -16156,7 +16086,7 @@ cygwin* | mingw* | pw32* | cegcc*) sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) - sys_lib_search_path_spec="$LIB" + sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` @@ -16169,8 +16099,8 @@ cygwin* | mingw* | pw32* | cegcc*) esac # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' @@ -16183,7 +16113,7 @@ cygwin* | mingw* | pw32* | cegcc*) *) # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac @@ -16196,8 +16126,8 @@ darwin* | rhapsody*) version_type=darwin need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' @@ -16209,8 +16139,8 @@ dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; @@ -16228,12 +16158,12 @@ freebsd* | dragonfly*) version_type=freebsd-$objformat case $version_type in freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' need_version=no need_lib_prefix=no ;; freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac @@ -16263,10 +16193,10 @@ haiku*) need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes + shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -16284,9 +16214,9 @@ hpux9* | hpux10* | hpux11*) dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" @@ -16299,8 +16229,8 @@ hpux9* | hpux10* | hpux11*) dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; @@ -16309,8 +16239,8 @@ hpux9* | hpux10* | hpux11*) dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... @@ -16323,8 +16253,8 @@ interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -16335,7 +16265,7 @@ irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) - if test "$lt_cv_prog_gnu_ld" = yes; then + if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix @@ -16343,8 +16273,8 @@ irix5* | irix6* | nonstopux*) esac need_lib_prefix=no need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= @@ -16363,8 +16293,8 @@ irix5* | irix6* | nonstopux*) esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; @@ -16373,13 +16303,33 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec_CXX='-L$libdir' + ;; + # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -16438,29 +16388,17 @@ fi dynamic_linker='GNU/Linux ld.so' ;; -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH @@ -16470,7 +16408,7 @@ netbsd*) newsos6) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; @@ -16479,45 +16417,34 @@ newsos6) version_type=qnx need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; -openbsd*) +openbsd* | bitrig*) version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" + sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[89] | openbsd2.[89].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no else - shlibpath_overrides_runpath=yes + need_version=yes fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' - shrext_cmds=".dll" + shrext_cmds=.dll need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' + library_names_spec='$libname$shared_ext $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; @@ -16526,11 +16453,11 @@ osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) @@ -16541,8 +16468,8 @@ solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes @@ -16552,11 +16479,11 @@ solaris*) sunos4*) version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes @@ -16564,8 +16491,8 @@ sunos4*) sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) @@ -16586,10 +16513,10 @@ sysv4 | sysv4.3*) ;; sysv4*MP*) - if test -d /usr/nec ;then + if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; @@ -16598,12 +16525,12 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' @@ -16621,7 +16548,7 @@ tpf*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes @@ -16629,8 +16556,8 @@ tpf*) uts4*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; @@ -16640,18 +16567,18 @@ uts4*) esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = no && can_build_shared=no +test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then +if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi @@ -16696,15 +16623,15 @@ $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || - test "X$hardcode_automatic_CXX" = "Xyes" ; then + test yes = "$hardcode_automatic_CXX"; then # We can hardcode non-existent directories. - if test "$hardcode_direct_CXX" != no && + if test no != "$hardcode_direct_CXX" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && - test "$hardcode_minus_L_CXX" != no; then + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" && + test no != "$hardcode_minus_L_CXX"; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else @@ -16719,12 +16646,12 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } -if test "$hardcode_action_CXX" = relink || - test "$inherit_rpath_CXX" = yes; then +if test relink = "$hardcode_action_CXX" || + test yes = "$inherit_rpath_CXX"; then # Fast installation is not supported enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi @@ -16747,7 +16674,7 @@ fi lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -fi # test "$_lt_caught_CXX_error" != yes +fi # test yes != "$_lt_caught_CXX_error" ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -16884,10 +16811,10 @@ GIT=${GIT-"${am_missing_run}git"} -HB_VERSION_MAJOR=1 -HB_VERSION_MINOR=2 -HB_VERSION_MICRO=7 -HB_VERSION=1.2.7 +HB_VERSION_MAJOR=0 +HB_VERSION_MINOR=9 +HB_VERSION_MICRO=40 +HB_VERSION=0.9.40 @@ -16898,7 +16825,7 @@ HB_VERSION=1.2.7 -HB_LIBTOOL_VERSION_INFO=10200:7:10200 +HB_LIBTOOL_VERSION_INFO=940:0:940 # Documentation @@ -17853,8 +17780,6 @@ else fi have_glib=false -GLIB_DEPS="glib-2.0 >= 2.16" - if test "x$with_glib" = "xyes" -o "x$with_glib" = "xauto"; then pkg_failed=no @@ -17866,12 +17791,12 @@ if test -n "$PKG_CONFIG"; then pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$GLIB_DEPS\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$GLIB_DEPS") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "$GLIB_DEPS" 2>/dev/null` + pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.16" 2>/dev/null` else pkg_failed=yes fi @@ -17884,12 +17809,12 @@ if test -n "$PKG_CONFIG"; then pkg_cv_GLIB_LIBS="$GLIB_LIBS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$GLIB_DEPS\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$GLIB_DEPS") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "$GLIB_DEPS" 2>/dev/null` + pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.16" 2>/dev/null` else pkg_failed=yes fi @@ -17908,9 +17833,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$GLIB_DEPS"` + GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0 >= 2.16"` else - GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GLIB_DEPS"` + GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 >= 2.16"` fi # Put the nasty error message in config.log where it belongs echo "$GLIB_PKG_ERRORS" >&5 @@ -18163,6 +18088,25 @@ fi +have_ucdn=true +if $have_glib; then + have_ucdn=false +fi +if $have_ucdn; then + +$as_echo "#define HAVE_UCDN 1" >>confdefs.h + +fi + if $have_ucdn; then + HAVE_UCDN_TRUE= + HAVE_UCDN_FALSE='#' +else + HAVE_UCDN_TRUE='#' + HAVE_UCDN_FALSE= +fi + + + # Check whether --with-cairo was given. if test "${with_cairo+set}" = set; then : @@ -18352,106 +18296,6 @@ fi -# Check whether --with-fontconfig was given. -if test "${with_fontconfig+set}" = set; then : - withval=$with_fontconfig; -else - with_fontconfig=auto -fi - -have_fontconfig=false -if test "x$with_fontconfig" = "xyes" -o "x$with_fontconfig" = "xauto"; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FONTCONFIG" >&5 -$as_echo_n "checking for FONTCONFIG... " >&6; } - -if test -n "$PKG_CONFIG"; then - if test -n "$FONTCONFIG_CFLAGS"; then - pkg_cv_FONTCONFIG_CFLAGS="$FONTCONFIG_CFLAGS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fontconfig\""; } >&5 - ($PKG_CONFIG --exists --print-errors "fontconfig") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "fontconfig" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi -if test -n "$PKG_CONFIG"; then - if test -n "$FONTCONFIG_LIBS"; then - pkg_cv_FONTCONFIG_LIBS="$FONTCONFIG_LIBS" - else - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fontconfig\""; } >&5 - ($PKG_CONFIG --exists --print-errors "fontconfig") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_FONTCONFIG_LIBS=`$PKG_CONFIG --libs "fontconfig" 2>/dev/null` -else - pkg_failed=yes -fi - fi -else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "fontconfig"` - else - FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fontconfig"` - fi - # Put the nasty error message in config.log where it belongs - echo "$FONTCONFIG_PKG_ERRORS" >&5 - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - : -elif test $pkg_failed = untried; then - : -else - FONTCONFIG_CFLAGS=$pkg_cv_FONTCONFIG_CFLAGS - FONTCONFIG_LIBS=$pkg_cv_FONTCONFIG_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - have_fontconfig=true -fi -fi -if test "x$with_fontconfig" = "xyes" -a "x$have_fontconfig" != "xtrue"; then - as_fn_error $? "fontconfig support requested but not found" "$LINENO" 5 -fi -if $have_fontconfig; then - -$as_echo "#define HAVE_FONTCONFIG 1" >>confdefs.h - -fi - if $have_fontconfig; then - HAVE_FONTCONFIG_TRUE= - HAVE_FONTCONFIG_FALSE='#' -else - HAVE_FONTCONFIG_TRUE='#' - HAVE_FONTCONFIG_FALSE= -fi - - - - # Check whether --with-icu was given. if test "${with_icu+set}" = set; then : withval=$with_icu; @@ -18460,7 +18304,7 @@ else fi have_icu=false -if test "x$with_icu" = "xyes" -o "x$with_icu" = "xbuiltin" -o "x$with_icu" = "xauto"; then +if test "x$with_icu" = "xyes" -o "x$with_icu" = "xauto"; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ICU" >&5 @@ -18645,20 +18489,14 @@ $as_echo "no" >&6; } fi fi fi -if test \( "x$with_icu" = "xyes" -o "x$with_icu" = "xbuiltin" \) -a "x$have_icu" != "xtrue"; then +if test "x$with_icu" = "xyes" -a "x$have_icu" != "xtrue"; then as_fn_error $? "icu support requested but icu-uc not found" "$LINENO" 5 fi - if $have_icu; then CXXFLAGS="$CXXFLAGS `$PKG_CONFIG --variable=CXXFLAGS icu-uc`" $as_echo "#define HAVE_ICU 1" >>confdefs.h - if test "x$with_icu" = "xbuiltin"; then - -$as_echo "#define HAVE_ICU_BUILTIN 1" >>confdefs.h - - fi fi if $have_icu; then HAVE_ICU_TRUE= @@ -18668,33 +18506,6 @@ else HAVE_ICU_FALSE= fi - if $have_icu && test "x$with_icu" = "xbuiltin"; then - HAVE_ICU_BUILTIN_TRUE= - HAVE_ICU_BUILTIN_FALSE='#' -else - HAVE_ICU_BUILTIN_TRUE='#' - HAVE_ICU_BUILTIN_FALSE= -fi - - - -have_ucdn=true -if $have_glib || $have_icu && test "x$with_icu" = "xbuiltin"; then - have_ucdn=false -fi -if $have_ucdn; then - -$as_echo "#define HAVE_UCDN 1" >>confdefs.h - -fi - if $have_ucdn; then - HAVE_UCDN_TRUE= - HAVE_UCDN_FALSE='#' -else - HAVE_UCDN_TRUE='#' - HAVE_UCDN_FALSE= -fi - @@ -18706,8 +18517,6 @@ else fi have_graphite2=false -GRAPHITE2_DEPS="graphite2" - if test "x$with_graphite2" = "xyes" -o "x$with_graphite2" = "xauto"; then pkg_failed=no @@ -18719,12 +18528,12 @@ if test -n "$PKG_CONFIG"; then pkg_cv_GRAPHITE2_CFLAGS="$GRAPHITE2_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$GRAPHITE2_DEPS\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$GRAPHITE2_DEPS") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"graphite2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "graphite2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GRAPHITE2_CFLAGS=`$PKG_CONFIG --cflags "$GRAPHITE2_DEPS" 2>/dev/null` + pkg_cv_GRAPHITE2_CFLAGS=`$PKG_CONFIG --cflags "graphite2" 2>/dev/null` else pkg_failed=yes fi @@ -18737,12 +18546,12 @@ if test -n "$PKG_CONFIG"; then pkg_cv_GRAPHITE2_LIBS="$GRAPHITE2_LIBS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$GRAPHITE2_DEPS\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$GRAPHITE2_DEPS") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"graphite2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "graphite2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GRAPHITE2_LIBS=`$PKG_CONFIG --libs "$GRAPHITE2_DEPS" 2>/dev/null` + pkg_cv_GRAPHITE2_LIBS=`$PKG_CONFIG --libs "graphite2" 2>/dev/null` else pkg_failed=yes fi @@ -18761,9 +18570,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GRAPHITE2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$GRAPHITE2_DEPS"` + GRAPHITE2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "graphite2"` else - GRAPHITE2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GRAPHITE2_DEPS"` + GRAPHITE2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "graphite2"` fi # Put the nasty error message in config.log where it belongs echo "$GRAPHITE2_PKG_ERRORS" >&5 @@ -18808,8 +18617,6 @@ else fi have_freetype=false -FREETYPE_DEPS="freetype2 >= 12.0.6" - if test "x$with_freetype" = "xyes" -o "x$with_freetype" = "xauto"; then # See freetype/docs/VERSION.DLL; 12.0.6 means freetype-2.4.2 @@ -18822,12 +18629,12 @@ if test -n "$PKG_CONFIG"; then pkg_cv_FREETYPE_CFLAGS="$FREETYPE_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$FREETYPE_DEPS\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$FREETYPE_DEPS") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 12.0.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2 >= 12.0.6") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_FREETYPE_CFLAGS=`$PKG_CONFIG --cflags "$FREETYPE_DEPS" 2>/dev/null` + pkg_cv_FREETYPE_CFLAGS=`$PKG_CONFIG --cflags "freetype2 >= 12.0.6" 2>/dev/null` else pkg_failed=yes fi @@ -18840,12 +18647,12 @@ if test -n "$PKG_CONFIG"; then pkg_cv_FREETYPE_LIBS="$FREETYPE_LIBS" else if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$FREETYPE_DEPS\""; } >&5 - ($PKG_CONFIG --exists --print-errors "$FREETYPE_DEPS") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2 >= 12.0.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "freetype2 >= 12.0.6") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_FREETYPE_LIBS=`$PKG_CONFIG --libs "$FREETYPE_DEPS" 2>/dev/null` + pkg_cv_FREETYPE_LIBS=`$PKG_CONFIG --libs "freetype2 >= 12.0.6" 2>/dev/null` else pkg_failed=yes fi @@ -18864,9 +18671,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - FREETYPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$FREETYPE_DEPS"` + FREETYPE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "freetype2 >= 12.0.6"` else - FREETYPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$FREETYPE_DEPS"` + FREETYPE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "freetype2 >= 12.0.6"` fi # Put the nasty error message in config.log where it belongs echo "$FREETYPE_PKG_ERRORS" >&5 @@ -18949,64 +18756,6 @@ fi -# Check whether --with-directwrite was given. -if test "${with_directwrite+set}" = set; then : - withval=$with_directwrite; -else - with_directwrite=no -fi - -have_directwrite=false -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -if test "x$with_directwrite" = "xyes" -o "x$with_directwrite" = "xauto"; then - -for ac_header in dwrite.h -do : - ac_fn_cxx_check_header_mongrel "$LINENO" "dwrite.h" "ac_cv_header_dwrite_h" "$ac_includes_default" -if test "x$ac_cv_header_dwrite_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DWRITE_H 1 -_ACEOF - have_directwrite=true -fi - -done - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -if test "x$with_directwrite" = "xyes" -a "x$have_directwrite" != "xtrue"; then - as_fn_error $? "directwrite support requested but not found" "$LINENO" 5 -fi -if $have_directwrite; then - DIRECTWRITE_CXXFLAGS= - DIRECTWRITE_LIBS="-ldwrite" - - - -$as_echo "#define HAVE_DIRECTWRITE 1" >>confdefs.h - -fi - if $have_directwrite; then - HAVE_DIRECTWRITE_TRUE= - HAVE_DIRECTWRITE_FALSE='#' -else - HAVE_DIRECTWRITE_TRUE='#' - HAVE_DIRECTWRITE_FALSE= -fi - - - - # Check whether --with-coretext was given. if test "${with_coretext+set}" = set; then : withval=$with_coretext; @@ -19220,7 +18969,7 @@ fi fi -ac_config_files="$ac_config_files Makefile src/Makefile src/hb-version.h src/hb-ucdn/Makefile util/Makefile test/Makefile test/api/Makefile test/fuzzing/Makefile test/shaping/Makefile docs/Makefile docs/version.xml win32/Makefile win32/config.h.win32" +ac_config_files="$ac_config_files Makefile src/Makefile src/hb-version.h src/hb-ucdn/Makefile util/Makefile test/Makefile test/api/Makefile test/shaping/Makefile docs/Makefile docs/reference/Makefile docs/reference/version.xml" cat >confcache <<\_ACEOF @@ -19428,6 +19177,10 @@ if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}" as_fn_error $? "conditional \"HAVE_INTROSPECTION\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${HAVE_UCDN_TRUE}" && test -z "${HAVE_UCDN_FALSE}"; then + as_fn_error $? "conditional \"HAVE_UCDN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${HAVE_CAIRO_TRUE}" && test -z "${HAVE_CAIRO_FALSE}"; then as_fn_error $? "conditional \"HAVE_CAIRO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -19436,22 +19189,10 @@ if test -z "${HAVE_CAIRO_FT_TRUE}" && test -z "${HAVE_CAIRO_FT_FALSE}"; then as_fn_error $? "conditional \"HAVE_CAIRO_FT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${HAVE_FONTCONFIG_TRUE}" && test -z "${HAVE_FONTCONFIG_FALSE}"; then - as_fn_error $? "conditional \"HAVE_FONTCONFIG\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${HAVE_ICU_TRUE}" && test -z "${HAVE_ICU_FALSE}"; then as_fn_error $? "conditional \"HAVE_ICU\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${HAVE_ICU_BUILTIN_TRUE}" && test -z "${HAVE_ICU_BUILTIN_FALSE}"; then - as_fn_error $? "conditional \"HAVE_ICU_BUILTIN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_UCDN_TRUE}" && test -z "${HAVE_UCDN_FALSE}"; then - as_fn_error $? "conditional \"HAVE_UCDN\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${HAVE_GRAPHITE2_TRUE}" && test -z "${HAVE_GRAPHITE2_FALSE}"; then as_fn_error $? "conditional \"HAVE_GRAPHITE2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -19464,10 +19205,6 @@ if test -z "${HAVE_UNISCRIBE_TRUE}" && test -z "${HAVE_UNISCRIBE_FALSE}"; then as_fn_error $? "conditional \"HAVE_UNISCRIBE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${HAVE_DIRECTWRITE_TRUE}" && test -z "${HAVE_DIRECTWRITE_FALSE}"; then - as_fn_error $? "conditional \"HAVE_DIRECTWRITE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${HAVE_CORETEXT_TRUE}" && test -z "${HAVE_CORETEXT_FALSE}"; then as_fn_error $? "conditional \"HAVE_CORETEXT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -19869,7 +19606,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HarfBuzz $as_me 1.2.7, which was +This file was extended by HarfBuzz $as_me 0.9.40, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19936,7 +19673,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HarfBuzz config.status 1.2.7 +HarfBuzz config.status 0.9.40 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -20120,8 +19857,10 @@ compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' @@ -20293,8 +20032,10 @@ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ @@ -20361,7 +20102,7 @@ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -20402,7 +20143,7 @@ prelink_cmds_CXX \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -20411,19 +20152,16 @@ postlink_cmds_CXX; do done ac_aux_dir='$ac_aux_dir' -xsi_shell='$xsi_shell' -lt_shell_append='$lt_shell_append' -# See if we are running on zsh, and set the options which allow our +# See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then +if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' @@ -20450,12 +20188,10 @@ do "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/api/Makefile") CONFIG_FILES="$CONFIG_FILES test/api/Makefile" ;; - "test/fuzzing/Makefile") CONFIG_FILES="$CONFIG_FILES test/fuzzing/Makefile" ;; "test/shaping/Makefile") CONFIG_FILES="$CONFIG_FILES test/shaping/Makefile" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; - "docs/version.xml") CONFIG_FILES="$CONFIG_FILES docs/version.xml" ;; - "win32/Makefile") CONFIG_FILES="$CONFIG_FILES win32/Makefile" ;; - "win32/config.h.win32") CONFIG_FILES="$CONFIG_FILES win32/config.h.win32" ;; + "docs/reference/Makefile") CONFIG_FILES="$CONFIG_FILES docs/reference/Makefile" ;; + "docs/reference/version.xml") CONFIG_FILES="$CONFIG_FILES docs/reference/version.xml" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac @@ -21146,13 +20882,13 @@ $as_echo X"$file" | ;; "libtool":C) - # See if we are running on zsh, and set the options which allow our + # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then + if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi - cfgfile="${ofile}T" + cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" @@ -21160,7 +20896,7 @@ $as_echo X"$file" | #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Generated automatically by $as_me ($PACKAGE) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # @@ -21194,7 +20930,7 @@ $as_echo X"$file" | # The names of the tagged configurations supported by this script. -available_tags="CXX " +available_tags='CXX ' # ### BEGIN LIBTOOL CONFIG @@ -21331,16 +21067,22 @@ global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec -# The root where to search for dependent libraries,and in which our libraries should be installed. +# The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. @@ -21527,13 +21269,13 @@ hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute @@ -21605,7 +21347,7 @@ _LT_EOF # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then +if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi @@ -21614,7 +21356,7 @@ _LT_EOF esac -ltmain="$ac_aux_dir/ltmain.sh" +ltmain=$ac_aux_dir/ltmain.sh # We use sed instead of cat because bash on DJGPP gets confused if @@ -21624,165 +21366,6 @@ ltmain="$ac_aux_dir/ltmain.sh" sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) - if test x"$xsi_shell" = xyes; then - sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ -func_dirname ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_basename ()$/,/^} # func_basename /c\ -func_basename ()\ -{\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ -func_dirname_and_basename ()\ -{\ -\ case ${1} in\ -\ */*) func_dirname_result="${1%/*}${2}" ;;\ -\ * ) func_dirname_result="${3}" ;;\ -\ esac\ -\ func_basename_result="${1##*/}"\ -} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ -func_stripname ()\ -{\ -\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ -\ # positional parameters, so assign one to ordinary parameter first.\ -\ func_stripname_result=${3}\ -\ func_stripname_result=${func_stripname_result#"${1}"}\ -\ func_stripname_result=${func_stripname_result%"${2}"}\ -} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ -func_split_long_opt ()\ -{\ -\ func_split_long_opt_name=${1%%=*}\ -\ func_split_long_opt_arg=${1#*=}\ -} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ -func_split_short_opt ()\ -{\ -\ func_split_short_opt_arg=${1#??}\ -\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ -} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ -func_lo2o ()\ -{\ -\ case ${1} in\ -\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ -\ *) func_lo2o_result=${1} ;;\ -\ esac\ -} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_xform ()$/,/^} # func_xform /c\ -func_xform ()\ -{\ - func_xform_result=${1%.*}.lo\ -} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_arith ()$/,/^} # func_arith /c\ -func_arith ()\ -{\ - func_arith_result=$(( $* ))\ -} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_len ()$/,/^} # func_len /c\ -func_len ()\ -{\ - func_len_result=${#1}\ -} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - -fi - -if test x"$lt_shell_append" = xyes; then - sed -e '/^func_append ()$/,/^} # func_append /c\ -func_append ()\ -{\ - eval "${1}+=\\${2}"\ -} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ -func_append_quoted ()\ -{\ -\ func_quote_for_eval "${2}"\ -\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ -} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: - - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 -$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} -fi - - mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" @@ -21869,13 +21452,13 @@ hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX -# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX @@ -21994,7 +21577,6 @@ Font callbacks (the more the better): Tools used for command-line utilities: Cairo: ${have_cairo} - Fontconfig: ${have_fontconfig} Additional shapers (the more the better): Graphite2: ${have_graphite2} @@ -22002,7 +21584,6 @@ Additional shapers (the more the better): Platform shapers (not normally needed): CoreText: ${have_coretext} Uniscribe: ${have_uniscribe} - DirectWrite: ${have_directwrite} Other features: Documentation: ${have_gtk_doc} @@ -22023,7 +21604,6 @@ Font callbacks (the more the better): Tools used for command-line utilities: Cairo: ${have_cairo} - Fontconfig: ${have_fontconfig} Additional shapers (the more the better): Graphite2: ${have_graphite2} @@ -22031,7 +21611,6 @@ Additional shapers (the more the better): Platform shapers (not normally needed): CoreText: ${have_coretext} Uniscribe: ${have_uniscribe} - DirectWrite: ${have_directwrite} Other features: Documentation: ${have_gtk_doc} diff --git a/configure.ac b/configure.ac index 5ffd494..5baad1f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ([2.64]) AC_INIT([HarfBuzz], - [1.2.7], + [0.9.40], [http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz], [harfbuzz], [http://harfbuzz.org/]) @@ -9,7 +9,7 @@ AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_SRCDIR([src/harfbuzz.pc.in]) AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE([1.11.1 gnits tar-ustar dist-bzip2 no-dist-gzip -Wall no-define color-tests -Wno-portability]) +AM_INIT_AUTOMAKE([1.11.1 gnits tar-pax dist-bzip2 no-dist-gzip -Wall no-define color-tests -Wno-portability]) AM_CONDITIONAL(AUTOMAKE_OLDER_THAN_1_13, test $am__api_version = 1.11 -o $am__api_version = 1.12) AM_SILENT_RULES([yes]) @@ -51,7 +51,7 @@ m4_if(m4_eval(hb_version_minor % 2), [1], m4_define([hb_libtool_age], m4_eval(hb_version_int - hb_libtool_revision)) m4_define([hb_libtool_current], - m4_eval(hb_libtool_age)) + m4_eval(hb_version_major + hb_libtool_age)) HB_LIBTOOL_VERSION_INFO=hb_libtool_current:hb_libtool_revision:hb_libtool_age AC_SUBST(HB_LIBTOOL_VERSION_INFO) @@ -145,10 +145,8 @@ AC_ARG_WITH(glib, [Use glib @<:@default=auto@:>@])],, [with_glib=auto]) have_glib=false -GLIB_DEPS="glib-2.0 >= 2.16" -AC_SUBST(GLIB_DEPS) if test "x$with_glib" = "xyes" -o "x$with_glib" = "xauto"; then - PKG_CHECK_MODULES(GLIB, $GLIB_DEPS, have_glib=true, :) + PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.16, have_glib=true, :) fi if test "x$with_glib" = "xyes" -a "x$have_glib" != "xtrue"; then AC_MSG_ERROR([glib support requested but glib-2.0 not found]) @@ -197,6 +195,17 @@ m4_ifdef([GOBJECT_INTROSPECTION_CHECK], [ AM_CONDITIONAL([HAVE_INTROSPECTION], false) ]) +dnl =========================================================================== + +have_ucdn=true +if $have_glib; then + have_ucdn=false +fi +if $have_ucdn; then + AC_DEFINE(HAVE_UCDN, 1, [Have UCDN Unicode functions]) +fi +AM_CONDITIONAL(HAVE_UCDN, $have_ucdn) + dnl ========================================================================== AC_ARG_WITH(cairo, @@ -226,30 +235,12 @@ AM_CONDITIONAL(HAVE_CAIRO_FT, $have_cairo_ft) dnl ========================================================================== -AC_ARG_WITH(fontconfig, - [AS_HELP_STRING([--with-fontconfig=@<:@yes/no/auto@:>@], - [Use fontconfig @<:@default=auto@:>@])],, - [with_fontconfig=auto]) -have_fontconfig=false -if test "x$with_fontconfig" = "xyes" -o "x$with_fontconfig" = "xauto"; then - PKG_CHECK_MODULES(FONTCONFIG, fontconfig, have_fontconfig=true, :) -fi -if test "x$with_fontconfig" = "xyes" -a "x$have_fontconfig" != "xtrue"; then - AC_MSG_ERROR([fontconfig support requested but not found]) -fi -if $have_fontconfig; then - AC_DEFINE(HAVE_FONTCONFIG, 1, [Have fontconfig library]) -fi -AM_CONDITIONAL(HAVE_FONTCONFIG, $have_fontconfig) - -dnl ========================================================================== - AC_ARG_WITH(icu, - [AS_HELP_STRING([--with-icu=@<:@yes/no/builtin/auto@:>@], + [AS_HELP_STRING([--with-icu=@<:@yes/no/auto@:>@], [Use ICU @<:@default=auto@:>@])],, [with_icu=auto]) have_icu=false -if test "x$with_icu" = "xyes" -o "x$with_icu" = "xbuiltin" -o "x$with_icu" = "xauto"; then +if test "x$with_icu" = "xyes" -o "x$with_icu" = "xauto"; then PKG_CHECK_MODULES(ICU, icu-uc, have_icu=true, :) dnl Fallback to icu-config if ICU pkg-config files could not be found @@ -271,30 +262,14 @@ if test "x$with_icu" = "xyes" -o "x$with_icu" = "xbuiltin" -o "x$with_icu" = "xa fi fi fi -if test \( "x$with_icu" = "xyes" -o "x$with_icu" = "xbuiltin" \) -a "x$have_icu" != "xtrue"; then +if test "x$with_icu" = "xyes" -a "x$have_icu" != "xtrue"; then AC_MSG_ERROR([icu support requested but icu-uc not found]) fi - if $have_icu; then CXXFLAGS="$CXXFLAGS `$PKG_CONFIG --variable=CXXFLAGS icu-uc`" AC_DEFINE(HAVE_ICU, 1, [Have ICU library]) - if test "x$with_icu" = "xbuiltin"; then - AC_DEFINE(HAVE_ICU_BUILTIN, 1, [Use hb-icu Unicode callbacks]) - fi fi AM_CONDITIONAL(HAVE_ICU, $have_icu) -AM_CONDITIONAL(HAVE_ICU_BUILTIN, $have_icu && test "x$with_icu" = "xbuiltin") - -dnl =========================================================================== - -have_ucdn=true -if $have_glib || $have_icu && test "x$with_icu" = "xbuiltin"; then - have_ucdn=false -fi -if $have_ucdn; then - AC_DEFINE(HAVE_UCDN, 1, [Have UCDN Unicode functions]) -fi -AM_CONDITIONAL(HAVE_UCDN, $have_ucdn) dnl ========================================================================== @@ -303,10 +278,8 @@ AC_ARG_WITH(graphite2, [Use the graphite2 library @<:@default=no@:>@])],, [with_graphite2=no]) have_graphite2=false -GRAPHITE2_DEPS="graphite2" -AC_SUBST(GRAPHITE2_DEPS) if test "x$with_graphite2" = "xyes" -o "x$with_graphite2" = "xauto"; then - PKG_CHECK_MODULES(GRAPHITE2, $GRAPHITE2_DEPS, have_graphite2=true, :) + PKG_CHECK_MODULES(GRAPHITE2, graphite2, have_graphite2=true, :) fi if test "x$with_graphite2" = "xyes" -a "x$have_graphite2" != "xtrue"; then AC_MSG_ERROR([graphite2 support requested but libgraphite2 not found]) @@ -323,11 +296,9 @@ AC_ARG_WITH(freetype, [Use the FreeType library @<:@default=auto@:>@])],, [with_freetype=auto]) have_freetype=false -FREETYPE_DEPS="freetype2 >= 12.0.6" -AC_SUBST(FREETYPE_DEPS) if test "x$with_freetype" = "xyes" -o "x$with_freetype" = "xauto"; then # See freetype/docs/VERSION.DLL; 12.0.6 means freetype-2.4.2 - PKG_CHECK_MODULES(FREETYPE, $FREETYPE_DEPS, have_freetype=true, :) + PKG_CHECK_MODULES(FREETYPE, freetype2 >= 12.0.6, have_freetype=true, :) fi if test "x$with_freetype" = "xyes" -a "x$have_freetype" != "xtrue"; then AC_MSG_ERROR([FreeType support requested but libfreetype2 not found]) @@ -361,30 +332,6 @@ AM_CONDITIONAL(HAVE_UNISCRIBE, $have_uniscribe) dnl =========================================================================== -AC_ARG_WITH(directwrite, - [AS_HELP_STRING([--with-directwrite=@<:@yes/no/auto@:>@], - [Use the DirectWrite library (experimental) @<:@default=no@:>@])],, - [with_directwrite=no]) -have_directwrite=false -AC_LANG_PUSH([C++]) -if test "x$with_directwrite" = "xyes" -o "x$with_directwrite" = "xauto"; then - AC_CHECK_HEADERS(dwrite.h, have_directwrite=true) -fi -AC_LANG_POP([C++]) -if test "x$with_directwrite" = "xyes" -a "x$have_directwrite" != "xtrue"; then - AC_MSG_ERROR([directwrite support requested but not found]) -fi -if $have_directwrite; then - DIRECTWRITE_CXXFLAGS= - DIRECTWRITE_LIBS="-ldwrite" - AC_SUBST(DIRECTWRITE_CXXFLAGS) - AC_SUBST(DIRECTWRITE_LIBS) - AC_DEFINE(HAVE_DIRECTWRITE, 1, [Have DirectWrite library]) -fi -AM_CONDITIONAL(HAVE_DIRECTWRITE, $have_directwrite) - -dnl =========================================================================== - AC_ARG_WITH(coretext, [AS_HELP_STRING([--with-coretext=@<:@yes/no/auto@:>@], [Use CoreText @<:@default=no@:>@])],, @@ -469,12 +416,10 @@ src/hb-ucdn/Makefile util/Makefile test/Makefile test/api/Makefile -test/fuzzing/Makefile test/shaping/Makefile docs/Makefile -docs/version.xml -win32/Makefile -win32/config.h.win32 +docs/reference/Makefile +docs/reference/version.xml ]) AC_OUTPUT @@ -493,7 +438,6 @@ Font callbacks (the more the better): Tools used for command-line utilities: Cairo: ${have_cairo} - Fontconfig: ${have_fontconfig} Additional shapers (the more the better): Graphite2: ${have_graphite2} @@ -501,7 +445,6 @@ Additional shapers (the more the better): Platform shapers (not normally needed): CoreText: ${have_coretext} Uniscribe: ${have_uniscribe} - DirectWrite: ${have_directwrite} Other features: Documentation: ${have_gtk_doc} diff --git a/docs/HarfBuzz.png b/docs/HarfBuzz.png deleted file mode 100644 index d58d9fc..0000000 Binary files a/docs/HarfBuzz.png and /dev/null differ diff --git a/docs/Makefile.am b/docs/Makefile.am index 3916801..034926c 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1,122 +1,3 @@ -# Process this file with automake to produce Makefile.in - -# We require automake 1.6 at least. -AUTOMAKE_OPTIONS = 1.6 - -# This is a blank Makefile.am for using gtk-doc. -# Copy this to your project's API docs directory and modify the variables to -# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples -# of using the various options. - -# The name of the module, e.g. 'glib'. -DOC_MODULE=harfbuzz - -# Uncomment for versioned docs and specify the version of the module, e.g. '2'. -#DOC_MODULE_VERSION=$(HB_VERSION_MAJOR) - -# The top-level SGML file. You can change this if you want to. -DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml - -# Directories containing the source code. -# gtk-doc will search all .c and .h files beneath these paths -# for inline comments documenting functions and macros. -# e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk -DOC_SOURCE_DIR=$(top_srcdir)/src $(top_builddir)/src - -# Extra options to pass to gtkdoc-scangobj. Not normally needed. -SCANGOBJ_OPTIONS= - -# Extra options to supply to gtkdoc-scan. -# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" -SCAN_OPTIONS=--rebuild-types --deprecated-guards="HB_DISABLE_DEPRECATED" \ - --ignore-decorators="HB_EXTERN" - -# Header files or dirs to ignore when scanning. Use base file/dir names -# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code -IGNORE_HFILES=`cd $(top_srcdir)/src; find . -path './hb-*/*.h' | sed 's@^.*/@@'` -if HAVE_GOBJECT -else -IGNORE_HFILES+=hb-gobject.h hb-gobject-enums.h hb-gobject-structs.h -endif - -# Extra options to supply to gtkdoc-mkdb. -# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml -MKDB_OPTIONS=--source-suffixes=h,cc --xml-mode --output-format=xml --ignore-files="$(IGNORE_HFILES)" - -# Extra options to supply to gtkdoc-mktmpl -# e.g. MKTMPL_OPTIONS=--only-section-tmpl -MKTMPL_OPTIONS= - -# Extra options to supply to gtkdoc-mkhtml -MKHTML_OPTIONS= - -# Extra options to supply to gtkdoc-fixref. Not normally needed. -# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html -FIXXREF_OPTIONS= - -# Used for dependencies. The docs will be rebuilt if any of these change. -# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h -# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c -HFILE_GLOB=$(top_srcdir)/src/hb.h $(top_srcdir)/src/hb-*.h -CFILE_GLOB=$(top_srcdir)/src/hb-*.cc - -# Extra header to include when scanning, which are not under DOC_SOURCE_DIR -# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h -EXTRA_HFILES=$(top_builddir)/src/hb-version.h - -# Images to copy into HTML directory. -# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png -HTML_IMAGES= \ - HarfBuzz.png - -# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). -# e.g. content_files=running.sgml building.sgml changes-2.0.sgml -content_files= \ - usermanual-buffers-language-script-and-direction.xml \ - usermanual-clusters.xml \ - usermanual-fonts-and-faces.xml \ - usermanual-glyph-information.xml \ - usermanual-hello-harfbuzz.xml \ - usermanual-install-harfbuzz.xml \ - usermanual-opentype-features.xml \ - usermanual-what-is-harfbuzz.xml \ - version.xml - -# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded -# These files must be listed here *and* in content_files -# e.g. expand_content_files=running.sgml -expand_content_files= - -# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. -# Only needed if you are using gtkdoc-scangobj to dynamically query widget -# signals and properties. -# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) -# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) -GTKDOC_CFLAGS= -GTKDOC_LIBS=$(top_builddir)/src/libharfbuzz.la -if HAVE_GOBJECT -GTKDOC_LIBS+=$(top_builddir)/src/libharfbuzz-gobject.la -endif - -# This includes the standard gtk-doc make rules, copied by gtkdocize. -include $(top_srcdir)/gtk-doc.make - -# Other files to distribute -# e.g. EXTRA_DIST += version.xml.in -EXTRA_DIST += version.xml.in - -# Files not to distribute -# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types -# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt -#DISTCLEANFILES += - -# Comment this out if you want 'make check' to test you doc status -# and run some sanity checks -if ENABLE_GTK_DOC -TESTS_ENVIRONMENT = cd $(srcdir) && \ - DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ - SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) -#TESTS = $(GTKDOC_CHECK) -endif +SUBDIRS = reference -include $(top_srcdir)/git.mk diff --git a/docs/Makefile.in b/docs/Makefile.in index 04b9a15..f8fe860 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -13,14 +13,6 @@ # PARTICULAR PURPOSE. @SET_MAKE@ - -# Process this file with automake to produce Makefile.in - -# -*- mode: makefile -*- - -#################################### -# Everything below here is generic # -#################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ @@ -85,11 +77,8 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@HAVE_GOBJECT_FALSE@am__append_1 = hb-gobject.h hb-gobject-enums.h hb-gobject-structs.h -@HAVE_GOBJECT_TRUE@am__append_2 = $(top_builddir)/src/libharfbuzz-gobject.la -DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(srcdir)/version.xml.in subdir = docs +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \ @@ -100,7 +89,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = version.xml +CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -116,13 +105,73 @@ am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -149,8 +198,6 @@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DIRECTWRITE_CXXFLAGS = @DIRECTWRITE_CXXFLAGS@ -DIRECTWRITE_LIBS = @DIRECTWRITE_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -160,20 +207,15 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_DEPS = @FREETYPE_DEPS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_DEPS = @GLIB_DEPS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ GOBJECT_LIBS = @GOBJECT_LIBS@ GRAPHITE2_CFLAGS = @GRAPHITE2_CFLAGS@ -GRAPHITE2_DEPS = @GRAPHITE2_DEPS@ GRAPHITE2_LIBS = @GRAPHITE2_LIBS@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ @@ -296,195 +338,11 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ - -# We require automake 1.6 at least. -AUTOMAKE_OPTIONS = 1.6 - -# This is a blank Makefile.am for using gtk-doc. -# Copy this to your project's API docs directory and modify the variables to -# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples -# of using the various options. - -# The name of the module, e.g. 'glib'. -DOC_MODULE = harfbuzz - -# Uncomment for versioned docs and specify the version of the module, e.g. '2'. -#DOC_MODULE_VERSION=$(HB_VERSION_MAJOR) - -# The top-level SGML file. You can change this if you want to. -DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml - -# Directories containing the source code. -# gtk-doc will search all .c and .h files beneath these paths -# for inline comments documenting functions and macros. -# e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk -DOC_SOURCE_DIR = $(top_srcdir)/src $(top_builddir)/src - -# Extra options to pass to gtkdoc-scangobj. Not normally needed. -SCANGOBJ_OPTIONS = - -# Extra options to supply to gtkdoc-scan. -# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" -SCAN_OPTIONS = --rebuild-types --deprecated-guards="HB_DISABLE_DEPRECATED" \ - --ignore-decorators="HB_EXTERN" - - -# Header files or dirs to ignore when scanning. Use base file/dir names -# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code -IGNORE_HFILES = `cd $(top_srcdir)/src; find . -path './hb-*/*.h' | sed \ - 's@^.*/@@'` $(am__append_1) - -# Extra options to supply to gtkdoc-mkdb. -# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml -MKDB_OPTIONS = --source-suffixes=h,cc --xml-mode --output-format=xml --ignore-files="$(IGNORE_HFILES)" - -# Extra options to supply to gtkdoc-mktmpl -# e.g. MKTMPL_OPTIONS=--only-section-tmpl -MKTMPL_OPTIONS = - -# Extra options to supply to gtkdoc-mkhtml -MKHTML_OPTIONS = - -# Extra options to supply to gtkdoc-fixref. Not normally needed. -# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html -FIXXREF_OPTIONS = - -# Used for dependencies. The docs will be rebuilt if any of these change. -# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h -# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c -HFILE_GLOB = $(top_srcdir)/src/hb.h $(top_srcdir)/src/hb-*.h -CFILE_GLOB = $(top_srcdir)/src/hb-*.cc - -# Extra header to include when scanning, which are not under DOC_SOURCE_DIR -# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h -EXTRA_HFILES = $(top_builddir)/src/hb-version.h - -# Images to copy into HTML directory. -# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png -HTML_IMAGES = \ - HarfBuzz.png - - -# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). -# e.g. content_files=running.sgml building.sgml changes-2.0.sgml -content_files = \ - usermanual-buffers-language-script-and-direction.xml \ - usermanual-clusters.xml \ - usermanual-fonts-and-faces.xml \ - usermanual-glyph-information.xml \ - usermanual-hello-harfbuzz.xml \ - usermanual-install-harfbuzz.xml \ - usermanual-opentype-features.xml \ - usermanual-what-is-harfbuzz.xml \ - version.xml - - -# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded -# These files must be listed here *and* in content_files -# e.g. expand_content_files=running.sgml -expand_content_files = - -# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. -# Only needed if you are using gtkdoc-scangobj to dynamically query widget -# signals and properties. -# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) -# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) -GTKDOC_CFLAGS = -GTKDOC_LIBS = $(top_builddir)/src/libharfbuzz.la $(am__append_2) -@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = -@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute - -# We set GPATH here; this gives us semantics for GNU make -# which are more like other make's VPATH, when it comes to -# whether a source that is a target of one rule is then -# searched for in VPATH/GPATH. -# -GPATH = $(srcdir) -TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) -SETUP_FILES = \ - $(content_files) \ - $(DOC_MAIN_SGML_FILE) \ - $(DOC_MODULE)-sections.txt \ - $(DOC_MODULE)-overrides.txt - - -# This includes the standard gtk-doc make rules, copied by gtkdocize. - -# Other files to distribute -# e.g. EXTRA_DIST += version.xml.in -EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) version.xml.in -DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ - html-build.stamp pdf-build.stamp \ - sgml.stamp html.stamp pdf.stamp - -SCANOBJ_FILES = \ - $(DOC_MODULE).args \ - $(DOC_MODULE).hierarchy \ - $(DOC_MODULE).interfaces \ - $(DOC_MODULE).prerequisites \ - $(DOC_MODULE).signals - -REPORT_FILES = \ - $(DOC_MODULE)-undocumented.txt \ - $(DOC_MODULE)-undeclared.txt \ - $(DOC_MODULE)-unused.txt - -CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test -@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = -@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp -@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = -@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp - -#### setup #### -GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V)) -GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) -GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; - -#### scan #### -GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V)) -GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) -GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; -GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V)) -GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) -GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; - -#### xml #### -GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V)) -GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) -GTK_DOC_V_XML_0 = @echo " DOC Building XML"; - -#### html #### -GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V)) -GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) -GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; -GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V)) -GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) -GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; - -#### pdf #### -GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V)) -GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) -GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; - -# Files not to distribute -# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types -# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt -#DISTCLEANFILES += - -# Comment this out if you want 'make check' to test you doc status -# and run some sanity checks -@ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = cd $(srcdir) && \ -@ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ -@ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) - -all: all-am +SUBDIRS = reference +all: all-recursive .SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -505,7 +363,6 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; -$(top_srcdir)/gtk-doc.make: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -515,20 +372,111 @@ $(top_srcdir)/configure: $(am__configure_deps) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): -version.xml: $(top_builddir)/config.status $(srcdir)/version.xml.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -tags TAGS: - -ctags CTAGS: -cscope cscopelist: +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ @@ -560,23 +508,45 @@ distdir: $(DISTFILES) || exit 1; \ fi; \ done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done check-am: all-am -check: check-am -@ENABLE_GTK_DOC_FALSE@all-local: -all-am: Makefile all-local -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -installcheck: installcheck-am +installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ @@ -590,7 +560,6 @@ install-strip: mostlyclean-generic: clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -599,272 +568,87 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -clean: clean-am +clean: clean-recursive -clean-am: clean-generic clean-libtool clean-local mostlyclean-am +clean-am: clean-generic clean-libtool mostlyclean-am -distclean: distclean-am +distclean: distclean-recursive -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-local +distclean-am: clean-am distclean-generic distclean-tags -dvi: dvi-am +dvi: dvi-recursive dvi-am: -html: html-am +html: html-recursive html-am: -info: info-am +info: info-recursive info-am: -install-data-am: install-data-local +install-data-am: -install-dvi: install-dvi-am +install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: -install-html: install-html-am +install-html: install-html-recursive install-html-am: -install-info: install-info-am +install-info: install-info-recursive install-info-am: install-man: -install-pdf: install-pdf-am +install-pdf: install-pdf-recursive install-pdf-am: -install-ps: install-ps-am +install-ps: install-ps-recursive install-ps-am: installcheck-am: -maintainer-clean: maintainer-clean-am +maintainer-clean: maintainer-clean-recursive -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic \ - maintainer-clean-local +maintainer-clean-am: distclean-am maintainer-clean-generic -mostlyclean: mostlyclean-am +mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool -pdf: pdf-am +pdf: pdf-recursive pdf-am: -ps: ps-am +ps: ps-recursive ps-am: -uninstall-am: uninstall-local - -.MAKE: install-am install-strip - -.PHONY: all all-am all-local check check-am clean clean-generic \ - clean-libtool clean-local cscopelist-am ctags-am dist-hook \ - distclean distclean-generic distclean-libtool distclean-local \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-data install-data-am install-data-local \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - maintainer-clean-local mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ - uninstall-am uninstall-local - - -gtkdoc-check.test: Makefile - $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ - echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ - chmod +x $@ - -all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) -.PHONY: all-gtk-doc - -@ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc - -docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) - -$(REPORT_FILES): sgml-build.stamp - -setup-build.stamp: - -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ - if test "x$$files" != "x" ; then \ - for file in $$files ; do \ - destdir=`dirname $(abs_builddir)/$$file`; \ - test -d "$$destdir" || mkdir -p "$$destdir"; \ - test -f $(abs_srcdir)/$$file && \ - cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ - done; \ - fi; \ - fi - $(AM_V_at)touch setup-build.stamp - -scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) - $(GTK_DOC_V_SCAN)_source_dir='' ; \ - for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ - done ; \ - gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) - $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ - scanobj_options=""; \ - gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ - if test "$(?)" = "0"; then \ - if test "x$(V)" = "x1"; then \ - scanobj_options="--verbose"; \ - fi; \ - fi; \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ - gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ - else \ - for i in $(SCANOBJ_FILES) ; do \ - test -f $$i || touch $$i ; \ - done \ - fi - $(AM_V_at)touch scan-build.stamp - -$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp - @true - -sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) - $(GTK_DOC_V_XML)_source_dir='' ; \ - for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ - done ; \ - gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) - $(AM_V_at)touch sgml-build.stamp - -sgml.stamp: sgml-build.stamp - @true - -html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ - mkhtml_options=""; \ - gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ - if test "$(?)" = "0"; then \ - if test "x$(V)" = "x1"; then \ - mkhtml_options="$$mkhtml_options --verbose"; \ - fi; \ - fi; \ - gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ - if test "$(?)" = "0"; then \ - mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ - fi; \ - cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) - -@test "x$(HTML_IMAGES)" = "x" || \ - for file in $(HTML_IMAGES) ; do \ - if test -f $(abs_srcdir)/$$file ; then \ - cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ - fi; \ - if test -f $(abs_builddir)/$$file ; then \ - cp $(abs_builddir)/$$file $(abs_builddir)/html; \ - fi; \ - done; - $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) - $(AM_V_at)touch html-build.stamp - -pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ - mkpdf_options=""; \ - gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ - if test "$(?)" = "0"; then \ - if test "x$(V)" = "x1"; then \ - mkpdf_options="$$mkpdf_options --verbose"; \ - fi; \ - fi; \ - if test "x$(HTML_IMAGES)" != "x"; then \ - for img in $(HTML_IMAGES); do \ - part=`dirname $$img`; \ - echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ - if test $$? != 0; then \ - mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ - fi; \ - done; \ - fi; \ - gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) - $(AM_V_at)touch pdf-build.stamp - -############## - -clean-local: - @rm -f *~ *.bak - @rm -rf .libs - @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ - rm -f $(DOC_MODULE).types; \ - fi - -distclean-local: - @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ - $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt - @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ - fi +uninstall-am: -maintainer-clean-local: - @rm -rf xml html +.MAKE: $(am__recursive_targets) install-am install-strip -install-data-local: - @installfiles=`echo $(builddir)/html/*`; \ - if test "$$installfiles" = '$(builddir)/html/*'; \ - then echo 1>&2 'Nothing to install' ; \ - else \ - if test -n "$(DOC_MODULE_VERSION)"; then \ - installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ - else \ - installdir="$(DESTDIR)$(TARGET_DIR)"; \ - fi; \ - $(mkinstalldirs) $${installdir} ; \ - for i in $$installfiles; do \ - echo ' $(INSTALL_DATA) '$$i ; \ - $(INSTALL_DATA) $$i $${installdir}; \ - done; \ - if test -n "$(DOC_MODULE_VERSION)"; then \ - mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ - $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ - fi; \ - $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ - fi +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am -uninstall-local: - @if test -n "$(DOC_MODULE_VERSION)"; then \ - installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ - else \ - installdir="$(DESTDIR)$(TARGET_DIR)"; \ - fi; \ - rm -rf $${installdir} - -# -# Require gtk-doc when making dist -# -@HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs -@HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: -@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" -@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" -@HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" -@HAVE_GTK_DOC_FALSE@ @false - -dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local - @mkdir $(distdir)/html - @cp ./html/* $(distdir)/html - @-cp ./$(DOC_MODULE).pdf $(distdir)/ - @-cp ./$(DOC_MODULE).types $(distdir)/ - @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ - @cd $(distdir) && rm -f $(DISTCLEANFILES) - @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html - -.PHONY : dist-hook-local docs -#TESTS = $(GTKDOC_CHECK) -include $(top_srcdir)/git.mk diff --git a/docs/harfbuzz-docs.xml b/docs/harfbuzz-docs.xml deleted file mode 100644 index 6c03f39..0000000 --- a/docs/harfbuzz-docs.xml +++ /dev/null @@ -1,184 +0,0 @@ - - - -]> - - - HarfBuzz Manual - - HarfBuzz - - - HarfBuzz is an OpenType - text shaping engine. - - - The current HarfBuzz codebase, formerly known as harfbuzz-ng, is - versioned 1.x.x and is stable and under active maintenance. This is - what is used in latest versions of Firefox, GNOME, ChromeOS, Chrome, - LibreOffice, XeTeX, Android, and KDE, among other places. The canonical - source tree is available - here. - Also available on - github. - See for release tarballs. - - - The old HarfBuzz codebase, these days known as harfbuzz-old, was - derived from FreeType, - Pango, and - Qt and is available - here. - It is not actively developed or maintained, and is extremely buggy. All - users are encouraged to switch over to the new HarfBuzz as soon as - possible. There are no release tarballs of old HarfBuzz whatsoever. - - - - - - User's manual - - - - - - - - - - - - - This document is for HarfBuzz &version;. - - - - Reference manual - - Harfbuzz API - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Object Hierarchy - - - - API Index - - - - Index of new symbols in 0.9.2 - - - - Index of new symbols in 0.9.5 - - - - Index of new symbols in 0.9.7 - - - - Index of new symbols in 0.9.8 - - - - Index of new symbols in 0.9.10 - - - - Index of new symbols in 0.9.11 - - - - Index of new symbols in 0.9.20 - - - - Index of new symbols in 0.9.22 - - - - Index of new symbols in 0.9.28 - - - - Index of new symbols in 0.9.30 - - - - Index of new symbols in 0.9.31 - - - - Index of new symbols in 0.9.38 - - - - Index of new symbols in 0.9.39 - - - - Index of new symbols in 0.9.41 - - - - Index of new symbols in 0.9.42 - - - - Index of new symbols in 1.0.5 - - - - Index of new symbols in 1.1.2 - - - - Index of new symbols in 1.1.3 - - - - Index of deprecated API - - - - - - diff --git a/docs/harfbuzz.types b/docs/harfbuzz.types deleted file mode 100644 index d9664df..0000000 --- a/docs/harfbuzz.types +++ /dev/null @@ -1,24 +0,0 @@ -hb_gobject_blob_get_type -hb_gobject_buffer_cluster_level_get_type -hb_gobject_buffer_content_type_get_type -hb_gobject_buffer_flags_get_type -hb_gobject_buffer_get_type -hb_gobject_buffer_serialize_flags_get_type -hb_gobject_buffer_serialize_format_get_type -hb_gobject_direction_get_type -hb_gobject_face_get_type -hb_gobject_feature_get_type -hb_gobject_font_funcs_get_type -hb_gobject_font_get_type -hb_gobject_glyph_info_get_type -hb_gobject_glyph_position_get_type -hb_gobject_memory_mode_get_type -hb_gobject_ot_layout_glyph_class_get_type -hb_gobject_script_get_type -hb_gobject_segment_properties_get_type -hb_gobject_set_get_type -hb_gobject_shape_plan_get_type -hb_gobject_unicode_combining_class_get_type -hb_gobject_unicode_funcs_get_type -hb_gobject_unicode_general_category_get_type -hb_gobject_user_data_key_get_type diff --git a/docs/html/HarfBuzz.png b/docs/html/HarfBuzz.png deleted file mode 100644 index d58d9fc..0000000 Binary files a/docs/html/HarfBuzz.png and /dev/null differ diff --git a/docs/html/adding-text-to-the-buffer.html b/docs/html/adding-text-to-the-buffer.html deleted file mode 100644 index ccf96bc..0000000 --- a/docs/html/adding-text-to-the-buffer.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - -Adding text to the buffer: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Adding text to the buffer

-

- Now we have a brand new Harfbuzz buffer. Let's start filling it - with text! From Harfbuzz's perspective, a buffer is just a stream - of Unicode codepoints, but your input string is probably in one of - the standard Unicode character encodings (UTF-8, UTF-16, UTF-32) -

-
- - - \ No newline at end of file diff --git a/docs/html/annotation-glossary.html b/docs/html/annotation-glossary.html deleted file mode 100644 index ccbbafe..0000000 --- a/docs/html/annotation-glossary.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Annotation Glossary: HarfBuzz Manual - - - - - - - - - - - - - - - -
-

-Annotation Glossary

-

A

-
allow-none
-

NULL is OK, both for passing and for returning.

-
array
-

Parameter points to an array of items.

-

C

-
closure
-

This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.

-

D

-
destroy
-

This parameter is a 'destroy_data', for callbacks.

-

E

-
element-type
-

Generics and defining elements of containers and arrays.

-

I

-
inout
-

Parameter for input and for returning results. Default is transfer full.

-

N

-
nullable
-

NULL may be passed as the value in, out, in-out; or as a return value.

-

O

-
out
-

Parameter for returning results. Default is transfer full.

-

S

-
scope notified
-

The callback is valid until the GDestroyNotify argument is called.

-
skip
-

Exposed in C code, not necessarily available in other languages.

-

T

-
transfer full
-

Free data after the code is done.

-
transfer none
-

Don't free data after the code is done.

-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-10.html b/docs/html/api-index-0-9-10.html deleted file mode 100644 index 76ac9c6..0000000 --- a/docs/html/api-index-0-9-10.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -Index of new symbols in 0.9.10: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.10

-

O

-
-hb_ot_layout_get_size_params, function in hb-ot-layout -
-
-

S

-
-hb_set_invert, function in hb-set -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-11.html b/docs/html/api-index-0-9-11.html deleted file mode 100644 index 83271c7..0000000 --- a/docs/html/api-index-0-9-11.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.11: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.11

-

B

-
-hb_buffer_clear_contents, function in Buffers -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-2.html b/docs/html/api-index-0-9-2.html deleted file mode 100644 index 75ae862..0000000 --- a/docs/html/api-index-0-9-2.html +++ /dev/null @@ -1,746 +0,0 @@ - - - - -Index of new symbols in 0.9.2: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.2

-

B

-
-hb_blob_create, function in hb-blob -
-
-
-hb_blob_create_sub_blob, function in hb-blob -
-
-
-hb_blob_destroy, function in hb-blob -
-
-
-hb_blob_get_data, function in hb-blob -
-
-
-hb_blob_get_data_writable, function in hb-blob -
-
-
-hb_blob_get_empty, function in hb-blob -
-
-
-hb_blob_get_length, function in hb-blob -
-
-
-hb_blob_get_user_data, function in hb-blob -
-
-
-hb_blob_is_immutable, function in hb-blob -
-
-
-hb_blob_make_immutable, function in hb-blob -
-
-
-hb_blob_reference, function in hb-blob -
-
-
-hb_blob_set_user_data, function in hb-blob -
-
-
-hb_buffer_add_utf16, function in Buffers -
-
-
-hb_buffer_add_utf32, function in Buffers -
-
-
-hb_buffer_add_utf8, function in Buffers -
-
-
-hb_buffer_allocation_successful, function in Buffers -
-
-
-hb_buffer_create, function in Buffers -
-
-
-hb_buffer_destroy, function in Buffers -
-
-
-hb_buffer_get_direction, function in Buffers -
-
-
-hb_buffer_get_empty, function in Buffers -
-
-
-hb_buffer_get_glyph_infos, function in Buffers -
-
-
-hb_buffer_get_glyph_positions, function in Buffers -
-
-
-hb_buffer_get_language, function in Buffers -
-
-
-hb_buffer_get_length, function in Buffers -
-
-
-hb_buffer_get_script, function in Buffers -
-
-
-hb_buffer_get_unicode_funcs, function in Buffers -
-
-
-hb_buffer_get_user_data, function in Buffers -
-
-
-hb_buffer_normalize_glyphs, function in Buffers -
-
-
-hb_buffer_pre_allocate, function in Buffers -
-
-
-hb_buffer_reference, function in Buffers -
-
-
-hb_buffer_reset, function in Buffers -
-
-
-hb_buffer_reverse, function in Buffers -
-
-
-hb_buffer_reverse_clusters, function in Buffers -
-
-
-hb_buffer_serialize_format_t, enum in Buffers -
-
-
-hb_buffer_set_direction, function in Buffers -
-
-
-hb_buffer_set_language, function in Buffers -
-
-
-hb_buffer_set_length, function in Buffers -
-
-
-hb_buffer_set_script, function in Buffers -
-
-
-hb_buffer_set_unicode_funcs, function in Buffers -
-
-
-hb_buffer_set_user_data, function in Buffers -
-
-

D

-
-hb_direction_from_string, function in hb-common -
-
-
-hb_direction_to_string, function in hb-common -
-
-

F

-
-hb_face_create, function in hb-face -
-
-
-hb_face_create_for_tables, function in hb-face -
-
-
-hb_face_destroy, function in hb-face -
-
-
-hb_face_get_empty, function in hb-face -
-
-
-hb_face_get_index, function in hb-face -
-
-
-hb_face_get_upem, function in hb-face -
-
-
-hb_face_get_user_data, function in hb-face -
-
-
-hb_face_is_immutable, function in hb-face -
-
-
-hb_face_make_immutable, function in hb-face -
-
-
-hb_face_reference, function in hb-face -
-
-
-hb_face_reference_blob, function in hb-face -
-
-
-hb_face_reference_table, function in hb-face -
-
-
-hb_face_set_index, function in hb-face -
-
-
-hb_face_set_upem, function in hb-face -
-
-
-hb_face_set_user_data, function in hb-face -
-
-
-hb_font_add_glyph_origin_for_direction, function in hb-font -
-
-
-hb_font_create, function in hb-font -
-
-
-hb_font_create_sub_font, function in hb-font -
-
-
-hb_font_destroy, function in hb-font -
-
-
-hb_font_funcs_create, function in hb-font -
-
-
-hb_font_funcs_destroy, function in hb-font -
-
-
-hb_font_funcs_get_empty, function in hb-font -
-
-
-hb_font_funcs_get_user_data, function in hb-font -
-
-
-hb_font_funcs_is_immutable, function in hb-font -
-
-
-hb_font_funcs_make_immutable, function in hb-font -
-
-
-hb_font_funcs_reference, function in hb-font -
-
-
-hb_font_funcs_set_glyph_contour_point_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_extents_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_from_name_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_h_advance_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_h_kerning_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_h_origin_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_name_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_v_advance_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_v_kerning_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_v_origin_func, function in hb-font -
-
-
-hb_font_funcs_set_user_data, function in hb-font -
-
-
-hb_font_get_empty, function in hb-font -
-
-
-hb_font_get_face, function in hb-font -
-
-
-hb_font_get_glyph, function in hb-font -
-
-
-hb_font_get_glyph_advance_for_direction, function in hb-font -
-
-
-hb_font_get_glyph_contour_point, function in hb-font -
-
-
-hb_font_get_glyph_contour_point_for_origin, function in hb-font -
-
-
-hb_font_get_glyph_extents, function in hb-font -
-
-
-hb_font_get_glyph_extents_for_origin, function in hb-font -
-
-
-hb_font_get_glyph_from_name, function in hb-font -
-
-
-hb_font_get_glyph_h_advance, function in hb-font -
-
-
-hb_font_get_glyph_h_kerning, function in hb-font -
-
-
-hb_font_get_glyph_h_origin, function in hb-font -
-
-
-hb_font_get_glyph_kerning_for_direction, function in hb-font -
-
-
-hb_font_get_glyph_name, function in hb-font -
-
-
-hb_font_get_glyph_origin_for_direction, function in hb-font -
-
-
-hb_font_get_glyph_v_advance, function in hb-font -
-
-
-hb_font_get_glyph_v_kerning, function in hb-font -
-
-
-hb_font_get_glyph_v_origin, function in hb-font -
-
-
-hb_font_get_parent, function in hb-font -
-
-
-hb_font_get_ppem, function in hb-font -
-
-
-hb_font_get_scale, function in hb-font -
-
-
-hb_font_get_user_data, function in hb-font -
-
-
-hb_font_glyph_from_string, function in hb-font -
-
-
-hb_font_glyph_to_string, function in hb-font -
-
-
-hb_font_is_immutable, function in hb-font -
-
-
-hb_font_make_immutable, function in hb-font -
-
-
-hb_font_reference, function in hb-font -
-
-
-hb_font_set_funcs, function in hb-font -
-
-
-hb_font_set_funcs_data, function in hb-font -
-
-
-hb_font_set_ppem, function in hb-font -
-
-
-hb_font_set_scale, function in hb-font -
-
-
-hb_font_set_user_data, function in hb-font -
-
-
-hb_font_subtract_glyph_origin_for_direction, function in hb-font -
-
-
-hb_ft_face_create, function in hb-ft -
-
-
-hb_ft_face_create_cached, function in hb-ft -
-
-
-hb_ft_font_create, function in hb-ft -
-
-

L

-
-hb_language_from_string, function in hb-common -
-
-
-hb_language_get_default, function in hb-common -
-
-
-hb_language_to_string, function in hb-common -
-
-

O

-
-hb_ot_shape_glyphs_closure, function in hb-ot-shape -
-
-
-hb_ot_tag_to_language, function in hb-ot-tag -
-
-

S

-
-hb_script_from_iso15924_tag, function in hb-common -
-
-
-hb_script_from_string, function in hb-common -
-
-
-hb_script_get_horizontal_direction, function in hb-common -
-
-
-hb_script_to_iso15924_tag, function in hb-common -
-
-
-hb_set_add, function in hb-set -
-
-
-hb_set_allocation_successful, function in hb-set -
-
-
-hb_set_clear, function in hb-set -
-
-
-hb_set_create, function in hb-set -
-
-
-hb_set_del, function in hb-set -
-
-
-hb_set_destroy, function in hb-set -
-
-
-hb_set_get_empty, function in hb-set -
-
-
-hb_set_get_user_data, function in hb-set -
-
-
-hb_set_has, function in hb-set -
-
-
-hb_set_intersect, function in hb-set -
-
-
-hb_set_next, function in hb-set -
-
-
-hb_set_reference, function in hb-set -
-
-
-hb_set_set, function in hb-set -
-
-
-hb_set_set_user_data, function in hb-set -
-
-
-hb_set_subtract, function in hb-set -
-
-
-hb_set_symmetric_difference, function in hb-set -
-
-
-hb_set_union, function in hb-set -
-
-
-hb_shape, function in Shaping -
-
-
-hb_shape_full, function in Shaping -
-
-
-hb_shape_list_shapers, function in Shaping -
-
-

T

-
-hb_tag_from_string, function in hb-common -
-
-

U

-
-hb_unicode_combining_class, function in hb-unicode -
-
-
-hb_unicode_compose, function in hb-unicode -
-
-
-hb_unicode_decompose, function in hb-unicode -
-
-
-hb_unicode_decompose_compatibility, function in hb-unicode -
-
-
-hb_unicode_eastasian_width, function in hb-unicode -
-
-
-hb_unicode_funcs_create, function in hb-unicode -
-
-
-hb_unicode_funcs_destroy, function in hb-unicode -
-
-
-hb_unicode_funcs_get_empty, function in hb-unicode -
-
-
-hb_unicode_funcs_get_parent, function in hb-unicode -
-
-
-hb_unicode_funcs_get_user_data, function in hb-unicode -
-
-
-hb_unicode_funcs_is_immutable, function in hb-unicode -
-
-
-hb_unicode_funcs_make_immutable, function in hb-unicode -
-
-
-hb_unicode_funcs_reference, function in hb-unicode -
-
-
-hb_unicode_funcs_set_combining_class_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_compose_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_decompose_compatibility_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_decompose_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_eastasian_width_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_general_category_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_mirroring_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_script_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_user_data, function in hb-unicode -
-
-
-hb_unicode_general_category, function in hb-unicode -
-
-
-hb_unicode_mirroring, function in hb-unicode -
-
-
-hb_unicode_script, function in hb-unicode -
-
-

V

-
-hb_version, function in hb-version -
-
-
-hb_version_string, function in hb-version -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-20.html b/docs/html/api-index-0-9-20.html deleted file mode 100644 index cb1b1f6..0000000 --- a/docs/html/api-index-0-9-20.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - -Index of new symbols in 0.9.20: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.20

-

B

-
-hb_buffer_flags_t, enum in Buffers -
-
-
-hb_buffer_serialize_flags_t, enum in Buffers -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-22.html b/docs/html/api-index-0-9-22.html deleted file mode 100644 index 29003d2..0000000 --- a/docs/html/api-index-0-9-22.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.22: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.22

-

O

-
-hb_ot_layout_table_get_lookup_count, function in hb-ot-layout -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-28.html b/docs/html/api-index-0-9-28.html deleted file mode 100644 index db1a51b..0000000 --- a/docs/html/api-index-0-9-28.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.28: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.28

-

O

-
-hb_ot_font_set_funcs, function in hb-ot-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-30.html b/docs/html/api-index-0-9-30.html deleted file mode 100644 index e28f4db..0000000 --- a/docs/html/api-index-0-9-30.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -Index of new symbols in 0.9.30: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.30

-

O

-
-hb_ot_layout_language_get_required_feature, function in hb-ot-layout -
-
-

V

-
-hb_version_atleast, function in hb-version -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-31.html b/docs/html/api-index-0-9-31.html deleted file mode 100644 index b011157..0000000 --- a/docs/html/api-index-0-9-31.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - -Index of new symbols in 0.9.31: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.31

-

B

-
-hb_buffer_add_codepoints, function in Buffers -
-
-
-hb_buffer_get_replacement_codepoint, function in Buffers -
-
-
-HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT, macro in Buffers -
-
-
-hb_buffer_set_replacement_codepoint, function in Buffers -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-38.html b/docs/html/api-index-0-9-38.html deleted file mode 100644 index 263adb8..0000000 --- a/docs/html/api-index-0-9-38.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - -Index of new symbols in 0.9.38: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.38

-

F

-
-hb_ft_face_create_referenced, function in hb-ft -
-
-
-hb_ft_font_create_referenced, function in hb-ft -
-
-

G

-
-hb_glib_blob_create, function in hb-glib -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-39.html b/docs/html/api-index-0-9-39.html deleted file mode 100644 index dc36815..0000000 --- a/docs/html/api-index-0-9-39.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.39: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.39

-

B

-
-hb_buffer_add_latin1, function in Buffers -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-41.html b/docs/html/api-index-0-9-41.html deleted file mode 100644 index b4b2466..0000000 --- a/docs/html/api-index-0-9-41.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.41: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.41

-

B

-
-hb_buffer_reverse_range, function in Buffers -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-42.html b/docs/html/api-index-0-9-42.html deleted file mode 100644 index 4fdb417..0000000 --- a/docs/html/api-index-0-9-42.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - -Index of new symbols in 0.9.42: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.42

-

B

-
-hb_buffer_get_cluster_level, function in Buffers -
-
-
-hb_buffer_set_cluster_level, function in Buffers -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-5.html b/docs/html/api-index-0-9-5.html deleted file mode 100644 index 5f03c6d..0000000 --- a/docs/html/api-index-0-9-5.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Index of new symbols in 0.9.5: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.5

-

B

-
-hb_buffer_get_content_type, function in Buffers -
-
-
-hb_buffer_set_content_type, function in Buffers -
-
-

F

-
-hb_feature_from_string, function in Shaping -
-
-
-hb_feature_to_string, function in Shaping -
-
-

T

-
-hb_tag_to_string, function in hb-common -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-7.html b/docs/html/api-index-0-9-7.html deleted file mode 100644 index d948391..0000000 --- a/docs/html/api-index-0-9-7.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - -Index of new symbols in 0.9.7: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.7

-

B

-
-hb_buffer_add, function in Buffers -
-
-
-hb_buffer_deserialize_glyphs, function in Buffers -
-
-
-hb_buffer_get_flags, function in Buffers -
-
-
-hb_buffer_get_segment_properties, function in Buffers -
-
-
-hb_buffer_guess_segment_properties, function in Buffers -
-
-
-hb_buffer_serialize_format_from_string, function in Buffers -
-
-
-hb_buffer_serialize_format_to_string, function in Buffers -
-
-
-hb_buffer_serialize_glyphs, function in Buffers -
-
-
-hb_buffer_serialize_list_formats, function in Buffers -
-
-
-hb_buffer_set_flags, function in Buffers -
-
-
-hb_buffer_set_segment_properties, function in Buffers -
-
-

F

-
-hb_face_get_glyph_count, function in hb-face -
-
-
-hb_face_set_glyph_count, function in hb-face -
-
-

O

-
-hb_ot_layout_feature_get_lookups, function in hb-ot-layout -
-
-
-hb_ot_layout_get_glyphs_in_class, function in hb-ot-layout -
-
-
-hb_ot_layout_get_glyph_class, function in hb-ot-layout -
-
-
-hb_ot_layout_lookup_collect_glyphs, function in hb-ot-layout -
-
-
-hb_ot_layout_lookup_substitute_closure, function in hb-ot-layout -
-
-
-hb_ot_layout_lookup_would_substitute, function in hb-ot-layout -
-
-
-hb_ot_shape_plan_collect_lookups, function in hb-ot-layout -
-
-

S

-
-hb_segment_properties_equal, function in Buffers -
-
-
-hb_segment_properties_hash, function in Buffers -
-
-
-hb_set_add_range, function in hb-set -
-
-
-hb_set_del_range, function in hb-set -
-
-
-hb_set_get_max, function in hb-set -
-
-
-hb_set_get_min, function in hb-set -
-
-
-hb_set_get_population, function in hb-set -
-
-
-hb_set_is_empty, function in hb-set -
-
-
-hb_set_is_equal, function in hb-set -
-
-
-hb_set_next_range, function in hb-set -
-
-
-hb_shape_plan_create, function in hb-shape-plan -
-
-
-hb_shape_plan_create_cached, function in hb-shape-plan -
-
-
-hb_shape_plan_destroy, function in hb-shape-plan -
-
-
-hb_shape_plan_execute, function in hb-shape-plan -
-
-
-hb_shape_plan_get_empty, function in hb-shape-plan -
-
-
-hb_shape_plan_get_shaper, function in hb-shape-plan -
-
-
-hb_shape_plan_get_user_data, function in hb-shape-plan -
-
-
-hb_shape_plan_reference, function in hb-shape-plan -
-
-
-hb_shape_plan_set_user_data, function in hb-shape-plan -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-8.html b/docs/html/api-index-0-9-8.html deleted file mode 100644 index 13ef9b1..0000000 --- a/docs/html/api-index-0-9-8.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.8: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.8

-

O

-
-hb_ot_layout_collect_lookups, function in hb-ot-layout -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-0-5.html b/docs/html/api-index-1-0-5.html deleted file mode 100644 index 243d7b8..0000000 --- a/docs/html/api-index-1-0-5.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - -Index of new symbols in 1.0.5: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.0.5

-

F

-
-hb_font_set_parent, function in hb-font -
-
-
-hb_ft_font_get_load_flags, function in hb-ft -
-
-
-hb_ft_font_set_load_flags, function in hb-ft -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-1-2.html b/docs/html/api-index-1-1-2.html deleted file mode 100644 index 2d8ba8a..0000000 --- a/docs/html/api-index-1-1-2.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - -Index of new symbols in 1.1.2: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.1.2

-

F

-
-hb_font_funcs_set_font_h_extents_func, function in hb-font -
-
-
-hb_font_funcs_set_font_v_extents_func, function in hb-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-1-3.html b/docs/html/api-index-1-1-3.html deleted file mode 100644 index 545ed99..0000000 --- a/docs/html/api-index-1-1-3.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - -Index of new symbols in 1.1.3: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.1.3

-

B

-
-hb_buffer_set_message_func, function in Buffers -
-
-

F

-
-hb_font_get_extents_for_direction, function in hb-font -
-
-
-hb_font_get_h_extents, function in hb-font -
-
-
-hb_font_get_v_extents, function in hb-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/buffers-language-script-and-direction.html b/docs/html/buffers-language-script-and-direction.html deleted file mode 100644 index 5447496..0000000 --- a/docs/html/buffers-language-script-and-direction.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - -Buffers, language, script and direction: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Buffers, language, script and direction

- -

- The input to Harfbuzz is a series of Unicode characters, stored in a - buffer. In this chapter, we'll look at how to set up a buffer with - the text that we want and then customize the properties of the - buffer. -

-
-

-Creating and destroying buffers

-

- As we saw in our initial example, a buffer is created and - initialized with hb_buffer_create(). This - produces a new, empty buffer object, instantiated with some - default values and ready to accept your Unicode strings. -

-

- Harfbuzz manages the memory of objects that it creates (such as - buffers), so you don't have to. When you have finished working on - a buffer, you can call hb_buffer_destroy(): -

-
-  hb_buffer_t *buffer = hb_buffer_create();
-  ...
-  hb_buffer_destroy(buffer);
-
-

- This will destroy the object and free its associated memory - - unless some other part of the program holds a reference to this - buffer. If you acquire a Harfbuzz buffer from another subsystem - and want to ensure that it is not garbage collected by someone - else destroying it, you should increase its reference count: -

-
-void somefunc(hb_buffer_t *buffer) {
-  buffer = hb_buffer_reference(buffer);
-  ...
-
-

- And then decrease it once you're done with it: -

-
-  hb_buffer_destroy(buffer);
-}
-
-

- To throw away all the data in your buffer and start from scratch, - call hb_buffer_reset(buffer). If you want to - throw away the string in the buffer but keep the options, you can - instead call hb_buffer_clear_contents(buffer). -

-
-
- - - \ No newline at end of file diff --git a/docs/html/building.html b/docs/html/building.html deleted file mode 100644 index 0351b6c..0000000 --- a/docs/html/building.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - -Building: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Building

-

- On Linux, install the development packages for FreeType, Cairo, and GLib. - For example, on Ubuntu / Debian, you would do: -

-
-sudo apt-get install gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev
-      
-

- whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do: -

-
-sudo yum install gcc gcc-c++ freetype-devel glib2-devel cairo-devel
-      
-

- or using MacPorts: -

-
-sudo port install freetype glib2 cairo
-      
-

-

-

- If you are using a tarball, you can now proceed to running - configure and make as with any - other standard package. That should leave you with a shared library in - src/, and a few utility programs including hb-view - and hb-shape under util/. -

-

- If you are bootstraping from git, you need a few more tools before you - can run autogen.sh for the first time. Namely, - pkg-config and ragel. - Again, on Ubuntu / Debian: -

-
-sudo apt-get install autoconf automake libtool pkg-config ragel gtk-doc-tools
-      
-

- and on Fedora, RHEL, CentOS: -

-
-sudo yum install autoconf automake libtool pkgconfig ragel gtk-doc
-      
-

- or using MacPorts: -

-
-sudo port install autoconf automake libtool pkgconfig ragel gtk-doc
-      
-

-

-
- - - \ No newline at end of file diff --git a/docs/html/customizing-unicode-functions.html b/docs/html/customizing-unicode-functions.html deleted file mode 100644 index f496df4..0000000 --- a/docs/html/customizing-unicode-functions.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - -Customizing Unicode functions: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Customizing Unicode functions

-

-

-
- - - \ No newline at end of file diff --git a/docs/html/fonts-and-faces.html b/docs/html/fonts-and-faces.html deleted file mode 100644 index 0700a1c..0000000 --- a/docs/html/fonts-and-faces.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - -Fonts and faces: HarfBuzz Manual - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/html/harfbuzz-Buffers.html b/docs/html/harfbuzz-Buffers.html deleted file mode 100644 index 6c7d0e9..0000000 --- a/docs/html/harfbuzz-Buffers.html +++ /dev/null @@ -1,2722 +0,0 @@ - - - - -Buffers: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-
-
- - -
-

Buffers

-

Buffers — Input and output buffers

-
-
-

Functions

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-hb_buffer_t * - -hb_buffer_create () -
-hb_buffer_t * - -hb_buffer_reference () -
-hb_buffer_t * - -hb_buffer_get_empty () -
-void - -hb_buffer_destroy () -
-void - -hb_buffer_reset () -
-void - -hb_buffer_clear_contents () -
-hb_bool_t - -hb_buffer_pre_allocate () -
-hb_bool_t - -hb_buffer_allocation_successful () -
-void - -hb_buffer_add () -
-void - -hb_buffer_add_codepoints () -
-void - -hb_buffer_add_utf32 () -
-void - -hb_buffer_add_utf16 () -
-void - -hb_buffer_add_utf8 () -
-void - -hb_buffer_add_latin1 () -
-void - -hb_buffer_set_content_type () -
-hb_buffer_content_type_t - -hb_buffer_get_content_type () -
-void - -hb_buffer_set_direction () -
-hb_direction_t - -hb_buffer_get_direction () -
-void - -hb_buffer_set_script () -
-hb_script_t - -hb_buffer_get_script () -
-void - -hb_buffer_set_language () -
-hb_language_t - -hb_buffer_get_language () -
-void - -hb_buffer_set_flags () -
-hb_buffer_flags_t - -hb_buffer_get_flags () -
-void - -hb_buffer_set_cluster_level () -
-hb_buffer_cluster_level_t - -hb_buffer_get_cluster_level () -
-hb_bool_t - -hb_buffer_set_length () -
unsigned int - -hb_buffer_get_length () -
-void - -hb_buffer_set_segment_properties () -
-void - -hb_buffer_get_segment_properties () -
-void - -hb_buffer_guess_segment_properties () -
-void - -hb_buffer_set_unicode_funcs () -
-hb_unicode_funcs_t * - -hb_buffer_get_unicode_funcs () -
-hb_bool_t - -hb_buffer_set_user_data () -
-void * - -hb_buffer_get_user_data () -
-hb_glyph_info_t * - -hb_buffer_get_glyph_infos () -
-hb_glyph_position_t * - -hb_buffer_get_glyph_positions () -
-void - -hb_buffer_set_replacement_codepoint () -
-hb_codepoint_t - -hb_buffer_get_replacement_codepoint () -
-void - -hb_buffer_normalize_glyphs () -
-void - -hb_buffer_reverse () -
-void - -hb_buffer_reverse_range () -
-void - -hb_buffer_reverse_clusters () -
unsigned int - -hb_buffer_serialize_glyphs () -
-hb_bool_t - -hb_buffer_deserialize_glyphs () -
-hb_buffer_serialize_format_t - -hb_buffer_serialize_format_from_string () -
const char * - -hb_buffer_serialize_format_to_string () -
const char ** - -hb_buffer_serialize_list_formats () -
-hb_bool_t - -hb_segment_properties_equal () -
unsigned int - -hb_segment_properties_hash () -
-void - -hb_buffer_set_message_func () -
-hb_bool_t - -(*hb_buffer_message_func_t) () -
-
-
-

Types and Values

- -
-
-

Object Hierarchy

-
    GBoxed
-    ├── hb_buffer_t
-    ├── hb_glyph_info_t
-    ├── hb_glyph_position_t
-    ╰── hb_segment_properties_t
-    GEnum
-    ├── hb_buffer_cluster_level_t
-    ├── hb_buffer_content_type_t
-    ╰── hb_buffer_serialize_format_t
-    GFlags
-    ├── hb_buffer_flags_t
-    ╰── hb_buffer_serialize_flags_t
-
-
-
-

Includes

-
#include <hb.h>
-
-
-
-

Description

-

Buffers serve dual role in HarfBuzz; they hold the input characters that are -passed hb_shape(), and after shaping they hold the output glyphs.

-
-
-

Functions

-
-

hb_buffer_create ()

-
hb_buffer_t *
-hb_buffer_create (void);
-

Creates a new hb_buffer_t with all properties to defaults.

-

[Xconstructor]

-
-

Returns

-

A newly allocated hb_buffer_t with a reference count of 1. The initial -reference count should be released with hb_buffer_destroy() when you are done -using the hb_buffer_t. This function never returns NULL. If memory cannot -be allocated, a special hb_buffer_t object will be returned on which -hb_buffer_allocation_successful() returns false.

-

[transfer full]

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_reference ()

-
hb_buffer_t *
-hb_buffer_reference (hb_buffer_t *buffer);
-

Increases the reference count on buffer - by one. This prevents buffer - from -being destroyed until a matching call to hb_buffer_destroy() is made.

-

[skip]

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-
-

Returns

-

The referenced hb_buffer_t.

-

[transfer full]

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_get_empty ()

-
hb_buffer_t *
-hb_buffer_get_empty (void);
-
-

Returns

-

.

-

[transfer full]

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_destroy ()

-
void
-hb_buffer_destroy (hb_buffer_t *buffer);
-

Deallocate the buffer -. -Decreases the reference count on buffer - by one. If the result is zero, then -buffer - and all associated resources are freed. See hb_buffer_reference().

-

[skip]

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_reset ()

-
void
-hb_buffer_reset (hb_buffer_t *buffer);
-

Resets the buffer to its initial status, as if it was just newly created -with hb_buffer_create().

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_clear_contents ()

-
void
-hb_buffer_clear_contents (hb_buffer_t *buffer);
-

Similar to hb_buffer_reset(), but does not clear the Unicode functions and -the replacement code point.

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.11

-
-
-
-

hb_buffer_pre_allocate ()

-
hb_bool_t
-hb_buffer_pre_allocate (hb_buffer_t *buffer,
-                        unsigned int size);
-

Pre allocates memory for buffer - to fit at least size - number of items.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

size

number of items to pre allocate.

 
-
-
-

Returns

-

true if buffer -memory allocation succeeded, false otherwise.

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_allocation_successful ()

-
hb_bool_t
-hb_buffer_allocation_successful (hb_buffer_t *buffer);
-

Check if allocating memory for the buffer succeeded.

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-
-

Returns

-

true if buffer -memory allocation succeeded, false otherwise.

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_add ()

-
void
-hb_buffer_add (hb_buffer_t *buffer,
-               hb_codepoint_t codepoint,
-               unsigned int cluster);
-

Appends a character with the Unicode value of codepoint - to buffer -, and -gives it the initial cluster value of cluster -. Clusters can be any thing -the client wants, they are usually used to refer to the index of the -character in the input text stream and are output in -hb_glyph_info_t.cluster field.

-

This function does not check the validity of codepoint -, it is up to the -caller to ensure it is a valid Unicode code point.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

codepoint

a Unicode code point.

 

cluster

the cluster value of codepoint -.

 
-
-

Since: 0.9.7

-
-
-
-

hb_buffer_add_codepoints ()

-
void
-hb_buffer_add_codepoints (hb_buffer_t *buffer,
-                          const hb_codepoint_t *text,
-                          int text_length,
-                          unsigned int item_offset,
-                          int item_length);
-

Appends characters from text - array to buffer -. The item_offset - is the -position of the first character from text - that will be appended, and -item_length - is the number of character. When shaping part of a larger text -(e.g. a run of text from a paragraph), instead of passing just the substring -corresponding to the run, it is preferable to pass the whole -paragraph and specify the run start and length as item_offset - and -item_length -, respectively, to give HarfBuzz the full context to be able, -for example, to do cross-run Arabic shaping or properly handle combining -marks at stat of run.

-

This function does not check the validity of text -, it is up to the caller -to ensure it contains a valid Unicode code points.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

buffer

a hb_buffer_t to append characters to.

 

text

an array of Unicode code points to append.

[array length=text_length]

text_length

the length of the text -, or -1 if it is NULL terminated.

 

item_offset

the offset of the first code point to add to the buffer -.

 

item_length

the number of code points to add to the buffer -, or -1 for the -end of text -(assuming it is NULL terminated).

 
-
-

Since: 0.9.31

-
-
-
-

hb_buffer_add_utf32 ()

-
void
-hb_buffer_add_utf32 (hb_buffer_t *buffer,
-                     const uint32_t *text,
-                     int text_length,
-                     unsigned int item_offset,
-                     int item_length);
-

See hb_buffer_add_codepoints().

-

Replaces invalid UTF-32 characters with the buffer - replacement code point, -see hb_buffer_set_replacement_codepoint().

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

text

an array of UTF-32 characters to append.

[array length=text_length]

text_length

the length of the text -, or -1 if it is NULL terminated.

 

item_offset

the offset of the first character to add to the buffer -.

 

item_length

the number of characters to add to the buffer -, or -1 for the -end of text -(assuming it is NULL terminated).

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_add_utf16 ()

-
void
-hb_buffer_add_utf16 (hb_buffer_t *buffer,
-                     const uint16_t *text,
-                     int text_length,
-                     unsigned int item_offset,
-                     int item_length);
-

See hb_buffer_add_codepoints().

-

Replaces invalid UTF-16 characters with the buffer - replacement code point, -see hb_buffer_set_replacement_codepoint().

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

text

an array of UTF-16 characters to append.

[array length=text_length]

text_length

the length of the text -, or -1 if it is NULL terminated.

 

item_offset

the offset of the first character to add to the buffer -.

 

item_length

the number of characters to add to the buffer -, or -1 for the -end of text -(assuming it is NULL terminated).

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_add_utf8 ()

-
void
-hb_buffer_add_utf8 (hb_buffer_t *buffer,
-                    const char *text,
-                    int text_length,
-                    unsigned int item_offset,
-                    int item_length);
-

See hb_buffer_add_codepoints().

-

Replaces invalid UTF-8 characters with the buffer - replacement code point, -see hb_buffer_set_replacement_codepoint().

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

text

an array of UTF-8 -characters to append.

[array length=text_length][element-type uint8_t]

text_length

the length of the text -, or -1 if it is NULL terminated.

 

item_offset

the offset of the first character to add to the buffer -.

 

item_length

the number of characters to add to the buffer -, or -1 for the -end of text -(assuming it is NULL terminated).

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_add_latin1 ()

-
void
-hb_buffer_add_latin1 (hb_buffer_t *buffer,
-                      const uint8_t *text,
-                      int text_length,
-                      unsigned int item_offset,
-                      int item_length);
-

Similar to hb_buffer_add_codepoints(), but allows only access to first 256 -Unicode code points that can fit in 8-bit strings.

-
Has nothing to do with non-Unicode Latin-1 encoding.
-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

text

an array of UTF-8 -characters to append.

[array length=text_length][element-type uint8_t]

text_length

the length of the text -, or -1 if it is NULL terminated.

 

item_offset

the offset of the first character to add to the buffer -.

 

item_length

the number of characters to add to the buffer -, or -1 for the -end of text -(assuming it is NULL terminated).

 
-
-

Since: 0.9.39

-
-
-
-

hb_buffer_set_content_type ()

-
void
-hb_buffer_set_content_type (hb_buffer_t *buffer,
-                            hb_buffer_content_type_t content_type);
-

Sets the type of buffer - contents, buffers are either empty, contain -characters (before shaping) or glyphs (the result of shaping).

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

content_type

the type of buffer contents to set

 
-
-

Since: 0.9.5

-
-
-
-

hb_buffer_get_content_type ()

-
hb_buffer_content_type_t
-hb_buffer_get_content_type (hb_buffer_t *buffer);
-

see hb_buffer_set_content_type().

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-
-

Returns

-

The type of buffer -contents.

-
-

Since: 0.9.5

-
-
-
-

hb_buffer_set_direction ()

-
void
-hb_buffer_set_direction (hb_buffer_t *buffer,
-                         hb_direction_t direction);
-

Set the text flow direction of the buffer. No shaping can happen without -setting buffer - direction, and it controls the visual direction for the -output glyphs; for RTL direction the glyphs will be reversed. Many layout -features depend on the proper setting of the direction, for example, -reversing RTL text before shaping, then shaping with LTR direction is not -the same as keeping the text in logical order and shaping with RTL -direction.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

direction

the hb_direction_t of the buffer -

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_get_direction ()

-
hb_direction_t
-hb_buffer_get_direction (hb_buffer_t *buffer);
-

See hb_buffer_set_direction()

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-
-

Returns

-

The direction of the buffer -.

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_set_script ()

-
void
-hb_buffer_set_script (hb_buffer_t *buffer,
-                      hb_script_t script);
-

Sets the script of buffer - to script -.

-

Script is crucial for choosing the proper shaping behaviour for scripts that -require it (e.g. Arabic) and the which OpenType features defined in the font -to be applied.

-

You can pass one of the predefined hb_script_t values, or use -hb_script_from_string() or hb_script_from_iso15924_tag() to get the -corresponding script from an ISO 15924 script tag.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

script

an hb_script_t to set.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_get_script ()

-
hb_script_t
-hb_buffer_get_script (hb_buffer_t *buffer);
-

See hb_buffer_set_script().

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-
-

Returns

-

The hb_script_t of the buffer -.

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_set_language ()

-
void
-hb_buffer_set_language (hb_buffer_t *buffer,
-                        hb_language_t language);
-

Sets the language of buffer - to language -.

-

Languages are crucial for selecting which OpenType feature to apply to the -buffer which can result in applying language-specific behaviour. Languages -are orthogonal to the scripts, and though they are related, they are -different concepts and should not be confused with each other.

-

Use hb_language_from_string() to convert from ISO 639 language codes to -hb_language_t.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

language

an hb_language_t to set.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_get_language ()

-
hb_language_t
-hb_buffer_get_language (hb_buffer_t *buffer);
-

See hb_buffer_set_language().

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-
-

Returns

-

The hb_language_t of the buffer. Must not be freed by the caller.

-

[transfer none]

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_set_flags ()

-
void
-hb_buffer_set_flags (hb_buffer_t *buffer,
-                     hb_buffer_flags_t flags);
-

Sets buffer - flags to flags -. See hb_buffer_flags_t.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

flags

the buffer flags to set.

 
-
-

Since: 0.9.7

-
-
-
-

hb_buffer_get_flags ()

-
hb_buffer_flags_t
-hb_buffer_get_flags (hb_buffer_t *buffer);
-

See hb_buffer_set_flags().

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-
-

Returns

-

The buffer -flags.

-
-

Since: 0.9.7

-
-
-
-

hb_buffer_set_cluster_level ()

-
void
-hb_buffer_set_cluster_level (hb_buffer_t *buffer,
-                             hb_buffer_cluster_level_t cluster_level);
-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.42

-
-
-
-

hb_buffer_get_cluster_level ()

-
hb_buffer_cluster_level_t
-hb_buffer_get_cluster_level (hb_buffer_t *buffer);
-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.42

-
-
-
-

hb_buffer_set_length ()

-
hb_bool_t
-hb_buffer_set_length (hb_buffer_t *buffer,
-                      unsigned int length);
-

Similar to hb_buffer_pre_allocate(), but clears any new items added at the -end.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

length

the new length of buffer -.

 
-
-
-

Returns

-

true if buffer -memory allocation succeeded, false otherwise.

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_get_length ()

-
unsigned int
-hb_buffer_get_length (hb_buffer_t *buffer);
-

Returns the number of items in the buffer.

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-
-

Returns

-

The buffer -length. -The value valid as long as buffer has not been modified.

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_set_segment_properties ()

-
void
-hb_buffer_set_segment_properties (hb_buffer_t *buffer,
-                                  const hb_segment_properties_t *props);
-

Sets the segment properties of the buffer, a shortcut for calling -hb_buffer_set_direction(), hb_buffer_set_script() and -hb_buffer_set_language() individually.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

props

an hb_segment_properties_t to use.

 
-
-

Since: 0.9.7

-
-
-
-

hb_buffer_get_segment_properties ()

-
void
-hb_buffer_get_segment_properties (hb_buffer_t *buffer,
-                                  hb_segment_properties_t *props);
-

Sets props - to the hb_segment_properties_t of buffer -.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

props

the output hb_segment_properties_t.

[out]
-
-

Since: 0.9.7

-
-
-
-

hb_buffer_guess_segment_properties ()

-
void
-hb_buffer_guess_segment_properties (hb_buffer_t *buffer);
-

Sets unset buffer segment properties based on buffer Unicode -contents. If buffer is not empty, it must have content type -HB_BUFFER_CONTENT_TYPE_UNICODE.

-

If buffer script is not set (ie. is HB_SCRIPT_INVALID), it -will be set to the Unicode script of the first character in -the buffer that has a script other than HB_SCRIPT_COMMON, -HB_SCRIPT_INHERITED, and HB_SCRIPT_UNKNOWN.

-

Next, if buffer direction is not set (ie. is HB_DIRECTION_INVALID), -it will be set to the natural horizontal direction of the -buffer script as returned by hb_script_get_horizontal_direction().

-

Finally, if buffer language is not set (ie. is HB_LANGUAGE_INVALID), -it will be set to the process's default language as returned by -hb_language_get_default(). This may change in the future by -taking buffer script into consideration when choosing a language.

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.7

-
-
-
-

hb_buffer_set_unicode_funcs ()

-
void
-hb_buffer_set_unicode_funcs (hb_buffer_t *buffer,
-                             hb_unicode_funcs_t *unicode_funcs);
-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_get_unicode_funcs ()

-
hb_unicode_funcs_t *
-hb_buffer_get_unicode_funcs (hb_buffer_t *buffer);
-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_set_user_data ()

-
hb_bool_t
-hb_buffer_set_user_data (hb_buffer_t *buffer,
-                         hb_user_data_key_t *key,
-                         void *data,
-                         hb_destroy_func_t destroy,
-                         hb_bool_t replace);
-

[skip]

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_get_user_data ()

-
void *
-hb_buffer_get_user_data (hb_buffer_t *buffer,
-                         hb_user_data_key_t *key);
-

[skip]

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_get_glyph_infos ()

-
hb_glyph_info_t *
-hb_buffer_get_glyph_infos (hb_buffer_t *buffer,
-                           unsigned int *length);
-

Returns buffer - glyph information array. Returned pointer -is valid as long as buffer - contents are not modified.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

length

output array length.

[out]
-
-
-

Returns

-

The buffer -glyph information array. -The value valid as long as buffer has not been modified.

-

[transfer none][array length=length]

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_get_glyph_positions ()

-
hb_glyph_position_t *
-hb_buffer_get_glyph_positions (hb_buffer_t *buffer,
-                               unsigned int *length);
-

Returns buffer - glyph position array. Returned pointer -is valid as long as buffer - contents are not modified.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

length

output length.

[out]
-
-
-

Returns

-

The buffer -glyph position array. -The value valid as long as buffer has not been modified.

-

[transfer none][array length=length]

-
-

Since: 0.9.2

-
-
-
-

hb_buffer_set_replacement_codepoint ()

-
void
-hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer,
-                                     hb_codepoint_t replacement);
-

Sets the hb_codepoint_t that replaces invalid entries for a given encoding -when adding text to buffer -.

-

Default is HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT.

-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

replacement

the replacement hb_codepoint_t

 
-
-

Since: 0.9.31

-
-
-
-

hb_buffer_get_replacement_codepoint ()

-
hb_codepoint_t
-hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer);
-

See hb_buffer_set_replacement_codepoint().

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-
-

Returns

-

The buffer -replacement hb_codepoint_t.

-
-

Since: 0.9.31

-
-
-
-

hb_buffer_normalize_glyphs ()

-
void
-hb_buffer_normalize_glyphs (hb_buffer_t *buffer);
-

Reorders a glyph buffer to have canonical in-cluster glyph order / position. -The resulting clusters should behave identical to pre-reordering clusters.

-
This has nothing to do with Unicode normalization.
-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_reverse ()

-
void
-hb_buffer_reverse (hb_buffer_t *buffer);
-

Reverses buffer contents.

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_reverse_range ()

-
void
-hb_buffer_reverse_range (hb_buffer_t *buffer,
-                         unsigned int start,
-                         unsigned int end);
-

Reverses buffer contents between start to end.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

start

start index.

 

end

end index.

 
-
-

Since: 0.9.41

-
-
-
-

hb_buffer_reverse_clusters ()

-
void
-hb_buffer_reverse_clusters (hb_buffer_t *buffer);
-

Reverses buffer clusters. That is, the buffer contents are -reversed, then each cluster (consecutive items having the -same cluster number) are reversed again.

-
-

Parameters

-
----- - - - - - -

buffer

an hb_buffer_t.

 
-
-

Since: 0.9.2

-
-
-
-

hb_buffer_serialize_glyphs ()

-
unsigned int
-hb_buffer_serialize_glyphs (hb_buffer_t *buffer,
-                            unsigned int start,
-                            unsigned int end,
-                            char *buf,
-                            unsigned int buf_size,
-                            unsigned int *buf_consumed,
-                            hb_font_t *font,
-                            hb_buffer_serialize_format_t format,
-                            hb_buffer_serialize_flags_t flags);
-

Serializes buffer - into a textual representation of its glyph content, -useful for showing the contents of the buffer, for example during debugging. -There are currently two supported serialization formats:

-
-

text

-

A human-readable, plain text format. -The serialized glyphs will look something like:

-

-[uni0651=0@518,0+0|uni0628=0+1897] -

-
-
-
-

json

-

TODO.

-
-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

buffer

an hb_buffer_t buffer.

 

start

the first item in buffer -to serialize.

 

end

the last item in buffer -to serialize.

 

buf

output string to -write serialized buffer into.

[out][array length=buf_size][element-type uint8_t]

buf_size

the size of buf -.

 

buf_consumed

if not NULL, will be set to the number of byes written into buf -.

[out][allow-none]

font

the hb_font_t used to shape this buffer, needed to -read glyph names and extents. If NULL, and empty font will be used.

[allow-none]

format

the hb_buffer_serialize_format_t to use for formatting the output.

 

flags

the hb_buffer_serialize_flags_t that control what glyph properties -to serialize.

 
-
-
-

Returns

-

The number of serialized items.

-
-

Since: 0.9.7

-
-
-
-

hb_buffer_deserialize_glyphs ()

-
hb_bool_t
-hb_buffer_deserialize_glyphs (hb_buffer_t *buffer,
-                              const char *buf,
-                              int buf_len,
-                              const char **end_ptr,
-                              hb_font_t *font,
-                              hb_buffer_serialize_format_t format);
-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

buffer

an hb_buffer_t buffer.

 

buf

.

[array length=buf_len]

end_ptr

.

[out]
-
-

Since: 0.9.7

-
-
-
-

hb_buffer_serialize_format_from_string ()

-
hb_buffer_serialize_format_t
-hb_buffer_serialize_format_from_string
-                               (const char *str,
-                                int len);
-

Parses a string into an hb_buffer_serialize_format_t. Does not check if -str - is a valid buffer serialization format, use -hb_buffer_serialize_list_formats() to get the list of supported formats.

-
-

Parameters

-
----- - - - - - - - - - - - - -

str

a string to parse.

[array length=len][element-type uint8_t]

len

length of str -, or -1 if string is NULL terminated

 
-
-
-

Returns

-

The parsed hb_buffer_serialize_format_t.

-
-

Since: 0.9.7

-
-
-
-

hb_buffer_serialize_format_to_string ()

-
const char *
-hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format);
-

Converts format - to the string corresponding it, or NULL if it is not a valid -hb_buffer_serialize_format_t.

-
-

Parameters

-
----- - - - - - -

format

an hb_buffer_serialize_format_t to convert.

 
-
-
-

Returns

-

A NULL terminated string corresponding to format -. Should not be freed.

-

[transfer none]

-
-

Since: 0.9.7

-
-
-
-

hb_buffer_serialize_list_formats ()

-
const char **
-hb_buffer_serialize_list_formats (void);
-

Returns a list of supported buffer serialization formats.

-
-

Returns

-

A string array of buffer serialization formats. Should not be freed.

-

[transfer none]

-
-

Since: 0.9.7

-
-
-
-

hb_segment_properties_equal ()

-
hb_bool_t
-hb_segment_properties_equal (const hb_segment_properties_t *a,
-                             const hb_segment_properties_t *b);
-

Checks the equality of two hb_segment_properties_t's.

-
-

Parameters

-
----- - - - - - - - - - - - - -

a

first hb_segment_properties_t to compare.

 

b

second hb_segment_properties_t to compare.

 
-
-
-

Returns

-

true if all properties of a -equal those of b -, false otherwise.

-

[transfer full]

-
-

Since: 0.9.7

-
-
-
-

hb_segment_properties_hash ()

-
unsigned int
-hb_segment_properties_hash (const hb_segment_properties_t *p);
-

Creates a hash representing p -.

-
-

Parameters

-
----- - - - - - -

p

hb_segment_properties_t to hash.

 
-
-
-

Returns

-

A hash of p -.

-
-

Since: 0.9.7

-
-
-
-

hb_buffer_set_message_func ()

-
void
-hb_buffer_set_message_func (hb_buffer_t *buffer,
-                            hb_buffer_message_func_t func,
-                            void *user_data,
-                            hb_destroy_func_t destroy);
-
-

Parameters

-
----- - - - - - - - - - - - - -

buffer

an hb_buffer_t.

 

func

.

[closure user_data][destroy destroy][scope notified]
-
-

Since: 1.1.3

-
-
-
-

hb_buffer_message_func_t ()

-
hb_bool_t
-(*hb_buffer_message_func_t) (hb_buffer_t *buffer,
-                             hb_font_t *font,
-                             const char *message,
-                             void *user_data);
-
-
-
-

Types and Values

-
-

HB_SEGMENT_PROPERTIES_DEFAULT

-
#define             HB_SEGMENT_PROPERTIES_DEFAULT
-
-
-
-

HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT

-
#define HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT 0xFFFDu
-
-

The default code point for replacing invalid characters in a given encoding. -Set to U+FFFD REPLACEMENT CHARACTER.

-

Since: 0.9.31

-
-
-
-

hb_buffer_t

-
typedef struct hb_buffer_t hb_buffer_t;
-
-

The main structure holding the input text and its properties before shaping, -and output glyphs and their information after shaping.

-
-
-
-

hb_glyph_info_t

-
typedef struct {
-  hb_codepoint_t codepoint;
-  hb_mask_t      mask;
-  uint32_t       cluster;
-} hb_glyph_info_t;
-
-

The hb_glyph_info_t is the structure that holds information about the -glyphs and their relation to input text.

-
-

Members

-
----- - - - - - - - - - - - - - - - - - -

hb_codepoint_t codepoint;

either a Unicode code point (before shaping) or a glyph index -(after shaping).

 

hb_mask_t mask;

  

uint32_t cluster;

the index of the character in the original text that corresponds -to this hb_glyph_info_t, or whatever the client passes to -hb_buffer_add(). More than one hb_glyph_info_t can have the same -cluster -value, if they resulted from the same character (e.g. one -to many glyph substitution), and when more than one character gets -merged in the same glyph (e.g. many to one glyph substitution) the -hb_glyph_info_t will have the smallest cluster value of them. -By default some characters are merged into the same cluster -(e.g. combining marks have the same cluster as their bases) -even if they are separate glyphs, hb_buffer_set_cluster_level() -allow selecting more fine-grained cluster handling.

 
-
-
-
-
-

hb_glyph_position_t

-
typedef struct {
-  hb_position_t  x_advance;
-  hb_position_t  y_advance;
-  hb_position_t  x_offset;
-  hb_position_t  y_offset;
-} hb_glyph_position_t;
-
-

The hb_glyph_position_t is the structure that holds the positions of the -glyph in both horizontal and vertical directions. All positions in -hb_glyph_position_t are relative to the current point.

-
-

Members

-
----- - - - - - - - - - - - - - - - - - - - - - - -

hb_position_t x_advance;

how much the line advances after drawing this glyph when setting -text in horizontal direction.

 

hb_position_t y_advance;

how much the line advances after drawing this glyph when setting -text in vertical direction.

 

hb_position_t x_offset;

how much the glyph moves on the X-axis before drawing it, this -should not affect how much the line advances.

 

hb_position_t y_offset;

how much the glyph moves on the Y-axis before drawing it, this -should not affect how much the line advances.

 
-
-
-
-
-

enum hb_buffer_content_type_t

-
-

Members

-
----- - - - - - - - - - - - - - - - - - -

HB_BUFFER_CONTENT_TYPE_INVALID

-

Initial value for new buffer.

-
 

HB_BUFFER_CONTENT_TYPE_UNICODE

-

The buffer contains input characters (before shaping).

-
 

HB_BUFFER_CONTENT_TYPE_GLYPHS

-

The buffer contains output glyphs (after shaping).

-
 
-
-
-
-
-

enum hb_buffer_flags_t

-
-

Members

-
----- - - - - - - - - - - - - - - - - - - - - - - -

HB_BUFFER_FLAG_DEFAULT

-

the default buffer flag.

-
 

HB_BUFFER_FLAG_BOT

-

flag indicating that special handling of the beginning - of text paragraph can be applied to this buffer. Should usually - be set, unless you are passing to the buffer only part - of the text without the full context.

-
 

HB_BUFFER_FLAG_EOT

-

flag indicating that special handling of the end of text - paragraph can be applied to this buffer, similar to - HB_BUFFER_FLAG_EOT -.

-
 

HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES

-

flag indication that character with Default_Ignorable - Unicode property should use the corresponding glyph - from the font, instead of hiding them (currently done - by replacing them with the space glyph and zeroing the - advance width.)

-
 
-
-

Since: 0.9.20

-
-
-
-

enum hb_buffer_cluster_level_t

-
-

Members

-
----- - - - - - - - - - - - - - - - - - - - - - - -

HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES

  

HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS

  

HB_BUFFER_CLUSTER_LEVEL_CHARACTERS

  

HB_BUFFER_CLUSTER_LEVEL_DEFAULT

  
-
-
-
-
-

hb_segment_properties_t

-
typedef struct {
-  hb_direction_t  direction;
-  hb_script_t     script;
-  hb_language_t   language;
-} hb_segment_properties_t;
-
-

The structure that holds various text properties of an hb_buffer_t. Can be -set and retrieved using hb_buffer_set_segment_properties() and -hb_buffer_get_segment_properties(), respectively.

-
-

Members

-
----- - - - - - - - - - - - - - - - - - -

hb_direction_t direction;

the hb_direction_t of the buffer, see hb_buffer_set_direction().

 

hb_script_t script;

the hb_script_t of the buffer, see hb_buffer_set_script().

 

hb_language_t language;

the hb_language_t of the buffer, see hb_buffer_set_language().

 
-
-
-
-
-

enum hb_buffer_serialize_format_t

-

The buffer serialization and de-serialization format used in -hb_buffer_serialize_glyphs() and hb_buffer_deserialize_glyphs().

-
-

Members

-
----- - - - - - - - - - - - - - - - - - -

HB_BUFFER_SERIALIZE_FORMAT_TEXT

-

a human-readable, plain text format.

-
 

HB_BUFFER_SERIALIZE_FORMAT_JSON

-

a machine-readable JSON format.

-
 

HB_BUFFER_SERIALIZE_FORMAT_INVALID

-

invalid format.

-
 
-
-

Since: 0.9.2

-
-
-
-

enum hb_buffer_serialize_flags_t

-

Flags that control what glyph information are serialized in hb_buffer_serialize_glyphs().

-
-

Members

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

HB_BUFFER_SERIALIZE_FLAG_DEFAULT

-

serialize glyph names, clusters and positions.

-
 

HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS

-

do not serialize glyph cluster.

-
 

HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS

-

do not serialize glyph position information.

-
 

HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES

-

do no serialize glyph name.

-
 

HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS

-

serialize glyph extents.

-
 
-
-

Since: 0.9.20

-
-
-
- - - \ No newline at end of file diff --git a/docs/html/harfbuzz-Shaping.html b/docs/html/harfbuzz-Shaping.html deleted file mode 100644 index 3e35150..0000000 --- a/docs/html/harfbuzz-Shaping.html +++ /dev/null @@ -1,347 +0,0 @@ - - - - -Shaping: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-
-
- - -
-

Shaping

-

Shaping — Conversion of text strings into positioned glyphs

-
-
-

Functions

-
---- - - - - - - - - - - - - - - - - - - - - - - -
-hb_bool_t - -hb_feature_from_string () -
-void - -hb_feature_to_string () -
-void - -hb_shape () -
-hb_bool_t - -hb_shape_full () -
const char ** - -hb_shape_list_shapers () -
-
-
-

Types and Values

-
---- - - - - -
 hb_feature_t
-
-
-

Object Hierarchy

-
    GBoxed
-    ╰── hb_feature_t
-
-
-
-

Includes

-
#include <hb.h>
-
-
-
-

Description

-

Shaping is the central operation of HarfBuzz. Shaping operates on buffers, -which are sequences of Unicode characters that use the same font and have -the same text direction, script and language. After shaping the buffer -contains the output glyphs and their positions.

-
-
-

Functions

-
-

hb_feature_from_string ()

-
hb_bool_t
-hb_feature_from_string (const char *str,
-                        int len,
-                        hb_feature_t *feature);
-

Parses a string into a hb_feature_t.

-

TODO: document the syntax here.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

str

a string to parse.

[array length=len][element-type uint8_t]

len

length of str -, or -1 if string is NULL terminated

 

feature

the hb_feature_t to initialize with the parsed values.

[out]
-
-
-

Returns

-

true if str -is successfully parsed, false otherwise.

-
-

Since: 0.9.5

-
-
-
-

hb_feature_to_string ()

-
void
-hb_feature_to_string (hb_feature_t *feature,
-                      char *buf,
-                      unsigned int size);
-

Converts a hb_feature_t into a NULL-terminated string in the format -understood by hb_feature_from_string(). The client in responsible for -allocating big enough size for buf -, 128 bytes is more than enough.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

feature

an hb_feature_t to convert

 

buf

output string.

[array length=size][out]

size

the allocated size of buf -

 
-
-

Since: 0.9.5

-
-
-
-

hb_shape ()

-
void
-hb_shape (hb_font_t *font,
-          hb_buffer_t *buffer,
-          const hb_feature_t *features,
-          unsigned int num_features);
-

Shapes buffer - using font - turning its Unicode characters content to -positioned glyphs. If features - is not NULL, it will be used to control the -features applied during shaping.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - -

font

an hb_font_t to use for shaping

 

buffer

an hb_buffer_t to shape

 

features

an array of user -specified hb_feature_t or NULL.

[array length=num_features][allow-none]

num_features

the length of features -array

 
-
-
-

Returns

-

FALSE if all shapers failed, TRUE otherwise

-
-

Since: 0.9.2

-
-
-
-

hb_shape_full ()

-
hb_bool_t
-hb_shape_full (hb_font_t *font,
-               hb_buffer_t *buffer,
-               const hb_feature_t *features,
-               unsigned int num_features,
-               const char * const *shaper_list);
-

See hb_shape() for details. If shaper_list - is not NULL, the specified -shapers will be used in the given order, otherwise the default shapers list -will be used.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

font

an hb_font_t to use for shaping

 

buffer

an hb_buffer_t to shape

 

features

an array of user -specified hb_feature_t or NULL.

[array length=num_features][allow-none]

num_features

the length of features -array

 

shaper_list

a NULL-terminated -array of shapers to use or NULL.

[array zero-terminated=1][allow-none]
-
-
-

Returns

-

FALSE if all shapers failed, TRUE otherwise

-
-

Since: 0.9.2

-
-
-
-

hb_shape_list_shapers ()

-
const char **
-hb_shape_list_shapers (void);
-

Retrieves the list of shapers supported by HarfBuzz.

-
-

Returns

-

an array of -constant strings.

-

[transfer none][array zero-terminated=1]

-
-

Since: 0.9.2

-
-
-
-

Types and Values

-
-

hb_feature_t

-
typedef struct {
-  hb_tag_t      tag;
-  uint32_t      value;
-  unsigned int  start;
-  unsigned int  end;
-} hb_feature_t;
-
-
-
-
- - - \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-gobject.html b/docs/html/harfbuzz-hb-gobject.html deleted file mode 100644 index 6dfcd08..0000000 --- a/docs/html/harfbuzz-hb-gobject.html +++ /dev/null @@ -1,651 +0,0 @@ - - - - -hb-gobject: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-
-
- - -
-

hb-gobject

-

hb-gobject

-
-
-

Functions

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-GType - -hb_gobject_blob_get_type () -
-GType - -hb_gobject_buffer_content_type_get_type () -
-GType - -hb_gobject_buffer_flags_get_type () -
-GType - -hb_gobject_buffer_get_type () -
-GType - -hb_gobject_buffer_serialize_flags_get_type () -
-GType - -hb_gobject_buffer_serialize_format_get_type () -
-GType - -hb_gobject_direction_get_type () -
-GType - -hb_gobject_face_get_type () -
-GType - -hb_gobject_font_funcs_get_type () -
-GType - -hb_gobject_font_get_type () -
-GType - -hb_gobject_memory_mode_get_type () -
-GType - -hb_gobject_ot_layout_glyph_class_get_type () -
-GType - -hb_gobject_script_get_type () -
-GType - -hb_gobject_shape_plan_get_type () -
-GType - -hb_gobject_unicode_combining_class_get_type () -
-GType - -hb_gobject_unicode_funcs_get_type () -
-GType - -hb_gobject_unicode_general_category_get_type () -
-GType - -hb_gobject_buffer_cluster_level_get_type () -
-GType - -hb_gobject_feature_get_type () -
-GType - -hb_gobject_glyph_info_get_type () -
-GType - -hb_gobject_glyph_position_get_type () -
-GType - -hb_gobject_segment_properties_get_type () -
-GType - -hb_gobject_set_get_type () -
-GType - -hb_gobject_user_data_key_get_type () -
-
- -
-

Description

-
-
-

Functions

-
-

hb_gobject_blob_get_type ()

-
GType
-hb_gobject_blob_get_type (void);
-
-
-
-

hb_gobject_buffer_content_type_get_type ()

-
GType
-hb_gobject_buffer_content_type_get_type
-                               (void);
-
-
-
-

hb_gobject_buffer_flags_get_type ()

-
GType
-hb_gobject_buffer_flags_get_type (void);
-
-
-
-

hb_gobject_buffer_get_type ()

-
GType
-hb_gobject_buffer_get_type (void);
-
-
-
-

hb_gobject_buffer_serialize_flags_get_type ()

-
GType
-hb_gobject_buffer_serialize_flags_get_type
-                               (void);
-
-
-
-

hb_gobject_buffer_serialize_format_get_type ()

-
GType
-hb_gobject_buffer_serialize_format_get_type
-                               (void);
-
-
-
-

hb_gobject_direction_get_type ()

-
GType
-hb_gobject_direction_get_type (void);
-
-
-
-

hb_gobject_face_get_type ()

-
GType
-hb_gobject_face_get_type (void);
-
-
-
-

hb_gobject_font_funcs_get_type ()

-
GType
-hb_gobject_font_funcs_get_type (void);
-
-
-
-

hb_gobject_font_get_type ()

-
GType
-hb_gobject_font_get_type (void);
-
-
-
-

hb_gobject_memory_mode_get_type ()

-
GType
-hb_gobject_memory_mode_get_type (void);
-
-
-
-

hb_gobject_ot_layout_glyph_class_get_type ()

-
GType
-hb_gobject_ot_layout_glyph_class_get_type
-                               (void);
-
-
-
-

hb_gobject_script_get_type ()

-
GType
-hb_gobject_script_get_type (void);
-
-
-
-

hb_gobject_shape_plan_get_type ()

-
GType
-hb_gobject_shape_plan_get_type (void);
-
-
-
-

hb_gobject_unicode_combining_class_get_type ()

-
GType
-hb_gobject_unicode_combining_class_get_type
-                               (void);
-
-
-
-

hb_gobject_unicode_funcs_get_type ()

-
GType
-hb_gobject_unicode_funcs_get_type (void);
-
-
-
-

hb_gobject_unicode_general_category_get_type ()

-
GType
-hb_gobject_unicode_general_category_get_type
-                               (void);
-
-
-
-

hb_gobject_buffer_cluster_level_get_type ()

-
GType
-hb_gobject_buffer_cluster_level_get_type
-                               (void);
-
-
-
-

hb_gobject_feature_get_type ()

-
GType
-hb_gobject_feature_get_type (void);
-
-
-
-

hb_gobject_glyph_info_get_type ()

-
GType
-hb_gobject_glyph_info_get_type (void);
-
-
-
-

hb_gobject_glyph_position_get_type ()

-
GType
-hb_gobject_glyph_position_get_type (void);
-
-
-
-

hb_gobject_segment_properties_get_type ()

-
GType
-hb_gobject_segment_properties_get_type
-                               (void);
-
-
-
-

hb_gobject_set_get_type ()

-
GType
-hb_gobject_set_get_type (void);
-
-
-
-

hb_gobject_user_data_key_get_type ()

-
GType
-hb_gobject_user_data_key_get_type (void);
-
-
-
-

Types and Values

-
-

HB_GOBJECT_TYPE_BLOB

-
#define HB_GOBJECT_TYPE_BLOB (hb_gobject_blob_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER

-
#define HB_GOBJECT_TYPE_BUFFER (hb_gobject_buffer_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE

-
#define HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE (hb_gobject_buffer_content_type_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_FLAGS

-
#define HB_GOBJECT_TYPE_BUFFER_FLAGS (hb_gobject_buffer_flags_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS

-
#define HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS (hb_gobject_buffer_serialize_flags_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT

-
#define HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT (hb_gobject_buffer_serialize_format_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_DIRECTION

-
#define HB_GOBJECT_TYPE_DIRECTION (hb_gobject_direction_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_FACE

-
#define HB_GOBJECT_TYPE_FACE (hb_gobject_face_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_FONT

-
#define HB_GOBJECT_TYPE_FONT (hb_gobject_font_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_FONT_FUNCS

-
#define HB_GOBJECT_TYPE_FONT_FUNCS (hb_gobject_font_funcs_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_MEMORY_MODE

-
#define HB_GOBJECT_TYPE_MEMORY_MODE (hb_gobject_memory_mode_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS

-
#define HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS (hb_gobject_ot_layout_glyph_class_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_SCRIPT

-
#define HB_GOBJECT_TYPE_SCRIPT (hb_gobject_script_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_SHAPE_PLAN

-
#define HB_GOBJECT_TYPE_SHAPE_PLAN (hb_gobject_shape_plan_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS

-
#define HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS (hb_gobject_unicode_combining_class_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_UNICODE_FUNCS

-
#define HB_GOBJECT_TYPE_UNICODE_FUNCS (hb_gobject_unicode_funcs_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY

-
#define HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY (hb_gobject_unicode_general_category_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL

-
#define HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL (hb_gobject_buffer_cluster_level_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_FEATURE

-
#define HB_GOBJECT_TYPE_FEATURE (hb_gobject_feature_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_GLYPH_INFO

-
#define HB_GOBJECT_TYPE_GLYPH_INFO (hb_gobject_glyph_info_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_GLYPH_POSITION

-
#define HB_GOBJECT_TYPE_GLYPH_POSITION (hb_gobject_glyph_position_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_SEGMENT_PROPERTIES

-
#define HB_GOBJECT_TYPE_SEGMENT_PROPERTIES (hb_gobject_segment_properties_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_SET

-
#define HB_GOBJECT_TYPE_SET (hb_gobject_set_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_USER_DATA_KEY

-
#define HB_GOBJECT_TYPE_USER_DATA_KEY (hb_gobject_user_data_key_get_type ())
-
-
-
-
- - - \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-font.html b/docs/html/harfbuzz-hb-ot-font.html deleted file mode 100644 index 289d871..0000000 --- a/docs/html/harfbuzz-hb-ot-font.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - -hb-ot-font: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-
-
- - -
-

hb-ot-font

-

hb-ot-font

-
-
-

Functions

-
---- - - - - -
-void - -hb_ot_font_set_funcs () -
-
-
-

Description

-
-
-

Functions

-
-

hb_ot_font_set_funcs ()

-
void
-hb_ot_font_set_funcs (hb_font_t *font);
-

Since: 0.9.28

-
-
-
-

Types and Values

-
-
- - - \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-shape.html b/docs/html/harfbuzz-hb-ot-shape.html deleted file mode 100644 index fa22099..0000000 --- a/docs/html/harfbuzz-hb-ot-shape.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - -hb-ot-shape: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-
-
- - -
-

hb-ot-shape

-

hb-ot-shape

-
-
-

Functions

-
---- - - - - -
-void - -hb_ot_shape_glyphs_closure () -
-
-
-

Description

-
-
-

Functions

-
-

hb_ot_shape_glyphs_closure ()

-
void
-hb_ot_shape_glyphs_closure (hb_font_t *font,
-                            hb_buffer_t *buffer,
-                            const hb_feature_t *features,
-                            unsigned int num_features,
-                            hb_set_t *glyphs);
-

Since: 0.9.2

-
-
-
-

Types and Values

-
-
- - - \ No newline at end of file diff --git a/docs/html/harfbuzz.devhelp2 b/docs/html/harfbuzz.devhelp2 deleted file mode 100644 index 15ffc29..0000000 --- a/docs/html/harfbuzz.devhelp2 +++ /dev/null @@ -1,771 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/html/hello-harfbuzz.html b/docs/html/hello-harfbuzz.html deleted file mode 100644 index c665efc..0000000 --- a/docs/html/hello-harfbuzz.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - -Hello, Harfbuzz: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Hello, Harfbuzz

- -

- Here's the simplest Harfbuzz that can possibly work. We will improve - it later. -

-
  1. - Create a buffer and put your text in it. -

-
-  #include <hb.h>
-  hb_buffer_t *buf;
-  buf = hb_buffer_create();
-  hb_buffer_add_utf8(buf, text, strlen(text), 0, strlen(text));
-
-
  1. - Guess the script, language and direction of the buffer. -

-
-  hb_buffer_guess_segment_properties(buf);
-
-
  1. - Create a face and a font, using FreeType for now. -

-
-  #include <hb-ft.h>
-  FT_New_Face(ft_library, font_path, index, &face)
-  hb_font_t *font = hb_ft_font_create(face);
-
-
  1. - Shape! -

-
-  hb_shape(font, buf, NULL, 0);
-
-
  1. - Get the glyph and position information. -

-
-  hb_glyph_info_t *glyph_info    = hb_buffer_get_glyph_infos(buf, &glyph_count);
-  hb_glyph_position_t *glyph_pos = hb_buffer_get_glyph_positions(buf, &glyph_count);
-
-
  1. - Iterate over each glyph. -

-
-  for (i = 0; i < glyph_count; ++i) {
-    glyphid = glyph_info[i].codepoint;
-    x_offset = glyph_pos[i].x_offset / 64.0;
-    y_offset = glyph_pos[i].y_offset / 64.0;
-    x_advance = glyph_pos[i].x_advance / 64.0;
-    y_advance = glyph_pos[i].y_advance / 64.0;
-    draw_glyph(glyphid, cursor_x + x_offset, cursor_y + y_offset);
-    cursor_x += x_advance;
-    cursor_y += y_advance;
-  }
-
-
  1. - Tidy up. -

-
-  hb_buffer_destroy(buf);
-  hb_font_destroy(hb_ft_font);
-
-
-

-What Harfbuzz doesn't do

-

- The code above will take a UTF8 string, shape it, and give you the - information required to lay it out correctly on a single - horizontal (or vertical) line using the font provided. That is the - extent of Harfbuzz's responsibility. -

-

- If you are implementing a text layout engine you may have other - responsibilities, that Harfbuzz will not help you with: -

-
    -
  • -

    - Harfbuzz won't help you with bidirectionality. If you want to - lay out text with mixed Hebrew and English, you will need to - ensure that the buffer provided to Harfbuzz has those - characters in the correct layout order. This will be different - from the logical order in which the Unicode text is stored. In - other words, the user will hit the keys in the following - sequence: -

    -
    -A B C [space] ג ב א [space] D E F
    -        
    -

    - but will expect to see in the output: -

    -
    -ABC אבג DEF
    -        
    -

    - This reordering is called bidi processing - ("bidi" is short for bidirectional), and there's an - algorithm as an annex to the Unicode Standard which tells you how - to reorder a string from logical order into presentation order. - Before sending your string to Harfbuzz, you may need to apply the - bidi algorithm to it. Libraries such as ICU and fribidi can do - this for you. -

    -
  • -
  • - Harfbuzz won't help you with text that contains different font - properties. For instance, if you have the string "a - huge breakfast", and you expect - "huge" to be italic, you will need to send three - strings to Harfbuzz: a, in your Roman font; - huge using your italic font; and - breakfast using your Roman font again. - Similarly if you change font, font size, script, language or - direction within your string, you will need to shape each run - independently and then output them independently. Harfbuzz - expects to shape a run of characters sharing the same - properties. -

  • -
  • -

    - Harfbuzz won't help you with line breaking, hyphenation or - justification. As mentioned above, it lays out the string - along a single line of, notionally, - infinite length. If you want to find out where the potential - word, sentence and line break points are in your text, you - could use the ICU library's break iterator functions. -

    -

    - Harfbuzz can tell you how wide a shaped piece of text is, which is - useful input to a justification algorithm, but it knows nothing - about paragraphs, lines or line lengths. Nor will it adjust the - space between words to fit them proportionally into a line. If you - want to layout text in paragraphs, you will probably want to send - each word of your text to Harfbuzz to determine its shaped width - after glyph substitutions, then work out how many words will fit - on a line, and then finally output each word of the line separated - by a space of the correct size to fully justify the paragraph. -

    -
  • -
-

- As a layout engine implementor, Harfbuzz will help you with the - interface between your text and your font, and that's something - that you'll need - what you then do with the glyphs that your font - returns is up to you. The example we saw above enough to get us - started using Harfbuzz. Now we are going to use the remainder of - Harfbuzz's API to refine that example and improve our text shaping - capabilities. -

-
-
- - - \ No newline at end of file diff --git a/docs/html/index.html b/docs/html/index.html deleted file mode 100644 index fbf4dcd..0000000 --- a/docs/html/index.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - -HarfBuzz Manual: HarfBuzz Manual - - - - - - - - -
-
-
-
-
-

HarfBuzz

-
-

- HarfBuzz is an OpenType - text shaping engine. -

-

- The current HarfBuzz codebase, formerly known as harfbuzz-ng, is - versioned 1.x.x and is stable and under active maintenance. This is - what is used in latest versions of Firefox, GNOME, ChromeOS, Chrome, - LibreOffice, XeTeX, Android, and KDE, among other places. The canonical - source tree is available - here. - Also available on - github. - See Download for release tarballs. -

-

- The old HarfBuzz codebase, these days known as harfbuzz-old, was - derived from FreeType, - Pango, and - Qt and is available - here. - It is not actively developed or maintained, and is extremely buggy. All - users are encouraged to switch over to the new HarfBuzz as soon as - possible. There are no release tarballs of old HarfBuzz whatsoever. -

-
-
-
-
-
-
I. User's manual
-
-
What is Harfbuzz?
-
-
Why do I need it?
-
Why is it called Harfbuzz?
-
-
Install Harfbuzz
-
-
Download
-
Building
-
-
Hello, Harfbuzz
-
What Harfbuzz doesn't do
-
Buffers, language, script and direction
-
-
Creating and destroying buffers
-
Adding text to the buffer
-
Setting buffer properties
-
What about the other scripts?
-
Customizing Unicode functions
-
-
Fonts and faces
-
-
Using FreeType
-
Using Harfbuzz's native OpenType implementation
-
Using your own font functions
-
-
Shaping and shape plans
-
-
OpenType features
-
Plans and caching
-
-
-
II. Reference manual
-
-
Harfbuzz API
-
-
-hb -
-
-hb-common -
-
-hb-unicode -
-
-Buffers — Input and output buffers -
-
-hb-blob -
-
-hb-face -
-
-hb-font -
-
-Shaping — Conversion of text strings into positioned glyphs -
-
-hb-version -
-
-hb-deprecated -
-
-hb-set -
-
-hb-ot -
-
-hb-ot-layout -
-
-hb-ot-tag -
-
-hb-ot-font -
-
-hb-ot-shape -
-
-hb-shape-plan -
-
-hb-glib -
-
-hb-icu -
-
-hb-ft -
-
-hb-graphite2 -
-
-hb-uniscribe -
-
-hb-coretext -
-
-hb-gobject -
-
-
Object Hierarchy
-
API Index
-
Index of new symbols in 0.9.2
-
Index of new symbols in 0.9.5
-
Index of new symbols in 0.9.7
-
Index of new symbols in 0.9.8
-
Index of new symbols in 0.9.10
-
Index of new symbols in 0.9.11
-
Index of new symbols in 0.9.20
-
Index of new symbols in 0.9.22
-
Index of new symbols in 0.9.28
-
Index of new symbols in 0.9.30
-
Index of new symbols in 0.9.31
-
Index of new symbols in 0.9.38
-
Index of new symbols in 0.9.39
-
Index of new symbols in 0.9.41
-
Index of new symbols in 0.9.42
-
Index of new symbols in 1.0.5
-
Index of new symbols in 1.1.2
-
Index of new symbols in 1.1.3
-
Index of deprecated API
-
Annotation Glossary
-
-
-
- - - \ No newline at end of file diff --git a/docs/html/install-harfbuzz.html b/docs/html/install-harfbuzz.html deleted file mode 100644 index 10017eb..0000000 --- a/docs/html/install-harfbuzz.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - -Install Harfbuzz: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Install Harfbuzz

- -
-

-Download

-

- For tarball releases of HarfBuzz, look - here. - At the same place you will - also find Win32 binary bundles that include libharfbuzz DLL, hb-view.exe, - hb-shape.exe, and all dependencies. -

-

- The canonical source tree is available - here. - Also available on github. -

-

- The API that comes with hb.h will - not change incompatibly. Other, peripheral, headers are more likely to go - through minor modifications, but again, will do our best to never change - API in an incompatible way. We will never break the ABI. -

-

- If you are not sure whether Pango or HarfBuzz is right for you, read - this. -

-
-
- - - \ No newline at end of file diff --git a/docs/html/plans-and-caching.html b/docs/html/plans-and-caching.html deleted file mode 100644 index 8ab4e97..0000000 --- a/docs/html/plans-and-caching.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - -Plans and caching: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Plans and caching

-

-

-
- - - \ No newline at end of file diff --git a/docs/html/pt01.html b/docs/html/pt01.html deleted file mode 100644 index e49ad58..0000000 --- a/docs/html/pt01.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - -Part I. User's manual: HarfBuzz Manual - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/html/pt02.html b/docs/html/pt02.html deleted file mode 100644 index f5580c5..0000000 --- a/docs/html/pt02.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - -Part II. Reference manual: HarfBuzz Manual - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/html/setting-buffer-properties.html b/docs/html/setting-buffer-properties.html deleted file mode 100644 index 0c1cc60..0000000 --- a/docs/html/setting-buffer-properties.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - -Setting buffer properties: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Setting buffer properties

-

-

-
- - - \ No newline at end of file diff --git a/docs/html/shaping-and-shape-plans.html b/docs/html/shaping-and-shape-plans.html deleted file mode 100644 index 04bffbb..0000000 --- a/docs/html/shaping-and-shape-plans.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - -Shaping and shape plans: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Shaping and shape plans

- -
-

-OpenType features

-

-

-
-
- - - \ No newline at end of file diff --git a/docs/html/using-harfbuzzs-native-opentype-implementation.html b/docs/html/using-harfbuzzs-native-opentype-implementation.html deleted file mode 100644 index 1980ba8..0000000 --- a/docs/html/using-harfbuzzs-native-opentype-implementation.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - -Using Harfbuzz's native OpenType implementation: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Using Harfbuzz's native OpenType implementation

-

-

-
- - - \ No newline at end of file diff --git a/docs/html/using-your-own-font-functions.html b/docs/html/using-your-own-font-functions.html deleted file mode 100644 index b1e94d8..0000000 --- a/docs/html/using-your-own-font-functions.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - -Using your own font functions: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Using your own font functions

-

-

-
- - - \ No newline at end of file diff --git a/docs/html/what-about-the-other-scripts.html b/docs/html/what-about-the-other-scripts.html deleted file mode 100644 index 0550e73..0000000 --- a/docs/html/what-about-the-other-scripts.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - -What about the other scripts?: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-What about the other scripts?

-

-

-
- - - \ No newline at end of file diff --git a/docs/html/what-is-harfbuzz.html b/docs/html/what-is-harfbuzz.html deleted file mode 100644 index d791d47..0000000 --- a/docs/html/what-is-harfbuzz.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -What is Harfbuzz?: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-What is Harfbuzz?

- -

- Harfbuzz is a text shaping engine. It solves - the problem of selecting and positioning glyphs from a font given a - Unicode string. -

-
-

-Why do I need it?

-

- Text shaping is an integral part of preparing text for display. It - is a fairly low level operation; Harfbuzz is used directly by - graphic rendering libraries such as Pango, and the layout engines - in Firefox, LibreOffice and Chromium. Unless you are - writing one of these layout engines yourself, - you will probably not need to use Harfbuzz - normally higher level - libraries will turn text into glyphs for you. -

-

- However, if you are writing a layout engine - or graphics library yourself, you will need to perform text - shaping, and this is where Harfbuzz can help you. Here are some - reasons why you need it: -

-
    -
  • - OpenType fonts contain a set of glyphs, indexed by glyph ID. - The glyph ID within the font does not necessarily relate to a - Unicode codepoint. For instance, some fonts have the letter - "a" as glyph ID 1. To pull the right glyph out of - the font in order to display it, you need to consult a table - within the font (the "cmap" table) which maps - Unicode codepoints to glyph IDs. Text shaping turns codepoints - into glyph IDs. -

  • -
  • - Many OpenType fonts contain ligatures: combinations of - characters which are rendered together. For instance, it's - common for the fi combination to appear in - print as the single ligature "fi". Whether you should - render text as fi or "fi" does not - depend on the input text, but on the capabilities of the font - and the level of ligature application you wish to perform. - Text shaping involves querying the font's ligature tables and - determining what substitutions should be made. -

  • -
  • - While ligatures like "fi" are typographic - refinements, some languages require such - substitutions to be made in order to display text correctly. - In Tamil, when the letter "TTA" (ட) letter is - followed by "U" (உ), the combination should appear - as the single glyph "டு". The sequence of Unicode - characters "டஉ" needs to be rendered as a single - glyph from the font - text shaping chooses the correct glyph - from the sequence of characters provided. -

  • -
  • - Similarly, each Arabic character has four different variants: - within a font, there will be glyphs for the initial, medial, - final, and isolated forms of each letter. Unicode only encodes - one codepoint per character, and so a Unicode string will not - tell you which glyph to use. Text shaping chooses the correct - form of the letter and returns the correct glyph from the font - that you need to render. -

  • -
  • - Other languages have marks and accents which need to be - rendered in certain positions around a base character. For - instance, the Moldovan language has the Cyrillic letter - "zhe" (ж) with a breve accent, like so: ӂ. Some - fonts will contain this character as an individual glyph, - whereas other fonts will not contain a zhe-with-breve glyph - but expect the rendering engine to form the character by - overlaying the two glyphs ж and ˘. Where you should draw the - combining breve depends on the height of the preceding glyph. - Again, for Arabic, the correct positioning of vowel marks - depends on the height of the character on which you are - placing the mark. Text shaping tells you whether you have a - precomposed glyph within your font or if you need to compose a - glyph yourself out of combining marks, and if so, where to - position those marks. -

  • -
-

- If this is something that you need to do, then you need a text - shaping engine: you could use Uniscribe if you are using Windows; - you could use CoreText on OS X; or you could use Harfbuzz. In the - rest of this manual, we are going to assume that you are the - implementor of a text layout engine. -

-
-
- - - \ No newline at end of file diff --git a/docs/html/why-is-it-called-harfbuzz.html b/docs/html/why-is-it-called-harfbuzz.html deleted file mode 100644 index afe00b0..0000000 --- a/docs/html/why-is-it-called-harfbuzz.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - -Why is it called Harfbuzz?: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Why is it called Harfbuzz?

-

- Harfbuzz began its life as text shaping code within the FreeType - project, (and you will see references to the FreeType authors - within the source code copyright declarations) but was then - abstracted out to its own project. This project is maintained by - Behdad Esfahbod, and named Harfbuzz. Originally, it was a shaping - engine for OpenType fonts - "Harfbuzz" is the Persian - for "open type". -

-
- - - \ No newline at end of file diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am new file mode 100644 index 0000000..f7a4ad6 --- /dev/null +++ b/docs/reference/Makefile.am @@ -0,0 +1,111 @@ +# Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE=harfbuzz + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +#DOC_MODULE_VERSION=$(HB_VERSION_MAJOR) + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml + +# Directories containing the source code. +# gtk-doc will search all .c and .h files beneath these paths +# for inline comments documenting functions and macros. +# e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk +DOC_SOURCE_DIR=$(top_srcdir)/src $(top_builddir)/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS=--rebuild-types --deprecated-guards="HB_DISABLE_DEPRECATED" + +# Header files or dirs to ignore when scanning. Use base file/dir names +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code +IGNORE_HFILES=`cd $(top_srcdir)/src; find . -path './hb-*/*.h' | sed 's@^.*/@@'` +if HAVE_GOBJECT +else +IGNORE_HFILES+=hb-gobject.h hb-gobject-enums.h hb-gobject-structs.h +endif + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml +MKDB_OPTIONS=--source-suffixes=h,cc --xml-mode --output-format=xml --ignore-files="$(IGNORE_HFILES)" + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS= + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS= + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS= + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB=$(top_srcdir)/src/hb.h $(top_srcdir)/src/hb-*.h +CFILE_GLOB=$(top_srcdir)/src/hb-*.cc + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +EXTRA_HFILES=$(top_builddir)/src/hb-version.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files= version.xml + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS= +GTKDOC_LIBS=$(top_builddir)/src/libharfbuzz.la +if HAVE_GOBJECT +GTKDOC_LIBS+=$(top_builddir)/src/libharfbuzz-gobject.la +endif + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += version.xml.in + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +#DISTCLEANFILES += + +# Comment this out if you want 'make check' to test you doc status +# and run some sanity checks +if ENABLE_GTK_DOC +TESTS_ENVIRONMENT = cd $(srcdir) && \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) +#TESTS = $(GTKDOC_CHECK) +endif + +-include $(top_srcdir)/git.mk diff --git a/docs/reference/Makefile.in b/docs/reference/Makefile.in new file mode 100644 index 0000000..d090c74 --- /dev/null +++ b/docs/reference/Makefile.in @@ -0,0 +1,852 @@ +# Makefile.in generated by automake 1.14 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Process this file with automake to produce Makefile.in + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@HAVE_GOBJECT_FALSE@am__append_1 = hb-gobject.h hb-gobject-enums.h hb-gobject-structs.h +@HAVE_GOBJECT_TRUE@am__append_2 = $(top_builddir)/src/libharfbuzz-gobject.la +DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(srcdir)/version.xml.in +subdir = docs/reference +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = version.xml +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_FT_CFLAGS = @CAIRO_FT_CFLAGS@ +CAIRO_FT_LIBS = @CAIRO_FT_LIBS@ +CAIRO_LIBS = @CAIRO_LIBS@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORETEXT_CFLAGS = @CORETEXT_CFLAGS@ +CORETEXT_LIBS = @CORETEXT_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ +FREETYPE_LIBS = @FREETYPE_LIBS@ +GIT = @GIT@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ +GOBJECT_LIBS = @GOBJECT_LIBS@ +GRAPHITE2_CFLAGS = @GRAPHITE2_CFLAGS@ +GRAPHITE2_LIBS = @GRAPHITE2_LIBS@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +HB_LIBTOOL_VERSION_INFO = @HB_LIBTOOL_VERSION_INFO@ +HB_VERSION = @HB_VERSION@ +HB_VERSION_MAJOR = @HB_VERSION_MAJOR@ +HB_VERSION_MICRO = @HB_VERSION_MICRO@ +HB_VERSION_MINOR = @HB_VERSION_MINOR@ +HTML_DIR = @HTML_DIR@ +ICU_CFLAGS = @ICU_CFLAGS@ +ICU_CONFIG = @ICU_CONFIG@ +ICU_LIBS = @ICU_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RAGEL = @RAGEL@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UNISCRIBE_CFLAGS = @UNISCRIBE_CFLAGS@ +UNISCRIBE_LIBS = @UNISCRIBE_LIBS@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE = harfbuzz + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +#DOC_MODULE_VERSION=$(HB_VERSION_MAJOR) + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml + +# Directories containing the source code. +# gtk-doc will search all .c and .h files beneath these paths +# for inline comments documenting functions and macros. +# e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk +DOC_SOURCE_DIR = $(top_srcdir)/src $(top_builddir)/src + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS = --rebuild-types --deprecated-guards="HB_DISABLE_DEPRECATED" + +# Header files or dirs to ignore when scanning. Use base file/dir names +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code +IGNORE_HFILES = `cd $(top_srcdir)/src; find . -path './hb-*/*.h' | sed \ + 's@^.*/@@'` $(am__append_1) + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml +MKDB_OPTIONS = --source-suffixes=h,cc --xml-mode --output-format=xml --ignore-files="$(IGNORE_HFILES)" + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS = + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_OPTIONS = + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS = + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB = $(top_srcdir)/src/hb.h $(top_srcdir)/src/hb-*.h +CFILE_GLOB = $(top_srcdir)/src/hb-*.cc + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +EXTRA_HFILES = $(top_builddir)/src/hb-version.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = version.xml + +# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded +# These files must be listed here *and* in content_files +# e.g. expand_content_files=running.sgml +expand_content_files = + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS = +GTKDOC_LIBS = $(top_builddir)/src/libharfbuzz.la $(am__append_2) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) +TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) +SETUP_FILES = \ + $(content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + + +# This includes the standard gtk-doc make rules, copied by gtkdocize. + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) version.xml.in +DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test +@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = +@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp +@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = +@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp + +#### setup #### +GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V)) +GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; + +#### scan #### +GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V)) +GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; +GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V)) +GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; + +#### xml #### +GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V)) +GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XML_0 = @echo " DOC Building XML"; + +#### html #### +GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V)) +GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; +GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V)) +GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; + +#### pdf #### +GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V)) +GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +#DISTCLEANFILES += + +# Comment this out if you want 'make check' to test you doc status +# and run some sanity checks +@ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = cd $(srcdir) && \ +@ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ +@ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits docs/reference/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnits docs/reference/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/gtk-doc.make: + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +version.xml: $(top_builddir)/config.status $(srcdir)/version.xml.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-am +@ENABLE_GTK_DOC_FALSE@all-local: +all-am: Makefile all-local +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am all-local check check-am clean clean-generic \ + clean-libtool clean-local cscopelist-am ctags-am dist-hook \ + distclean distclean-generic distclean-libtool distclean-local \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-data-local \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + maintainer-clean-local mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-local + + +gtkdoc-check.test: Makefile + $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ + echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ + chmod +x $@ + +all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +.PHONY: all-gtk-doc + +@ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc + +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +$(REPORT_FILES): sgml-build.stamp + +setup-build.stamp: + -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + $(AM_V_at)touch setup-build.stamp + +scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + $(GTK_DOC_V_SCAN)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$(?)" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + $(AM_V_at)touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) + $(GTK_DOC_V_XML)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + $(AM_V_at)touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$(?)" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$(?)" = "0"; then \ + mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + if test -f $(abs_srcdir)/$$file ; then \ + cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + fi; \ + if test -f $(abs_builddir)/$$file ; then \ + cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + fi; \ + done; + $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + $(AM_V_at)touch html-build.stamp + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ + mkpdf_options=""; \ + gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$(?)" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + $(AM_V_at)touch pdf-build.stamp + +############## + +clean-local: + @rm -f *~ *.bak + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +install-data-local: + @installfiles=`echo $(builddir)/html/*`; \ + if test "$$installfiles" = '$(builddir)/html/*'; \ + then echo 1>&2 'Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo ' $(INSTALL_DATA) '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + fi; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ + fi + +uninstall-local: + @if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +@HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs +@HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: +@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" +@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" +@HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" +@HAVE_GTK_DOC_FALSE@ @false + +dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local + @mkdir $(distdir)/html + @cp ./html/* $(distdir)/html + @-cp ./$(DOC_MODULE).pdf $(distdir)/ + @-cp ./$(DOC_MODULE).types $(distdir)/ + @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ + @cd $(distdir) && rm -f $(DISTCLEANFILES) + @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs +#TESTS = $(GTKDOC_CHECK) + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/docs/reference/harfbuzz-docs.xml b/docs/reference/harfbuzz-docs.xml new file mode 100644 index 0000000..2731fab --- /dev/null +++ b/docs/reference/harfbuzz-docs.xml @@ -0,0 +1,65 @@ + + + +]> + + + HarfBuzz Reference Manual + + for HarfBuzz &version;. + + + + + + [Insert title here] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Object Hierarchy + + + + API Index + + + + Index of deprecated API + + + + + diff --git a/docs/harfbuzz-overrides.txt b/docs/reference/harfbuzz-overrides.txt similarity index 100% rename from docs/harfbuzz-overrides.txt rename to docs/reference/harfbuzz-overrides.txt diff --git a/docs/harfbuzz-sections.txt b/docs/reference/harfbuzz-sections.txt similarity index 90% rename from docs/harfbuzz-sections.txt rename to docs/reference/harfbuzz-sections.txt index e0dc23d..b112047 100644 --- a/docs/harfbuzz-sections.txt +++ b/docs/reference/harfbuzz-sections.txt @@ -2,7 +2,6 @@ hb HB_H_IN -HB_EXTERN
@@ -26,106 +25,97 @@ hb_memory_mode_t
hb-buffer HB_SEGMENT_PROPERTIES_DEFAULT -HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT -hb_buffer_create -hb_buffer_reference -hb_buffer_get_empty -hb_buffer_destroy -hb_buffer_reset -hb_buffer_clear_contents -hb_buffer_pre_allocate -hb_buffer_allocation_successful hb_buffer_add -hb_buffer_add_codepoints -hb_buffer_add_utf32 hb_buffer_add_utf16 +hb_buffer_add_utf32 hb_buffer_add_utf8 -hb_buffer_add_latin1 -hb_buffer_set_content_type +hb_buffer_add_codepoints +hb_buffer_allocation_successful +hb_buffer_clear_contents +hb_buffer_content_type_t +hb_buffer_create +hb_buffer_deserialize_glyphs +hb_buffer_destroy +hb_buffer_flags_t hb_buffer_get_content_type -hb_buffer_set_direction hb_buffer_get_direction -hb_buffer_set_script -hb_buffer_get_script -hb_buffer_set_language -hb_buffer_get_language -hb_buffer_set_flags +hb_buffer_get_empty hb_buffer_get_flags -hb_buffer_set_cluster_level -hb_buffer_get_cluster_level -hb_buffer_set_length +hb_buffer_get_glyph_infos +hb_buffer_get_glyph_positions +hb_buffer_get_language hb_buffer_get_length -hb_buffer_set_segment_properties +hb_buffer_get_replacement_codepoint +hb_buffer_get_script hb_buffer_get_segment_properties -hb_buffer_guess_segment_properties -hb_buffer_set_unicode_funcs hb_buffer_get_unicode_funcs -hb_buffer_set_user_data hb_buffer_get_user_data -hb_buffer_get_glyph_infos -hb_buffer_get_glyph_positions -hb_buffer_set_replacement_codepoint -hb_buffer_get_replacement_codepoint +hb_buffer_guess_segment_properties hb_buffer_normalize_glyphs +hb_buffer_pre_allocate +hb_buffer_reference +hb_buffer_reset hb_buffer_reverse -hb_buffer_reverse_range hb_buffer_reverse_clusters -hb_buffer_serialize_glyphs -hb_buffer_deserialize_glyphs +hb_buffer_serialize_flags_t hb_buffer_serialize_format_from_string +hb_buffer_serialize_format_t hb_buffer_serialize_format_to_string +hb_buffer_serialize_glyphs hb_buffer_serialize_list_formats -hb_segment_properties_equal -hb_segment_properties_hash -hb_buffer_set_message_func +hb_buffer_set_content_type +hb_buffer_set_direction +hb_buffer_set_flags +hb_buffer_set_language +hb_buffer_set_length +hb_buffer_set_replacement_codepoint +hb_buffer_set_script +hb_buffer_set_segment_properties +hb_buffer_set_unicode_funcs +hb_buffer_set_user_data hb_buffer_t hb_glyph_info_t hb_glyph_position_t -hb_buffer_content_type_t -hb_buffer_flags_t -hb_buffer_cluster_level_t +hb_segment_properties_equal +hb_segment_properties_hash hb_segment_properties_t -hb_buffer_serialize_format_t -hb_buffer_serialize_flags_t -hb_buffer_message_func_t
hb-common -hb_tag_from_string -hb_tag_to_string -hb_direction_from_string -hb_direction_to_string -hb_script_from_iso15924_tag -hb_script_from_string -hb_script_to_iso15924_tag -hb_script_get_horizontal_direction -hb_language_from_string -hb_language_to_string -hb_language_get_default +HB_DIRECTION_REVERSE +HB_LANGUAGE_INVALID +HB_TAG +HB_TAG_NONE +HB_TAG_MAX +HB_UNTAG hb_bool_t hb_codepoint_t hb_destroy_func_t +hb_direction_from_string hb_direction_t +hb_direction_to_string +hb_language_from_string +hb_language_get_default hb_language_t +hb_language_to_string hb_mask_t hb_position_t -hb_tag_t +hb_script_from_iso15924_tag +hb_script_from_string +hb_script_get_horizontal_direction hb_script_t +hb_script_to_iso15924_tag +hb_tag_from_string +hb_tag_t +hb_tag_to_string hb_user_data_key_t hb_var_int_t -HB_TAG -HB_TAG_NONE -HB_TAG_MAX -HB_TAG_MAX_SIGNED -HB_UNTAG -HB_DIRECTION_REVERSE HB_DIRECTION_IS_BACKWARD HB_DIRECTION_IS_FORWARD HB_DIRECTION_IS_HORIZONTAL HB_DIRECTION_IS_VALID HB_DIRECTION_IS_VERTICAL -HB_LANGUAGE_INVALID HB_BEGIN_DECLS HB_END_DECLS @@ -252,27 +242,14 @@ hb_font_set_user_data hb_font_subtract_glyph_origin_for_direction hb_font_t hb_reference_table_func_t -hb_font_funcs_set_font_h_extents_func -hb_font_funcs_set_font_v_extents_func -hb_font_get_extents_for_direction -hb_font_get_font_extents_func_t -hb_font_get_font_h_extents_func_t -hb_font_get_font_v_extents_func_t -hb_font_get_h_extents -hb_font_get_v_extents -hb_font_set_parent
hb-ft hb_ft_face_create hb_ft_face_create_cached -hb_ft_face_create_referenced hb_ft_font_create -hb_ft_font_create_referenced hb_ft_font_get_face -hb_ft_font_set_load_flags -hb_ft_font_get_load_flags hb_ft_font_set_funcs
@@ -281,7 +258,6 @@ hb_ft_font_set_funcs hb_glib_get_unicode_funcs hb_glib_script_from_script hb_glib_script_to_script -hb_glib_blob_create
@@ -303,13 +279,6 @@ HB_GOBJECT_TYPE_SHAPE_PLAN HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS HB_GOBJECT_TYPE_UNICODE_FUNCS HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY -HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL -HB_GOBJECT_TYPE_FEATURE -HB_GOBJECT_TYPE_GLYPH_INFO -HB_GOBJECT_TYPE_GLYPH_POSITION -HB_GOBJECT_TYPE_SEGMENT_PROPERTIES -HB_GOBJECT_TYPE_SET -HB_GOBJECT_TYPE_USER_DATA_KEY hb_gobject_blob_get_type hb_gobject_buffer_content_type_get_type hb_gobject_buffer_flags_get_type @@ -327,13 +296,6 @@ hb_gobject_shape_plan_get_type hb_gobject_unicode_combining_class_get_type hb_gobject_unicode_funcs_get_type hb_gobject_unicode_general_category_get_type -hb_gobject_buffer_cluster_level_get_type -hb_gobject_feature_get_type -hb_gobject_glyph_info_get_type -hb_gobject_glyph_position_get_type -hb_gobject_segment_properties_get_type -hb_gobject_set_get_type -hb_gobject_user_data_key_get_type HB_GOBJECT_H_IN
@@ -381,7 +343,6 @@ HB_OT_LAYOUT_NO_SCRIPT_INDEX HB_OT_TAG_GDEF HB_OT_TAG_GPOS HB_OT_TAG_GSUB -HB_OT_TAG_JSTF hb_ot_layout_collect_lookups hb_ot_layout_feature_get_lookups hb_ot_layout_get_attach_points @@ -409,7 +370,6 @@ hb_ot_layout_table_get_feature_tags hb_ot_layout_table_get_script_tags hb_ot_layout_table_get_lookup_count hb_ot_shape_plan_collect_lookups -hb_ot_layout_language_get_required_feature_index Xhb_ot_layout_lookup_enumerate_sequences Xhb_ot_layout_lookup_position @@ -530,12 +490,12 @@ hb_uniscribe_font_get_logfontw
hb-version -HB_VERSION_ATLEAST +HB_VERSION_CHECK HB_VERSION_MAJOR HB_VERSION_MICRO HB_VERSION_MINOR HB_VERSION_STRING hb_version -hb_version_atleast +hb_version_check hb_version_string
diff --git a/docs/reference/harfbuzz.types b/docs/reference/harfbuzz.types new file mode 100644 index 0000000..e69de29 diff --git a/docs/reference/html/annotation-glossary.html b/docs/reference/html/annotation-glossary.html new file mode 100644 index 0000000..1afb91d --- /dev/null +++ b/docs/reference/html/annotation-glossary.html @@ -0,0 +1,78 @@ + + + + +Annotation Glossary + + + + + + + + + + + + + + + +
+

+Annotation Glossary

+

A

+
+array
+

Parameter points to an array of items.

+

C

+
+closure
+

This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.

+

D

+
+destroy
+

This parameter is a 'destroy_data', for callbacks.

+

E

+
+element-type
+

Generics and defining elements of containers and arrays.

+

I

+
+inout
+

Parameter for input and for returning results. Default is transfer full.

+

O

+
+out
+

Parameter for returning results. Default is transfer full.

+

S

+
+scope notified
+

The callback is valid until the GDestroyNotify argument is called.

+

T

+
+transfer full
+

Free data after the code is done.

+
+transfer none
+

Don't free data after the code is done.

+
+ + + \ No newline at end of file diff --git a/docs/html/api-index-full.html b/docs/reference/html/api-index-full.html similarity index 68% rename from docs/html/api-index-full.html rename to docs/reference/html/api-index-full.html index b82641b..bb4c5a0 100644 --- a/docs/html/api-index-full.html +++ b/docs/reference/html/api-index-full.html @@ -2,13 +2,13 @@ -API Index: HarfBuzz Manual - - - +API Index + + + - - + + @@ -43,9 +43,9 @@  |  V Home -Up + Prev -Next +Next

@@ -108,55 +108,47 @@
-hb_buffer_add, function in Buffers +hb_buffer_add, function in hb-buffer
-hb_buffer_add_codepoints, function in Buffers +hb_buffer_add_codepoints, function in hb-buffer
-hb_buffer_add_latin1, function in Buffers +hb_buffer_add_utf16, function in hb-buffer
-hb_buffer_add_utf16, function in Buffers +hb_buffer_add_utf32, function in hb-buffer
-hb_buffer_add_utf32, function in Buffers +hb_buffer_add_utf8, function in hb-buffer
-hb_buffer_add_utf8, function in Buffers +hb_buffer_allocation_successful, function in hb-buffer
-hb_buffer_allocation_successful, function in Buffers +hb_buffer_clear_contents, function in hb-buffer
-hb_buffer_clear_contents, function in Buffers +hb_buffer_content_type_t, enum in hb-buffer
-hb_buffer_cluster_level_t, enum in Buffers +hb_buffer_create, function in hb-buffer
-hb_buffer_content_type_t, enum in Buffers +hb_buffer_deserialize_glyphs, function in hb-buffer
-hb_buffer_create, function in Buffers -
-
-
-hb_buffer_deserialize_glyphs, function in Buffers -
-
-
-hb_buffer_destroy, function in Buffers +hb_buffer_destroy, function in hb-buffer
@@ -164,103 +156,87 @@
-hb_buffer_flags_t, enum in Buffers -
-
-
-hb_buffer_get_cluster_level, function in Buffers -
-
-
-hb_buffer_get_content_type, function in Buffers -
-
-
-hb_buffer_get_direction, function in Buffers +hb_buffer_flags_t, enum in hb-buffer
-hb_buffer_get_empty, function in Buffers +hb_buffer_get_content_type, function in hb-buffer
-hb_buffer_get_flags, function in Buffers +hb_buffer_get_direction, function in hb-buffer
-hb_buffer_get_glyph_infos, function in Buffers +hb_buffer_get_empty, function in hb-buffer
-hb_buffer_get_glyph_positions, function in Buffers +hb_buffer_get_flags, function in hb-buffer
-hb_buffer_get_language, function in Buffers +hb_buffer_get_glyph_infos, function in hb-buffer
-hb_buffer_get_length, function in Buffers +hb_buffer_get_glyph_positions, function in hb-buffer
-hb_buffer_get_replacement_codepoint, function in Buffers +hb_buffer_get_language, function in hb-buffer
-hb_buffer_get_script, function in Buffers +hb_buffer_get_length, function in hb-buffer
-hb_buffer_get_segment_properties, function in Buffers +hb_buffer_get_replacement_codepoint, function in hb-buffer
-hb_buffer_get_unicode_funcs, function in Buffers +hb_buffer_get_script, function in hb-buffer
-hb_buffer_get_user_data, function in Buffers +hb_buffer_get_segment_properties, function in hb-buffer
-hb_buffer_guess_segment_properties, function in Buffers +hb_buffer_get_unicode_funcs, function in hb-buffer
-hb_buffer_message_func_t, user_function in Buffers +hb_buffer_get_user_data, function in hb-buffer
-hb_buffer_normalize_glyphs, function in Buffers +hb_buffer_guess_segment_properties, function in hb-buffer
-hb_buffer_pre_allocate, function in Buffers +hb_buffer_normalize_glyphs, function in hb-buffer
-hb_buffer_reference, function in Buffers +hb_buffer_pre_allocate, function in hb-buffer
-HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT, macro in Buffers +hb_buffer_reference, function in hb-buffer
-hb_buffer_reset, function in Buffers +hb_buffer_reset, function in hb-buffer
-hb_buffer_reverse, function in Buffers +hb_buffer_reverse, function in hb-buffer
-hb_buffer_reverse_clusters, function in Buffers -
-
-
-hb_buffer_reverse_range, function in Buffers +hb_buffer_reverse_clusters, function in hb-buffer
@@ -268,79 +244,71 @@
-hb_buffer_serialize_flags_t, enum in Buffers -
-
-
-hb_buffer_serialize_format_from_string, function in Buffers -
-
-
-hb_buffer_serialize_format_t, enum in Buffers +hb_buffer_serialize_flags_t, enum in hb-buffer
-hb_buffer_serialize_format_to_string, function in Buffers +hb_buffer_serialize_format_from_string, function in hb-buffer
-hb_buffer_serialize_glyphs, function in Buffers +hb_buffer_serialize_format_t, enum in hb-buffer
-hb_buffer_serialize_list_formats, function in Buffers +hb_buffer_serialize_format_to_string, function in hb-buffer
-hb_buffer_set_cluster_level, function in Buffers +hb_buffer_serialize_glyphs, function in hb-buffer
-hb_buffer_set_content_type, function in Buffers +hb_buffer_serialize_list_formats, function in hb-buffer
-hb_buffer_set_direction, function in Buffers +hb_buffer_set_content_type, function in hb-buffer
-hb_buffer_set_flags, function in Buffers +hb_buffer_set_direction, function in hb-buffer
-hb_buffer_set_language, function in Buffers +hb_buffer_set_flags, function in hb-buffer
-hb_buffer_set_length, function in Buffers +hb_buffer_set_language, function in hb-buffer
-hb_buffer_set_message_func, function in Buffers +hb_buffer_set_length, function in hb-buffer
-hb_buffer_set_replacement_codepoint, function in Buffers +hb_buffer_set_replacement_codepoint, function in hb-buffer
-hb_buffer_set_script, function in Buffers +hb_buffer_set_script, function in hb-buffer
-hb_buffer_set_segment_properties, function in Buffers +hb_buffer_set_segment_properties, function in hb-buffer
-hb_buffer_set_unicode_funcs, function in Buffers +hb_buffer_set_unicode_funcs, function in hb-buffer
-hb_buffer_set_user_data, function in Buffers +hb_buffer_set_user_data, function in hb-buffer
-hb_buffer_t, typedef in Buffers +hb_buffer_t, typedef in hb-buffer

C

@@ -483,15 +451,15 @@
-hb_feature_from_string, function in Shaping +hb_feature_from_string, function in hb-shape
-hb_feature_t, struct in Shaping +hb_feature_t, struct in hb-shape
-hb_feature_to_string, function in Shaping +hb_feature_to_string, function in hb-shape
@@ -539,14 +507,6 @@
-hb_font_funcs_set_font_h_extents_func, function in hb-font -
-
-
-hb_font_funcs_set_font_v_extents_func, function in hb-font -
-
-
hb_font_funcs_set_glyph_contour_point_func, function in hb-font
@@ -603,26 +563,10 @@
-hb_font_get_extents_for_direction, function in hb-font -
-
-
hb_font_get_face, function in hb-font
-hb_font_get_font_extents_func_t, user_function in hb-font -
-
-
-hb_font_get_font_h_extents_func_t, typedef in hb-font -
-
-
-hb_font_get_font_v_extents_func_t, typedef in hb-font -
-
-
hb_font_get_glyph, function in hb-font
@@ -743,10 +687,6 @@
-hb_font_get_h_extents, function in hb-font -
-
-
hb_font_get_parent, function in hb-font
@@ -763,10 +703,6 @@
-hb_font_get_v_extents, function in hb-font -
-
-
hb_font_glyph_from_string, function in hb-font
@@ -795,10 +731,6 @@
-hb_font_set_parent, function in hb-font -
-
-
hb_font_set_ppem, function in hb-font
@@ -827,39 +759,19 @@
-hb_ft_face_create_referenced, function in hb-ft -
-
-
hb_ft_font_create, function in hb-ft
-hb_ft_font_create_referenced, function in hb-ft -
-
-
hb_ft_font_get_face, function in hb-ft
-hb_ft_font_get_load_flags, function in hb-ft -
-
-
hb_ft_font_set_funcs, function in hb-ft
-
-hb_ft_font_set_load_flags, function in hb-ft -
-

G

-hb_glib_blob_create, function in hb-glib -
-
-
hb_glib_get_unicode_funcs, function in hb-glib
@@ -872,203 +784,11 @@
-hb_glyph_info_t, struct in Buffers -
-
-
-hb_glyph_position_t, struct in Buffers -
-
-
-hb_gobject_blob_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_cluster_level_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_content_type_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_flags_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_serialize_flags_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_serialize_format_get_type, function in hb-gobject -
-
-
-hb_gobject_direction_get_type, function in hb-gobject -
-
-
-hb_gobject_face_get_type, function in hb-gobject -
-
-
-hb_gobject_feature_get_type, function in hb-gobject +hb_glyph_info_t, struct in hb-buffer
-hb_gobject_font_funcs_get_type, function in hb-gobject -
-
-
-hb_gobject_font_get_type, function in hb-gobject -
-
-
-hb_gobject_glyph_info_get_type, function in hb-gobject -
-
-
-hb_gobject_glyph_position_get_type, function in hb-gobject -
-
-
-hb_gobject_memory_mode_get_type, function in hb-gobject -
-
-
-hb_gobject_ot_layout_glyph_class_get_type, function in hb-gobject -
-
-
-hb_gobject_script_get_type, function in hb-gobject -
-
-
-hb_gobject_segment_properties_get_type, function in hb-gobject -
-
-
-hb_gobject_set_get_type, function in hb-gobject -
-
-
-hb_gobject_shape_plan_get_type, function in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BLOB, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_FLAGS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_DIRECTION, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_FACE, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_FEATURE, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_FONT, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_FONT_FUNCS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_GLYPH_INFO, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_GLYPH_POSITION, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_MEMORY_MODE, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_SCRIPT, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_SEGMENT_PROPERTIES, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_SET, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_SHAPE_PLAN, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_UNICODE_FUNCS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_USER_DATA_KEY, macro in hb-gobject -
-
-
-hb_gobject_unicode_combining_class_get_type, function in hb-gobject -
-
-
-hb_gobject_unicode_funcs_get_type, function in hb-gobject -
-
-
-hb_gobject_unicode_general_category_get_type, function in hb-gobject -
-
-
-hb_gobject_user_data_key_get_type, function in hb-gobject +hb_glyph_position_t, struct in hb-buffer
@@ -1110,7 +830,7 @@
-hb_language_t, typedef in hb-common +hb_language_t, typedef in hb-common
@@ -1128,7 +848,7 @@

O

-hb_ot_font_set_funcs, function in hb-ot-font +hb_ot_font_set_funcs, function in hb-ot-font
@@ -1200,10 +920,6 @@
-hb_ot_layout_language_get_required_feature_index, function in hb-ot-layout -
-
-
hb_ot_layout_lookup_collect_glyphs, function in hb-ot-layout
@@ -1252,7 +968,7 @@
-hb_ot_shape_glyphs_closure, function in hb-ot-shape +hb_ot_shape_glyphs_closure, function in hb-ot-shape
@@ -1288,10 +1004,6 @@
-HB_OT_TAG_JSTF, macro in hb-ot-layout -
-
-
hb_ot_tag_to_language, function in hb-ot-tag
@@ -1335,19 +1047,19 @@
-HB_SEGMENT_PROPERTIES_DEFAULT, macro in Buffers +HB_SEGMENT_PROPERTIES_DEFAULT, macro in hb-buffer
-hb_segment_properties_equal, function in Buffers +hb_segment_properties_equal, function in hb-buffer
-hb_segment_properties_hash, function in Buffers +hb_segment_properties_hash, function in hb-buffer
-hb_segment_properties_t, struct in Buffers +hb_segment_properties_t, struct in hb-buffer
@@ -1463,15 +1175,15 @@
-hb_shape, function in Shaping +hb_shape, function in hb-shape
-hb_shape_full, function in Shaping +hb_shape_full, function in hb-shape
-hb_shape_list_shapers, function in Shaping +hb_shape_list_shapers, function in hb-shape
@@ -1528,10 +1240,6 @@
-HB_TAG_MAX_SIGNED, macro in hb-common -
-
-
HB_TAG_NONE, macro in hb-common
@@ -1714,14 +1422,6 @@
-HB_VERSION_ATLEAST, macro in hb-version -
-
-
-hb_version_atleast, function in hb-version -
-
-
HB_VERSION_MAJOR, macro in hb-version
@@ -1743,6 +1443,7 @@
+
+ Generated by GTK-Doc V1.20.1
\ No newline at end of file diff --git a/docs/html/ch07.html b/docs/reference/html/ch01.html similarity index 72% rename from docs/html/ch07.html rename to docs/reference/html/ch01.html index 69fe962..a86abae 100644 --- a/docs/html/ch07.html +++ b/docs/reference/html/ch01.html @@ -2,27 +2,27 @@ -Harfbuzz API: HarfBuzz Manual - - - - +[Insert title here] + + + + - + - - + +

-Harfbuzz API

-
+[Insert title here]
+
hb
@@ -33,7 +33,7 @@ hb-unicode
-Buffers — Input and output buffers +hb-buffer
hb-blob @@ -45,7 +45,7 @@ hb-font
-Shaping — Conversion of text strings into positioned glyphs +hb-shape
hb-version @@ -66,12 +66,6 @@ hb-ot-tag
-hb-ot-font -
-
-hb-ot-shape -
-
hb-shape-plan
@@ -98,6 +92,7 @@
+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/deprecated-api-index.html b/docs/reference/html/deprecated-api-index.html similarity index 61% rename from docs/html/deprecated-api-index.html rename to docs/reference/html/deprecated-api-index.html index 5b5bfbc..3ccc21a 100644 --- a/docs/html/deprecated-api-index.html +++ b/docs/reference/html/deprecated-api-index.html @@ -2,25 +2,23 @@ -Index of deprecated API: HarfBuzz Manual - - - - +Index of deprecated API + + + + - + - - + +
@@ -35,15 +33,6 @@ HB_BUFFER_SERIALIZE_FLAGS_DEFAULT, macro in hb-deprecated
-

F

-
-hb_font_funcs_set_glyph_func, function in hb-font -
-
-
-hb_font_get_glyph_func_t, user_function in hb-font -
-

S

HB_SCRIPT_CANADIAN_ABORIGINAL, macro in hb-deprecated @@ -51,6 +40,7 @@
+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-blob.html b/docs/reference/html/harfbuzz-hb-blob.html similarity index 85% rename from docs/html/harfbuzz-hb-blob.html rename to docs/reference/html/harfbuzz-hb-blob.html index fa54243..b7f9a12 100644 --- a/docs/html/harfbuzz-hb-blob.html +++ b/docs/reference/html/harfbuzz-hb-blob.html @@ -2,13 +2,13 @@ -hb-blob: HarfBuzz Manual - - - - +hb-blob + + + + - + @@ -19,8 +19,8 @@ Object Hierarchy Home -Up -Prev +Up +Prev Next
@@ -158,14 +158,16 @@

Object Hierarchy

-
    GBoxed
+
    GBoxed
     ╰── hb_blob_t
-    GEnum
+    GEnum
     ╰── hb_memory_mode_t
 

Description

+

+

Functions

@@ -182,9 +184,8 @@ hb_blob_create (const char parameter is used to negotiate ownership and lifecycle of data .

-

[skip]

-

Parameters

+

Parameters

@@ -225,12 +226,13 @@ is not needed anymore.

-

Returns

+

Returns

New blob, or the empty blob if something failed or if length is zero. Destroy with hb_blob_destroy().

+

-

Since: 0.9.2

+

Since 1.0


@@ -248,7 +250,7 @@ is.

Makes parent immutable.

-

Parameters

+

Parameters

@@ -276,15 +278,16 @@ is.

-

Returns

+

Returns

New blob, or the empty blob if something failed or if length is zero or offset is beyond the end of parent 's data. Destroy with hb_blob_destroy().

+

-

Since: 0.9.2

+

Since 1.0


@@ -297,9 +300,8 @@ hb_blob_destroy ([skip]

-

Parameters

+

Parameters

@@ -313,7 +315,7 @@ was created for if it has not been called already.

-

Since: 0.9.2

+

Since 1.0


@@ -322,7 +324,7 @@ was created for if it has not been called already.

hb_blob_get_data (hb_blob_t *blob, unsigned int *length);
-

Parameters

+

Parameters

@@ -344,11 +346,11 @@ hb_blob_get_data ( -

Returns

+

Returns

.

[transfer none][array length=length]

-

Since: 0.9.2

+

Since 1.0


@@ -361,7 +363,7 @@ return pointer to data.

Fails if blob has been made immutable, or if memory allocation fails.

-

Parameters

+

Parameters

@@ -383,12 +385,12 @@ fails.

-

Returns

+

Returns

Writable blob data, or NULL if failed.

[transfer none][array length=length]

-

Since: 0.9.2

+

Since 1.0


@@ -398,11 +400,11 @@ hb_blob_get_empty (voidReturns the singleton empty blob.

See TODO:link object types for more information.

-

Returns

+

Returns

the empty blob.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


@@ -410,7 +412,7 @@ hb_blob_get_empty (voidunsigned int hb_blob_get_length (hb_blob_t *blob);
-

Parameters

+

Parameters

@@ -425,10 +427,11 @@ hb_blob_get_length ( -

Returns

+

Returns

the length of blob data in bytes.

+

-

Since: 0.9.2

+

Since 1.0


@@ -436,9 +439,8 @@ hb_blob_get_length (void * hb_blob_get_user_data (hb_blob_t *blob, hb_user_data_key_t *key); -

[skip]

-

Parameters

+

Parameters

@@ -460,11 +462,11 @@ hb_blob_get_user_data ( -

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.2

+

Since 1.0


@@ -472,7 +474,7 @@ hb_blob_get_user_data (hb_bool_t hb_blob_is_immutable (hb_blob_t *blob);
-

Parameters

+

Parameters

@@ -487,10 +489,11 @@ hb_blob_is_immutable ( -

Returns

+

Returns

TODO

+

-

Since: 0.9.2

+

Since 1.0


@@ -498,7 +501,7 @@ hb_blob_is_immutable (void hb_blob_make_immutable (hb_blob_t *blob);
-

Parameters

+

Parameters

@@ -512,7 +515,7 @@ hb_blob_make_immutable (Since: 0.9.2

+

Since 1.0


@@ -522,9 +525,8 @@ hb_blob_reference (blob .

See TODO:link object types for more information.

-

[skip]

-

Parameters

+

Parameters

@@ -539,11 +541,12 @@ hb_blob_reference ( -

Returns

+

Returns

blob .

+

-

Since: 0.9.2

+

Since 1.0


@@ -554,9 +557,8 @@ hb_blob_set_user_data (void *data, hb_destroy_func_t destroy, hb_bool_t replace); -

[skip]

-

Parameters

+

Parameters

@@ -593,7 +595,11 @@ is not needed anymore.

-

Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0

@@ -602,12 +608,16 @@ is not needed anymore.

hb_blob_t

typedef struct hb_blob_t hb_blob_t;
 
+

+


enum hb_memory_mode_t

+

+

-

Members

+

Members

@@ -617,23 +627,23 @@ is not needed anymore.

- - + + - - + + - - + + - - + +

HB_MEMORY_MODE_DUPLICATE

    

HB_MEMORY_MODE_READONLY

    

HB_MEMORY_MODE_WRITABLE

    

HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE

    
@@ -642,6 +652,7 @@ is not needed anymore.

+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/reference/html/harfbuzz-hb-buffer.html b/docs/reference/html/harfbuzz-hb-buffer.html new file mode 100644 index 0000000..0c32fc8 --- /dev/null +++ b/docs/reference/html/harfbuzz-hb-buffer.html @@ -0,0 +1,1780 @@ + + + + +hb-buffer + + + + + + + + + + + + + + + + +
+
+
+ + +
+

hb-buffer

+

hb-buffer

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+void + +hb_buffer_add () +
+void + +hb_buffer_add_utf16 () +
+void + +hb_buffer_add_utf32 () +
+void + +hb_buffer_add_utf8 () +
+void + +hb_buffer_add_codepoints () +
+hb_bool_t + +hb_buffer_allocation_successful () +
+void + +hb_buffer_clear_contents () +
+hb_buffer_t * + +hb_buffer_create () +
+hb_bool_t + +hb_buffer_deserialize_glyphs () +
+void + +hb_buffer_destroy () +
+hb_buffer_content_type_t + +hb_buffer_get_content_type () +
+hb_direction_t + +hb_buffer_get_direction () +
+hb_buffer_t * + +hb_buffer_get_empty () +
+hb_buffer_flags_t + +hb_buffer_get_flags () +
+hb_glyph_info_t * + +hb_buffer_get_glyph_infos () +
+hb_glyph_position_t * + +hb_buffer_get_glyph_positions () +
+hb_language_t + +hb_buffer_get_language () +
unsigned int + +hb_buffer_get_length () +
+hb_codepoint_t + +hb_buffer_get_replacement_codepoint () +
+hb_script_t + +hb_buffer_get_script () +
+void + +hb_buffer_get_segment_properties () +
+hb_unicode_funcs_t * + +hb_buffer_get_unicode_funcs () +
+void * + +hb_buffer_get_user_data () +
+void + +hb_buffer_guess_segment_properties () +
+void + +hb_buffer_normalize_glyphs () +
+hb_bool_t + +hb_buffer_pre_allocate () +
+hb_buffer_t * + +hb_buffer_reference () +
+void + +hb_buffer_reset () +
+void + +hb_buffer_reverse () +
+void + +hb_buffer_reverse_clusters () +
+hb_buffer_serialize_format_t + +hb_buffer_serialize_format_from_string () +
const char * + +hb_buffer_serialize_format_to_string () +
unsigned int + +hb_buffer_serialize_glyphs () +
const char ** + +hb_buffer_serialize_list_formats () +
+void + +hb_buffer_set_content_type () +
+void + +hb_buffer_set_direction () +
+void + +hb_buffer_set_flags () +
+void + +hb_buffer_set_language () +
+hb_bool_t + +hb_buffer_set_length () +
+void + +hb_buffer_set_replacement_codepoint () +
+void + +hb_buffer_set_script () +
+void + +hb_buffer_set_segment_properties () +
+void + +hb_buffer_set_unicode_funcs () +
+hb_bool_t + +hb_buffer_set_user_data () +
+hb_bool_t + +hb_segment_properties_equal () +
unsigned int + +hb_segment_properties_hash () +
+
+
+

Types and Values

+ +
+
+

Object Hierarchy

+
    GBoxed
+    ├── hb_buffer_t
+    ├── hb_glyph_info_t
+    ├── hb_glyph_position_t
+    ╰── hb_segment_properties_t
+    GEnum
+    ├── hb_buffer_content_type_t
+    ╰── hb_buffer_serialize_format_t
+    GFlags
+    ├── hb_buffer_flags_t
+    ╰── hb_buffer_serialize_flags_t
+
+
+
+

Description

+

+

+
+
+

Functions

+
+

hb_buffer_add ()

+
void
+hb_buffer_add (hb_buffer_t *buffer,
+               hb_codepoint_t codepoint,
+               unsigned int cluster);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_add_utf16 ()

+
void
+hb_buffer_add_utf16 (hb_buffer_t *buffer,
+                     const uint16_t *text,
+                     int text_length,
+                     unsigned int item_offset,
+                     int item_length);
+
+

Parameters

+
+++++ + + + + + + + + + + + + +

buffer

a buffer.

 

text

.

[array length=text_length]
+
+

Since 1.0

+
+
+
+

hb_buffer_add_utf32 ()

+
void
+hb_buffer_add_utf32 (hb_buffer_t *buffer,
+                     const uint32_t *text,
+                     int text_length,
+                     unsigned int item_offset,
+                     int item_length);
+
+

Parameters

+
+++++ + + + + + + + + + + + + +

buffer

a buffer.

 

text

.

[array length=text_length]
+
+

Since 1.0

+
+
+
+

hb_buffer_add_utf8 ()

+
void
+hb_buffer_add_utf8 (hb_buffer_t *buffer,
+                    const char *text,
+                    int text_length,
+                    unsigned int item_offset,
+                    int item_length);
+
+

Parameters

+
+++++ + + + + + + + + + + + + +

buffer

a buffer.

 

text

.

[array length=text_length][element-type uint8_t]
+
+

Since 1.0

+
+
+
+

hb_buffer_add_codepoints ()

+
void
+hb_buffer_add_codepoints (hb_buffer_t *buffer,
+                          const hb_codepoint_t *text,
+                          int text_length,
+                          unsigned int item_offset,
+                          int item_length);
+

Since 1.0

+
+
+
+

hb_buffer_allocation_successful ()

+
hb_bool_t
+hb_buffer_allocation_successful (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_clear_contents ()

+
void
+hb_buffer_clear_contents (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_create ()

+
hb_buffer_t *
+hb_buffer_create (void);
+

+

+
+

Returns

+

+
+
+
+
+

hb_buffer_deserialize_glyphs ()

+
hb_bool_t
+hb_buffer_deserialize_glyphs (hb_buffer_t *buffer,
+                              const char *buf,
+                              int buf_len,
+                              const char **end_ptr,
+                              hb_font_t *font,
+                              hb_buffer_serialize_format_t format);
+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

buffer

a buffer.

 

buf

.

[array length=buf_len]

end_ptr

.

[out]
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_destroy ()

+
void
+hb_buffer_destroy (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_get_content_type ()

+
hb_buffer_content_type_t
+hb_buffer_get_content_type (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_get_direction ()

+
hb_direction_t
+hb_buffer_get_direction (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_get_empty ()

+
hb_buffer_t *
+hb_buffer_get_empty (void);
+
+

Returns

+

.

+

[transfer full]

+
+

Since 1.0

+
+
+
+

hb_buffer_get_flags ()

+
hb_buffer_flags_t
+hb_buffer_get_flags (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_get_glyph_infos ()

+
hb_glyph_info_t *
+hb_buffer_get_glyph_infos (hb_buffer_t *buffer,
+                           unsigned int *length);
+

Returns buffer glyph information array. Returned pointer +is valid as long as buffer contents are not modified.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

buffer

a buffer.

 

length

output array length.

[out]
+
+
+

Returns

+

buffer glyph information array.

+

[transfer none][array length=length]

+
+

Since 1.0

+
+
+
+

hb_buffer_get_glyph_positions ()

+
hb_glyph_position_t *
+hb_buffer_get_glyph_positions (hb_buffer_t *buffer,
+                               unsigned int *length);
+

Returns buffer glyph position array. Returned pointer +is valid as long as buffer contents are not modified.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

buffer

a buffer.

 

length

output length.

[out]
+
+
+

Returns

+

buffer glyph position array.

+

[transfer none][array length=length]

+
+

Since 1.0

+
+
+
+

hb_buffer_get_language ()

+
hb_language_t
+hb_buffer_get_language (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_get_length ()

+
unsigned int
+hb_buffer_get_length (hb_buffer_t *buffer);
+

Returns the number of items in the buffer.

+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

buffer length.

+

+
+

Since 1.0

+
+
+
+

hb_buffer_get_replacement_codepoint ()

+
hb_codepoint_t
+hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer);
+

Since 1.0

+
+
+
+

hb_buffer_get_script ()

+
hb_script_t
+hb_buffer_get_script (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_get_segment_properties ()

+
void
+hb_buffer_get_segment_properties (hb_buffer_t *buffer,
+                                  hb_segment_properties_t *props);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_get_unicode_funcs ()

+
hb_unicode_funcs_t *
+hb_buffer_get_unicode_funcs (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_get_user_data ()

+
void *
+hb_buffer_get_user_data (hb_buffer_t *buffer,
+                         hb_user_data_key_t *key);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_guess_segment_properties ()

+
void
+hb_buffer_guess_segment_properties (hb_buffer_t *buffer);
+

Sets unset buffer segment properties based on buffer Unicode +contents. If buffer is not empty, it must have content type +HB_BUFFER_CONTENT_TYPE_UNICODE.

+

If buffer script is not set (ie. is HB_SCRIPT_INVALID), it +will be set to the Unicode script of the first character in +the buffer that has a script other than HB_SCRIPT_COMMON, +HB_SCRIPT_INHERITED, and HB_SCRIPT_UNKNOWN.

+

Next, if buffer direction is not set (ie. is HB_DIRECTION_INVALID), +it will be set to the natural horizontal direction of the +buffer script as returned by hb_script_get_horizontal_direction().

+

Finally, if buffer language is not set (ie. is HB_LANGUAGE_INVALID), +it will be set to the process's default language as returned by +hb_language_get_default(). This may change in the future by +taking buffer script into consideration when choosing a language.

+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_normalize_glyphs ()

+
void
+hb_buffer_normalize_glyphs (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_pre_allocate ()

+
hb_bool_t
+hb_buffer_pre_allocate (hb_buffer_t *buffer,
+                        unsigned int size);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_reference ()

+
hb_buffer_t *
+hb_buffer_reference (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

.

+

[transfer full]

+
+

Since 1.0

+
+
+
+

hb_buffer_reset ()

+
void
+hb_buffer_reset (hb_buffer_t *buffer);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_reverse ()

+
void
+hb_buffer_reverse (hb_buffer_t *buffer);
+

Reverses buffer contents.

+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_reverse_clusters ()

+
void
+hb_buffer_reverse_clusters (hb_buffer_t *buffer);
+

Reverses buffer clusters. That is, the buffer contents are +reversed, then each cluster (consecutive items having the +same cluster number) are reversed again.

+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_serialize_format_from_string ()

+
hb_buffer_serialize_format_t
+hb_buffer_serialize_format_from_string
+                               (const char *str,
+                                int len);
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_serialize_format_to_string ()

+
const char *
+hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format);
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_serialize_glyphs ()

+
unsigned int
+hb_buffer_serialize_glyphs (hb_buffer_t *buffer,
+                            unsigned int start,
+                            unsigned int end,
+                            char *buf,
+                            unsigned int buf_size,
+                            unsigned int *buf_consumed,
+                            hb_font_t *font,
+                            hb_buffer_serialize_format_t format,
+                            hb_buffer_serialize_flags_t flags);
+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

buffer

a buffer.

 

buf

.

[array length=buf_size]

buf_consumed

.

[out]
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_serialize_list_formats ()

+
const char **
+hb_buffer_serialize_list_formats (void);
+
+

Returns

+

.

+

[transfer none]

+
+

Since 1.0

+
+
+
+

hb_buffer_set_content_type ()

+
void
+hb_buffer_set_content_type (hb_buffer_t *buffer,
+                            hb_buffer_content_type_t content_type);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_set_direction ()

+
void
+hb_buffer_set_direction (hb_buffer_t *buffer,
+                         hb_direction_t direction);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_set_flags ()

+
void
+hb_buffer_set_flags (hb_buffer_t *buffer,
+                     hb_buffer_flags_t flags);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_set_language ()

+
void
+hb_buffer_set_language (hb_buffer_t *buffer,
+                        hb_language_t language);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_set_length ()

+
hb_bool_t
+hb_buffer_set_length (hb_buffer_t *buffer,
+                      unsigned int length);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_buffer_set_replacement_codepoint ()

+
void
+hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer,
+                                     hb_codepoint_t replacement);
+

Since 1.0

+
+
+
+

hb_buffer_set_script ()

+
void
+hb_buffer_set_script (hb_buffer_t *buffer,
+                      hb_script_t script);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_set_segment_properties ()

+
void
+hb_buffer_set_segment_properties (hb_buffer_t *buffer,
+                                  const hb_segment_properties_t *props);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_set_unicode_funcs ()

+
void
+hb_buffer_set_unicode_funcs (hb_buffer_t *buffer,
+                             hb_unicode_funcs_t *unicode_funcs);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+

Since 1.0

+
+
+
+

hb_buffer_set_user_data ()

+
hb_bool_t
+hb_buffer_set_user_data (hb_buffer_t *buffer,
+                         hb_user_data_key_t *key,
+                         void *data,
+                         hb_destroy_func_t destroy,
+                         hb_bool_t replace);
+
+

Parameters

+
+++++ + + + + + +

buffer

a buffer.

 
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_segment_properties_equal ()

+
hb_bool_t
+hb_segment_properties_equal (const hb_segment_properties_t *a,
+                             const hb_segment_properties_t *b);
+

+

+
+

Returns

+

+
+
+
+
+

hb_segment_properties_hash ()

+
unsigned int
+hb_segment_properties_hash (const hb_segment_properties_t *p);
+

+

+
+

Returns

+

+
+
+
+
+

Types and Values

+
+

HB_SEGMENT_PROPERTIES_DEFAULT

+
#define             HB_SEGMENT_PROPERTIES_DEFAULT
+

+

+
+
+
+

enum hb_buffer_content_type_t

+

+

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

HB_BUFFER_CONTENT_TYPE_INVALID

  

HB_BUFFER_CONTENT_TYPE_UNICODE

  

HB_BUFFER_CONTENT_TYPE_GLYPHS

  
+
+
+
+
+

enum hb_buffer_flags_t

+

+

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

HB_BUFFER_FLAG_DEFAULT

  

HB_BUFFER_FLAG_BOT

  

HB_BUFFER_FLAG_EOT

  

HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES

  
+
+
+
+
+

enum hb_buffer_serialize_flags_t

+

+

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

HB_BUFFER_SERIALIZE_FLAG_DEFAULT

  

HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS

  

HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS

  

HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES

  
+
+
+
+
+

enum hb_buffer_serialize_format_t

+

+

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

HB_BUFFER_SERIALIZE_FORMAT_TEXT

  

HB_BUFFER_SERIALIZE_FORMAT_JSON

  

HB_BUFFER_SERIALIZE_FORMAT_INVALID

  
+
+
+
+
+

hb_buffer_t

+
typedef struct hb_buffer_t hb_buffer_t;
+
+

+

+
+
+
+

hb_glyph_info_t

+
typedef struct {
+  hb_codepoint_t codepoint;
+  hb_mask_t      mask;
+  uint32_t       cluster;
+} hb_glyph_info_t;
+
+

+

+
+
+
+

hb_glyph_position_t

+
typedef struct {
+  hb_position_t  x_advance;
+  hb_position_t  y_advance;
+  hb_position_t  x_offset;
+  hb_position_t  y_offset;
+} hb_glyph_position_t;
+
+

+

+
+
+
+

hb_segment_properties_t

+
typedef struct {
+  hb_direction_t  direction;
+  hb_script_t     script;
+  hb_language_t   language;
+} hb_segment_properties_t;
+
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-common.html b/docs/reference/html/harfbuzz-hb-common.html similarity index 74% rename from docs/html/harfbuzz-hb-common.html rename to docs/reference/html/harfbuzz-hb-common.html index 064be6e..e2b1a8b 100644 --- a/docs/html/harfbuzz-hb-common.html +++ b/docs/reference/html/harfbuzz-hb-common.html @@ -2,13 +2,13 @@ -hb-common: HarfBuzz Manual - - - +hb-common + + + - + @@ -19,7 +19,7 @@ Object Hierarchy Home -Up +Up Prev Next @@ -41,11 +41,25 @@ - -hb_tag_t +#define + +HB_DIRECTION_REVERSE() + + +#define +HB_LANGUAGE_INVALID + + +#define -hb_tag_from_string () +HB_TAG() + + + +#define + +HB_UNTAG() @@ -53,7 +67,7 @@ void -hb_tag_to_string () +(*hb_destroy_func_t) () @@ -73,83 +87,73 @@ -hb_script_t +hb_language_t -hb_script_from_iso15924_tag () +hb_language_from_string () -hb_script_t +hb_language_t -hb_script_from_string () +hb_language_get_default () - -hb_tag_t +const char * -hb_script_to_iso15924_tag () +hb_language_to_string () -hb_direction_t +hb_script_t -hb_script_get_horizontal_direction () +hb_script_from_iso15924_tag () -hb_language_t +hb_script_t -hb_language_from_string () +hb_script_from_string () -const char * + +hb_direction_t -hb_language_to_string () +hb_script_get_horizontal_direction () -hb_language_t +hb_tag_t -hb_language_get_default () +hb_script_to_iso15924_tag () -void - - -(*hb_destroy_func_t) () +hb_tag_t - - -#define -HB_TAG() +hb_tag_from_string () -#define - -HB_UNTAG() + +void - - -#define -HB_DIRECTION_REVERSE() +hb_tag_to_string () @@ -185,7 +189,7 @@ -
+

Types and Values

@@ -194,6 +198,14 @@ + + + + + + + + @@ -207,7 +219,7 @@ - + @@ -218,14 +230,14 @@ - - - - + + + + @@ -233,83 +245,64 @@ - - - - - - - - - - - - - - - -
#defineHB_TAG_NONE
#defineHB_TAG_MAX
typedef hb_bool_t
typedefhb_language_thb_language_t
typedefhb_position_t
typedefhb_tag_t
enum hb_script_t
typedefhb_tag_t
  hb_user_data_key_t
  hb_var_int_t
#defineHB_TAG_NONE
#defineHB_TAG_MAX
#defineHB_TAG_MAX_SIGNED
#defineHB_LANGUAGE_INVALID

Object Hierarchy

-
    GBoxed
+
    GBoxed
+    ├── hb_language_t
     ╰── hb_user_data_key_t
-    GEnum
+    GEnum
     ├── hb_direction_t
     ╰── hb_script_t
 

Description

+

+

Functions

-

hb_tag_from_string ()

-
hb_tag_t
-hb_tag_from_string (const char *str,
-                    int len);
-
-

Parameters

-
----- - - - - - -

str

.

[array length=len][element-type uint8_t]
+

HB_DIRECTION_REVERSE()

+
#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1))
+
+

+

-

Since: 0.9.2

+
+
+

HB_LANGUAGE_INVALID

+
#define HB_LANGUAGE_INVALID ((hb_language_t) NULL)
+
+

+


-

hb_tag_to_string ()

-
void
-hb_tag_to_string (hb_tag_t tag,
-                  char *buf);
-
-

Parameters

-
----- - - - - - -

buf

.

[array fixed-size=4]
+

HB_TAG()

+
#define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint8_t)(c1))<<24)|(((uint8_t)(c2))<<16)|(((uint8_t)(c3))<<8)|((uint8_t)(c4))))
+
+

+

-

Since: 0.9.5

+
+
+

HB_UNTAG()

+
#define HB_UNTAG(tag)   ((uint8_t)((tag)>>24)), ((uint8_t)((tag)>>16)), ((uint8_t)((tag)>>8)), ((uint8_t)(tag))
+
+

+

+
+
+
+

hb_destroy_func_t ()

+
void
+(*hb_destroy_func_t) (void *user_data);
+

+


@@ -318,7 +311,7 @@ hb_tag_to_string (const char *str, int len);
-

Parameters

+

Parameters

@@ -328,11 +321,15 @@ hb_direction_from_string (const c - +

str

.

[array length=len][element-type uint8_t][array length=len]
-

Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -340,20 +337,20 @@ hb_direction_from_string (const c
const char *
 hb_direction_to_string (hb_direction_t direction);
-

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.2

+

Since 1.0


-

hb_script_from_iso15924_tag ()

-
hb_script_t
-hb_script_from_iso15924_tag (hb_tag_t tag);
-

Converts an ISO 15924 script tag to a corresponding hb_script_t.

+

hb_language_from_string ()

+
hb_language_t
+hb_language_from_string (const char *str,
+                         int len);
-

Parameters

+

Parameters

@@ -361,66 +358,60 @@ hb_script_from_iso15924_tag ( - - - + + +

tag

an hb_tag_t representing an ISO 15924 tag.

 

str

.

[array length=len]
-

Returns

-

An hb_script_t corresponding to the ISO 15924 tag.

+

Returns

+

-

Since: 0.9.2

+

Since 1.0


-

hb_script_from_string ()

-
hb_script_t
-hb_script_from_string (const char *str,
-                       int len);
-

Converts a string str - representing an ISO 15924 script tag to a -corresponding hb_script_t. Shorthand for hb_tag_from_string() then -hb_script_from_iso15924_tag().

+

hb_language_get_default ()

+
hb_language_t
+hb_language_get_default (void);
-

Parameters

-
----- - - - - - - - - - - - - -

str

a string representing an -ISO 15924 tag.

[array length=len][element-type uint8_t]

len

length of the str -, or -1 if it is NULL-terminated.

 
+

Returns

+

+

Since 1.0

+
+
+
+

hb_language_to_string ()

+
const char *
+hb_language_to_string (hb_language_t language);
-

Returns

-

An hb_script_t corresponding to the ISO 15924 tag.

+

Returns

+

.

+

[transfer none]

-

Since: 0.9.2

+

Since 1.0


-

hb_script_to_iso15924_tag ()

-
hb_tag_t
-hb_script_to_iso15924_tag (hb_script_t script);
-

See hb_script_from_iso15924_tag().

+

hb_script_from_iso15924_tag ()

+
hb_script_t
+hb_script_from_iso15924_tag (hb_tag_t tag);
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_script_from_string ()

+
hb_script_t
+hb_script_from_string (const char *s,
+                       int len);
-

Parameters

+

Parameters

@@ -428,73 +419,75 @@ hb_script_to_iso15924_tag ( - - - + + +

script

an hb_script_ to convert.

 

s

.

[array length=len]
-

Returns

-

An hb_tag_t representing an ISO 15924 script tag.

+

Returns

+

-

Since: 0.9.2

+

Since 1.0


hb_script_get_horizontal_direction ()

hb_direction_t
 hb_script_get_horizontal_direction (hb_script_t script);
-

Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


-

hb_language_from_string ()

-
hb_language_t
-hb_language_from_string (const char *str,
-                         int len);
-

Converts str - representing an ISO 639 language code to the corresponding -hb_language_t.

+

hb_script_to_iso15924_tag ()

+
hb_tag_t
+hb_script_to_iso15924_tag (hb_script_t script);
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_tag_from_string ()

+
hb_tag_t
+hb_tag_from_string (const char *str,
+                    int len);
-

Parameters

+

Parameters

- - + - - - - - - - - - + + +

str

a string representing -ISO 639 language code.

[array length=len][element-type uint8_t]

len

length of the str -, or -1 if it is NULL-terminated.

 

.

[array length=len]
-

Returns

-

The hb_language_t corresponding to the ISO 639 language code.

-

[transfer none]

+

Returns

+

-

Since: 0.9.2

+

Since 1.0


-

hb_language_to_string ()

-
const char *
-hb_language_to_string (hb_language_t language);
-

See hb_language_from_string().

+

hb_tag_to_string ()

+
void
+hb_tag_to_string (hb_tag_t tag,
+                  char *buf);
-

Parameters

+

Parameters

@@ -502,106 +495,93 @@ hb_language_to_string ( - - - + + +

language

an hb_language_t to convert.

 

buf

.

[array fixed-size=4]
-
-

Returns

-

A NULL-terminated string representing the language -. Must not be freed by -the caller.

-

[transfer none]

-
-

Since: 0.9.2

-
-
-
-

hb_language_get_default ()

-
hb_language_t
-hb_language_get_default (void);
-
-

Returns

-

.

-

[transfer none]

-
-

Since: 0.9.2

-
-
-
-

hb_destroy_func_t ()

-
void
-(*hb_destroy_func_t) (void *user_data);
-
-
-
-

HB_TAG()

-
#define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint8_t)(c1))<<24)|(((uint8_t)(c2))<<16)|(((uint8_t)(c3))<<8)|((uint8_t)(c4))))
-
-
-
-
-

HB_UNTAG()

-
#define HB_UNTAG(tag)   ((uint8_t)((tag)>>24)), ((uint8_t)((tag)>>16)), ((uint8_t)((tag)>>8)), ((uint8_t)(tag))
-
-
-
-
-

HB_DIRECTION_REVERSE()

-
#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1))
-
+

Since 1.0


HB_DIRECTION_IS_BACKWARD()

#define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5)
 
+

+


HB_DIRECTION_IS_FORWARD()

#define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4)
 
+

+


HB_DIRECTION_IS_HORIZONTAL()

#define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4)
 
+

+


HB_DIRECTION_IS_VALID()

#define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4)
 
+

+


HB_DIRECTION_IS_VERTICAL()

#define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6)
 
+

+

Types and Values

+

HB_TAG_NONE

+
#define HB_TAG_NONE HB_TAG(0,0,0,0)
+
+

+

+
+
+
+

HB_TAG_MAX

+
#define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff)
+
+
+
+

hb_bool_t

typedef int hb_bool_t;
 
+

+


hb_codepoint_t

typedef uint32_t hb_codepoint_t;
 
+

+


enum hb_direction_t

+

+

-

Members

+

Members

@@ -611,37 +591,27 @@ hb_language_get_default (void - + - + - + - + - + @@ -653,30 +623,32 @@ hb_language_get_default (void

hb_language_t

typedef const struct hb_language_impl_t *hb_language_t;
 
+

+


hb_mask_t

typedef uint32_t hb_mask_t;
 
+

+


hb_position_t

typedef int32_t hb_position_t;
 
-
-
-
-

hb_tag_t

-
typedef uint32_t hb_tag_t;
-
+

+


enum hb_script_t

+

+

-

Members

+

Members

HB_DIRECTION_INVALID

-

Initial, unset direction.

-
   

HB_DIRECTION_LTR

-

Text is set horizontally from left to right.

-
   

HB_DIRECTION_RTL

-

Text is set horizontally from right to left.

-
   

HB_DIRECTION_TTB

-

Text is set vertically from top to bottom.

-
   

HB_DIRECTION_BTT

-

Text is set vertically from bottom to top.

-
   
@@ -686,518 +658,518 @@ hb_language_get_default (void - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1315,39 +1287,9 @@ hb_language_get_default (void  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -1365,42 +1307,31 @@ hb_language_get_default (void
-

hb_user_data_key_t

-
typedef struct {
-} hb_user_data_key_t;
-
-
-
-
-

hb_var_int_t

-
-
-
-

HB_TAG_NONE

-
#define HB_TAG_NONE HB_TAG(0,0,0,0)
-
-
-
-
-

HB_TAG_MAX

-
#define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff)
+

hb_tag_t

+
typedef uint32_t hb_tag_t;
 
+

+


-

HB_TAG_MAX_SIGNED

-
#define HB_TAG_MAX_SIGNED HB_TAG(0x7f,0xff,0xff,0xff)
+

hb_user_data_key_t

+
typedef struct {
+} hb_user_data_key_t;
 
+

+


-

HB_LANGUAGE_INVALID

-
#define HB_LANGUAGE_INVALID ((hb_language_t) NULL)
-
+

hb_var_int_t

+

+

+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-coretext.html b/docs/reference/html/harfbuzz-hb-coretext.html similarity index 90% rename from docs/html/harfbuzz-hb-coretext.html rename to docs/reference/html/harfbuzz-hb-coretext.html index 68615e0..8d3ab15 100644 --- a/docs/html/harfbuzz-hb-coretext.html +++ b/docs/reference/html/harfbuzz-hb-coretext.html @@ -2,13 +2,13 @@ -hb-coretext: HarfBuzz Manual - - - +hb-coretext + + + - + @@ -18,7 +18,7 @@ Description
- +

HB_SCRIPT_COMMON

    

HB_SCRIPT_INHERITED

    

HB_SCRIPT_UNKNOWN

    

HB_SCRIPT_ARABIC

    

HB_SCRIPT_ARMENIAN

    

HB_SCRIPT_BENGALI

    

HB_SCRIPT_CYRILLIC

    

HB_SCRIPT_DEVANAGARI

    

HB_SCRIPT_GEORGIAN

    

HB_SCRIPT_GREEK

    

HB_SCRIPT_GUJARATI

    

HB_SCRIPT_GURMUKHI

    

HB_SCRIPT_HANGUL

    

HB_SCRIPT_HAN

    

HB_SCRIPT_HEBREW

    

HB_SCRIPT_HIRAGANA

    

HB_SCRIPT_KANNADA

    

HB_SCRIPT_KATAKANA

    

HB_SCRIPT_LAO

    

HB_SCRIPT_LATIN

    

HB_SCRIPT_MALAYALAM

    

HB_SCRIPT_ORIYA

    

HB_SCRIPT_TAMIL

    

HB_SCRIPT_TELUGU

    

HB_SCRIPT_THAI

    

HB_SCRIPT_TIBETAN

    

HB_SCRIPT_BOPOMOFO

    

HB_SCRIPT_BRAILLE

    

HB_SCRIPT_CANADIAN_SYLLABICS

    

HB_SCRIPT_CHEROKEE

    

HB_SCRIPT_ETHIOPIC

    

HB_SCRIPT_KHMER

    

HB_SCRIPT_MONGOLIAN

    

HB_SCRIPT_MYANMAR

    

HB_SCRIPT_OGHAM

    

HB_SCRIPT_RUNIC

    

HB_SCRIPT_SINHALA

  

HB_SCRIPT_SINHALA

  

HB_SCRIPT_SYRIAC

    

HB_SCRIPT_THAANA

    

HB_SCRIPT_YI

    

HB_SCRIPT_DESERET

    

HB_SCRIPT_GOTHIC

    

HB_SCRIPT_OLD_ITALIC

    

HB_SCRIPT_BUHID

    

HB_SCRIPT_HANUNOO

    

HB_SCRIPT_TAGALOG

    

HB_SCRIPT_TAGBANWA

    

HB_SCRIPT_CYPRIOT

    

HB_SCRIPT_LIMBU

    

HB_SCRIPT_LINEAR_B

    

HB_SCRIPT_OSMANYA

    

HB_SCRIPT_SHAVIAN

    

HB_SCRIPT_TAI_LE

    

HB_SCRIPT_UGARITIC

    

HB_SCRIPT_BUGINESE

    

HB_SCRIPT_COPTIC

    

HB_SCRIPT_GLAGOLITIC

    

HB_SCRIPT_KHAROSHTHI

    

HB_SCRIPT_NEW_TAI_LUE

    

HB_SCRIPT_OLD_PERSIAN

    

HB_SCRIPT_SYLOTI_NAGRI

    

HB_SCRIPT_TIFINAGH

    

HB_SCRIPT_BALINESE

    

HB_SCRIPT_CUNEIFORM

    

HB_SCRIPT_NKO

    

HB_SCRIPT_PHAGS_PA

    

HB_SCRIPT_PHOENICIAN

    

HB_SCRIPT_CARIAN

    

HB_SCRIPT_CHAM

    

HB_SCRIPT_KAYAH_LI

    

HB_SCRIPT_LEPCHA

    

HB_SCRIPT_LYCIAN

    

HB_SCRIPT_LYDIAN

    

HB_SCRIPT_OL_CHIKI

    

HB_SCRIPT_REJANG

    

HB_SCRIPT_SAURASHTRA

    

HB_SCRIPT_SUNDANESE

    

HB_SCRIPT_VAI

    

HB_SCRIPT_AVESTAN

    

HB_SCRIPT_BAMUM

    

HB_SCRIPT_EGYPTIAN_HIEROGLYPHS

    

HB_SCRIPT_IMPERIAL_ARAMAIC

    

HB_SCRIPT_INSCRIPTIONAL_PAHLAVI

    

HB_SCRIPT_INSCRIPTIONAL_PARTHIAN

    

HB_SCRIPT_JAVANESE

    

HB_SCRIPT_KAITHI

    

HB_SCRIPT_LISU

    

HB_SCRIPT_MEETEI_MAYEK

    

HB_SCRIPT_OLD_SOUTH_ARABIAN

    

HB_SCRIPT_OLD_TURKIC

    

HB_SCRIPT_SAMARITAN

    

HB_SCRIPT_TAI_THAM

    

HB_SCRIPT_TAI_VIET

    

HB_SCRIPT_BATAK

    

HB_SCRIPT_BRAHMI

    

HB_SCRIPT_MANDAIC

    

HB_SCRIPT_CHAKMA

    

HB_SCRIPT_MEROITIC_CURSIVE

    

HB_SCRIPT_MEROITIC_HIEROGLYPHS

    

HB_SCRIPT_MIAO

    

HB_SCRIPT_SHARADA

    

HB_SCRIPT_SORA_SOMPENG

    

HB_SCRIPT_TAKRI

    

HB_SCRIPT_BASSA_VAH

HB_SCRIPT_AHOM

  

HB_SCRIPT_ANATOLIAN_HIEROGLYPHS

  

HB_SCRIPT_HATRAN

  

HB_SCRIPT_MULTANI

  

HB_SCRIPT_OLD_HUNGARIAN

  

HB_SCRIPT_SIGNWRITING

  

HB_SCRIPT_INVALID

    

_HB_SCRIPT_MAX_VALUE

HomeUpUp Prev Next
@@ -87,6 +87,8 @@

Description

+

+

Functions

@@ -100,12 +102,24 @@ hb_coretext_face_create (CGFontRe

hb_coretext_face_get_cg_font ()

CGFontRef
 hb_coretext_face_get_cg_font (hb_face_t *face);
+

+

+
+

Returns

+

+

hb_coretext_font_get_ct_font ()

CTFontRef
 hb_coretext_font_get_ct_font (hb_font_t *font);
+

+

+
+

Returns

+

+
@@ -124,6 +138,7 @@ hb_coretext_font_get_ct_font ( -
Generated by GTK-Doc V1.24.1
+
+ Generated by GTK-Doc V1.20.1
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-deprecated.html b/docs/reference/html/harfbuzz-hb-deprecated.html similarity index 90% rename from docs/html/harfbuzz-hb-deprecated.html rename to docs/reference/html/harfbuzz-hb-deprecated.html index 13beba0..09961c1 100644 --- a/docs/html/harfbuzz-hb-deprecated.html +++ b/docs/reference/html/harfbuzz-hb-deprecated.html @@ -2,13 +2,13 @@ -hb-deprecated: HarfBuzz Manual - - - +hb-deprecated + + + - + @@ -18,7 +18,7 @@ Description Home -Up +Up Prev Next @@ -56,10 +56,11 @@

Description

+

+

Functions

-

Types and Values

@@ -68,6 +69,8 @@
#define HB_BUFFER_FLAGS_DEFAULT			HB_BUFFER_FLAG_DEFAULT
 

HB_BUFFER_FLAGS_DEFAULT is deprecated and should not be used in newly-written code.

+

+


@@ -75,6 +78,8 @@
#define HB_BUFFER_SERIALIZE_FLAGS_DEFAULT HB_BUFFER_SERIALIZE_FLAG_DEFAULT
 

HB_BUFFER_SERIALIZE_FLAGS_DEFAULT is deprecated and should not be used in newly-written code.

+

+


@@ -82,10 +87,13 @@
#define HB_SCRIPT_CANADIAN_ABORIGINAL		HB_SCRIPT_CANADIAN_SYLLABICS
 

HB_SCRIPT_CANADIAN_ABORIGINAL is deprecated and should not be used in newly-written code.

+

+

+
+ Generated by GTK-Doc V1.20.1
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-face.html b/docs/reference/html/harfbuzz-hb-face.html similarity index 84% rename from docs/html/harfbuzz-hb-face.html rename to docs/reference/html/harfbuzz-hb-face.html index ddc16d0..dc31c55 100644 --- a/docs/html/harfbuzz-hb-face.html +++ b/docs/reference/html/harfbuzz-hb-face.html @@ -2,13 +2,13 @@ -hb-face: HarfBuzz Manual - - - +hb-face + + + - + @@ -19,7 +19,7 @@ Object Hierarchy Home -Up +Up Prev Next @@ -191,12 +191,14 @@

Object Hierarchy

-
    GBoxed
+
    GBoxed
     ╰── hb_face_t
 

Description

+

+

Functions

@@ -205,13 +207,12 @@
hb_face_t *
 hb_face_create (hb_blob_t *blob,
                 unsigned int index);
-

[Xconstructor]

+

+

-

Returns

-

.

-

[transfer full]

+

Returns

+

-

Since: 0.9.2


@@ -221,7 +222,7 @@ hb_face_create_for_tables (void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -236,19 +237,19 @@ hb_face_create_for_tables ( -

Returns

+

Returns

(transfer full)

+

-

Since: 0.9.2

+

Since 1.0


hb_face_destroy ()

void
 hb_face_destroy (hb_face_t *face);
-

[skip]

-

Parameters

+

Parameters

@@ -262,7 +263,7 @@ hb_face_destroy (Since: 0.9.2

+

Since 1.0


@@ -270,10 +271,11 @@ hb_face_destroy (hb_face_t * hb_face_get_empty (void);
-

Returns

+

Returns

(transfer full)

+

-

Since: 0.9.2

+

Since 1.0


@@ -281,7 +283,7 @@ hb_face_get_empty (voidunsigned int hb_face_get_glyph_count (hb_face_t *face);
-

Parameters

+

Parameters

@@ -295,7 +297,11 @@ hb_face_get_glyph_count (Since: 0.9.7

+
+

Returns

+

+
+

Since 1.0


@@ -303,7 +309,7 @@ hb_face_get_glyph_count (unsigned int hb_face_get_index (hb_face_t *face);
-

Parameters

+

Parameters

@@ -317,7 +323,11 @@ hb_face_get_index (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -325,7 +335,7 @@ hb_face_get_index (unsigned int hb_face_get_upem (hb_face_t *face);
-

Parameters

+

Parameters

@@ -339,7 +349,11 @@ hb_face_get_upem (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -347,9 +361,8 @@ hb_face_get_upem (void * hb_face_get_user_data (hb_face_t *face, hb_user_data_key_t *key); -

[skip]

-

Parameters

+

Parameters

@@ -364,11 +377,11 @@ hb_face_get_user_data ( -

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.2

+

Since 1.0


@@ -376,7 +389,7 @@ hb_face_get_user_data (hb_bool_t hb_face_is_immutable (hb_face_t *face);
-

Parameters

+

Parameters

@@ -390,7 +403,11 @@ hb_face_is_immutable (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -398,7 +415,7 @@ hb_face_is_immutable (void hb_face_make_immutable (hb_face_t *face);
-

Parameters

+

Parameters

@@ -412,16 +429,15 @@ hb_face_make_immutable (Since: 0.9.2

+

Since 1.0


hb_face_reference ()

hb_face_t *
 hb_face_reference (hb_face_t *face);
-

[skip]

-

Parameters

+

Parameters

@@ -435,7 +451,11 @@ hb_face_reference (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -443,7 +463,7 @@ hb_face_reference (hb_blob_t * hb_face_reference_blob (hb_face_t *face);
-

Parameters

+

Parameters

@@ -458,11 +478,11 @@ hb_face_reference_blob ( -

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


@@ -471,7 +491,7 @@ hb_face_reference_blob (hb_face_t *face, hb_tag_t tag);
-

Parameters

+

Parameters

@@ -486,11 +506,11 @@ hb_face_reference_table ( -

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


@@ -499,7 +519,7 @@ hb_face_reference_table (hb_face_t *face, unsigned int glyph_count);
-

Parameters

+

Parameters

@@ -513,7 +533,7 @@ hb_face_set_glyph_count (Since: 0.9.7

+

Since 1.0


@@ -522,7 +542,7 @@ hb_face_set_glyph_count (hb_face_t *face, unsigned int index);
-

Parameters

+

Parameters

@@ -536,7 +556,7 @@ hb_face_set_index (Since: 0.9.2

+

Since 1.0


@@ -545,7 +565,7 @@ hb_face_set_index (hb_face_t *face, unsigned int upem);
-

Parameters

+

Parameters

@@ -559,7 +579,7 @@ hb_face_set_upem (Since: 0.9.2

+

Since 1.0


@@ -570,9 +590,8 @@ hb_face_set_user_data (void *data, hb_destroy_func_t destroy, hb_bool_t replace); -

[skip]

-

Parameters

+

Parameters

@@ -586,7 +605,11 @@ hb_face_set_user_data (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0

@@ -595,10 +618,13 @@ hb_face_set_user_data (

hb_face_t

typedef struct hb_face_t hb_face_t;
 
+

+

+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-font.html b/docs/reference/html/harfbuzz-hb-font.html similarity index 80% rename from docs/html/harfbuzz-hb-font.html rename to docs/reference/html/harfbuzz-hb-font.html index 1a81a44..9596d54 100644 --- a/docs/html/harfbuzz-hb-font.html +++ b/docs/reference/html/harfbuzz-hb-font.html @@ -2,13 +2,13 @@ -hb-font: HarfBuzz Manual - - - +hb-font + + + - - + + @@ -19,9 +19,9 @@ Object Hierarchy
- + - +
HomeUpUp PrevNextNext
@@ -560,62 +560,6 @@ (*hb_reference_table_func_t) () - - -void - - -hb_font_funcs_set_font_h_extents_func () - - - - -void - - -hb_font_funcs_set_font_v_extents_func () - - - - -void - - -hb_font_get_extents_for_direction () - - - - -hb_bool_t - - -(*hb_font_get_font_extents_func_t) () - - - - -hb_bool_t - - -hb_font_get_h_extents () - - - - -hb_bool_t - - -hb_font_get_v_extents () - - - - -void - - -hb_font_set_parent () - -
@@ -659,26 +603,20 @@ typedef hb_font_t - -typedef -hb_font_get_font_h_extents_func_t - - -typedef -hb_font_get_font_v_extents_func_t -

Object Hierarchy

-
    GBoxed
+
    GBoxed
     ├── hb_font_funcs_t
     ╰── hb_font_t
 

Description

+

+

Functions

@@ -692,7 +630,7 @@ hb_font_add_glyph_origin_for_direction hb_position_t *x, hb_position_t *y);
-

Parameters

+

Parameters

@@ -718,35 +656,19 @@ hb_font_add_glyph_origin_for_direction
-

Since: 0.9.2

+

Since 1.0


hb_font_create ()

hb_font_t *
 hb_font_create (hb_face_t *face);
-

[Xconstructor]

-
-

Parameters

-
----- - - - - - -

face

a face.

 
-
+

+

-

Returns

-

.

-

[transfer full]

+

Returns

+

-

Since: 0.9.2


@@ -754,7 +676,7 @@ hb_font_create (hb_font_t * hb_font_create_sub_font (hb_font_t *parent);
-

Parameters

+

Parameters

@@ -769,20 +691,19 @@ hb_font_create_sub_font ( -

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


hb_font_destroy ()

void
 hb_font_destroy (hb_font_t *font);
-

[skip]

-

Parameters

+

Parameters

@@ -796,29 +717,27 @@ hb_font_destroy (Since: 0.9.2

+

Since 1.0


hb_font_funcs_create ()

hb_font_funcs_t *
 hb_font_funcs_create (void);
-

[Xconstructor]

+

+

-

Returns

-

.

-

[transfer full]

+

Returns

+

-

Since: 0.9.2


hb_font_funcs_destroy ()

void
 hb_font_funcs_destroy (hb_font_funcs_t *ffuncs);
-

[skip]

-

Parameters

+

Parameters

@@ -832,7 +751,7 @@ hb_font_funcs_destroy (Since: 0.9.2

+

Since 1.0


@@ -840,11 +759,11 @@ hb_font_funcs_destroy (hb_font_funcs_t * hb_font_funcs_get_empty (void);
-

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


@@ -852,9 +771,8 @@ hb_font_funcs_get_empty (voidvoid * hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs, hb_user_data_key_t *key); -

[skip]

-

Parameters

+

Parameters

@@ -869,11 +787,11 @@ hb_font_funcs_get_user_data ( -

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.2

+

Since 1.0


@@ -881,7 +799,7 @@ hb_font_funcs_get_user_data (hb_bool_t hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs);
-

Parameters

+

Parameters

@@ -895,7 +813,11 @@ hb_font_funcs_is_immutable (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -903,7 +825,7 @@ hb_font_funcs_is_immutable (void hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs);
-

Parameters

+

Parameters

@@ -917,16 +839,15 @@ hb_font_funcs_make_immutable (Since: 0.9.2

+

Since 1.0


hb_font_funcs_reference ()

hb_font_funcs_t *
 hb_font_funcs_reference (hb_font_funcs_t *ffuncs);
-

[skip]

-

Parameters

+

Parameters

@@ -940,7 +861,11 @@ hb_font_funcs_reference (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -952,7 +877,7 @@ hb_font_funcs_set_glyph_contour_point_func void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -973,7 +898,7 @@ hb_font_funcs_set_glyph_contour_point_func
-

Since: 0.9.2

+

Since 1.0


@@ -984,7 +909,7 @@ hb_font_funcs_set_glyph_extents_func (void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -1005,7 +930,7 @@ hb_font_funcs_set_glyph_extents_func (Since: 0.9.2

+

Since 1.0


@@ -1017,28 +942,21 @@ hb_font_funcs_set_glyph_from_name_func void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

- - + - - - - - - - +

ffuncs

font functions.

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -1048,32 +966,22 @@ hb_font_funcs_set_glyph_func (hb_font_get_glyph_func_t func, void *user_data, hb_destroy_func_t destroy); -

hb_font_funcs_set_glyph_func has been deprecated since version 1.2.3 and should not be used in newly-written code.

-

Deprecated. Use hb_font_funcs_set_nominal_glyph_func() and -hb_font_funcs_set_variation_glyph_func() instead.

-

Parameters

+

Parameters

- - + - - - - - - - +

ffuncs

font functions.

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -1085,7 +993,7 @@ hb_font_funcs_set_glyph_h_advance_func void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -1106,7 +1014,7 @@ hb_font_funcs_set_glyph_h_advance_func
-

Since: 0.9.2

+

Since 1.0


@@ -1118,7 +1026,7 @@ hb_font_funcs_set_glyph_h_kerning_func void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -1139,7 +1047,7 @@ hb_font_funcs_set_glyph_h_kerning_func
-

Since: 0.9.2

+

Since 1.0


@@ -1150,7 +1058,7 @@ hb_font_funcs_set_glyph_h_origin_func (void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -1171,7 +1079,7 @@ hb_font_funcs_set_glyph_h_origin_func (Since: 0.9.2

+

Since 1.0


@@ -1182,28 +1090,21 @@ hb_font_funcs_set_glyph_name_func (void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

- - + - - - - - - - +

ffuncs

font functions.

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -1215,7 +1116,7 @@ hb_font_funcs_set_glyph_v_advance_func void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -1236,7 +1137,7 @@ hb_font_funcs_set_glyph_v_advance_func
-

Since: 0.9.2

+

Since 1.0


@@ -1248,7 +1149,7 @@ hb_font_funcs_set_glyph_v_kerning_func void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -1269,7 +1170,7 @@ hb_font_funcs_set_glyph_v_kerning_func
-

Since: 0.9.2

+

Since 1.0


@@ -1280,7 +1181,7 @@ hb_font_funcs_set_glyph_v_origin_func (void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -1301,7 +1202,7 @@ hb_font_funcs_set_glyph_v_origin_func (Since: 0.9.2

+

Since 1.0


@@ -1312,9 +1213,8 @@ hb_font_funcs_set_user_data (void *data, hb_destroy_func_t destroy, hb_bool_t replace); -

[skip]

-

Parameters

+

Parameters

@@ -1328,7 +1228,11 @@ hb_font_funcs_set_user_data (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1336,10 +1240,11 @@ hb_font_funcs_set_user_data (hb_font_t * hb_font_get_empty (void);
-

Returns

+

Returns

(transfer full)

+

-

Since: 0.9.2

+

Since 1.0


@@ -1347,7 +1252,7 @@ hb_font_get_empty (voidhb_face_t * hb_font_get_face (hb_font_t *font);
-

Parameters

+

Parameters

@@ -1362,11 +1267,11 @@ hb_font_get_face ( -

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.2

+

Since 1.0


@@ -1377,7 +1282,7 @@ hb_font_get_glyph (hb_codepoint_t variation_selector, hb_codepoint_t *glyph);
-

Parameters

+

Parameters

@@ -1398,7 +1303,11 @@ hb_font_get_glyph (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1411,7 +1320,7 @@ hb_font_get_glyph_advance_for_direction hb_position_t *x, hb_position_t *y);
-

Parameters

+

Parameters

@@ -1437,7 +1346,7 @@ hb_font_get_glyph_advance_for_direction
-

Since: 0.9.2

+

Since 1.0


@@ -1447,6 +1356,12 @@ hb_font_get_glyph_advance_for_direction void *font_data, hb_codepoint_t glyph, void *user_data); +

+

+
+

Returns

+

+

@@ -1458,7 +1373,7 @@ hb_font_get_glyph_contour_point (hb_position_t *x, hb_position_t *y);
-

Parameters

+

Parameters

@@ -1484,7 +1399,11 @@ hb_font_get_glyph_contour_point (
-

Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1498,7 +1417,7 @@ hb_font_get_glyph_contour_point_for_origin hb_position_t *x, hb_position_t *y);
-

Parameters

+

Parameters

@@ -1524,7 +1443,11 @@ hb_font_get_glyph_contour_point_for_origin
-

Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1538,6 +1461,12 @@ hb_font_get_glyph_contour_point_for_origin hb_position_t *x, hb_position_t *y, void *user_data); +

+

+
+

Returns

+

+

@@ -1547,7 +1476,7 @@ hb_font_get_glyph_extents (hb_codepoint_t glyph, hb_glyph_extents_t *extents);
-

Parameters

+

Parameters

@@ -1568,7 +1497,11 @@ hb_font_get_glyph_extents (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1579,7 +1512,7 @@ hb_font_get_glyph_extents_for_origin (hb_direction_t direction, hb_glyph_extents_t *extents);
-

Parameters

+

Parameters

@@ -1600,7 +1533,11 @@ hb_font_get_glyph_extents_for_origin (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1611,6 +1548,12 @@ hb_font_get_glyph_extents_for_origin (hb_codepoint_t glyph, hb_glyph_extents_t *extents, void *user_data); +

+

+
+

Returns

+

+

@@ -1621,7 +1564,7 @@ hb_font_get_glyph_from_name (int len, hb_codepoint_t *glyph);
-

Parameters

+

Parameters

@@ -1647,7 +1590,11 @@ hb_font_get_glyph_from_name (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1657,6 +1604,12 @@ hb_font_get_glyph_from_name (void *font_data, const char *name, int len); +

+

+
+

Returns

+

+

@@ -1668,7 +1621,12 @@ hb_font_get_glyph_from_name (hb_codepoint_t variation_selector, hb_codepoint_t *glyph, void *user_data); -

hb_font_get_glyph_func_t is deprecated and should not be used in newly-written code.

+

+

+
+

Returns

+

+

@@ -1677,7 +1635,7 @@ hb_font_get_glyph_from_name (hb_font_t *font, hb_codepoint_t glyph);
-

Parameters

+

Parameters

@@ -1691,7 +1649,11 @@ hb_font_get_glyph_h_advance (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1701,7 +1663,7 @@ hb_font_get_glyph_h_kerning (hb_codepoint_t left_glyph, hb_codepoint_t right_glyph);
-

Parameters

+

Parameters

@@ -1715,7 +1677,11 @@ hb_font_get_glyph_h_kerning (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1726,7 +1692,7 @@ hb_font_get_glyph_h_origin (hb_position_t *x, hb_position_t *y);
-

Parameters

+

Parameters

@@ -1752,7 +1718,11 @@ hb_font_get_glyph_h_origin (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1766,7 +1736,7 @@ hb_font_get_glyph_kerning_for_direction hb_position_t *x, hb_position_t *y);
-

Parameters

+

Parameters

@@ -1792,7 +1762,7 @@ hb_font_get_glyph_kerning_for_direction
-

Since: 0.9.2

+

Since 1.0


@@ -1803,6 +1773,12 @@ hb_font_get_glyph_kerning_for_direction hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, void *user_data); +

+

+
+

Returns

+

+

@@ -1813,7 +1789,7 @@ hb_font_get_glyph_name (char *name, unsigned int size);
-

Parameters

+

Parameters

@@ -1834,7 +1810,11 @@ hb_font_get_glyph_name (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1846,6 +1826,12 @@ hb_font_get_glyph_name (char *name, unsigned int size, void *user_data); +

+

+
+

Returns

+

+

@@ -1858,7 +1844,7 @@ hb_font_get_glyph_origin_for_direction hb_position_t *x, hb_position_t *y);
-

Parameters

+

Parameters

@@ -1884,7 +1870,7 @@ hb_font_get_glyph_origin_for_direction
-

Since: 0.9.2

+

Since 1.0


@@ -1896,6 +1882,12 @@ hb_font_get_glyph_origin_for_direction hb_position_t *x, hb_position_t *y, void *user_data); +

+

+
+

Returns

+

+

@@ -1904,7 +1896,7 @@ hb_font_get_glyph_origin_for_direction hb_font_get_glyph_v_advance (hb_font_t *font, hb_codepoint_t glyph);
-

Parameters

+

Parameters

@@ -1918,7 +1910,11 @@ hb_font_get_glyph_v_advance (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1928,7 +1924,7 @@ hb_font_get_glyph_v_kerning (hb_codepoint_t top_glyph, hb_codepoint_t bottom_glyph);
-

Parameters

+

Parameters

@@ -1942,7 +1938,11 @@ hb_font_get_glyph_v_kerning (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1953,7 +1953,7 @@ hb_font_get_glyph_v_origin (hb_position_t *x, hb_position_t *y);
-

Parameters

+

Parameters

@@ -1979,7 +1979,11 @@ hb_font_get_glyph_v_origin (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -1987,7 +1991,7 @@ hb_font_get_glyph_v_origin (hb_font_t * hb_font_get_parent (hb_font_t *font);
-

Parameters

+

Parameters

@@ -2002,11 +2006,11 @@ hb_font_get_parent ( -

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.2

+

Since 1.0


@@ -2016,7 +2020,7 @@ hb_font_get_ppem (unsigned int *x_ppem, unsigned int *y_ppem);
-

Parameters

+

Parameters

@@ -2042,7 +2046,7 @@ hb_font_get_ppem (Since: 0.9.2

+

Since 1.0


@@ -2052,7 +2056,7 @@ hb_font_get_scale (int *x_scale, int *y_scale);
-

Parameters

+

Parameters

@@ -2078,7 +2082,7 @@ hb_font_get_scale (Since: 0.9.2

+

Since 1.0


@@ -2086,9 +2090,8 @@ hb_font_get_scale (void * hb_font_get_user_data (hb_font_t *font, hb_user_data_key_t *key); -

[skip]

-

Parameters

+

Parameters

@@ -2103,11 +2106,11 @@ hb_font_get_user_data ( -

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.2

+

Since 1.0


@@ -2118,7 +2121,7 @@ hb_font_glyph_from_string (int len, hb_codepoint_t *glyph);
-

Parameters

+

Parameters

@@ -2134,7 +2137,7 @@ hb_font_glyph_from_string (

s

- + @@ -2144,7 +2147,11 @@ hb_font_glyph_from_string (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -2155,7 +2162,7 @@ hb_font_glyph_to_string (char *s, unsigned int size);
-

Parameters

+

Parameters

.

[array length=len][element-type uint8_t][array length=len]

glyph

@@ -2176,7 +2183,7 @@ hb_font_glyph_to_string (Since: 0.9.2

+

Since 1.0


@@ -2184,7 +2191,7 @@ hb_font_glyph_to_string (hb_bool_t hb_font_is_immutable (hb_font_t *font);
-

Parameters

+

Parameters

@@ -2198,7 +2205,11 @@ hb_font_is_immutable (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -2206,7 +2217,7 @@ hb_font_is_immutable (void hb_font_make_immutable (hb_font_t *font);
-

Parameters

+

Parameters

@@ -2220,16 +2231,15 @@ hb_font_make_immutable (Since: 0.9.2

+

Since 1.0


hb_font_reference ()

hb_font_t *
 hb_font_reference (hb_font_t *font);
-

[skip]

-

Parameters

+

Parameters

@@ -2244,11 +2254,11 @@ hb_font_reference ( -

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


@@ -2259,7 +2269,7 @@ hb_font_set_funcs (void *font_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -2280,7 +2290,7 @@ hb_font_set_funcs (Since: 0.9.2

+

Since 1.0


@@ -2290,7 +2300,7 @@ hb_font_set_funcs_data (void *font_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -2311,7 +2321,7 @@ hb_font_set_funcs_data (Since: 0.9.2

+

Since 1.0


@@ -2321,7 +2331,7 @@ hb_font_set_ppem (unsigned int x_ppem, unsigned int y_ppem);
-

Parameters

+

Parameters

@@ -2335,7 +2345,7 @@ hb_font_set_ppem (Since: 0.9.2

+

Since 1.0


@@ -2345,7 +2355,7 @@ hb_font_set_scale (int x_scale, int y_scale);
-

Parameters

+

Parameters

@@ -2359,7 +2369,7 @@ hb_font_set_scale (Since: 0.9.2

+

Since 1.0


@@ -2370,9 +2380,8 @@ hb_font_set_user_data (void *data, hb_destroy_func_t destroy, hb_bool_t replace); -

[skip]

-

Parameters

+

Parameters

@@ -2386,7 +2395,11 @@ hb_font_set_user_data (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -2399,7 +2412,7 @@ hb_font_subtract_glyph_origin_for_direction hb_position_t *x, hb_position_t *y);
-

Parameters

+

Parameters

@@ -2425,7 +2438,7 @@ hb_font_subtract_glyph_origin_for_direction
-

Since: 0.9.2

+

Since 1.0


@@ -2434,195 +2447,12 @@ hb_font_subtract_glyph_origin_for_direction (*hb_reference_table_func_t) (hb_face_t *face, hb_tag_t tag, void *user_data); -
-
-
-

hb_font_funcs_set_font_h_extents_func ()

-
void
-hb_font_funcs_set_font_h_extents_func (hb_font_funcs_t *ffuncs,
-                                       hb_font_get_font_h_extents_func_t func,
-                                       void *user_data,
-                                       hb_destroy_func_t destroy);
-
-

Parameters

-
----- - - - - - - - - - - - - -

ffuncs

font functions.

 

func

.

[closure user_data][destroy destroy][scope notified]
-
-

Since: 1.1.2

-
-
-
-

hb_font_funcs_set_font_v_extents_func ()

-
void
-hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs,
-                                       hb_font_get_font_v_extents_func_t func,
-                                       void *user_data,
-                                       hb_destroy_func_t destroy);
-
-

Parameters

-
----- - - - - - - - - - - - - -

ffuncs

font functions.

 

func

.

[closure user_data][destroy destroy][scope notified]
-
-

Since: 1.1.2

-
-
-
-

hb_font_get_extents_for_direction ()

-
void
-hb_font_get_extents_for_direction (hb_font_t *font,
-                                   hb_direction_t direction,
-                                   hb_font_extents_t *extents);
+

+

-

Parameters

-
----- - - - - - -

font

a font.

 
+

Returns

+

-

Since: 1.1.3

-
-
-
-

hb_font_get_font_extents_func_t ()

-
hb_bool_t
-(*hb_font_get_font_extents_func_t) (hb_font_t *font,
-                                    void *font_data,
-                                    hb_font_extents_t *metrics,
-                                    void *user_data);
-
-
-
-

hb_font_get_h_extents ()

-
hb_bool_t
-hb_font_get_h_extents (hb_font_t *font,
-                       hb_font_extents_t *extents);
-
-

Parameters

-
----- - - - - - - - - - - - - -

font

a font.

 

extents

.

[out]
-
-

Since: 1.1.3

-
-
-
-

hb_font_get_v_extents ()

-
hb_bool_t
-hb_font_get_v_extents (hb_font_t *font,
-                       hb_font_extents_t *extents);
-
-

Parameters

-
----- - - - - - - - - - - - - -

font

a font.

 

extents

.

[out]
-
-

Since: 1.1.3

-
-
-
-

hb_font_set_parent ()

-
void
-hb_font_set_parent (hb_font_t *font,
-                    hb_font_t *parent);
-

Sets parent font of font -.

-
-

Parameters

-
----- - - - - - - - - - - - - -

font

a font.

 

parent

new parent.

 
-
-

Since: 1.0.5

@@ -2631,64 +2461,69 @@ hb_font_set_parent (

hb_font_funcs_t

typedef struct hb_font_funcs_t hb_font_funcs_t;
 
+

+


hb_font_get_glyph_h_advance_func_t

typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_h_advance_func_t;
 
+

+


hb_font_get_glyph_h_kerning_func_t

typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_h_kerning_func_t;
 
+

+


hb_font_get_glyph_h_origin_func_t

typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_h_origin_func_t;
 
+

+


hb_font_get_glyph_v_advance_func_t

typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_v_advance_func_t;
 
+

+


hb_font_get_glyph_v_kerning_func_t

typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_v_kerning_func_t;
 
+

+


hb_font_get_glyph_v_origin_func_t

typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_v_origin_func_t;
 
+

+


hb_font_t

typedef struct hb_font_t hb_font_t;
 
-
-
-
-

hb_font_get_font_h_extents_func_t

-
typedef hb_font_get_font_extents_func_t hb_font_get_font_h_extents_func_t;
-
-
-
-
-

hb_font_get_font_v_extents_func_t

-
typedef hb_font_get_font_extents_func_t hb_font_get_font_v_extents_func_t;
-
+

+

+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ft.html b/docs/reference/html/harfbuzz-hb-ft.html similarity index 62% rename from docs/html/harfbuzz-hb-ft.html rename to docs/reference/html/harfbuzz-hb-ft.html index 66c83db..910af86 100644 --- a/docs/html/harfbuzz-hb-ft.html +++ b/docs/reference/html/harfbuzz-hb-ft.html @@ -2,13 +2,13 @@ -hb-ft: HarfBuzz Manual - - - +hb-ft + + + - + @@ -18,7 +18,7 @@ Description Home -Up +Up Prev Next @@ -57,14 +57,6 @@ -hb_face_t * - - -hb_ft_face_create_referenced () - - - - hb_font_t * @@ -73,14 +65,6 @@ -hb_font_t * - - -hb_ft_font_create_referenced () - - - - FT_Face @@ -92,22 +76,6 @@ void -hb_ft_font_set_load_flags () - - - - -int - - -hb_ft_font_get_load_flags () - - - - -void - - hb_ft_font_set_funcs () @@ -116,6 +84,8 @@

Description

+

+

Functions

@@ -125,7 +95,7 @@ hb_ft_face_create (FT_Face ft_face, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -140,11 +110,11 @@ hb_ft_face_create (FT_Face
-

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


@@ -152,23 +122,11 @@ hb_ft_face_create (FT_Face
hb_face_t *
 hb_ft_face_create_cached (FT_Face ft_face);
-

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

-
-
-
-

hb_ft_face_create_referenced ()

-
hb_face_t *
-hb_ft_face_create_referenced (FT_Face ft_face);
-
-

Returns

-

.

-

[transfer full]

-
-

Since: 0.9.38

+

Since 1.0


@@ -177,7 +135,7 @@ hb_ft_face_create_referenced (FT_ hb_ft_font_create (FT_Face ft_face, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

@@ -192,50 +150,31 @@ hb_ft_font_create (FT_Face
-

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

-
-
-
-

hb_ft_font_create_referenced ()

-
hb_font_t *
-hb_ft_font_create_referenced (FT_Face ft_face);
-
-

Returns

-

.

-

[transfer full]

-
-

Since: 0.9.38

+

Since 1.0


hb_ft_font_get_face ()

FT_Face
 hb_ft_font_get_face (hb_font_t *font);
+

+

+
+

Returns

+

-
-
-

hb_ft_font_set_load_flags ()

-
void
-hb_ft_font_set_load_flags (hb_font_t *font,
-                           int load_flags);
-

Since: 1.0.5

-
-
-
-

hb_ft_font_get_load_flags ()

-
int
-hb_ft_font_get_load_flags (hb_font_t *font);
-

Since: 1.0.5


hb_ft_font_set_funcs ()

void
 hb_ft_font_set_funcs (hb_font_t *font);
+

+

@@ -243,6 +182,7 @@ hb_ft_font_set_funcs ( -
Generated by GTK-Doc V1.24.1
+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-glib.html b/docs/reference/html/harfbuzz-hb-glib.html similarity index 79% rename from docs/html/harfbuzz-hb-glib.html rename to docs/reference/html/harfbuzz-hb-glib.html index 342625c..03ab919 100644 --- a/docs/html/harfbuzz-hb-glib.html +++ b/docs/reference/html/harfbuzz-hb-glib.html @@ -2,13 +2,13 @@ -hb-glib: HarfBuzz Manual - - - +hb-glib + + + - + @@ -18,7 +18,7 @@
Description Home -Up +Up Prev Next @@ -63,19 +63,13 @@ hb_glib_script_to_script () - - -hb_blob_t * - - -hb_glib_blob_create () - -

Description

+

+

Functions

@@ -83,25 +77,36 @@

hb_glib_get_unicode_funcs ()

hb_unicode_funcs_t *
 hb_glib_get_unicode_funcs (void);
+

+

+
+

Returns

+

+

hb_glib_script_from_script ()

GUnicodeScript
 hb_glib_script_from_script (hb_script_t script);
+

+

+
+

Returns

+

+

hb_glib_script_to_script ()

hb_script_t
 hb_glib_script_to_script (GUnicodeScript script);
+

+

+
+

Returns

+

-
-
-

hb_glib_blob_create ()

-
hb_blob_t *
-hb_glib_blob_create (GBytes *gbytes);
-

Since: 0.9.38

@@ -109,6 +114,7 @@ hb_glib_blob_create (GBytes
+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/reference/html/harfbuzz-hb-gobject.html b/docs/reference/html/harfbuzz-hb-gobject.html new file mode 100644 index 0000000..2d21692 --- /dev/null +++ b/docs/reference/html/harfbuzz-hb-gobject.html @@ -0,0 +1,50 @@ + + + + +hb-gobject + + + + + + + + + + + + + + + + +
+
+
+ + +
+

hb-gobject

+

hb-gobject

+
+
+

Description

+

+

+
+
+

Functions

+
+
+

Types and Values

+
+
+ + + \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-graphite2.html b/docs/reference/html/harfbuzz-hb-graphite2.html similarity index 87% rename from docs/html/harfbuzz-hb-graphite2.html rename to docs/reference/html/harfbuzz-hb-graphite2.html index a19c83c..2c57cac 100644 --- a/docs/html/harfbuzz-hb-graphite2.html +++ b/docs/reference/html/harfbuzz-hb-graphite2.html @@ -2,13 +2,13 @@ -hb-graphite2: HarfBuzz Manual - - - +hb-graphite2 + + + - + @@ -18,7 +18,7 @@ Description Home -Up +Up Prev Next @@ -73,6 +73,8 @@

Description

+

+

Functions

@@ -80,12 +82,24 @@

hb_graphite2_face_get_gr_face ()

gr_face *
 hb_graphite2_face_get_gr_face (hb_face_t *face);
+

+

+
+

Returns

+

+

hb_graphite2_font_get_gr_font ()

gr_font *
 hb_graphite2_font_get_gr_font (hb_font_t *font);
+

+

+
+

Returns

+

+
@@ -94,10 +108,13 @@ hb_graphite2_font_get_gr_font (

HB_GRAPHITE2_TAG_SILF

#define HB_GRAPHITE2_TAG_SILF HB_TAG('S','i','l','f')
 
+

+

+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-icu.html b/docs/reference/html/harfbuzz-hb-icu.html similarity index 86% rename from docs/html/harfbuzz-hb-icu.html rename to docs/reference/html/harfbuzz-hb-icu.html index 906e91c..307aeb2 100644 --- a/docs/html/harfbuzz-hb-icu.html +++ b/docs/reference/html/harfbuzz-hb-icu.html @@ -2,13 +2,13 @@ -hb-icu: HarfBuzz Manual - - - +hb-icu + + + - + @@ -18,7 +18,7 @@ Description Home -Up +Up Prev Next @@ -68,6 +68,8 @@

Description

+

+

Functions

@@ -75,18 +77,36 @@

hb_icu_get_unicode_funcs ()

hb_unicode_funcs_t *
 hb_icu_get_unicode_funcs (void);
+

+

+
+

Returns

+

+

hb_icu_script_from_script ()

UScriptCode
 hb_icu_script_from_script (hb_script_t script);
+

+

+
+

Returns

+

+

hb_icu_script_to_script ()

hb_script_t
 hb_icu_script_to_script (UScriptCode script);
+

+

+
+

Returns

+

+
@@ -94,6 +114,7 @@ hb_icu_script_to_script (UScriptC
+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-layout.html b/docs/reference/html/harfbuzz-hb-ot-layout.html similarity index 91% rename from docs/html/harfbuzz-hb-ot-layout.html rename to docs/reference/html/harfbuzz-hb-ot-layout.html index 0da9306..d7231db 100644 --- a/docs/html/harfbuzz-hb-ot-layout.html +++ b/docs/reference/html/harfbuzz-hb-ot-layout.html @@ -2,13 +2,13 @@ -hb-ot-layout: HarfBuzz Manual - - - +hb-ot-layout + + + - + @@ -19,7 +19,7 @@ Object Hierarchy Home -Up +Up Prev Next @@ -239,14 +239,6 @@ hb_ot_shape_plan_collect_lookups () - - -hb_bool_t - - -hb_ot_layout_language_get_required_feature_index () - - @@ -283,10 +275,6 @@ HB_OT_TAG_GSUB -#define -HB_OT_TAG_JSTF - - enum hb_ot_layout_glyph_class_t @@ -295,12 +283,14 @@

Object Hierarchy

-
    GEnum
+
    GEnum
     ╰── hb_ot_layout_glyph_class_t
 

Description

+

+

Functions

@@ -313,7 +303,8 @@ hb_ot_layout_collect_lookups (const hb_tag_t *languages, const hb_tag_t *features, hb_set_t *lookup_indexes); -

Since: 0.9.8

+

+


@@ -325,7 +316,12 @@ hb_ot_layout_feature_get_lookups (unsigned int start_offset, unsigned int *lookup_count, unsigned int *lookup_indexes); -

Since: 0.9.7

+

+

+
+

Returns

+

+

@@ -336,6 +332,12 @@ hb_ot_layout_get_attach_points (unsigned int start_offset, unsigned int *point_count, unsigned int *point_array); +

+

+
+

Returns

+

+

@@ -343,7 +345,12 @@ hb_ot_layout_get_attach_points (hb_ot_layout_glyph_class_t hb_ot_layout_get_glyph_class (hb_face_t *face, hb_codepoint_t glyph); -

Since: 0.9.7

+

+

+
+

Returns

+

+

@@ -352,7 +359,8 @@ hb_ot_layout_get_glyph_class (hb_face_t *face, hb_ot_layout_glyph_class_t klass, hb_set_t *glyphs); -

Since: 0.9.7

+

+


@@ -364,6 +372,12 @@ hb_ot_layout_get_ligature_carets (unsigned int start_offset, unsigned int *caret_count, hb_position_t *caret_array); +

+

+
+

Returns

+

+

@@ -375,7 +389,12 @@ hb_ot_layout_get_size_params (unsigned int *subfamily_name_id, unsigned int *range_start, unsigned int *range_end); -

Since: 0.9.10

+

+

+
+

Returns

+

+


hb_ot_layout_has_glyph_classes ()

hb_bool_t
 hb_ot_layout_has_glyph_classes (hb_face_t *face);
+

+

+
+

Returns

+

+

hb_ot_layout_has_positioning ()

hb_bool_t
 hb_ot_layout_has_positioning (hb_face_t *face);
+

+

+
+

Returns

+

+

hb_ot_layout_has_substitution ()

hb_bool_t
 hb_ot_layout_has_substitution (hb_face_t *face);
+

+

+
+

Returns

+

+

@@ -415,6 +458,12 @@ hb_ot_layout_language_find_feature (unsigned int language_index, hb_tag_t feature_tag, unsigned int *feature_index); +

+

+
+

Returns

+

+

@@ -428,6 +477,12 @@ hb_ot_layout_language_get_feature_indexes unsigned int start_offset, unsigned int *feature_count, unsigned int *feature_indexes); +

+

+
+

Returns

+

+

@@ -441,6 +496,12 @@ hb_ot_layout_language_get_feature_tags unsigned int start_offset, unsigned int *feature_count, hb_tag_t *feature_tags); +

+

+
+

Returns

+

+

@@ -453,7 +514,6 @@ hb_ot_layout_language_get_required_feature unsigned int language_index, unsigned int *feature_index, hb_tag_t *feature_tag); -

Since: 0.9.30


@@ -466,7 +526,8 @@ hb_ot_layout_lookup_collect_glyphs (hb_set_t *glyphs_input, hb_set_t *glyphs_after, hb_set_t *glyphs_output); -

Since: 0.9.7

+

+


@@ -476,7 +537,8 @@ hb_ot_layout_lookup_substitute_closure (hb_face_t *face, unsigned int lookup_index, hb_set_t *glyphs); -

Since: 0.9.7

+

+


@@ -487,7 +549,12 @@ hb_ot_layout_lookup_would_substitute (const hb_codepoint_t *glyphs, unsigned int glyphs_length, hb_bool_t zero_context); -

Since: 0.9.7

+

+

+
+

Returns

+

+

@@ -498,6 +565,12 @@ hb_ot_layout_script_find_language (unsigned int script_index, hb_tag_t language_tag, unsigned int *language_index); +

+

+
+

Returns

+

+

@@ -509,6 +582,12 @@ hb_ot_layout_script_get_language_tags (unsigned int start_offset, unsigned int *language_count, hb_tag_t *language_tags); +

+

+
+

Returns

+

+

@@ -519,6 +598,12 @@ hb_ot_layout_table_choose_script (const hb_tag_t *script_tags, unsigned int *script_index, hb_tag_t *chosen_script); +

+

+
+

Returns

+

+

@@ -528,6 +613,12 @@ hb_ot_layout_table_find_script (hb_tag_t table_tag, hb_tag_t script_tag, unsigned int *script_index); +

+

+
+

Returns

+

+

@@ -538,6 +629,12 @@ hb_ot_layout_table_get_feature_tags (unsigned int start_offset, unsigned int *feature_count, hb_tag_t *feature_tags); +

+

+
+

Returns

+

+

@@ -548,6 +645,12 @@ hb_ot_layout_table_get_script_tags (unsigned int start_offset, unsigned int *script_count, hb_tag_t *script_tags); +

+

+
+

Returns

+

+

@@ -555,7 +658,6 @@ hb_ot_layout_table_get_script_tags (unsigned int hb_ot_layout_table_get_lookup_count (hb_face_t *face, hb_tag_t table_tag); -

Since: 0.9.22


@@ -564,18 +666,8 @@ hb_ot_layout_table_get_lookup_count (hb_shape_plan_t *shape_plan, hb_tag_t table_tag, hb_set_t *lookup_indexes); -

Since: 0.9.7

-
-
-
-

hb_ot_layout_language_get_required_feature_index ()

-
hb_bool_t
-hb_ot_layout_language_get_required_feature_index
-                               (hb_face_t *face,
-                                hb_tag_t table_tag,
-                                unsigned int script_index,
-                                unsigned int language_index,
-                                unsigned int *feature_index);
+

+

@@ -584,48 +676,56 @@ hb_ot_layout_language_get_required_feature_index

HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX

#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX 0xFFFFu
 
+

+


HB_OT_LAYOUT_NO_FEATURE_INDEX

#define HB_OT_LAYOUT_NO_FEATURE_INDEX		0xFFFFu
 
+

+


HB_OT_LAYOUT_NO_SCRIPT_INDEX

#define HB_OT_LAYOUT_NO_SCRIPT_INDEX		0xFFFFu
 
+

+


HB_OT_TAG_GDEF

#define HB_OT_TAG_GDEF HB_TAG('G','D','E','F')
 
+

+


HB_OT_TAG_GPOS

#define HB_OT_TAG_GPOS HB_TAG('G','P','O','S')
 
+

+


HB_OT_TAG_GSUB

#define HB_OT_TAG_GSUB HB_TAG('G','S','U','B')
 
-
-
-
-

HB_OT_TAG_JSTF

-
#define HB_OT_TAG_JSTF HB_TAG('J','S','T','F')
-
+

+


enum hb_ot_layout_glyph_class_t

+

+

-

Members

+

Members

@@ -635,28 +735,28 @@ hb_ot_layout_language_get_required_feature_index - - + + - - + + - - + + - - + + - - + +

HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED

    

HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH

    

HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE

    

HB_OT_LAYOUT_GLYPH_CLASS_MARK

    

HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT

    
@@ -665,6 +765,7 @@ hb_ot_layout_language_get_required_feature_index
+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-tag.html b/docs/reference/html/harfbuzz-hb-ot-tag.html similarity index 83% rename from docs/html/harfbuzz-hb-ot-tag.html rename to docs/reference/html/harfbuzz-hb-ot-tag.html index ea49a15..058623f 100644 --- a/docs/html/harfbuzz-hb-ot-tag.html +++ b/docs/reference/html/harfbuzz-hb-ot-tag.html @@ -2,13 +2,13 @@ -hb-ot-tag: HarfBuzz Manual - - - +hb-ot-tag + + + - - + + @@ -18,9 +18,9 @@ Description Home -Up +Up Prev -Next +Next
@@ -49,7 +49,7 @@ -hb_language_t +hb_language_t hb_ot_tag_to_language () @@ -95,31 +95,45 @@

Description

+

+

Functions

hb_ot_tag_from_language ()

hb_tag_t
-hb_ot_tag_from_language (hb_language_t language);
+hb_ot_tag_from_language (hb_language_t language); +

+

+
+

Returns

+

+

hb_ot_tag_to_language ()

-
hb_language_t
+
hb_language_t
 hb_ot_tag_to_language (hb_tag_t tag);
+

+

-

Returns

-

.

-

[transfer none]

+

Returns

+

-

Since: 0.9.2


hb_ot_tag_to_script ()

hb_script_t
 hb_ot_tag_to_script (hb_tag_t tag);
+

+

+
+

Returns

+

+

@@ -128,6 +142,8 @@ hb_ot_tag_to_script (hb_script_t script, hb_tag_t *script_tag_1, hb_tag_t *script_tag_2); +

+

@@ -136,16 +152,21 @@ hb_ot_tags_from_script (

HB_OT_TAG_DEFAULT_LANGUAGE

#define HB_OT_TAG_DEFAULT_LANGUAGE HB_TAG ('d', 'f', 'l', 't')
 
+

+


HB_OT_TAG_DEFAULT_SCRIPT

#define HB_OT_TAG_DEFAULT_SCRIPT HB_TAG ('D', 'F', 'L', 'T')
 
+

+

+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot.html b/docs/reference/html/harfbuzz-hb-ot.html similarity index 82% rename from docs/html/harfbuzz-hb-ot.html rename to docs/reference/html/harfbuzz-hb-ot.html index 00ecee7..9c48aad 100644 --- a/docs/html/harfbuzz-hb-ot.html +++ b/docs/reference/html/harfbuzz-hb-ot.html @@ -2,13 +2,13 @@ -hb-ot: HarfBuzz Manual - - - +hb-ot + + + - + @@ -18,7 +18,7 @@ Description Home -Up +Up Prev Next @@ -33,16 +33,18 @@

Description

+

+

Functions

-

Types and Values

+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-set.html b/docs/reference/html/harfbuzz-hb-set.html similarity index 86% rename from docs/html/harfbuzz-hb-set.html rename to docs/reference/html/harfbuzz-hb-set.html index 7b57884..87ce9bf 100644 --- a/docs/html/harfbuzz-hb-set.html +++ b/docs/reference/html/harfbuzz-hb-set.html @@ -2,13 +2,13 @@ -hb-set: HarfBuzz Manual - - - +hb-set + + + - + @@ -19,7 +19,7 @@ Object Hierarchy Home -Up +Up Prev Next @@ -41,6 +41,10 @@ +#define +HB_SET_VALUE_INVALID + + void @@ -257,36 +261,38 @@ - - -#define -HB_SET_VALUE_INVALID - - + typedef hb_set_t - - +

Object Hierarchy

-
    GBoxed
+
    GBoxed
     ╰── hb_set_t
 

Description

+

+

Functions

+

HB_SET_VALUE_INVALID

+
#define HB_SET_VALUE_INVALID ((hb_codepoint_t) -1)
+
+
+
+

hb_set_add ()

void
 hb_set_add (hb_set_t *set,
             hb_codepoint_t codepoint);
-

Parameters

+

Parameters

@@ -300,7 +306,7 @@ hb_set_add (Since: 0.9.2

+

Since 1.0


@@ -310,7 +316,7 @@ hb_set_add_range (hb_codepoint_t first, hb_codepoint_t last);
-

Parameters

+

Parameters

@@ -324,7 +330,7 @@ hb_set_add_range (Since: 0.9.7

+

Since 1.0


@@ -332,7 +338,7 @@ hb_set_add_range (hb_bool_t hb_set_allocation_successful (const hb_set_t *set);
-

Parameters

+

Parameters

@@ -346,7 +352,11 @@ hb_set_allocation_successful (const
-

Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -354,7 +364,7 @@ hb_set_allocation_successful (const void hb_set_clear (hb_set_t *set);
-

Parameters

+

Parameters

@@ -368,20 +378,19 @@ hb_set_clear (Since: 0.9.2

+

Since 1.0


hb_set_create ()

hb_set_t *
 hb_set_create (void);
-

[Xconstructor]

+

+

-

Returns

-

.

-

[transfer full]

+

Returns

+

-

Since: 0.9.2


@@ -390,7 +399,7 @@ hb_set_create (void hb_set_del (hb_set_t *set, hb_codepoint_t codepoint);
-

Parameters

+

Parameters

@@ -404,7 +413,7 @@ hb_set_del (Since: 0.9.2

+

Since 1.0


@@ -414,7 +423,7 @@ hb_set_del_range (hb_codepoint_t first, hb_codepoint_t last);
-

Parameters

+

Parameters

@@ -428,16 +437,15 @@ hb_set_del_range (Since: 0.9.7

+

Since 1.0


hb_set_destroy ()

void
 hb_set_destroy (hb_set_t *set);
-

[skip]

-

Parameters

+

Parameters

@@ -451,7 +459,7 @@ hb_set_destroy (Since: 0.9.2

+

Since 1.0


@@ -459,11 +467,11 @@ hb_set_destroy (hb_set_t * hb_set_get_empty (void);
-

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


@@ -472,7 +480,7 @@ hb_set_get_empty (voidconst hb_set_t *set);

Finds the maximum number in the set.

-

Parameters

+

Parameters

@@ -487,10 +495,11 @@ hb_set_get_max (const -

Returns

+

Returns

minimum of the set, or HB_SET_VALUE_INVALID if set is empty.

+

-

Since: 0.9.7

+

Since 1.0


@@ -499,7 +508,7 @@ hb_set_get_max (const const hb_set_t *set);

Finds the minimum number in the set.

-

Parameters

+

Parameters

@@ -514,10 +523,11 @@ hb_set_get_min (const -

Returns

+

Returns

minimum of the set, or HB_SET_VALUE_INVALID if set is empty.

+

-

Since: 0.9.7

+

Since 1.0


@@ -526,7 +536,7 @@ hb_set_get_min (const const hb_set_t *set);

Returns the number of numbers in the set.

-

Parameters

+

Parameters

@@ -541,10 +551,11 @@ hb_set_get_population (const -

Returns

+

Returns

set population.

+

-

Since: 0.9.7

+

Since 1.0


@@ -552,9 +563,8 @@ hb_set_get_population (const void * hb_set_get_user_data (hb_set_t *set, hb_user_data_key_t *key); -

[skip]

-

Parameters

+

Parameters

@@ -569,11 +579,11 @@ hb_set_get_user_data ( -

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.2

+

Since 1.0


@@ -582,7 +592,7 @@ hb_set_get_user_data (const hb_set_t *set, hb_codepoint_t codepoint);
-

Parameters

+

Parameters

@@ -596,7 +606,11 @@ hb_set_has (const Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -605,7 +619,7 @@ hb_set_has (const hb_set_t *set, const hb_set_t *other);
-

Parameters

+

Parameters

@@ -619,7 +633,7 @@ hb_set_intersect (Since: 0.9.2

+

Since 1.0


@@ -627,7 +641,7 @@ hb_set_intersect (void hb_set_invert (hb_set_t *set);
-

Parameters

+

Parameters

@@ -641,7 +655,7 @@ hb_set_invert (Since: 0.9.10

+

Since 1.0


@@ -649,7 +663,7 @@ hb_set_invert (hb_bool_t hb_set_is_empty (const hb_set_t *set);
-

Parameters

+

Parameters

@@ -663,7 +677,11 @@ hb_set_is_empty (const Since: 0.9.7

+
+

Returns

+

+
+

Since 1.0


@@ -672,7 +690,7 @@ hb_set_is_empty (const const hb_set_t *set, const hb_set_t *other);
-

Parameters

+

Parameters

@@ -686,7 +704,11 @@ hb_set_is_equal (const Since: 0.9.7

+
+

Returns

+

+
+

Since 1.0


@@ -695,7 +717,7 @@ hb_set_is_equal (const const hb_set_t *set, hb_codepoint_t *codepoint);
-

Parameters

+

Parameters

@@ -717,10 +739,11 @@ hb_set_next (const -

Returns

+

Returns

whether there was a next value.

+

-

Since: 0.9.2

+

Since 1.0


@@ -734,7 +757,7 @@ hb_set_next_range (const last .

-

Parameters

+

Parameters

@@ -761,19 +784,19 @@ are greater than current value of last
-

Returns

+

Returns

whether there was a next range.

+

-

Since: 0.9.7

+

Since 1.0


hb_set_reference ()

hb_set_t *
 hb_set_reference (hb_set_t *set);
-

[skip]

-

Parameters

+

Parameters

@@ -788,11 +811,11 @@ hb_set_reference ( -

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


@@ -801,7 +824,7 @@ hb_set_reference (hb_set_t *set, const hb_set_t *other);
-

Parameters

+

Parameters

@@ -815,7 +838,7 @@ hb_set_set (Since: 0.9.2

+

Since 1.0


@@ -826,9 +849,8 @@ hb_set_set_user_data (void *data, hb_destroy_func_t destroy, hb_bool_t replace); -

[skip]

-

Parameters

+

Parameters

@@ -850,7 +872,11 @@ hb_set_set_user_data (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -859,7 +885,7 @@ hb_set_set_user_data (hb_set_t *set, const hb_set_t *other);
-

Parameters

+

Parameters

@@ -873,7 +899,7 @@ hb_set_subtract (Since: 0.9.2

+

Since 1.0


@@ -882,7 +908,7 @@ hb_set_subtract (hb_set_t *set, const hb_set_t *other);
-

Parameters

+

Parameters

@@ -896,7 +922,7 @@ hb_set_symmetric_difference (Since: 0.9.2

+

Since 1.0


@@ -905,7 +931,7 @@ hb_set_symmetric_difference (hb_set_t *set, const hb_set_t *other);
-

Parameters

+

Parameters

@@ -919,25 +945,22 @@ hb_set_union (Since: 0.9.2

+

Since 1.0

Types and Values

-

HB_SET_VALUE_INVALID

-
#define HB_SET_VALUE_INVALID ((hb_codepoint_t) -1)
-
-
-
-

hb_set_t

typedef struct hb_set_t hb_set_t;
 
+

+

+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-shape-plan.html b/docs/reference/html/harfbuzz-hb-shape-plan.html similarity index 77% rename from docs/html/harfbuzz-hb-shape-plan.html rename to docs/reference/html/harfbuzz-hb-shape-plan.html index aee3168..d612552 100644 --- a/docs/html/harfbuzz-hb-shape-plan.html +++ b/docs/reference/html/harfbuzz-hb-shape-plan.html @@ -2,13 +2,13 @@ -hb-shape-plan: HarfBuzz Manual - - - - +hb-shape-plan + + + + - + @@ -19,8 +19,8 @@ Object Hierarchy
- - + +
HomeUpPrevUpPrev Next
@@ -129,12 +129,14 @@

Object Hierarchy

-
    GBoxed
+
    GBoxed
     ╰── hb_shape_plan_t
 

Description

+

+

Functions

@@ -142,51 +144,28 @@

hb_shape_plan_create ()

hb_shape_plan_t *
 hb_shape_plan_create (hb_face_t *face,
-                      const hb_segment_properties_t *props,
-                      const hb_feature_t *user_features,
+                      const hb_segment_properties_t *props,
+                      const hb_feature_t *user_features,
                       unsigned int num_user_features,
                       const char * const *shaper_list);
-

[Xconstructor]

+

+

-

Parameters

-
----- - - - - - - - - - - - - -

user_features

.

[array length=num_user_features]

shaper_list

.

[array zero-terminated=1]
-
-
-

Returns

-

.

-

[transfer full]

+

Returns

+

-

Since: 0.9.7


hb_shape_plan_create_cached ()

hb_shape_plan_t *
 hb_shape_plan_create_cached (hb_face_t *face,
-                             const hb_segment_properties_t *props,
-                             const hb_feature_t *user_features,
+                             const hb_segment_properties_t *props,
+                             const hb_feature_t *user_features,
                              unsigned int num_user_features,
                              const char * const *shaper_list);
-

Parameters

+

Parameters

@@ -208,20 +187,19 @@ hb_shape_plan_create_cached ( -

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.7

+

Since 1.0


hb_shape_plan_destroy ()

void
 hb_shape_plan_destroy (hb_shape_plan_t *shape_plan);
-

[skip]

-

Parameters

+

Parameters

@@ -235,7 +213,7 @@ hb_shape_plan_destroy (Since: 0.9.7

+

Since 1.0


@@ -243,11 +221,11 @@ hb_shape_plan_destroy (hb_bool_t hb_shape_plan_execute (hb_shape_plan_t *shape_plan, hb_font_t *font, - hb_buffer_t *buffer, - const hb_feature_t *features, + hb_buffer_t *buffer, + const hb_feature_t *features, unsigned int num_features);
-

Parameters

+

Parameters

@@ -278,7 +256,11 @@ hb_shape_plan_execute (Since: 0.9.7

+
+

Returns

+

+
+

Since 1.0


@@ -286,11 +268,11 @@ hb_shape_plan_execute (hb_shape_plan_t * hb_shape_plan_get_empty (void);
-

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.7

+

Since 1.0


@@ -298,7 +280,7 @@ hb_shape_plan_get_empty (voidconst char * hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan);
-

Parameters

+

Parameters

@@ -313,11 +295,11 @@ hb_shape_plan_get_shaper ( -

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.7

+

Since 1.0


@@ -325,9 +307,8 @@ hb_shape_plan_get_shaper (void * hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan, hb_user_data_key_t *key); -

[skip]

-

Parameters

+

Parameters

@@ -342,20 +323,19 @@ hb_shape_plan_get_user_data ( -

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.7

+

Since 1.0


hb_shape_plan_reference ()

hb_shape_plan_t *
 hb_shape_plan_reference (hb_shape_plan_t *shape_plan);
-

[skip]

-

Parameters

+

Parameters

@@ -370,11 +350,11 @@ hb_shape_plan_reference ( -

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.7

+

Since 1.0


@@ -385,9 +365,8 @@ hb_shape_plan_set_user_data (void *data, hb_destroy_func_t destroy, hb_bool_t replace); -

[skip]

-

Parameters

+

Parameters

@@ -401,7 +380,11 @@ hb_shape_plan_set_user_data (Since: 0.9.7

+
+

Returns

+

+
+

Since 1.0

@@ -410,10 +393,13 @@ hb_shape_plan_set_user_data (

hb_shape_plan_t

typedef struct hb_shape_plan_t hb_shape_plan_t;
 
+

+

+
+ Generated by GTK-Doc V1.20.1 \ No newline at end of file diff --git a/docs/reference/html/harfbuzz-hb-shape.html b/docs/reference/html/harfbuzz-hb-shape.html new file mode 100644 index 0000000..c055347 --- /dev/null +++ b/docs/reference/html/harfbuzz-hb-shape.html @@ -0,0 +1,286 @@ + + + + +hb-shape + + + + + + + + + +
+ + + + + + +
+
+
+ + +
+

hb-shape

+

hb-shape

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+hb_bool_t + +hb_feature_from_string () +
+void + +hb_feature_to_string () +
+void + +hb_shape () +
+hb_bool_t + +hb_shape_full () +
const char ** + +hb_shape_list_shapers () +
+
+
+

Types and Values

+
++++ + + + + +
 hb_feature_t
+
+
+

Object Hierarchy

+
    GBoxed
+    ╰── hb_feature_t
+
+
+
+

Description

+

+

+
+
+

Functions

+
+

hb_feature_from_string ()

+
hb_bool_t
+hb_feature_from_string (const char *str,
+                        int len,
+                        hb_feature_t *feature);
+
+

Parameters

+
+++++ + + + + + + + + + + + + +

str

.

[array length=len]

feature

.

[out][optional]
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_feature_to_string ()

+
void
+hb_feature_to_string (hb_feature_t *feature,
+                      char *buf,
+                      unsigned int size);
+
+

Parameters

+
+++++ + + + + + +

buf

.

[array length=size]
+
+

Since 1.0

+
+
+
+

hb_shape ()

+
void
+hb_shape (hb_font_t *font,
+          hb_buffer_t *buffer,
+          const hb_feature_t *features,
+          unsigned int num_features);
+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

font

a font.

 

buffer

a buffer.

 

features

.

[array length=num_features]
+
+

Since 1.0

+
+
+
+

hb_shape_full ()

+
hb_bool_t
+hb_shape_full (hb_font_t *font,
+               hb_buffer_t *buffer,
+               const hb_feature_t *features,
+               unsigned int num_features,
+               const char * const *shaper_list);
+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

font

a font.

 

buffer

a buffer.

 

features

.

[array length=num_features]

shaper_list

.

[array zero-terminated=1]
+
+
+

Returns

+

+
+

Since 1.0

+
+
+
+

hb_shape_list_shapers ()

+
const char **
+hb_shape_list_shapers (void);
+
+

Returns

+

.

+

[transfer none]

+
+

Since 1.0

+
+
+
+

Types and Values

+
+

hb_feature_t

+
typedef struct {
+  hb_tag_t      tag;
+  uint32_t      value;
+  unsigned int  start;
+  unsigned int  end;
+} hb_feature_t;
+
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-unicode.html b/docs/reference/html/harfbuzz-hb-unicode.html similarity index 82% rename from docs/html/harfbuzz-hb-unicode.html rename to docs/reference/html/harfbuzz-hb-unicode.html index ecc82c5..91358b2 100644 --- a/docs/html/harfbuzz-hb-unicode.html +++ b/docs/reference/html/harfbuzz-hb-unicode.html @@ -2,13 +2,13 @@ -hb-unicode: HarfBuzz Manual - - - +hb-unicode + + + - - + + @@ -19,9 +19,9 @@ Object Hierarchy Home -Up +Up Prev -Next +Next
@@ -41,6 +41,10 @@ +#define +HB_UNICODE_MAX_DECOMPOSITION_LEN + + hb_unicode_combining_class_t @@ -306,10 +310,6 @@ -#define -HB_UNICODE_MAX_DECOMPOSITION_LEN - - enum hb_unicode_combining_class_t @@ -326,24 +326,39 @@

Object Hierarchy

-
    GBoxed
+
    GBoxed
     ╰── hb_unicode_funcs_t
-    GEnum
+    GEnum
     ├── hb_unicode_combining_class_t
     ╰── hb_unicode_general_category_t
 

Description

+

+

Functions

+

HB_UNICODE_MAX_DECOMPOSITION_LEN

+
#define HB_UNICODE_MAX_DECOMPOSITION_LEN (18+1) /* codepoints */
+
+

+

+
+
+

hb_unicode_combining_class ()

hb_unicode_combining_class_t
 hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs,
                             hb_codepoint_t unicode);
-

Since: 0.9.2

+

+

+
+

Returns

+

+

@@ -352,6 +367,12 @@ hb_unicode_combining_class ((*hb_unicode_combining_class_func_t) (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode, void *user_data); +

+

+
+

Returns

+

+

@@ -362,7 +383,7 @@ hb_unicode_compose (hb_codepoint_t b, hb_codepoint_t *ab);
-

Parameters

+

Parameters

@@ -383,7 +404,11 @@ hb_unicode_compose (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -394,6 +419,12 @@ hb_unicode_compose (hb_codepoint_t b, hb_codepoint_t *ab, void *user_data); +

+

+
+

Returns

+

+

@@ -404,7 +435,7 @@ hb_unicode_decompose (hb_codepoint_t *a, hb_codepoint_t *b);
-

Parameters

+

Parameters

@@ -430,7 +461,11 @@ hb_unicode_decompose (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -440,7 +475,7 @@ hb_unicode_decompose_compatibility (hb_codepoint_t u, hb_codepoint_t *decomposed);
-

Parameters

+

Parameters

@@ -461,7 +496,11 @@ hb_unicode_decompose_compatibility (
-

Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -472,6 +511,12 @@ hb_unicode_decompose_compatibility (hb_codepoint_t *a, hb_codepoint_t *b, void *user_data); +

+

+
+

Returns

+

+

@@ -479,44 +524,32 @@ hb_unicode_decompose_compatibility (unsigned int hb_unicode_eastasian_width (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode); -

Since: 0.9.2

+

+

+
+

Returns

+

+

hb_unicode_funcs_create ()

hb_unicode_funcs_t *
 hb_unicode_funcs_create (hb_unicode_funcs_t *parent);
-

[Xconstructor]

-
-

Parameters

-
----- - - - - - -

parent

.

[nullable]
-
+

+

-

Returns

-

.

-

[transfer full]

+

Returns

+

-

Since: 0.9.2


hb_unicode_funcs_destroy ()

void
 hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs);
-

[skip]

-

Parameters

+

Parameters

@@ -530,13 +563,19 @@ hb_unicode_funcs_destroy (Since: 0.9.2

+

Since 1.0


hb_unicode_funcs_get_default ()

hb_unicode_funcs_t *
 hb_unicode_funcs_get_default (void);
+

+

+
+

Returns

+

+

@@ -544,11 +583,11 @@ hb_unicode_funcs_get_default (voi
hb_unicode_funcs_t *
 hb_unicode_funcs_get_empty (void);
-

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


@@ -556,7 +595,7 @@ hb_unicode_funcs_get_empty (void<
hb_unicode_funcs_t *
 hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs);
-

Parameters

+

Parameters

@@ -570,7 +609,11 @@ hb_unicode_funcs_get_parent (Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -578,9 +621,8 @@ hb_unicode_funcs_get_parent (void * hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs, hb_user_data_key_t *key); -

[skip]

-

Parameters

+

Parameters

@@ -595,11 +637,11 @@ hb_unicode_funcs_get_user_data (
-

Returns

+

Returns

.

[transfer none]

-

Since: 0.9.2

+

Since 1.0


@@ -607,7 +649,7 @@ hb_unicode_funcs_get_user_data (hb_bool_t hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs);
-

Parameters

+

Parameters

@@ -621,7 +663,11 @@ hb_unicode_funcs_is_immutable (
-

Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -629,7 +675,7 @@ hb_unicode_funcs_is_immutable (void hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs);
-

Parameters

+

Parameters

@@ -643,16 +689,15 @@ hb_unicode_funcs_make_immutable (
-

Since: 0.9.2

+

Since 1.0


hb_unicode_funcs_reference ()

hb_unicode_funcs_t *
 hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs);
-

[skip]

-

Parameters

+

Parameters

@@ -667,11 +712,11 @@ hb_unicode_funcs_reference ( -

Returns

+

Returns

.

[transfer full]

-

Since: 0.9.2

+

Since 1.0


@@ -683,28 +728,21 @@ hb_unicode_funcs_set_combining_class_func void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

- - + - - - - - - - +

ufuncs

a Unicode function structure

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -715,28 +753,21 @@ hb_unicode_funcs_set_compose_func (void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

- - + - - - - - - - +

ufuncs

a Unicode function structure

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -748,28 +779,21 @@ hb_unicode_funcs_set_decompose_compatibility_func void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

- - + - - - - - - - +

ufuncs

a Unicode function structure

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -780,28 +804,21 @@ hb_unicode_funcs_set_decompose_func (void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

- - + - - - - - - - +

ufuncs

a Unicode function structure

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -813,28 +830,21 @@ hb_unicode_funcs_set_eastasian_width_func void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

- - + - - - - - - - +

ufuncs

a Unicode function structure

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -846,28 +856,21 @@ hb_unicode_funcs_set_general_category_func void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

- - + - - - - - - - +

ufuncs

a Unicode function structure

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -878,28 +881,21 @@ hb_unicode_funcs_set_mirroring_func (void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

- - + - - - - - - - +

ufuncs

a Unicode function structure

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -910,28 +906,21 @@ hb_unicode_funcs_set_script_func (void *user_data, hb_destroy_func_t destroy);
-

Parameters

+

Parameters

- - + - - - - - - - +

ufuncs

a Unicode function structure

 

func

.

[closure user_data][destroy destroy][scope notified]
-

Since: 0.9.2

+

Since 1.0


@@ -942,9 +931,8 @@ hb_unicode_funcs_set_user_data (void *data, hb_destroy_func_t destroy, hb_bool_t replace); -

[skip]

-

Parameters

+

Parameters

@@ -958,7 +946,11 @@ hb_unicode_funcs_set_user_data (
-

Since: 0.9.2

+
+

Returns

+

+
+

Since 1.0


@@ -966,7 +958,12 @@ hb_unicode_funcs_set_user_data (hb_unicode_general_category_t hb_unicode_general_category (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode); -

Since: 0.9.2

+

+

+
+

Returns

+

+

@@ -975,6 +972,12 @@ hb_unicode_general_category ((*hb_unicode_general_category_func_t) (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode, void *user_data); +

+

+
+

Returns

+

+

@@ -982,7 +985,12 @@ hb_unicode_general_category (hb_codepoint_t hb_unicode_mirroring (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode); -

Since: 0.9.2

+

+

+
+

Returns

+

+

@@ -991,6 +999,12 @@ hb_unicode_mirroring ((*hb_unicode_mirroring_func_t) (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode, void *user_data); +

+

+
+

Returns

+

+

@@ -998,7 +1012,12 @@ hb_unicode_mirroring (hb_script_t hb_unicode_script (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode); -

Since: 0.9.2

+

+

+
+

Returns

+

+

@@ -1007,20 +1026,22 @@ hb_unicode_script ((*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs, hb_codepoint_t unicode, void *user_data); +

+

+
+

Returns

+

+

Types and Values

-

HB_UNICODE_MAX_DECOMPOSITION_LEN

-
#define HB_UNICODE_MAX_DECOMPOSITION_LEN (18+1) /* codepoints */
-
-
-
-

enum hb_unicode_combining_class_t

+

+

-

Members

+

Members

@@ -1030,288 +1051,288 @@ hb_unicode_script (

HB_UNICODE_COMBINING_CLASS_NOT_REORDERED

-
- + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +
    

HB_UNICODE_COMBINING_CLASS_OVERLAY

    

HB_UNICODE_COMBINING_CLASS_NUKTA

    

HB_UNICODE_COMBINING_CLASS_KANA_VOICING

    

HB_UNICODE_COMBINING_CLASS_VIRAMA

    

HB_UNICODE_COMBINING_CLASS_CCC10

    

HB_UNICODE_COMBINING_CLASS_CCC11

    

HB_UNICODE_COMBINING_CLASS_CCC12

    

HB_UNICODE_COMBINING_CLASS_CCC13

    

HB_UNICODE_COMBINING_CLASS_CCC14

    

HB_UNICODE_COMBINING_CLASS_CCC15

    

HB_UNICODE_COMBINING_CLASS_CCC16

    

HB_UNICODE_COMBINING_CLASS_CCC17

    

HB_UNICODE_COMBINING_CLASS_CCC18

    

HB_UNICODE_COMBINING_CLASS_CCC19

    

HB_UNICODE_COMBINING_CLASS_CCC20

    

HB_UNICODE_COMBINING_CLASS_CCC21

    

HB_UNICODE_COMBINING_CLASS_CCC22

    

HB_UNICODE_COMBINING_CLASS_CCC23

    

HB_UNICODE_COMBINING_CLASS_CCC24

    

HB_UNICODE_COMBINING_CLASS_CCC25

    

HB_UNICODE_COMBINING_CLASS_CCC26

    

HB_UNICODE_COMBINING_CLASS_CCC27

    

HB_UNICODE_COMBINING_CLASS_CCC28

    

HB_UNICODE_COMBINING_CLASS_CCC29

    

HB_UNICODE_COMBINING_CLASS_CCC30

    

HB_UNICODE_COMBINING_CLASS_CCC31

    

HB_UNICODE_COMBINING_CLASS_CCC32

    

HB_UNICODE_COMBINING_CLASS_CCC33

    

HB_UNICODE_COMBINING_CLASS_CCC34

    

HB_UNICODE_COMBINING_CLASS_CCC35

    

HB_UNICODE_COMBINING_CLASS_CCC36

    

HB_UNICODE_COMBINING_CLASS_CCC84

    

HB_UNICODE_COMBINING_CLASS_CCC91

    

HB_UNICODE_COMBINING_CLASS_CCC103

    

HB_UNICODE_COMBINING_CLASS_CCC107

    

HB_UNICODE_COMBINING_CLASS_CCC118

    

HB_UNICODE_COMBINING_CLASS_CCC122

    

HB_UNICODE_COMBINING_CLASS_CCC129

    

HB_UNICODE_COMBINING_CLASS_CCC130

    

HB_UNICODE_COMBINING_CLASS_CCC133

    

HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT

    

HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW

    

HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE

    

HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT

    

HB_UNICODE_COMBINING_CLASS_BELOW_LEFT

    

HB_UNICODE_COMBINING_CLASS_BELOW

    

HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT

    

HB_UNICODE_COMBINING_CLASS_LEFT

    

HB_UNICODE_COMBINING_CLASS_RIGHT

    

HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT

    

HB_UNICODE_COMBINING_CLASS_ABOVE

    

HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT

    

HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW

    

HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE

    

HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT

    

HB_UNICODE_COMBINING_CLASS_INVALID

    
@@ -1322,12 +1343,16 @@ hb_unicode_script (

hb_unicode_funcs_t

typedef struct hb_unicode_funcs_t hb_unicode_funcs_t;
 
+

+


enum hb_unicode_general_category_t

+

+

-

Members

+

Members

@@ -1337,153 +1362,153 @@ hb_unicode_script (

HB_UNICODE_GENERAL_CATEGORY_CONTROL

-
- + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +
    

HB_UNICODE_GENERAL_CATEGORY_FORMAT

    

HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED

    

HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE

    

HB_UNICODE_GENERAL_CATEGORY_SURROGATE

    

HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER

    

HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER

    

HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER

    

HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER

    

HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER

    

HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK

    

HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK

    

HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK

    

HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER

    

HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER

    

HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER

    

HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION

    

HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION

    

HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION

    

HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION

    

HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION

    

HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION

    

HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION

    

HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL

    

HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL

    

HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL

    

HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL

    

HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR

    

HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR

    

HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR

    
@@ -1492,6 +1517,7 @@ hb_unicode_script ( -
Generated by GTK-Doc V1.24.1
+
+ Generated by GTK-Doc V1.20.1
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-uniscribe.html b/docs/reference/html/harfbuzz-hb-uniscribe.html similarity index 85% rename from docs/html/harfbuzz-hb-uniscribe.html rename to docs/reference/html/harfbuzz-hb-uniscribe.html index 2096fbe..3b9645a 100644 --- a/docs/html/harfbuzz-hb-uniscribe.html +++ b/docs/reference/html/harfbuzz-hb-uniscribe.html @@ -2,13 +2,13 @@ -hb-uniscribe: HarfBuzz Manual - - - +hb-uniscribe + + + - + @@ -18,7 +18,7 @@ Description Home -Up +Up Prev Next @@ -60,6 +60,8 @@

Description

+

+

Functions

@@ -67,12 +69,24 @@

hb_uniscribe_font_get_hfont ()

HFONT
 hb_uniscribe_font_get_hfont (hb_font_t *font);
+

+

+
+

Returns

+

+

hb_uniscribe_font_get_logfontw ()

LOGFONTW *
 hb_uniscribe_font_get_logfontw (hb_font_t *font);
+

+

+
+

Returns

+

+
@@ -80,6 +94,7 @@ hb_uniscribe_font_get_logfontw (
+
+ Generated by GTK-Doc V1.20.1
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-version.html b/docs/reference/html/harfbuzz-hb-version.html similarity index 69% rename from docs/html/harfbuzz-hb-version.html rename to docs/reference/html/harfbuzz-hb-version.html index 28a9346..3438e91 100644 --- a/docs/html/harfbuzz-hb-version.html +++ b/docs/reference/html/harfbuzz-hb-version.html @@ -2,13 +2,13 @@ -hb-version: HarfBuzz Manual - - - - +hb-version + + + + - + @@ -18,8 +18,8 @@ Description Home -Up -Prev +Up +Prev Next
@@ -40,12 +40,6 @@ -#define - -HB_VERSION_ATLEAST() - - - void @@ -54,14 +48,6 @@ - -hb_bool_t - - -hb_version_atleast () - - - const char * @@ -100,23 +86,19 @@

Description

+

+

Functions

-

HB_VERSION_ATLEAST()

-
#define             HB_VERSION_ATLEAST(major,minor,micro)
-
-
-

hb_version ()

void
 hb_version (unsigned int *major,
             unsigned int *minor,
             unsigned int *micro);
-

Returns library version as three integer components.

-

Parameters

+

Parameters

@@ -142,16 +124,7 @@ hb_version (unsigned int *
-

Since: 0.9.2

-
-
-
-

hb_version_atleast ()

-
hb_bool_t
-hb_version_atleast (unsigned int major,
-                    unsigned int minor,
-                    unsigned int micro);
-

Since: 0.9.30

+

Since 1.0


@@ -160,40 +133,50 @@ hb_version_atleast (unsigned int< hb_version_string (void);

Returns library version as a string with three components.

-

Returns

+

Returns

library version string.

+

-

Since: 0.9.2

+

Since 1.0

Types and Values

HB_VERSION_MAJOR

-
#define HB_VERSION_MAJOR 1
+
#define HB_VERSION_MAJOR 0
 
+

+


HB_VERSION_MICRO

-
#define HB_VERSION_MICRO 6
+
#define HB_VERSION_MICRO 40
 
+

+


HB_VERSION_MINOR

-
#define HB_VERSION_MINOR 2
+
#define HB_VERSION_MINOR 9
 
+

+


HB_VERSION_STRING

-
#define HB_VERSION_STRING "1.2.6"
+
#define HB_VERSION_STRING "0.9.40"
 
+

+

+
+ Generated by GTK-Doc V1.20.1
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb.html b/docs/reference/html/harfbuzz-hb.html similarity index 76% rename from docs/html/harfbuzz-hb.html rename to docs/reference/html/harfbuzz-hb.html index ca615fe..0ce86d6 100644 --- a/docs/html/harfbuzz-hb.html +++ b/docs/reference/html/harfbuzz-hb.html @@ -2,13 +2,13 @@ -hb: HarfBuzz Manual - - - - +hb + + + + - + @@ -18,8 +18,8 @@ Description Home -Up -Prev +Up +Prev Next
@@ -33,16 +33,18 @@

Description

+

+

Functions

-

Types and Values

+
+ Generated by GTK-Doc V1.20.1
\ No newline at end of file diff --git a/docs/reference/html/harfbuzz.devhelp2 b/docs/reference/html/harfbuzz.devhelp2 new file mode 100644 index 0000000..10bb40c --- /dev/null +++ b/docs/reference/html/harfbuzz.devhelp2 @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/home.png b/docs/reference/html/home.png similarity index 100% rename from docs/html/home.png rename to docs/reference/html/home.png diff --git a/docs/reference/html/index.html b/docs/reference/html/index.html new file mode 100644 index 0000000..772db71 --- /dev/null +++ b/docs/reference/html/index.html @@ -0,0 +1,105 @@ + + + + +HarfBuzz Reference Manual + + + + + + + +
+
+
+
+

+ for HarfBuzz 0.9.40 +. + +

+
+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/reference/html/index.sgml b/docs/reference/html/index.sgml new file mode 100644 index 0000000..7b469b5 --- /dev/null +++ b/docs/reference/html/index.sgml @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/left-insensitive.png b/docs/reference/html/left-insensitive.png similarity index 100% rename from docs/html/left-insensitive.png rename to docs/reference/html/left-insensitive.png diff --git a/docs/html/left.png b/docs/reference/html/left.png similarity index 100% rename from docs/html/left.png rename to docs/reference/html/left.png diff --git a/docs/html/object-tree.html b/docs/reference/html/object-tree.html similarity index 69% rename from docs/html/object-tree.html rename to docs/reference/html/object-tree.html index 0dff3cc..c4f447b 100644 --- a/docs/html/object-tree.html +++ b/docs/reference/html/object-tree.html @@ -2,20 +2,20 @@ -Object Hierarchy: HarfBuzz Manual - - - +Object Hierarchy + + + - + - + @@ -23,36 +23,37 @@

Object Hierarchy

-    GBoxed
+    GBoxed
     ├── hb_blob_t
-    ├── hb_buffer_t
+    ├── hb_buffer_t
     ├── hb_face_t
-    ├── hb_feature_t
+    ├── hb_feature_t
     ├── hb_font_funcs_t
     ├── hb_font_t
-    ├── hb_glyph_info_t
-    ├── hb_glyph_position_t
-    ├── hb_segment_properties_t
+    ├── hb_glyph_info_t
+    ├── hb_glyph_position_t
+    ├── hb_language_t
+    ├── hb_segment_properties_t
     ├── hb_set_t
     ├── hb_shape_plan_t
     ├── hb_unicode_funcs_t
     ╰── hb_user_data_key_t
-    GEnum
-    ├── hb_buffer_cluster_level_t
-    ├── hb_buffer_content_type_t
-    ├── hb_buffer_serialize_format_t
+    GEnum
+    ├── hb_buffer_content_type_t
+    ├── hb_buffer_serialize_format_t
     ├── hb_direction_t
     ├── hb_memory_mode_t
     ├── hb_ot_layout_glyph_class_t
     ├── hb_script_t
     ├── hb_unicode_combining_class_t
     ╰── hb_unicode_general_category_t
-    GFlags
-    ├── hb_buffer_flags_t
-    ╰── hb_buffer_serialize_flags_t
+    GFlags
+    ├── hb_buffer_flags_t
+    ╰── hb_buffer_serialize_flags_t
 
+
+ Generated by GTK-Doc V1.20.1
\ No newline at end of file diff --git a/docs/html/right-insensitive.png b/docs/reference/html/right-insensitive.png similarity index 100% rename from docs/html/right-insensitive.png rename to docs/reference/html/right-insensitive.png diff --git a/docs/html/right.png b/docs/reference/html/right.png similarity index 100% rename from docs/html/right.png rename to docs/reference/html/right.png diff --git a/docs/html/style.css b/docs/reference/html/style.css similarity index 97% rename from docs/html/style.css rename to docs/reference/html/style.css index 3675420..c141ddd 100644 --- a/docs/html/style.css +++ b/docs/reference/html/style.css @@ -60,7 +60,7 @@ a:hover div.informaltable table { border-collapse: separate; - border-spacing: 1em 0.3em; + border-spacing: 1em 0.5em; border: none; } @@ -148,8 +148,6 @@ div.table table th h4 { color: #555753; - margin-top: 1em; - margin-bottom: 1em; } hr @@ -168,16 +166,17 @@ dl.toc dt padding-bottom: 0.25em; } -dl.toc > dt +dl.toc > dd > dl > dt { padding-top: 0.25em; padding-bottom: 0.25em; - font-weight: bold; } -dl.toc > dl +dl.toc > dt { + padding-top: 1em; padding-bottom: 0.5em; + font-weight: bold; } .parameter @@ -347,9 +346,7 @@ acronym,abbr } @media screen { - /* these have a as a first child, but since there are no parent selectors - * we can't use that. */ - a.footnote + sup a.footnote { position: relative; top: 0em ! important; diff --git a/docs/html/up-insensitive.png b/docs/reference/html/up-insensitive.png similarity index 100% rename from docs/html/up-insensitive.png rename to docs/reference/html/up-insensitive.png diff --git a/docs/html/up.png b/docs/reference/html/up.png similarity index 100% rename from docs/html/up.png rename to docs/reference/html/up.png diff --git a/docs/reference/version.xml b/docs/reference/version.xml new file mode 100644 index 0000000..f81283f --- /dev/null +++ b/docs/reference/version.xml @@ -0,0 +1 @@ +0.9.40 diff --git a/docs/version.xml.in b/docs/reference/version.xml.in similarity index 100% rename from docs/version.xml.in rename to docs/reference/version.xml.in diff --git a/docs/usermanual-buffers-language-script-and-direction.xml b/docs/usermanual-buffers-language-script-and-direction.xml deleted file mode 100644 index 3a26c55..0000000 --- a/docs/usermanual-buffers-language-script-and-direction.xml +++ /dev/null @@ -1,77 +0,0 @@ - - Buffers, language, script and direction - - The input to Harfbuzz is a series of Unicode characters, stored in a - buffer. In this chapter, we'll look at how to set up a buffer with - the text that we want and then customize the properties of the - buffer. - -
- Creating and destroying buffers - - As we saw in our initial example, a buffer is created and - initialized with hb_buffer_create(). This - produces a new, empty buffer object, instantiated with some - default values and ready to accept your Unicode strings. - - - Harfbuzz manages the memory of objects that it creates (such as - buffers), so you don't have to. When you have finished working on - a buffer, you can call hb_buffer_destroy(): - - - hb_buffer_t *buffer = hb_buffer_create(); - ... - hb_buffer_destroy(buffer); - - - This will destroy the object and free its associated memory - - unless some other part of the program holds a reference to this - buffer. If you acquire a Harfbuzz buffer from another subsystem - and want to ensure that it is not garbage collected by someone - else destroying it, you should increase its reference count: - - -void somefunc(hb_buffer_t *buffer) { - buffer = hb_buffer_reference(buffer); - ... - - - And then decrease it once you're done with it: - - - hb_buffer_destroy(buffer); -} - - - To throw away all the data in your buffer and start from scratch, - call hb_buffer_reset(buffer). If you want to - throw away the string in the buffer but keep the options, you can - instead call hb_buffer_clear_contents(buffer). - -
-
- Adding text to the buffer - - Now we have a brand new Harfbuzz buffer. Let's start filling it - with text! From Harfbuzz's perspective, a buffer is just a stream - of Unicode codepoints, but your input string is probably in one of - the standard Unicode character encodings (UTF-8, UTF-16, UTF-32) - -
-
- Setting buffer properties - - -
-
- What about the other scripts? - - -
-
- Customizing Unicode functions - - -
-
\ No newline at end of file diff --git a/docs/usermanual-clusters.xml b/docs/usermanual-clusters.xml deleted file mode 100644 index 8b64bde..0000000 --- a/docs/usermanual-clusters.xml +++ /dev/null @@ -1,304 +0,0 @@ - - - Clusters - - In shaping text, a cluster is a sequence of - code points that needs to be treated as a single, indivisible unit. - - - When you add text to a HB buffer, each character is associated with - a cluster value. This is an arbitrary number as - far as HB is concerned. - - - Most clients will use UTF-8, UTF-16, or UTF-32 indices, but the - actual number does not matter. Moreover, it is not required for the - cluster values to be monotonically increasing, but pretty much all - of HB's tests are performed on monotonically increasing cluster - numbers. Nevertheless, there is no such assumption in the code - itself. With that in mind, let's examine what happens with cluster - values during shaping under each cluster-level. - - - HarfBuzz provides three levels of clustering - support. Level 0 is the default behavior and reproduces the behavior - of the old HarfBuzz library. Level 1 tweaks this behavior slightly - to produce better results, so level 1 clustering is recommended for - code that is not required to implement backward compatibility with - the old HarfBuzz. - - - Level 2 differs significantly in how it treats cluster values. - Levels 0 and 1 both process ligatures and glyph decomposition by - merging clusters; level 2 does not. - - - The conceptual model for what the cluster values mean, in levels 0 - and 1, is this: - - - - - the sequence of cluster values will always remain monotone - - - - - each value represents a single cluster - - - - - each cluster contains one or more glyphs and one or more - characters - - - - - Assuming that initial cluster numbers were monotonically increasing - and distinct, then all adjacent glyphs having the same cluster - number belong to the same cluster, and all characters belong to the - cluster that has the highest number not larger than their initial - cluster number. This will become clearer with an example. - - - - A clustering example for levels 0 and 1 - - Let's say we start with the following character sequence and cluster - values: - - - A,B,C,D,E - 0,1,2,3,4 - - - We then map the characters to glyphs. For simplicity, let's assume - that each character maps to the corresponding, identical-looking - glyph: - - - A,B,C,D,E - 0,1,2,3,4 - - - Now if, for example, B and C - ligate, then the clusters to which they belong "merge". - This merged cluster takes for its cluster number the minimum of all - the cluster numbers of the clusters that went in. In this case, we - get: - - - A,BC,D,E - 0,1 ,3,4 - - - Now let's assume that the BC glyph decomposes - into three components, and D also decomposes into - two. The components each inherit the cluster value of their parent: - - - A,BC0,BC1,BC2,D0,D1,E - 0,1 ,1 ,1 ,3 ,3 ,4 - - - Now if BC2 and D0 ligate, then - their clusters (numbers 1 and 3) merge into - min(1,3) = 1: - - - A,BC0,BC1,BC2D0,D1,E - 0,1 ,1 ,1 ,1 ,4 - - - At this point, cluster 1 means: the character sequence - BCD is represented by glyphs - BC0,BC1,BC2D0,D1 and cannot be broken down any - further. - - - - Reordering in levels 0 and 1 - - Another common operation in the more complex shapers is when things - reorder. In those cases, to maintain monotone clusters, HB merges - the clusters of everything in the reordering sequence. For example, - let's again start with the character sequence: - - - A,B,C,D,E - 0,1,2,3,4 - - - If D is reordered before B, - then the B, C, and - D clusters merge, and we get: - - - A,D,B,C,E - 0,1,1,1,4 - - - This is clearly not ideal, but it is the only sensible way to - maintain monotone indices and retain the true relationship between - glyphs and characters. - - - - The distinction between levels 0 and 1 - - So, the above is pretty much what cluster levels 0 and 1 do. The - only difference between the two is this: in level 0, at the very - beginning of the shaping process, we also merge clusters between - base characters and all Unicode marks (combining or not) following - them. E.g.: - - - A,acute,B - 0,1 ,2 - - - will become: - - - A,acute,B - 0,0 ,2 - - - This is the default behavior. We do it because Windows did it and - old HarfBuzz did it, so this remained the default. But this behavior - makes it impossible to color diacritic marks differently from their - base characters. That's why in level 1 we do not perform this - initial merging step. - - - For clients, level 0 is more convenient if they rely on HarfBuzz - clusters for cursor positioning. But that's wrong anyway: cursor - positions should be determined based on Unicode grapheme boundaries, - NOT shaping clusters. As such, level 1 clusters are preferred. - - - One last note about levels 0 and 1. We currently don't allow a - MultipleSubst lookup to replace a glyph with zero - glyphs (i.e., to delete a glyph). But in some other situations, - glyphs can be deleted. In those cases, if the glyph being deleted is - the last glyph of its cluster, we make sure to merge the cluster - with a neighboring cluster. - - - This is, primarily, to make sure that the starting cluster of the - text always has the cluster index pointing to the start of the text - for the run; more than one client currently relies on this - guarantee. - - - Incidentally, Apple's CoreText does something else to maintain the - same promise: it inserts a glyph with id 65535 at the beginning of - the glyph string if the glyph corresponding to the first character - in the run was deleted. HarfBuzz might do something similar in the - future. - - - - Level 2 - - Level 2 is a different beast from levels 0 and 1. It is simple to - describe, but hard to make sense of. It simply doesn't do any - cluster merging whatsoever. When things ligate or otherwise multiple - glyphs turn into one, the cluster value of the first glyph is - retained. - - - Here are a few examples of why processing cluster values produced at - this level might be tricky: - - - Ligatures with combining marks - - Imagine capital letters are bases and lower case letters are - combining marks. With an input sequence like this: - - - A,a,B,b,C,c - 0,1,2,3,4,5 - - - if A,B,C ligate, then here are the cluster - values one would get under the various levels: - - - level 0: - - - ABC,a,b,c - 0 ,0,0,0 - - - level 1: - - - ABC,a,b,c - 0 ,0,0,5 - - - level 2: - - - ABC,a,b,c - 0 ,1,3,5 - - - Making sense of the last example is the hardest for a client, - because there is nothing in the cluster values to suggest that - B and C ligated with - A. - - - - Reordering - - Another tricky case is when things reorder. Under level 2: - - - A,B,C,D,E - 0,1,2,3,4 - - - Now imagine D moves before - B: - - - A,D,B,C,E - 0,3,1,2,4 - - - Now, if D ligates with B, we - get: - - - A,DB,C,E - 0,3 ,2,4 - - - In a different scenario, A and - B could have ligated - before D reordered; that - would have resulted in: - - - AB,D,C,E - 0 ,3,2,4 - - - There's no way to differentitate between these two scenarios based - on the cluster numbers alone. - - - Another problem appens with ligatures under level 2 if the - direction of the text is forced to opposite of its natural - direction (e.g. left-to-right Arabic). But that's too much of a - corner case to worry about. - - - - diff --git a/docs/usermanual-fonts-and-faces.xml b/docs/usermanual-fonts-and-faces.xml deleted file mode 100644 index 01fcdc9..0000000 --- a/docs/usermanual-fonts-and-faces.xml +++ /dev/null @@ -1,18 +0,0 @@ - - Fonts and faces -
- Using FreeType - - -
-
- Using Harfbuzz's native OpenType implementation - - -
-
- Using your own font functions - - -
-
\ No newline at end of file diff --git a/docs/usermanual-glyph-information.xml b/docs/usermanual-glyph-information.xml deleted file mode 100644 index ca674c0..0000000 --- a/docs/usermanual-glyph-information.xml +++ /dev/null @@ -1,8 +0,0 @@ - - Glyph information - - Names and numbers - - - - \ No newline at end of file diff --git a/docs/usermanual-hello-harfbuzz.xml b/docs/usermanual-hello-harfbuzz.xml deleted file mode 100644 index 34db017..0000000 --- a/docs/usermanual-hello-harfbuzz.xml +++ /dev/null @@ -1,183 +0,0 @@ - - Hello, Harfbuzz - - Here's the simplest Harfbuzz that can possibly work. We will improve - it later. - - - - - Create a buffer and put your text in it. - - - - - #include <hb.h> - hb_buffer_t *buf; - buf = hb_buffer_create(); - hb_buffer_add_utf8(buf, text, strlen(text), 0, strlen(text)); - - - - - Guess the script, language and direction of the buffer. - - - - - hb_buffer_guess_segment_properties(buf); - - - - - Create a face and a font, using FreeType for now. - - - - - #include <hb-ft.h> - FT_New_Face(ft_library, font_path, index, &face) - hb_font_t *font = hb_ft_font_create(face); - - - - - Shape! - - - - - hb_shape(font, buf, NULL, 0); - - - - - Get the glyph and position information. - - - - - hb_glyph_info_t *glyph_info = hb_buffer_get_glyph_infos(buf, &glyph_count); - hb_glyph_position_t *glyph_pos = hb_buffer_get_glyph_positions(buf, &glyph_count); - - - - - Iterate over each glyph. - - - - - for (i = 0; i < glyph_count; ++i) { - glyphid = glyph_info[i].codepoint; - x_offset = glyph_pos[i].x_offset / 64.0; - y_offset = glyph_pos[i].y_offset / 64.0; - x_advance = glyph_pos[i].x_advance / 64.0; - y_advance = glyph_pos[i].y_advance / 64.0; - draw_glyph(glyphid, cursor_x + x_offset, cursor_y + y_offset); - cursor_x += x_advance; - cursor_y += y_advance; - } - - - - - Tidy up. - - - - - hb_buffer_destroy(buf); - hb_font_destroy(hb_ft_font); - -
- What Harfbuzz doesn't do - - The code above will take a UTF8 string, shape it, and give you the - information required to lay it out correctly on a single - horizontal (or vertical) line using the font provided. That is the - extent of Harfbuzz's responsibility. - - - If you are implementing a text layout engine you may have other - responsibilities, that Harfbuzz will not help you with: - - - - - Harfbuzz won't help you with bidirectionality. If you want to - lay out text with mixed Hebrew and English, you will need to - ensure that the buffer provided to Harfbuzz has those - characters in the correct layout order. This will be different - from the logical order in which the Unicode text is stored. In - other words, the user will hit the keys in the following - sequence: - - -A B C [space] ג ב א [space] D E F - - - but will expect to see in the output: - - -ABC אבג DEF - - - This reordering is called bidi processing - ("bidi" is short for bidirectional), and there's an - algorithm as an annex to the Unicode Standard which tells you how - to reorder a string from logical order into presentation order. - Before sending your string to Harfbuzz, you may need to apply the - bidi algorithm to it. Libraries such as ICU and fribidi can do - this for you. - - - - - Harfbuzz won't help you with text that contains different font - properties. For instance, if you have the string "a - huge breakfast", and you expect - "huge" to be italic, you will need to send three - strings to Harfbuzz: a, in your Roman font; - huge using your italic font; and - breakfast using your Roman font again. - Similarly if you change font, font size, script, language or - direction within your string, you will need to shape each run - independently and then output them independently. Harfbuzz - expects to shape a run of characters sharing the same - properties. - - - - - Harfbuzz won't help you with line breaking, hyphenation or - justification. As mentioned above, it lays out the string - along a single line of, notionally, - infinite length. If you want to find out where the potential - word, sentence and line break points are in your text, you - could use the ICU library's break iterator functions. - - - Harfbuzz can tell you how wide a shaped piece of text is, which is - useful input to a justification algorithm, but it knows nothing - about paragraphs, lines or line lengths. Nor will it adjust the - space between words to fit them proportionally into a line. If you - want to layout text in paragraphs, you will probably want to send - each word of your text to Harfbuzz to determine its shaped width - after glyph substitutions, then work out how many words will fit - on a line, and then finally output each word of the line separated - by a space of the correct size to fully justify the paragraph. - - - - - As a layout engine implementor, Harfbuzz will help you with the - interface between your text and your font, and that's something - that you'll need - what you then do with the glyphs that your font - returns is up to you. The example we saw above enough to get us - started using Harfbuzz. Now we are going to use the remainder of - Harfbuzz's API to refine that example and improve our text shaping - capabilities. - -
-
\ No newline at end of file diff --git a/docs/usermanual-install-harfbuzz.xml b/docs/usermanual-install-harfbuzz.xml deleted file mode 100644 index be8ac8d..0000000 --- a/docs/usermanual-install-harfbuzz.xml +++ /dev/null @@ -1,70 +0,0 @@ - - Install Harfbuzz -
- Download - - For tarball releases of HarfBuzz, look - here. - At the same place you will - also find Win32 binary bundles that include libharfbuzz DLL, hb-view.exe, - hb-shape.exe, and all dependencies. - - - The canonical source tree is available - here. - Also available on github. - - - The API that comes with hb.h will - not change incompatibly. Other, peripheral, headers are more likely to go - through minor modifications, but again, will do our best to never change - API in an incompatible way. We will never break the ABI. - - - If you are not sure whether Pango or HarfBuzz is right for you, read - this. - -
-
- Building - - On Linux, install the development packages for FreeType, Cairo, and GLib. - For example, on Ubuntu / Debian, you would do: - -sudo apt-get install gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev - - whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do: - -sudo yum install gcc gcc-c++ freetype-devel glib2-devel cairo-devel - - or using MacPorts: - -sudo port install freetype glib2 cairo - - - - If you are using a tarball, you can now proceed to running - configure and make as with any - other standard package. That should leave you with a shared library in - src/, and a few utility programs including hb-view - and hb-shape under util/. - - - If you are bootstraping from git, you need a few more tools before you - can run autogen.sh for the first time. Namely, - pkg-config and ragel. - Again, on Ubuntu / Debian: - -sudo apt-get install autoconf automake libtool pkg-config ragel gtk-doc-tools - - and on Fedora, RHEL, CentOS: - -sudo yum install autoconf automake libtool pkgconfig ragel gtk-doc - - or using MacPorts: - -sudo port install autoconf automake libtool pkgconfig ragel gtk-doc - - -
-
diff --git a/docs/usermanual-opentype-features.xml b/docs/usermanual-opentype-features.xml deleted file mode 100644 index 470bab8..0000000 --- a/docs/usermanual-opentype-features.xml +++ /dev/null @@ -1,13 +0,0 @@ - - Shaping and shape plans -
- OpenType features - - -
-
- Plans and caching - - -
-
\ No newline at end of file diff --git a/docs/usermanual-what-is-harfbuzz.xml b/docs/usermanual-what-is-harfbuzz.xml deleted file mode 100644 index 3574d75..0000000 --- a/docs/usermanual-what-is-harfbuzz.xml +++ /dev/null @@ -1,115 +0,0 @@ - - What is Harfbuzz? - - Harfbuzz is a text shaping engine. It solves - the problem of selecting and positioning glyphs from a font given a - Unicode string. - -
- Why do I need it? - - Text shaping is an integral part of preparing text for display. It - is a fairly low level operation; Harfbuzz is used directly by - graphic rendering libraries such as Pango, and the layout engines - in Firefox, LibreOffice and Chromium. Unless you are - writing one of these layout engines yourself, - you will probably not need to use Harfbuzz - normally higher level - libraries will turn text into glyphs for you. - - - However, if you are writing a layout engine - or graphics library yourself, you will need to perform text - shaping, and this is where Harfbuzz can help you. Here are some - reasons why you need it: - - - - - OpenType fonts contain a set of glyphs, indexed by glyph ID. - The glyph ID within the font does not necessarily relate to a - Unicode codepoint. For instance, some fonts have the letter - "a" as glyph ID 1. To pull the right glyph out of - the font in order to display it, you need to consult a table - within the font (the "cmap" table) which maps - Unicode codepoints to glyph IDs. Text shaping turns codepoints - into glyph IDs. - - - - - Many OpenType fonts contain ligatures: combinations of - characters which are rendered together. For instance, it's - common for the fi combination to appear in - print as the single ligature "fi". Whether you should - render text as fi or "fi" does not - depend on the input text, but on the capabilities of the font - and the level of ligature application you wish to perform. - Text shaping involves querying the font's ligature tables and - determining what substitutions should be made. - - - - - While ligatures like "fi" are typographic - refinements, some languages require such - substitutions to be made in order to display text correctly. - In Tamil, when the letter "TTA" (ட) letter is - followed by "U" (உ), the combination should appear - as the single glyph "டு". The sequence of Unicode - characters "டஉ" needs to be rendered as a single - glyph from the font - text shaping chooses the correct glyph - from the sequence of characters provided. - - - - - Similarly, each Arabic character has four different variants: - within a font, there will be glyphs for the initial, medial, - final, and isolated forms of each letter. Unicode only encodes - one codepoint per character, and so a Unicode string will not - tell you which glyph to use. Text shaping chooses the correct - form of the letter and returns the correct glyph from the font - that you need to render. - - - - - Other languages have marks and accents which need to be - rendered in certain positions around a base character. For - instance, the Moldovan language has the Cyrillic letter - "zhe" (ж) with a breve accent, like so: ӂ. Some - fonts will contain this character as an individual glyph, - whereas other fonts will not contain a zhe-with-breve glyph - but expect the rendering engine to form the character by - overlaying the two glyphs ж and ˘. Where you should draw the - combining breve depends on the height of the preceding glyph. - Again, for Arabic, the correct positioning of vowel marks - depends on the height of the character on which you are - placing the mark. Text shaping tells you whether you have a - precomposed glyph within your font or if you need to compose a - glyph yourself out of combining marks, and if so, where to - position those marks. - - - - - If this is something that you need to do, then you need a text - shaping engine: you could use Uniscribe if you are using Windows; - you could use CoreText on OS X; or you could use Harfbuzz. In the - rest of this manual, we are going to assume that you are the - implementor of a text layout engine. - -
-
- Why is it called Harfbuzz? - - Harfbuzz began its life as text shaping code within the FreeType - project, (and you will see references to the FreeType authors - within the source code copyright declarations) but was then - abstracted out to its own project. This project is maintained by - Behdad Esfahbod, and named Harfbuzz. Originally, it was a shaping - engine for OpenType fonts - "Harfbuzz" is the Persian - for "open type". - -
-
\ No newline at end of file diff --git a/docs/version.xml b/docs/version.xml deleted file mode 100644 index c04c650..0000000 --- a/docs/version.xml +++ /dev/null @@ -1 +0,0 @@ -1.2.7 diff --git a/ltmain.sh b/ltmain.sh index a356aca..a50a21a 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -1,9 +1,10 @@ +#! /bin/sh -# libtool (GNU libtool) 2.4.2 +# libtool (GNU libtool) 2.4.2.418 +# Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, -# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +# Copyright (C) 1996-2013 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -23,881 +24,2013 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with GNU Libtool; see the file COPYING. If not, a copy -# can be downloaded from http://www.gnu.org/licenses/gpl.html, -# or obtained by writing to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# along with this program. If not, see . -# Usage: $progname [OPTION]... [MODE-ARG]... -# -# Provide generalized library-building support services. -# -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --no-quiet, --no-silent -# print informational messages (default) -# --no-warn don't display warning messages -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print more informational messages than default -# --no-verbose don't print the extra informational messages -# --version print version information -# -h, --help, --help-all print short, long, or detailed help message -# -# MODE must be one of the following: -# -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory -# -# MODE-ARGS vary depending on the MODE. When passed as first option, -# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. -# Try `$progname --help --mode=MODE' for a more detailed description of MODE. -# -# When reporting a bug, please describe a test case to reproduce it and -# include the following information: -# -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1 -# automake: $automake_version -# autoconf: $autoconf_version -# -# Report bugs to . -# GNU libtool home page: . -# General help using GNU software: . PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1" -TIMESTAMP="" -package_revision=1.3337 +VERSION=2.4.2.418 +package_revision=2.4.2.418 -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2013-08-23.20; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} -# NLS nuisances: We save the old values to restore during execute mode. -lt_user_locale= -lt_safe_locale= -for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do - eval "if test \"\${$lt_var+set}\" = set; then - save_$lt_var=\$$lt_var - $lt_var=C - export $lt_var - lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done -LC_ALL=C -LANGUAGE=C -export LANGUAGE LC_ALL -$lt_unset CDPATH +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are still modern systems that have problems with 'echo' mis- +# handling backslashes, among others, so make sure $bs_echo is set to a +# command that correctly interprets backslashes. +# (this code from Autoconf 2.68) + +# Printing a long string crashes Solaris 7 /usr/bin/printf. +bs_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +bs_echo=$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo +bs_echo=$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo$bs_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $bs_echo`" = "X$bs_echo") 2>/dev/null; then + bs_echo='print -r --' + bs_echo_n='print -rn --' +elif (test "X`printf %s $bs_echo`" = "X$bs_echo") 2>/dev/null; then + bs_echo='printf %s\n' + bs_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $bs_echo) 2>/dev/null`" = "X-n $bs_echo"; then + bs_echo_body='eval /usr/ucb/echo -n "$1$nl"' + bs_echo_n='/usr/ucb/echo -n' + else + bs_echo_body='eval expr "X$1" : "X\\(.*\\)"' + bs_echo_n_body='eval + arg=$1; + case $arg in #( + *"$nl"*) + expr "X$arg" : "X\\(.*\\)$nl"; + arg=`expr "X$arg" : ".*$nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$nl" + ' + export bs_echo_n_body + bs_echo_n='sh -c $bs_echo_n_body bs_echo' + fi + export bs_echo_body + bs_echo='sh -c $bs_echo_body bs_echo' +fi -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. : ${CP="cp -f"} -test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +: ${ECHO="$bs_echo"} +: ${EGREP="grep -E"} +: ${FGREP="grep -F"} +: ${GREP="grep"} +: ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} +: ${SED="sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} -: ${Xsed="$SED -e 1s/^X//"} - -# Global variables: -EXIT_SUCCESS=0 -EXIT_FAILURE=1 -EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. -EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. - -exit_status=$EXIT_SUCCESS - -# Make sure IFS has a sensible default -lt_nl=' -' -IFS=" $lt_nl" -dirname="s,/[^/]*$,," -basename="s,^.*/,," -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} # func_dirname may be replaced by extended shell implementation +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "${1}" | $SED "$basename"` -} # func_basename may be replaced by extended shell implementation +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -} # func_dirname_and_basename may be replaced by extended shell implementation +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; - esac -} # func_stripname may be replaced by extended shell implementation +## ----------------- ## +## Global variables. ## +## ----------------- ## -# These SED scripts presuppose an absolute path with a trailing slash. -pathcar='s,^/\([^/]*\).*$,\1,' -pathcdr='s,^/[^/]*,,' -removedotparts=':dotsl - s@/\./@/@g - t dotsl - s,/\.$,/,' -collapseslashes='s@/\{1,\}@/@g' -finalslash='s,/*$,/,' +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. -# func_normal_abspath PATH -# Remove doubled-up and trailing slashes, "." path components, -# and cancel out any ".." path components in PATH after making -# it an absolute path. -# value returned in "$func_normal_abspath_result" -func_normal_abspath () -{ - # Start from root dir and reassemble the path. - func_normal_abspath_result= - func_normal_abspath_tpath=$1 - func_normal_abspath_altnamespace= - case $func_normal_abspath_tpath in - "") - # Empty path, that just means $cwd. - func_stripname '' '/' "`pwd`" - func_normal_abspath_result=$func_stripname_result - return - ;; - # The next three entries are used to spot a run of precisely - # two leading slashes without using negated character classes; - # we take advantage of case's first-match behaviour. - ///*) - # Unusual form of absolute path, do nothing. - ;; - //*) - # Not necessarily an ordinary path; POSIX reserves leading '//' - # and for example Cygwin uses it to access remote file shares - # over CIFS/SMB, so we conserve a leading double slash if found. - func_normal_abspath_altnamespace=/ - ;; - /*) - # Absolute path, do nothing. - ;; - *) - # Relative path, prepend $cwd. - func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath - ;; - esac - # Cancel out all the simple stuff to save iterations. We also want - # the path to end with a slash for ease of parsing, so make sure - # there is one (and only one) here. - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` - while :; do - # Processed it all yet? - if test "$func_normal_abspath_tpath" = / ; then - # If we ascended to the root using ".." the result may be empty now. - if test -z "$func_normal_abspath_result" ; then - func_normal_abspath_result=/ - fi - break - fi - func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcar"` - func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ - -e "$pathcdr"` - # Figure out what to do with it - case $func_normal_abspath_tcomponent in - "") - # Trailing empty path component, ignore it. - ;; - ..) - # Parent dir; strip last assembled component from result. - func_dirname "$func_normal_abspath_result" - func_normal_abspath_result=$func_dirname_result - ;; - *) - # Actual path component, append it. - func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent - ;; - esac - done - # Restore leading double-slash if one was found on entry. - func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result -} +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. -# func_relative_path SRCDIR DSTDIR -# generates a relative path from SRCDIR to DSTDIR, with a trailing -# slash if non-empty, suitable for immediately appending a filename -# without needing to append a separator. -# value returned in "$func_relative_path_result" -func_relative_path () -{ - func_relative_path_result= - func_normal_abspath "$1" - func_relative_path_tlibdir=$func_normal_abspath_result - func_normal_abspath "$2" - func_relative_path_tbindir=$func_normal_abspath_result - - # Ascend the tree starting from libdir - while :; do - # check if we have found a prefix of bindir - case $func_relative_path_tbindir in - $func_relative_path_tlibdir) - # found an exact match - func_relative_path_tcancelled= - break - ;; - $func_relative_path_tlibdir*) - # found a matching prefix - func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" - func_relative_path_tcancelled=$func_stripname_result - if test -z "$func_relative_path_result"; then - func_relative_path_result=. - fi - break - ;; - *) - func_dirname $func_relative_path_tlibdir - func_relative_path_tlibdir=${func_dirname_result} - if test "x$func_relative_path_tlibdir" = x ; then - # Have to descend all the way to the root! - func_relative_path_result=../$func_relative_path_result - func_relative_path_tcancelled=$func_relative_path_tbindir - break - fi - func_relative_path_result=../$func_relative_path_result - ;; - esac - done +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: - # Now calculate path; take care to avoid doubling-up slashes. - func_stripname '' '/' "$func_relative_path_result" - func_relative_path_result=$func_stripname_result - func_stripname '/' '/' "$func_relative_path_tcancelled" - if test "x$func_stripname_result" != x ; then - func_relative_path_result=${func_relative_path_result}/${func_stripname_result} - fi +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS - # Normalisation. If bindir is libdir, return empty string, - # else relative path ending with a slash; either way, target - # file name can be directly appended. - if test ! -z "$func_relative_path_result"; then - func_stripname './' '' "$func_relative_path_result/" - func_relative_path_result=$func_stripname_result - fi -} +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 -# The name of this program: -func_dirname_and_basename "$progpath" -progname=$func_basename_result +# The name of this program. +progname=`$bs_echo "$progpath" |$SED "$sed_basename"` -# Make sure we have an absolute path for reexecution: +# Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) - progdir=$func_dirname_result + progdir=`$bs_echo "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` - progpath="$progdir/$progname" + progpath=$progdir/$progname ;; *) - save_IFS="$IFS" + _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do - IFS="$save_IFS" + IFS=$_G_IFS test -x "$progdir/$progname" && break done - IFS="$save_IFS" + IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` - progpath="$progdir/$progname" + progpath=$progdir/$progname ;; esac -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed="${SED}"' -e 1s/^X//' -sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' -# Sed substitution that turns a string into a regex matching for the -# string literally. -sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' +## ----------------- ## +## Standard options. ## +## ----------------- ## -# Sed substitution that converts a w32 file name or path -# which contains forward slashes, into one that contains -# (escaped) backslashes. A very naive implementation. -lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - -# Re-`\' parameter expansions in output of double_quote_subst that were -# `\'-ed in input to the same. If an odd number of `\' preceded a '$' -# in input to double_quote_subst, that '$' was protected from expansion. -# Since each input `\' is now two `\'s, look for any number of runs of -# four `\'s followed by two `\'s and then a '$'. `\' that '$'. -bs='\\' -bs2='\\\\' -bs4='\\\\\\\\' -dollar='\$' -sed_double_backslash="\ - s/$bs4/&\\ -/g - s/^$bs2$dollar/$bs&/ - s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g - s/\n//g" +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. -# Standard options: opt_dry_run=false -opt_help=false opt_quiet=false opt_verbose=false -opt_warning=: -# func_echo arg... -# Echo program name prefixed message, along with the current mode -# name if it has been set yet. -func_echo () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }$*" -} +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= -# func_verbose arg... -# Echo program name prefixed message in verbose mode only. -func_verbose () -{ - $opt_verbose && func_echo ${1+"$@"} +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue - # A bug in bash halts the script if the last line of a function - # fails when set -e is in force, so we need another command to - # work around that: - : -} +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "$*" -} -# func_error arg... -# Echo program name prefixed message to standard error. -func_error () -{ - $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 -} +## -------------------- ## +## Resource management. ## +## -------------------- ## -# func_warning arg... -# Echo program name prefixed warning message to standard error. -func_warning () +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () { - $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } - # bash bug again: - : + require_term_colors=: } -# func_fatal_error arg... -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () { - func_error ${1+"$@"} - exit $EXIT_FAILURE + $debug_cmd + + eval _G_current_value='`$bs_echo $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac } -# func_fatal_help arg... -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $bs_echo "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$bs_echo "$_G_tc" | sed "$sed_make_literal_regex"` + _G_indent=`$bs_echo "$_G_indent" | sed "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | sed 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $bs_echo "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + ver1=$1 + ver2=$2 + + # Split on '.' and compare each component. + i=1 + while :; do + p1=`echo "$ver1" |cut -d. -f$i` + p2=`echo "$ver2" |cut -d. -f$i` + if test ! "$p1"; then + echo "$1 $2" + break + elif test ! "$p2"; then + echo "$2 $1" + break + elif test ! "$p1" = "$p2"; then + if test "$p1" -gt "$p2" 2>/dev/null; then # numeric comparison + echo "$2 $1" + elif test "$p2" -gt "$p1" 2>/dev/null; then # numeric comparison + echo "$1 $2" + else # numeric, then lexicographic comparison + lp=`printf "$p1\n$p2\n" |sort -n |tail -n1` + if test "$lp" = "$p2"; then + echo "$1 $2" + else + echo "$2 $1" + fi + fi + break + fi + i=`expr $i + 1` + done +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2012-10-21.11; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2013 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$bs_echo "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () { - func_error ${1+"$@"} - func_fatal_error "$help" + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result } -help="Try \`$progname --help' for more information." ## default -# func_grep expression filename -# Check whether EXPRESSION matches any line of FILENAME, without output. -func_grep () +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () { - $GREP "$1" "$2" >/dev/null 2>&1 + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result } -# func_mkdir_p directory-path -# Make sure the entire path to DIRECTORY-PATH is available. -func_mkdir_p () +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () { - my_directory_path="$1" - my_dir_list= + $debug_cmd - if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + func_parse_options_result= - # Protect directory names starting with `-' - case $my_directory_path in - -*) my_directory_path="./$my_directory_path" ;; - esac + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} - # While some portion of DIR does not yet exist... - while test ! -d "$my_directory_path"; do - # ...make a list in topmost first order. Use a colon delimited - # list incase some portion of path contains whitespace. - my_dir_list="$my_directory_path:$my_dir_list" + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift - # If the last portion added has no slash in it, the list is done - case $my_directory_path in */*) ;; *) break ;; esac + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break - # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` - done - my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; - save_mkdir_p_IFS="$IFS"; IFS=':' - for my_dir in $my_dir_list; do - IFS="$save_mkdir_p_IFS" - # mkdir can fail with a `File exist' error if two processes - # try to create one of the directories concurrently. Don't - # stop in that case! - $MKDIR "$my_dir" 2>/dev/null || : - done - IFS="$save_mkdir_p_IFS" + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done - # Bail out if we (or some other process) failed to create a directory. - test -d "$my_directory_path" || \ - func_fatal_error "Failed to create \`$1'" - fi + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result } -# func_mktempdir [string] -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. -func_mktempdir () +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () { - my_template="${TMPDIR-/tmp}/${1-$progname}" + $debug_cmd - if test "$opt_dry_run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" - # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + func_run_hooks func_validate_options ${1+"$@"} - if test ! -d "$my_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE - save_mktempdir_umask=`umask` - umask 0077 - $MKDIR "$my_tmpdir" - umask $save_mktempdir_umask - fi + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} - # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || \ - func_fatal_error "cannot create temporary directory \`$my_tmpdir'" - fi - $ECHO "$my_tmpdir" -} +## ------------------## +## Helper functions. ## +## ------------------## -# func_quote_for_eval arg -# Aesthetically quote ARG to be evaled later. -# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT -# is double-quoted, suitable for a subsequent eval, whereas -# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters -# which are still active within double quotes backslashified. -func_quote_for_eval () +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () { - case $1 in - *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; - *) - func_quote_for_eval_unquoted_result="$1" ;; - esac + $debug_cmd - case $func_quote_for_eval_unquoted_result in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and and variable - # expansion for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" - ;; - *) - func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" - esac + eval \$bs_echo \""Usage: $usage"\" + eval \$bs_echo \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE } -# func_quote_for_expand arg -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () { - case $1 in - *[\\\`\"]*) - my_arg=`$ECHO "$1" | $SED \ - -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) - my_arg="$1" ;; - esac - - case $my_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - my_arg="\"$my_arg\"" - ;; - esac + $debug_cmd - func_quote_for_expand_result="$my_arg" + func_usage_message + $bs_echo "$long_help_message" + exit 0 } -# func_show_eval cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. -func_show_eval () +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () { - my_cmd="$1" - my_fail_exp="${2-:}" - - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } + $debug_cmd - if ${opt_dry_run-false}; then :; else - eval "$my_cmd" - my_status=$? - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi + func_error "Missing argument for '$1'." + exit_cmd=exit } -# func_show_eval_locale cmd [fail_exp] -# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is -# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP -# is given, then evaluate it. Use the saved locale for evaluation. -func_show_eval_locale () -{ - my_cmd="$1" - my_fail_exp="${2-:}" +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd - if ${opt_dry_run-false}; then :; else - eval "$lt_user_locale - $my_cmd" - my_status=$? - eval "$lt_safe_locale" - if test "$my_status" -eq 0; then :; else - eval "(exit $my_status); $my_fail_exp" - fi - fi -} + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd -# func_tr_sh -# Turn $1 into a string suitable for a shell variable name. -# Result is stored in $func_tr_sh_result. All characters -# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -# if $1 begins with a digit, a '_' is prepended as well. -func_tr_sh () -{ - case $1 in - [0-9]* | *[!a-zA-Z0-9_]*) - func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` - ;; - * ) - func_tr_sh_result=$1 - ;; - esac -} + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals -# func_version -# Echo version message to standard output and exit. -func_version () -{ - $opt_debug +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt - $SED -n '/(C)/!b go - :more - /\./!{ - N - s/\n# / / - b more - } - :go - /^# '$PROGRAM' (GNU /,/# warranty; / { - s/^# // - s/^# *$// - s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ - p - }' < "$progpath" - exit $? -} # func_usage +# ---------- # Echo short help message to standard output and exit. func_usage () { - $opt_debug + $debug_cmd - $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ - p - }' < "$progpath" - echo - $ECHO "run \`$progname --help | more' for full usage" - exit $? + func_usage_message + $bs_echo "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 } -# func_help [NOEXIT] -# Echo long help message to standard output and exit, -# unless 'noexit' is passed as argument. -func_help () + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () { - $opt_debug - - $SED -n '/^# Usage:/,/# Report bugs to/ { - :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* - s*\$host*'"$host"'* - s*\$SHELL*'"$SHELL"'* - s*\$LTCC*'"$LTCC"'* - s*\$LTCFLAGS*'"$LTCFLAGS"'* - s*\$LD*'"$LD"'* - s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ - p - d - } - /^# .* home page:/b print - /^# General help using/b print - ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret - fi + $debug_cmd + + eval \$bs_echo \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$bs_echo \""$usage_message"\" } -# func_missing_arg argname -# Echo program name prefixed message to standard error and set global -# exit_cmd. -func_missing_arg () + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () { - $opt_debug + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n '/^##/q + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" - func_error "missing argument for $1." - exit_cmd=exit + exit $? } -# func_split_short_opt shortopt -# Set func_split_short_opt_name and func_split_short_opt_arg shell -# variables after splitting SHORTOPT after the 2nd character. -func_split_short_opt () -{ - my_sed_short_opt='1s/^\(..\).*$/\1/;q' - my_sed_short_rest='1s/^..\(.*\)$/\1/;q' +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: - func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` - func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -} # func_split_short_opt may be replaced by extended shell implementation +# Set a version string. +scriptversion='(GNU libtool) 2.4.2.418' -# func_split_long_opt longopt -# Set func_split_long_opt_name and func_split_long_opt_arg shell -# variables after splitting LONGOPT at the `=' sign. -func_split_long_opt () +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () { - my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' - my_sed_long_arg='1s/^--[^=]*=//' + $debug_cmd - func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` - func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -} # func_split_long_opt may be replaced by extended shell implementation + _G_message=$* -exit_cmd=: + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $bs_echo "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" -magic="%%%MAGIC variable%%%" -magic_exe="%%%MAGIC EXE variable%%%" +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=$long_help_message" -# Global variables. -nonopt= -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 +MODE must be one of the following: -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "${1}=\$${1}\${2}" -} # func_append may be replaced by extended shell implementation +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. -# func_append_quoted var value -# Quote VALUE and append to the end of shell variable VAR, separated -# by a space. -func_append_quoted () -{ - func_quote_for_eval "${2}" - eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -} # func_append_quoted may be replaced by extended shell implementation +When reporting a bug, please describe a test case to reproduce it and +include the following information: + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname (GNU libtool) 2.4.2.418 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "${@}"` -} # func_arith may be replaced by extended shell implementation +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -} # func_len may be replaced by extended shell implementation +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -} # func_lo2o may be replaced by extended shell implementation +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -} # func_xform may be replaced by extended shell implementation + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi -# func_fatal_configuration arg... +# func_fatal_configuration ARG... +# ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { - func_error ${1+"$@"} - func_error "See the $PACKAGE documentation for more information." - func_fatal_error "Fatal configuration error." + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." } # func_config +# ----------- # Display the configuration for all the tags in this script. func_config () { @@ -915,17 +2048,19 @@ func_config () exit $? } + # func_features +# ------------- # Display the features supported by this script. func_features () { echo "host: $host" - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi - if test "$build_old_libs" = yes; then + if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" @@ -934,298 +2069,325 @@ func_features () exit $? } -# func_enable_tag tagname + +# func_enable_tag TAGNAME +# ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { - # Global variable: - tagname="$1" + # Global variable: + tagname=$1 - re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" - re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" - sed_extractcf="/$re_begincf/,/$re_endcf/p" + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p - # Validate tagname. - case $tagname in - *[!-_A-Za-z0-9,/]*) - func_fatal_error "invalid tag name: $tagname" - ;; - esac + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac - # Don't test for the "default" C tag, as we know it's - # there but not specially marked. - case $tagname in - CC) ;; + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; *) - if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then - taglist="$taglist $tagname" - - # Evaluate the configuration. Be careful to quote the path - # and the sed script, to avoid splitting on whitespace, but - # also don't use non-portable quotes within backquotes within - # quotes we have to do it in 2 steps: - extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` - eval "$extractedcf" - else - func_error "ignoring unknown tag $tagname" - fi - ;; - esac + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac } + # func_check_version_match +# ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF - else - cat >&2 <<_LT_EOF + else + cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF - fi - else - cat >&2 <<_LT_EOF + fi + else + cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF - fi + fi - exit $EXIT_MISMATCH - fi + exit $EXIT_MISMATCH + fi } -# Shorthand for --mode=foo, only valid as the first argument -case $1 in -clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; -compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; -execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; -finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; -install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; -link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; -uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; -esac +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + nonopt= + preserve_args= -# Option defaults: -opt_debug=: -opt_dry_run=false -opt_config=false -opt_preserve_dup_deps=false -opt_features=false -opt_finish=false -opt_help=false -opt_help_all=false -opt_silent=: -opt_warning=: -opt_verbose=: -opt_silent=false -opt_verbose=false + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep -# Parse options once, thoroughly. This comes as soon as possible in the -# script to make things like `--version' happen as quickly as we can. +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () { - # this just eases exit handling - while test $# -gt 0; do - opt="$1" - shift - case $opt in - --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" - $opt_debug - ;; - --dry-run|--dryrun|-n) - opt_dry_run=: - ;; - --config) - opt_config=: -func_config - ;; - --dlopen|-dlopen) - optarg="$1" - opt_dlopen="${opt_dlopen+$opt_dlopen -}$optarg" - shift - ;; - --preserve-dup-deps) - opt_preserve_dup_deps=: - ;; - --features) - opt_features=: -func_features - ;; - --finish) - opt_finish=: -set dummy --mode finish ${1+"$@"}; shift - ;; - --help) - opt_help=: - ;; - --help-all) - opt_help_all=: -opt_help=': help-all' - ;; - --mode) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_mode="$optarg" -case $optarg in - # Valid mode arguments: - clean|compile|execute|finish|install|link|relink|uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; -esac - shift - ;; - --no-silent|--no-quiet) - opt_silent=false -func_append preserve_args " $opt" - ;; - --no-warning|--no-warn) - opt_warning=false -func_append preserve_args " $opt" - ;; - --no-verbose) - opt_verbose=false -func_append preserve_args " $opt" - ;; - --silent|--quiet) - opt_silent=: -func_append preserve_args " $opt" - opt_verbose=false - ;; - --verbose|-v) - opt_verbose=: -func_append preserve_args " $opt" -opt_silent=false - ;; - --tag) - test $# = 0 && func_missing_arg $opt && break - optarg="$1" - opt_tag="$optarg" -func_append preserve_args " $opt $optarg" -func_enable_tag "$optarg" - shift - ;; - - -\?|-h) func_usage ;; - --help) func_help ;; - --version) func_version ;; - - # Separate optargs to long options: - --*=*) - func_split_long_opt "$opt" - set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - - # Separate non-argument short options: - -\?*|-h*|-n*|-v*) - func_split_short_opt "$opt" - set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} - shift - ;; - - --) break ;; - -*) func_fatal_help "unrecognized option \`$opt'" ;; - *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done + $debug_cmd - # Validate options: + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done - # save first non-option argument - if test "$#" -gt 0; then - nonopt="$opt" - shift - fi - # preserve --debug - test "$opt_debug" = : || func_append preserve_args " --debug" + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) - # don't eliminate duplications in $postdeps and $predeps - opt_duplicate_compiler_generated_deps=: - ;; - *) - opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - $opt_help || { - # Sanity checks first: - func_check_version_match - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift fi - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" - # Only execute mode is allowed to have -dlopen flags. - if test -n "$opt_dlopen" && test "$opt_mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$opt_mode' for more information." - } + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } - # Bail if the options were screwed - $exit_cmd $EXIT_FAILURE + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result } +func_add_hook func_validate_options libtool_validate_options +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + ## ----------- ## ## Main. ## ## ----------- ## +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + # func_lalib_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. +# True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () @@ -1236,12 +2398,12 @@ func_lalib_p () } # func_lalib_unsafe_p file -# True iff FILE is a libtool `.la' library or `.lo' object file. +# True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be -# fatal anyway. Works if `file' does not exist. +# fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no @@ -1249,13 +2411,13 @@ func_lalib_unsafe_p () for lalib_p_l in 1 2 3 4 do read lalib_p_line - case "$lalib_p_line" in + case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi - test "$lalib_p" = yes + test yes = "$lalib_p" } # func_ltwrapper_script_p file @@ -1289,7 +2451,7 @@ func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file @@ -1308,11 +2470,13 @@ func_ltwrapper_p () # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { - $opt_debug + $debug_cmd + save_ifs=$IFS; IFS='~' for cmd in $1; do - IFS=$save_ifs + IFS=$sp$nl eval cmd=\"$cmd\" + IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs @@ -1324,10 +2488,11 @@ func_execute_cmds () # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing -# `FILE.' does not work on cygwin managed mounts. +# 'FILE.' does not work on cygwin managed mounts. func_source () { - $opt_debug + $debug_cmd + case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; @@ -1354,10 +2519,10 @@ func_resolve_sysroot () # store the result into func_replace_sysroot_result. func_replace_sysroot () { - case "$lt_sysroot:$1" in + case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" - func_replace_sysroot_result="=$func_stripname_result" + func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. @@ -1374,7 +2539,8 @@ func_replace_sysroot () # arg is usually of the form 'gcc ...' func_infer_tag () { - $opt_debug + $debug_cmd + if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do @@ -1393,7 +2559,7 @@ func_infer_tag () for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. @@ -1418,7 +2584,7 @@ func_infer_tag () # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with \`--tag'" + func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi @@ -1434,15 +2600,15 @@ func_infer_tag () # but don't create it if we're doing a dry run. func_write_libtool_object () { - write_libobj=${1} - if test "$build_libtool_libs" = yes; then - write_lobj=\'${2}\' + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' else write_lobj=none fi - if test "$build_old_libs" = yes; then - write_oldobj=\'${3}\' + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' else write_oldobj=none fi @@ -1450,7 +2616,7 @@ func_write_libtool_object () $opt_dry_run || { cat >${write_libobj}T </dev/null` - if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | - $SED -e "$lt_sed_naive_backslashify"` + $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi @@ -1514,18 +2681,19 @@ func_convert_core_file_wine_to_w32 () # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { - $opt_debug + $debug_cmd + # unfortunately, winepath doesn't convert paths, only file names - func_convert_core_path_wine_to_w32_result="" + func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" - if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then - func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi @@ -1554,7 +2722,8 @@ func_convert_core_path_wine_to_w32 () # environment variable; do not put it in $PATH. func_cygpath () { - $opt_debug + $debug_cmd + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then @@ -1563,7 +2732,7 @@ func_cygpath () fi else func_cygpath_result= - func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath @@ -1574,10 +2743,11 @@ func_cygpath () # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { - $opt_debug + $debug_cmd + # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | - $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 @@ -1588,13 +2758,14 @@ func_convert_core_msys_to_w32 () # func_to_host_file_result to ARG1). func_convert_file_check () { - $opt_debug - if test -z "$2" && test -n "$1" ; then + $debug_cmd + + if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" - func_error " \`$1'" + func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: - func_to_host_file_result="$1" + func_to_host_file_result=$1 fi } # end func_convert_file_check @@ -1606,10 +2777,11 @@ func_convert_file_check () # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { - $opt_debug + $debug_cmd + if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" - func_error " \`$3'" + func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. @@ -1618,7 +2790,7 @@ func_convert_path_check () func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else - func_to_host_path_result="$3" + func_to_host_path_result=$3 fi fi } @@ -1630,9 +2802,10 @@ func_convert_path_check () # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { - $opt_debug + $debug_cmd + case $4 in - $1 ) func_to_host_path_result="$3$func_to_host_path_result" + $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in @@ -1646,7 +2819,7 @@ func_convert_path_front_back_pathsep () ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## -# invoked via `$to_host_file_cmd ARG' +# invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. @@ -1657,7 +2830,8 @@ func_convert_path_front_back_pathsep () # in func_to_host_file_result. func_to_host_file () { - $opt_debug + $debug_cmd + $to_host_file_cmd "$1" } # end func_to_host_file @@ -1669,7 +2843,8 @@ func_to_host_file () # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { - $opt_debug + $debug_cmd + case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 @@ -1687,7 +2862,7 @@ func_to_tool_file () # Copy ARG to func_to_host_file_result. func_convert_file_noop () { - func_to_host_file_result="$1" + func_to_host_file_result=$1 } # end func_convert_file_noop @@ -1698,11 +2873,12 @@ func_convert_file_noop () # func_to_host_file_result. func_convert_file_msys_to_w32 () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" - func_to_host_file_result="$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1714,8 +2890,9 @@ func_convert_file_msys_to_w32 () # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. @@ -1731,11 +2908,12 @@ func_convert_file_cygwin_to_w32 () # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" - func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1747,12 +2925,13 @@ func_convert_file_nix_to_w32 () # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" - func_to_host_file_result="$func_cygpath_result" + func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1765,13 +2944,14 @@ func_convert_file_msys_to_cygwin () # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { - $opt_debug - func_to_host_file_result="$1" + $debug_cmd + + func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" - func_to_host_file_result="$func_cygpath_result" + func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } @@ -1781,7 +2961,7 @@ func_convert_file_nix_to_cygwin () ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# -# invoked via `$to_host_path_cmd ARG' +# invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. @@ -1805,10 +2985,11 @@ func_convert_file_nix_to_cygwin () to_host_path_cmd= func_init_to_host_path_cmd () { - $opt_debug + $debug_cmd + if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" - to_host_path_cmd="func_convert_path_${func_stripname_result}" + to_host_path_cmd=func_convert_path_$func_stripname_result fi } @@ -1818,7 +2999,8 @@ func_init_to_host_path_cmd () # in func_to_host_path_result. func_to_host_path () { - $opt_debug + $debug_cmd + func_init_to_host_path_cmd $to_host_path_cmd "$1" } @@ -1829,7 +3011,7 @@ func_to_host_path () # Copy ARG to func_to_host_path_result. func_convert_path_noop () { - func_to_host_path_result="$1" + func_to_host_path_result=$1 } # end func_convert_path_noop @@ -1840,8 +3022,9 @@ func_convert_path_noop () # func_to_host_path_result. func_convert_path_msys_to_w32 () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; @@ -1849,7 +3032,7 @@ func_convert_path_msys_to_w32 () func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" @@ -1863,8 +3046,9 @@ func_convert_path_msys_to_w32 () # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" @@ -1883,14 +3067,15 @@ func_convert_path_cygwin_to_w32 () # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" - func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" @@ -1904,15 +3089,16 @@ func_convert_path_nix_to_w32 () # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" - func_to_host_path_result="$func_cygpath_result" + func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" @@ -1927,8 +3113,9 @@ func_convert_path_msys_to_cygwin () # func_to_host_file_result. func_convert_path_nix_to_cygwin () { - $opt_debug - func_to_host_path_result="$1" + $debug_cmd + + func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them @@ -1937,7 +3124,7 @@ func_convert_path_nix_to_cygwin () func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" - func_to_host_path_result="$func_cygpath_result" + func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" @@ -1946,13 +3133,31 @@ func_convert_path_nix_to_cygwin () # end func_convert_path_nix_to_cygwin +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + # func_mode_compile arg... func_mode_compile () { - $opt_debug + $debug_cmd + # Get the compilation command and the source file. base_compile= - srcfile="$nonopt" # always keep a non-empty value in "srcfile" + srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal @@ -1965,12 +3170,12 @@ func_mode_compile () case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile - lastarg="$arg" + lastarg=$arg arg_mode=normal ;; target ) - libobj="$arg" + libobj=$arg arg_mode=normal continue ;; @@ -1980,7 +3185,7 @@ func_mode_compile () case $arg in -o) test -n "$libobj" && \ - func_fatal_error "you cannot specify \`-o' more than once" + func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; @@ -2009,12 +3214,12 @@ func_mode_compile () func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= - save_ifs="$IFS"; IFS=',' + save_ifs=$IFS; IFS=, for arg in $args; do - IFS="$save_ifs" + IFS=$save_ifs func_append_quoted lastarg "$arg" done - IFS="$save_ifs" + IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result @@ -2027,8 +3232,8 @@ func_mode_compile () # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # - lastarg="$srcfile" - srcfile="$arg" + lastarg=$srcfile + srcfile=$arg ;; esac # case $arg ;; @@ -2043,13 +3248,13 @@ func_mode_compile () func_fatal_error "you must specify an argument for -Xcompile" ;; target) - func_fatal_error "you must specify a target with \`-o'" + func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" - libobj="$func_basename_result" + libobj=$func_basename_result } ;; esac @@ -2069,7 +3274,7 @@ func_mode_compile () case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) - func_fatal_error "cannot determine name of library object from \`$libobj'" + func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac @@ -2078,8 +3283,8 @@ func_mode_compile () for arg in $later; do case $arg in -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; @@ -2105,17 +3310,17 @@ func_mode_compile () func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && func_warning "libobj name \`$libobj' may not contain shell special characters." + && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" - objname="$func_basename_result" - xdir="$func_dirname_result" - lobj=${xdir}$objdir/$objname + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. - if test "$build_old_libs" = yes; then + if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" @@ -2127,16 +3332,16 @@ func_mode_compile () pic_mode=default ;; esac - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} - lockfile="$output_obj.lock" + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock else output_obj= need_locks=no @@ -2145,12 +3350,12 @@ func_mode_compile () # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then + if test yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done - elif test "$need_locks" = warn; then + elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: @@ -2158,7 +3363,7 @@ func_mode_compile () This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you +your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." @@ -2180,11 +3385,11 @@ compiler." qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile - if test "$pic_mode" != no; then + if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code @@ -2201,7 +3406,7 @@ compiler." func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' - if test "$need_locks" = warn && + if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: @@ -2212,7 +3417,7 @@ $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you +your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." @@ -2228,20 +3433,20 @@ compiler." fi # Allow error messages only from the first compilation. - if test "$suppress_opt" = yes; then + if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - if test "$pic_mode" != yes; then + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi - if test "$compiler_c_o" = yes; then + if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi @@ -2250,7 +3455,7 @@ compiler." func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - if test "$need_locks" = warn && + if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: @@ -2261,7 +3466,7 @@ $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you +your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." @@ -2281,7 +3486,7 @@ compiler." func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked - if test "$need_locks" != no; then + if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi @@ -2291,7 +3496,7 @@ compiler." } $opt_help || { - test "$opt_mode" = compile && func_mode_compile ${1+"$@"} + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () @@ -2311,7 +3516,7 @@ func_mode_help () Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated @@ -2330,16 +3535,16 @@ This mode accepts the following additional options: -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler -COMPILE-COMMAND is a command to be used in creating a \`standard' object file +COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." ;; execute) @@ -2352,7 +3557,7 @@ This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path -This mode sets the library path environment variable according to \`-dlopen' +This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated @@ -2371,7 +3576,7 @@ Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." +the '--dry-run' option if you just want to see what would be executed." ;; install) @@ -2381,7 +3586,7 @@ the \`--dry-run' option if you just want to see what would be executed." Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. +either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: @@ -2407,7 +3612,7 @@ The following components of LINK-COMMAND are treated specially: -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE @@ -2441,20 +3646,20 @@ The following components of LINK-COMMAND are treated specially: -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) -All other options (arguments beginning with \`-') are ignored. +All other options (arguments beginning with '-') are ignored. -Every other argument is treated as a filename. Files ending in \`.la' are +Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; @@ -2465,7 +3670,7 @@ is created, otherwise an executable program is created." Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. @@ -2473,17 +3678,17 @@ Otherwise, only FILE itself is deleted using RM." ;; *) - func_fatal_help "invalid operation mode \`$opt_mode'" + func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo - $ECHO "Try \`$progname --help' for more information about other modes." + $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then - if test "$opt_help" = :; then + if test : = "$opt_help"; then func_mode_help else { @@ -2516,16 +3721,17 @@ fi # func_mode_execute arg... func_mode_execute () { - $opt_debug + $debug_cmd + # The first argument is the command name. - cmd="$nonopt" + cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ - || func_fatal_help "\`$file' is not a file" + || func_fatal_help "'$file' is not a file" dir= case $file in @@ -2535,7 +3741,7 @@ func_mode_execute () # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" + || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= @@ -2546,18 +3752,18 @@ func_mode_execute () if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ - func_warning "\`$file' was not linked with \`-export-dynamic'" + func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." - dir="$func_dirname_result" + dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; @@ -2565,18 +3771,18 @@ func_mode_execute () *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." - dir="$func_dirname_result" + dir=$func_dirname_result ;; *) - func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" + test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then @@ -2588,7 +3794,7 @@ func_mode_execute () # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. - libtool_execute_magic="$magic" + libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= @@ -2601,12 +3807,12 @@ func_mode_execute () if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. - file="$progdir/$program" + file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. - file="$progdir/$program" + file=$progdir/$program fi ;; esac @@ -2614,7 +3820,15 @@ func_mode_execute () func_append_quoted args "$file" done - if test "X$opt_dry_run" = Xfalse; then + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" @@ -2631,25 +3845,18 @@ func_mode_execute () done # Now prepare to actually exec the command. - exec_cmd="\$cmd$args" - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - echo "export $shlibpath_var" - fi - $ECHO "$cmd$args" - exit $EXIT_SUCCESS + exec_cmd=\$cmd$args fi } -test "$opt_mode" = execute && func_mode_execute ${1+"$@"} +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { - $opt_debug + $debug_cmd + libs= libdirs= admincmds= @@ -2663,11 +3870,11 @@ func_mode_finish () if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else - func_warning "\`$opt' is not a valid libtool archive" + func_warning "'$opt' is not a valid libtool archive" fi else - func_fatal_error "invalid argument \`$opt'" + func_fatal_error "invalid argument '$opt'" fi done @@ -2682,12 +3889,12 @@ func_mode_finish () # Remove sysroot references if $opt_dry_run; then for lib in $libs; do - echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do - sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + sed -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done @@ -2712,7 +3919,7 @@ func_mode_finish () fi # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS + $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" @@ -2723,27 +3930,27 @@ func_mode_finish () echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" - $ECHO " - use the \`$flag' linker flag" + $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo @@ -2762,18 +3969,20 @@ func_mode_finish () exit $EXIT_SUCCESS } -test "$opt_mode" = finish && func_mode_finish ${1+"$@"} +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { - $opt_debug + $debug_cmd + # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. - case $nonopt in *shtool*) :;; *) false;; esac; then + case $nonopt in *shtool*) :;; *) false;; esac + then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " @@ -2800,7 +4009,7 @@ func_mode_install () opts= prev= install_type= - isdir=no + isdir=false stripme= no_mode=: for arg @@ -2813,7 +4022,7 @@ func_mode_install () fi case $arg in - -d) isdir=yes ;; + -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg @@ -2831,7 +4040,7 @@ func_mode_install () *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then - if test "x$prev" = x-m && test -n "$install_override_mode"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi @@ -2856,7 +4065,7 @@ func_mode_install () func_fatal_help "you must specify an install program" test -n "$prev" && \ - func_fatal_help "the \`$prev' option requires an argument" + func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else @@ -2878,19 +4087,19 @@ func_mode_install () dest=$func_stripname_result # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." - destdir="$func_dirname_result" - destname="$func_basename_result" + destdir=$func_dirname_result + destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ - func_fatal_help "\`$dest' is not a directory" + func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; @@ -2899,7 +4108,7 @@ func_mode_install () case $file in *.lo) ;; *) - func_fatal_help "\`$destdir' must be an absolute directory name" + func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done @@ -2908,7 +4117,7 @@ func_mode_install () # This variable tells wrapper scripts just to set variables rather # than running their programs. - libtool_install_magic="$magic" + libtool_install_magic=$magic staticlibs= future_libdirs= @@ -2928,7 +4137,7 @@ func_mode_install () # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" + || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= @@ -2950,7 +4159,7 @@ func_mode_install () fi func_dirname "$file" "/" "" - dir="$func_dirname_result" + dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then @@ -2964,7 +4173,7 @@ func_mode_install () # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. @@ -2973,29 +4182,29 @@ func_mode_install () relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi - func_warning "relinking \`$file'" + func_warning "relinking '$file'" func_show_eval "$relink_command" \ - 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then - realname="$1" + realname=$1 shift - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T + srcname=$realname + test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' - tstripme="$stripme" + tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) - tstripme="" + tstripme= ;; esac ;; @@ -3006,7 +4215,7 @@ func_mode_install () if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. - # Try `ln -sf' first, because the `ln' binary might depend on + # Try 'ln -sf' first, because the 'ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname @@ -3017,14 +4226,14 @@ func_mode_install () fi # Do each command in the postinstall commands. - lib="$destdir/$realname" + lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" - name="$func_basename_result" - instname="$dir/$name"i + name=$func_basename_result + instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. @@ -3036,11 +4245,11 @@ func_mode_install () # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then - destfile="$destdir/$destname" + destfile=$destdir/$destname else func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" + destfile=$func_basename_result + destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. @@ -3050,11 +4259,11 @@ func_mode_install () staticdest=$func_lo2o_result ;; *.$objext) - staticdest="$destfile" + staticdest=$destfile destfile= ;; *) - func_fatal_help "cannot copy a libtool object to \`$destfile'" + func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac @@ -3063,7 +4272,7 @@ func_mode_install () func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. - if test "$build_old_libs" = yes; then + if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result @@ -3075,23 +4284,23 @@ func_mode_install () *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then - destfile="$destdir/$destname" + destfile=$destdir/$destname else func_basename "$file" - destfile="$func_basename_result" - destfile="$destdir/$destfile" + destfile=$func_basename_result + destfile=$destdir/$destfile fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install - stripped_ext="" + stripped_ext= case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result - stripped_ext=".exe" + stripped_ext=.exe fi ;; esac @@ -3119,19 +4328,19 @@ func_mode_install () # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ - func_fatal_error "invalid libtool wrapper script \`$wrapper'" + func_fatal_error "invalid libtool wrapper script '$wrapper'" - finalize=yes + finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi - libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then - func_warning "\`$lib' has not been installed in \`$libdir'" - finalize=no + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false fi done @@ -3139,29 +4348,29 @@ func_mode_install () func_source "$wrapper" outputname= - if test "$fast_install" = no && test -n "$relink_command"; then + if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { - if test "$finalize" = yes; then + if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" - file="$func_basename_result" - outputname="$tmpdir/$file" + file=$func_basename_result + outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` - $opt_silent || { + $opt_quiet || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else - func_error "error: relink \`$file' with the above command before installing it" + func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi - file="$outputname" + file=$outputname else - func_warning "cannot relink \`$file'" + func_warning "cannot relink '$file'" fi } else @@ -3198,10 +4407,10 @@ func_mode_install () for file in $staticlibs; do func_basename "$file" - name="$func_basename_result" + name=$func_basename_result # Set up the ranlib parameters. - oldlib="$destdir/$name" + oldlib=$destdir/$name func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result @@ -3216,18 +4425,18 @@ func_mode_install () done test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" + func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } -test "$opt_mode" = install && func_mode_install ${1+"$@"} +test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p @@ -3235,16 +4444,17 @@ test "$opt_mode" = install && func_mode_install ${1+"$@"} # a dlpreopen symbol table. func_generate_dlsyms () { - $opt_debug - my_outputname="$1" - my_originator="$2" - my_pic_p="${3-no}" + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then - my_dlsyms="${my_outputname}S.c" + my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi @@ -3255,7 +4465,7 @@ func_generate_dlsyms () "") ;; *.c) # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${my_outputname}.nm" + nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" @@ -3263,34 +4473,36 @@ func_generate_dlsyms () func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ -/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ -/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif -#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST -#elif defined(__osf__) +#elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + /* External symbol declarations for the compiler. */\ " - if test "$dlself" = yes; then - func_verbose "generating symbol list for \`$output'" + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" @@ -3298,7 +4510,7 @@ extern \"C\" { progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 - func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done @@ -3318,10 +4530,10 @@ extern \"C\" { # Prepare the list of exported symbols if test -z "$export_symbols"; then - export_symbols="$output_objdir/$outputname.exp" + export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols - eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' @@ -3331,7 +4543,7 @@ extern \"C\" { } else $opt_dry_run || { - eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in @@ -3345,22 +4557,22 @@ extern \"C\" { fi for dlprefile in $dlprefiles; do - func_verbose "extracting global C symbols from \`$dlprefile'" + func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" - name="$func_basename_result" + name=$func_basename_result case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" - dlprefile_dlbasename="" + dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` - if test -n "$dlprefile_dlname" ; then + if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" - dlprefile_dlbasename="$func_basename_result" + dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" @@ -3368,7 +4580,7 @@ extern \"C\" { fi fi $opt_dry_run || { - if test -n "$dlprefile_dlbasename" ; then + if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" @@ -3424,6 +4636,11 @@ extern \"C\" { echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ @@ -3432,11 +4649,30 @@ typedef struct { void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist -lt_${my_prefix}_LTX_preloaded_symbols[]; +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = -{\ - { \"$my_originator\", (void *) 0 }," +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi case $need_lib_prefix in no) @@ -3478,9 +4714,7 @@ static const void *lt_preloaded_setup() { *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) - if test "X$my_pic_p" != Xno; then - pic_flag_for_symtable=" $pic_flag" - fi + $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; @@ -3497,10 +4731,10 @@ static const void *lt_preloaded_setup() { func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. - func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. - symfileobj="$output_objdir/${my_outputname}S.$objext" + symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then @@ -3518,7 +4752,7 @@ static const void *lt_preloaded_setup() { esac ;; *) - func_fatal_error "unknown suffix for \`$my_dlsyms'" + func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else @@ -3532,6 +4766,32 @@ static const void *lt_preloaded_setup() { fi } +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + # func_win32_libid arg # return the library type of file 'arg' # @@ -3541,8 +4801,9 @@ static const void *lt_preloaded_setup() { # Despite the name, also deal with 64 bit binaries. func_win32_libid () { - $opt_debug - win32_libid_type="unknown" + $debug_cmd + + win32_libid_type=unknown win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import @@ -3552,16 +4813,29 @@ func_win32_libid () # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then - func_to_tool_file "$1" func_convert_file_msys_to_w32 - win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' 1,100{ / I /{ - s,.*,import, + s|.*|import| p q } }'` + ;; + esac case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; @@ -3593,7 +4867,8 @@ func_win32_libid () # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { - $opt_debug + $debug_cmd + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } @@ -3610,7 +4885,8 @@ func_cygming_dll_for_implib () # specified import library. func_cygming_dll_for_implib_fallback_core () { - $opt_debug + $debug_cmd + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ @@ -3646,8 +4922,8 @@ func_cygming_dll_for_implib_fallback_core () /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the - # archive which possess that section. Heuristic: eliminate - # all those which have a first or second character that is + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually @@ -3658,30 +4934,6 @@ func_cygming_dll_for_implib_fallback_core () $SED -e '/^\./d;/^.\./d;q' } -# func_cygming_gnu_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is a GNU/binutils-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_gnu_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` - test -n "$func_cygming_gnu_implib_tmp" -} - -# func_cygming_ms_implib_p ARG -# This predicate returns with zero status (TRUE) if -# ARG is an MS-style import library. Returns -# with nonzero status (FALSE) otherwise. -func_cygming_ms_implib_p () -{ - $opt_debug - func_to_tool_file "$1" func_convert_file_msys_to_w32 - func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` - test -n "$func_cygming_ms_implib_tmp" -} - # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified @@ -3695,16 +4947,17 @@ func_cygming_ms_implib_p () # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { - $opt_debug - if func_cygming_gnu_implib_p "$1" ; then + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` - elif func_cygming_ms_implib_p "$1" ; then + elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown - sharedlib_from_linklib_result="" + sharedlib_from_linklib_result= fi } @@ -3712,10 +4965,11 @@ func_cygming_dll_for_implib_fallback () # func_extract_an_archive dir oldlib func_extract_an_archive () { - $opt_debug - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - if test "$lock_old_archive_extraction" = yes; then + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" @@ -3724,7 +4978,7 @@ func_extract_an_archive () fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' - if test "$lock_old_archive_extraction" = yes; then + if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then @@ -3738,22 +4992,23 @@ func_extract_an_archive () # func_extract_archives gentop oldlib ... func_extract_archives () { - $opt_debug - my_gentop="$1"; shift + $debug_cmd + + my_gentop=$1; shift my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" - my_xlib="$func_basename_result" + my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in @@ -3765,7 +5020,7 @@ func_extract_archives () esac done extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" @@ -3778,19 +5033,20 @@ func_extract_archives () cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` - darwin_base_archive=`basename "$darwin_archive"` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" cd "$darwin_curdir" - $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` @@ -3815,7 +5071,7 @@ func_extract_archives () my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done - func_extract_archives_result="$my_oldobjs" + func_extract_archives_result=$my_oldobjs } @@ -3830,7 +5086,7 @@ func_extract_archives () # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is +# will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () @@ -3841,7 +5097,7 @@ func_emit_wrapper () #! $SHELL # $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. @@ -3898,9 +5154,9 @@ _LTECHO_EOF' # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ which is used only on +# /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" -# (application programs are unlikely to have options which match +# (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and @@ -3933,7 +5189,7 @@ func_parse_lt_options () # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then - echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } @@ -3944,7 +5200,7 @@ func_lt_dump_args () lt_dump_args_N=1; for lt_arg do - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } @@ -3958,7 +5214,7 @@ func_exec_program_core () *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} @@ -3968,7 +5224,7 @@ func_exec_program_core () *) $ECHO "\ if test -n \"\$lt_option_debug\"; then - \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} @@ -4043,13 +5299,13 @@ func_exec_program () test -n \"\$absdir\" && thisdir=\"\$absdir\" " - if test "$fast_install" = yes; then + if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" @@ -4101,7 +5357,7 @@ func_exec_program () fi # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" @@ -4121,7 +5377,7 @@ func_exec_program () fi else # The program doesn't exist. - \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 @@ -4140,7 +5396,7 @@ func_emit_cwrapperexe_src () cat < #include +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + /* declarations of non-ANSI functions */ -#if defined(__MINGW32__) +#if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif -#elif defined(__CYGWIN__) +#elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif -/* #elif defined (other platforms) ... */ +/* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ -#if defined(_MSC_VER) +#if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC -# ifndef _INTPTR_T_DEFINED -# define _INTPTR_T_DEFINED -# define intptr_t int -# endif -#elif defined(__MINGW32__) +#elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv -#elif defined(__CYGWIN__) +#elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" -/* #elif defined (other platforms) ... */ +/* #elif defined other platforms ... */ #endif -#if defined(PATH_MAX) +#if defined PATH_MAX # define LT_PATHMAX PATH_MAX -#elif defined(MAXPATHLEN) +#elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 @@ -4234,8 +5488,8 @@ int setenv (const char *, const char *, int); # define PATH_SEPARATOR ':' #endif -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 @@ -4268,10 +5522,10 @@ int setenv (const char *, const char *, int); #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ + if (stale) { free (stale); stale = 0; } \ } while (0) -#if defined(LT_DEBUGWRAPPER) +#if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; @@ -4304,7 +5558,7 @@ volatile const char * MAGIC_EXE = "$magic_exe"; const char * LIB_PATH_VARNAME = "$shlibpath_var"; EOF - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then func_to_host_path "$temp_rpath" cat < 0) && IS_PATH_SEPARATOR (new_value[len-1])) + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { - new_value[len-1] = '\0'; + new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); @@ -5082,7 +6336,8 @@ EOF # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { - $opt_debug + $debug_cmd + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; @@ -5092,17 +6347,18 @@ func_win32_import_lib_p () # func_mode_link arg... func_mode_link () { - $opt_debug + $debug_cmd + case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out - # which system we are compiling for in order to pass an extra + # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying - # to make a dll which has undefined symbols, in which case not + # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. @@ -5149,7 +6405,7 @@ func_mode_link () non_pic_objects= precious_files_regex= prefer_static_libs=no - preload=no + preload=false prev= prevarg= release= @@ -5161,7 +6417,7 @@ func_mode_link () vinfo= vinfo_number=no weak_libs= - single_module="${wl}-single_module" + single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. @@ -5169,15 +6425,15 @@ func_mode_link () do case $arg in -shared) - test "$build_libtool_libs" != yes && \ - func_fatal_configuration "can not build a shared library" + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then @@ -5210,7 +6466,7 @@ func_mode_link () # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do - arg="$1" + arg=$1 shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result @@ -5227,21 +6483,21 @@ func_mode_link () case $prev in bindir) - bindir="$arg" + bindir=$arg prev= continue ;; dlfiles|dlprefiles) - if test "$preload" = no; then + $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" - preload=yes - fi + preload=: + } case $arg in *.la | *.lo) ;; # We handle these cases below. force) - if test "$dlself" = no; then + if test no = "$dlself"; then dlself=needless export_dynamic=yes fi @@ -5249,9 +6505,9 @@ func_mode_link () continue ;; self) - if test "$prev" = dlprefiles; then + if test dlprefiles = "$prev"; then dlself=yes - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless @@ -5261,7 +6517,7 @@ func_mode_link () continue ;; *) - if test "$prev" = dlfiles; then + if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" @@ -5272,14 +6528,14 @@ func_mode_link () esac ;; expsyms) - export_symbols="$arg" + export_symbols=$arg test -f "$arg" \ - || func_fatal_error "symbol file \`$arg' does not exist" + || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) - export_symbols_regex="$arg" + export_symbols_regex=$arg prev= continue ;; @@ -5297,7 +6553,13 @@ func_mode_link () continue ;; inst_prefix) - inst_prefix_dir="$arg" + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. prev= continue ;; @@ -5321,21 +6583,21 @@ func_mode_link () if test -z "$pic_object" || test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result - if test "$pic_object" != none; then + if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" + pic_object=$xdir$pic_object - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue @@ -5346,7 +6608,7 @@ func_mode_link () fi # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then + if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= @@ -5354,23 +6616,23 @@ func_mode_link () # A PIC object. func_append libobjs " $pic_object" - arg="$pic_object" + arg=$pic_object fi # Non-PIC object. - if test "$non_pic_object" != none; then + if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" + non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" + non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else @@ -5378,7 +6640,7 @@ func_mode_link () if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result @@ -5386,24 +6648,24 @@ func_mode_link () func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else - func_fatal_error "\`$arg' is not a valid libtool object" + func_fatal_error "'$arg' is not a valid libtool object" fi fi done else - func_fatal_error "link input file \`$arg' does not exist" + func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) - precious_files_regex="$arg" + precious_files_regex=$arg prev= continue ;; release) - release="-$arg" + release=-$arg prev= continue ;; @@ -5415,7 +6677,7 @@ func_mode_link () func_fatal_error "only absolute run-paths are allowed" ;; esac - if test "$prev" = rpath; then + if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; @@ -5430,7 +6692,7 @@ func_mode_link () continue ;; shrext) - shrext_cmds="$arg" + shrext_cmds=$arg prev= continue ;; @@ -5470,7 +6732,7 @@ func_mode_link () esac fi # test -n "$prev" - prevarg="$arg" + prevarg=$arg case $arg in -all-static) @@ -5484,7 +6746,7 @@ func_mode_link () -allow-undefined) # FIXME: remove this flag sometime in the future. - func_fatal_error "\`-allow-undefined' must not be used because it is the default" + func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) @@ -5516,7 +6778,7 @@ func_mode_link () if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi - if test "X$arg" = "X-export-symbols"; then + if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex @@ -5550,9 +6812,9 @@ func_mode_link () func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" + func_fatal_error "require no space between '-L' and '$1'" else - func_fatal_error "need path for \`-L' option" + func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" @@ -5563,8 +6825,8 @@ func_mode_link () *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ - func_fatal_error "cannot determine absolute directory name of \`$dir'" - dir="$absdir" + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir ;; esac case "$deplibs " in @@ -5599,7 +6861,7 @@ func_mode_link () ;; -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) @@ -5607,11 +6869,11 @@ func_mode_link () ;; *-*-os2*) # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc due to us having libc/libc_r. - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework @@ -5620,16 +6882,16 @@ func_mode_link () ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue + test X-lc = "X$arg" && continue ;; esac - elif test "X$arg" = "X-lc_r"; then + elif test X-lc_r = "X$arg"; then case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc_r directly, use -pthread flag. continue ;; @@ -5639,6 +6901,11 @@ func_mode_link () continue ;; + -mllvm) + prev=mllvm + continue + ;; + -module) module=yes continue @@ -5668,7 +6935,7 @@ func_mode_link () ;; -multi_module) - single_module="${wl}-multi_module" + single_module=$wl-multi_module continue ;; @@ -5682,8 +6949,8 @@ func_mode_link () *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. - func_warning "\`-no-install' is ignored for $host" - func_warning "assuming \`-no-fast-install' instead" + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; @@ -5788,14 +7055,14 @@ func_mode_link () func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= - save_ifs="$IFS"; IFS=',' + save_ifs=$IFS; IFS=, for flag in $args; do - IFS="$save_ifs" + IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done - IFS="$save_ifs" + IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; @@ -5804,15 +7071,15 @@ func_mode_link () func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= - save_ifs="$IFS"; IFS=',' + save_ifs=$IFS; IFS=, for flag in $args; do - IFS="$save_ifs" + IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done - IFS="$save_ifs" + IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; @@ -5835,7 +7102,7 @@ func_mode_link () # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result ;; # Flags to be passed through unchanged, with rationale: @@ -5850,12 +7117,13 @@ func_mode_link () # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support - # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -stdlib=* select c++ std lib with clang -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ - -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-stdlib=*) func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" @@ -5865,7 +7133,7 @@ func_mode_link () # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result ;; *.$objext) @@ -5886,21 +7154,21 @@ func_mode_link () if test -z "$pic_object" || test -z "$non_pic_object" || - test "$pic_object" = none && - test "$non_pic_object" = none; then - func_fatal_error "cannot find name of object for \`$arg'" + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result - if test "$pic_object" != none; then + test none = "$pic_object" || { # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" + pic_object=$xdir$pic_object - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue @@ -5911,7 +7179,7 @@ func_mode_link () fi # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then + if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= @@ -5919,23 +7187,23 @@ func_mode_link () # A PIC object. func_append libobjs " $pic_object" - arg="$pic_object" - fi + arg=$pic_object + } # Non-PIC object. - if test "$non_pic_object" != none; then + if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" + non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" + non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else @@ -5943,7 +7211,7 @@ func_mode_link () if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" - xdir="$func_dirname_result" + xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result @@ -5951,7 +7219,7 @@ func_mode_link () func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else - func_fatal_error "\`$arg' is not a valid libtool object" + func_fatal_error "'$arg' is not a valid libtool object" fi fi ;; @@ -5967,11 +7235,11 @@ func_mode_link () # A libtool-controlled library. func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then + if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= - elif test "$prev" = dlprefiles; then + elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= @@ -5986,7 +7254,7 @@ func_mode_link () # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result ;; esac # arg @@ -5998,9 +7266,9 @@ func_mode_link () done # argument parsing loop test -n "$prev" && \ - func_fatal_help "the \`$prevarg' option requires an argument" + func_fatal_help "the '$prevarg' option requires an argument" - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" @@ -6009,12 +7277,12 @@ func_mode_link () oldlibs= # calculate the name of the file, without its directory func_basename "$output" - outputname="$func_basename_result" - libobjs_save="$libobjs" + outputname=$func_basename_result + libobjs_save=$libobjs if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi @@ -6022,7 +7290,7 @@ func_mode_link () eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" + output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. @@ -6045,7 +7313,7 @@ func_mode_link () # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do - if $opt_preserve_dup_deps ; then + if $opt_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac @@ -6053,7 +7321,7 @@ func_mode_link () func_append libs " $deplib" done - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps @@ -6085,7 +7353,7 @@ func_mode_link () case $file in *.la) ;; *) - func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ;; esac done @@ -6093,7 +7361,7 @@ func_mode_link () prog) compile_deplibs= finalize_deplibs= - alldeplibs=no + alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" @@ -6105,32 +7373,29 @@ func_mode_link () for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... - if test "$linkmode,$pass" = "lib,link"; then + if test lib,link = "$linkmode,$pass"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done - deplibs="$tmp_deplibs" + deplibs=$tmp_deplibs fi - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan"; then - libs="$deplibs" + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs deplibs= fi - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then case $pass in - dlopen) libs="$dlfiles" ;; - dlpreopen) libs="$dlprefiles" ;; - link) - libs="$deplibs %DEPLIBS%" - test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" - ;; + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi - if test "$linkmode,$pass" = "lib,dlpreopen"; then + if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs @@ -6151,26 +7416,26 @@ func_mode_link () esac done done - libs="$dlprefiles" + libs=$dlprefiles fi - if test "$pass" = dlopen; then + if test dlopen = "$pass"; then # Collect dlpreopened libraries - save_deplibs="$deplibs" + save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= - found=no + found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then + if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; @@ -6180,13 +7445,13 @@ func_mode_link () continue ;; -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - func_warning "\`-l' is ignored for archives/objects" + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" @@ -6194,31 +7459,22 @@ func_mode_link () for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library - lib="$searchdir/lib${name}${search_ext}" + lib=$searchdir/lib$name$search_ext if test -f "$lib"; then - if test "$search_ext" = ".la"; then - found=yes + if test .la = "$search_ext"; then + found=: else - found=no + found=false fi break 2 fi done done - if test "$found" != yes; then - # deplib doesn't seem to be a libtool library - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" - fi - continue - else # deplib is a libtool library + if $found; then + # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then @@ -6226,19 +7482,19 @@ func_mode_link () old_library= func_source "$lib" for l in $old_library $library_names; do - ll="$l" + ll=$l done - if test "X$ll" = "X$old_library" ; then # only static version available - found=no + if test "X$ll" = "X$old_library"; then # only static version available + found=false func_dirname "$lib" "" "." - ladir="$func_dirname_result" + ladir=$func_dirname_result lib=$ladir/$old_library - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi @@ -6247,15 +7503,25 @@ func_mode_link () *) ;; esac fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue fi ;; # -l *.ltframework) - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" - if test "$linkmode" = lib ; then + if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; @@ -6268,18 +7534,18 @@ func_mode_link () case $linkmode in lib) deplibs="$deplib $deplibs" - test "$pass" = conv && continue + test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) - if test "$pass" = conv; then + if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi - if test "$pass" = scan; then + if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" @@ -6290,13 +7556,13 @@ func_mode_link () func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) - func_warning "\`-L' is ignored for archives/objects" + func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) - if test "$pass" = link; then + if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result @@ -6314,7 +7580,7 @@ func_mode_link () lib=$func_resolve_sysroot_result ;; *.$libext) - if test "$pass" = conv; then + if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi @@ -6325,21 +7591,26 @@ func_mode_link () case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) - valid_a_lib=no + valid_a_lib=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes + valid_a_lib=: fi ;; pass_all) - valid_a_lib=yes + valid_a_lib=: ;; esac - if test "$valid_a_lib" != yes; then + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" @@ -6347,18 +7618,13 @@ func_mode_link () echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." - else - echo - $ECHO "*** Warning: Linking the shared library $output against the" - $ECHO "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) - if test "$pass" != link; then + if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" @@ -6369,10 +7635,10 @@ func_mode_link () esac # linkmode ;; # *.$libext *.lo | *.$objext) - if test "$pass" = conv; then + if test conv = "$pass"; then deplibs="$deplib $deplibs" - elif test "$linkmode" = prog; then - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" @@ -6385,22 +7651,20 @@ func_mode_link () continue ;; %DEPLIBS%) - alldeplibs=yes + alldeplibs=: continue ;; esac # case $deplib - if test "$found" = yes || test -f "$lib"; then : - else - func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" - fi + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ - || func_fatal_error "\`$lib' is not a valid libtool archive" + || func_fatal_error "'$lib' is not a valid libtool archive" func_dirname "$lib" "" "." - ladir="$func_dirname_result" + ladir=$func_dirname_result dlname= dlopen= @@ -6430,36 +7694,36 @@ func_mode_link () done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi - if test "$pass" = conv; then + if test conv = "$pass"; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then - func_fatal_error "cannot find name of link library for \`$lib'" + func_fatal_error "cannot find name of link library for '$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done continue fi # $pass = conv @@ -6467,26 +7731,26 @@ func_mode_link () # Get the name of the library we link against. linklib= if test -n "$old_library" && - { test "$prefer_static_libs" = yes || - test "$prefer_static_libs,$installed" = "built,no"; }; then + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do - linklib="$l" + linklib=$l done fi if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" + func_fatal_error "cannot find name of link library for '$lib'" fi # This library was specified with -dlopen. - if test "$pass" = dlopen; then - if test -z "$libdir"; then - func_fatal_error "cannot -dlopen a convenience library: \`$lib'" - fi + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || - test "$dlopen_support" != yes || - test "$build_libtool_libs" = no; then + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't @@ -6500,40 +7764,40 @@ func_mode_link () # We need an absolute path. case $ladir in - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then - func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "cannot determine absolute directory name of '$ladir'" func_warning "passing it literally to the linker, although it might fail" - abs_ladir="$ladir" + abs_ladir=$ladir fi ;; esac func_basename "$lib" - laname="$func_basename_result" + laname=$func_basename_result # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then + if test yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir else - dir="$lt_sysroot$libdir" - absdir="$lt_sysroot$libdir" + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + test yes = "$hardcode_automatic" && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" + dir=$ladir + absdir=$abs_ladir # Remove this search path later func_append notinst_path " $abs_ladir" else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir # Remove this search path later func_append notinst_path " $abs_ladir" fi @@ -6542,11 +7806,11 @@ func_mode_link () name=$func_stripname_result # This library was specified with -dlpreopen. - if test "$pass" = dlpreopen; then - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi - case "$host" in + case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both @@ -6590,9 +7854,9 @@ func_mode_link () if test -z "$libdir"; then # Link the convenience library - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" - elif test "$linkmode,$pass" = "prog,link"; then + elif test prog,link = "$linkmode,$pass"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else @@ -6602,14 +7866,14 @@ func_mode_link () fi - if test "$linkmode" = prog && test "$pass" != link; then + if test prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" - linkalldeplibs=no - if test "$link_all_deplibs" != no || test -z "$library_names" || - test "$build_libtool_libs" = no; then - linkalldeplibs=yes + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: fi tmp_libs= @@ -6621,14 +7885,14 @@ func_mode_link () ;; esac # Need to link against all dependency_libs? - if test "$linkalldeplibs" = yes; then + if $linkalldeplibs; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi - if $opt_preserve_dup_deps ; then + if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac @@ -6638,15 +7902,15 @@ func_mode_link () continue fi # $linkmode = prog... - if test "$linkmode,$pass" = "prog,link"; then + if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && - { { test "$prefer_static_libs" = no || - test "$prefer_static_libs,$installed" = "built,yes"; } || + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || test -z "$old_library"; }; then # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in + case $temp_rpath: in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac @@ -6675,9 +7939,9 @@ func_mode_link () esac fi # $linkmode,$pass = prog,link... - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && test -n "$library_names"; }; }; then # We only need to search for static libraries continue @@ -6686,11 +7950,11 @@ func_mode_link () link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes; then + if test built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && - { test "$use_static_libs" = no || test -z "$old_library"; }; then + { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded @@ -6698,7 +7962,7 @@ func_mode_link () need_relink=no ;; *) - if test "$installed" = no; then + if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi @@ -6708,24 +7972,24 @@ func_mode_link () # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! - dlopenmodule="" + dlopenmodule= for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then - dlopenmodule="$dlpremoduletest" + dlopenmodule=$dlpremoduletest break fi done - if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi - if test "$linkmode" = lib && - test "$hardcode_into_libs" = yes; then + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. @@ -6753,43 +8017,43 @@ func_mode_link () # figure out the soname set dummy $library_names shift - realname="$1" + realname=$1 shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then - soname="$dlname" + soname=$dlname elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result - versuffix="-$major" + versuffix=-$major ;; esac eval soname=\"$soname_spec\" else - soname="$realname" + soname=$realname fi # Make a new name for the extract_expsyms_cmds to use - soroot="$soname" + soroot=$soname func_basename "$soroot" - soname="$func_basename_result" + soname=$func_basename_result func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else - func_verbose "extracting exported symbol list from \`$soname'" + func_verbose "extracting exported symbol list from '$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else - func_verbose "generating import library for \`$soname'" + func_verbose "generating import library for '$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library @@ -6797,58 +8061,58 @@ func_mode_link () linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" - if test "$linkmode" = prog || test "$opt_mode" != relink; then + if test prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) - if test "$hardcode_direct" = no; then - add="$dir/$linklib" + if test no = "$hardcode_direct"; then + add=$dir/$linklib case $host in - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) add_dir="-L$dir" ;; + *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* ) - # if the lib is a (non-dlopened) module then we can not + # if the lib is a (non-dlopened) module then we cannot # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | - $GREP ": [^:]* bundle" >/dev/null ; then + $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" - if test -z "$old_library" ; then + if test -z "$old_library"; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else - add="$dir/$old_library" + add=$dir/$old_library fi elif test -n "$old_library"; then - add="$dir/$old_library" + add=$dir/$old_library fi fi esac - elif test "$hardcode_minus_L" = no; then + elif test no = "$hardcode_minus_L"; then case $host in - *-*-sunos*) add_shlibpath="$dir" ;; + *-*-sunos*) add_shlibpath=$dir ;; esac - add_dir="-L$dir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = no; then - add_shlibpath="$dir" - add="-l$name" + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name else lib_linked=no fi ;; relink) - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$absdir" + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in @@ -6857,10 +8121,10 @@ func_mode_link () ;; esac fi - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then - add_shlibpath="$dir" - add="-l$name" + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name else lib_linked=no fi @@ -6868,7 +8132,7 @@ func_mode_link () *) lib_linked=no ;; esac - if test "$lib_linked" != yes; then + if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi @@ -6878,15 +8142,15 @@ func_mode_link () *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && - test "$hardcode_minus_L" != yes && - test "$hardcode_shlibpath_var" = yes; then + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; @@ -6895,33 +8159,33 @@ func_mode_link () fi fi - if test "$linkmode" = prog || test "$opt_mode" = relink; then + if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes && - test "$hardcode_direct_absolute" = no; then - add="$libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - add_dir="-L$libdir" - add="-l$name" - elif test "$hardcode_shlibpath_var" = yes; then + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then + add=-l$name + elif test yes = "$hardcode_automatic"; then if test -n "$inst_prefix_dir" && - test -f "$inst_prefix_dir$libdir/$linklib" ; then - add="$inst_prefix_dir$libdir/$linklib" + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib else - add="$libdir/$linklib" + add=$libdir/$linklib fi else # We cannot seem to hardcode it, guess we'll fake it. - add_dir="-L$libdir" + add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in @@ -6930,10 +8194,10 @@ func_mode_link () ;; esac fi - add="-l$name" + add=-l$name fi - if test "$linkmode" = prog; then + if test prog = "$linkmode"; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else @@ -6941,43 +8205,43 @@ func_mode_link () test -n "$add" && deplibs="$add $deplibs" fi fi - elif test "$linkmode" = prog; then + elif test prog = "$linkmode"; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi - elif test "$build_libtool_libs" = yes; then + elif test yes = "$build_libtool_libs"; then # Not a shared library - if test "$deplibs_check_method" != pass_all; then + if test pass_all != "$deplibs_check_method"; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo - $ECHO "*** Warning: This system can not link to static lib archive $lib." + $ECHO "*** Warning: This system cannot link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." - if test "$module" = yes; then + if test yes = "$module"; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." + echo "*** 'nm' from GNU binutils and a full rebuild may help." fi - if test "$build_old_libs" = no; then + if test no = "$build_old_libs"; then build_libtool_libs=module build_old_libs=yes else @@ -6990,11 +8254,11 @@ func_mode_link () fi fi # link shared/static library? - if test "$linkmode" = lib; then + if test lib = "$linkmode"; then if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || - test "$build_old_libs" = yes || - test "$link_static" = yes; }; then + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do @@ -7008,12 +8272,12 @@ func_mode_link () *) func_append temp_deplibs " $libdir";; esac done - dependency_libs="$temp_deplibs" + dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do @@ -7023,7 +8287,7 @@ func_mode_link () func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac - if $opt_preserve_dup_deps ; then + if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; @@ -7032,12 +8296,12 @@ func_mode_link () func_append tmp_libs " $func_resolve_sysroot_result" done - if test "$link_all_deplibs" != no; then + if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in - -L*) path="$deplib" ;; + -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result @@ -7045,12 +8309,12 @@ func_mode_link () dir=$func_dirname_result # We need an absolute path. case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then - func_warning "cannot determine absolute directory name of \`$dir'" - absdir="$dir" + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir fi ;; esac @@ -7058,35 +8322,35 @@ func_mode_link () case $host in *-*-darwin*) depdepl= - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do depdepl=$tmp done - if test -f "$absdir/$objdir/$depdepl" ; then - depdepl="$absdir/$objdir/$depdepl" - darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi - func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" path= fi fi ;; *) - path="-L$absdir/$objdir" + path=-L$absdir/$objdir ;; esac else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" + func_fatal_error "'$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ - func_warning "\`$deplib' seems to be moved" + func_warning "'$deplib' seems to be moved" - path="-L$absdir" + path=-L$absdir fi ;; esac @@ -7098,23 +8362,23 @@ func_mode_link () fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs - if test "$pass" = link; then - if test "$linkmode" = "prog"; then + if test link = "$pass"; then + if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi - dependency_libs="$newdependency_libs" - if test "$pass" = dlpreopen; then + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi - if test "$pass" != dlopen; then - if test "$pass" != conv; then + if test dlopen != "$pass"; then + test conv = "$pass" || { # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do @@ -7124,12 +8388,12 @@ func_mode_link () esac done newlib_search_path= - fi + } - if test "$linkmode,$pass" != "prog,link"; then - vars="deplibs" - else + if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" + else + vars=deplibs fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order @@ -7190,59 +8454,59 @@ func_mode_link () # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= - for i in $dependency_libs ; do + for i in $dependency_libs; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) - i="" + i= ;; esac - if test -n "$i" ; then + if test -n "$i"; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass - if test "$linkmode" = prog; then - dlfiles="$newdlfiles" + if test prog = "$linkmode"; then + dlfiles=$newdlfiles fi - if test "$linkmode" = prog || test "$linkmode" = lib; then - dlprefiles="$newdlprefiles" + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles fi case $linkmode in oldlib) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for archives" + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for archives" ;; + func_warning "'-l' and '-L' are ignored for archives" ;; esac test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for archives" + func_warning "'-rpath' is ignored for archives" test -n "$xrpath" && \ - func_warning "\`-R' is ignored for archives" + func_warning "'-R' is ignored for archives" test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for archives" + func_warning "'-version-info/-version-number' is ignored for archives" test -n "$release" && \ - func_warning "\`-release' is ignored for archives" + func_warning "'-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ - func_warning "\`-export-symbols' is ignored for archives" + func_warning "'-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no - oldlibs="$output" + oldlibs=$output func_append objs "$old_deplibs" ;; lib) - # Make sure we only generate libraries of the form `libNAME.la'. + # Make sure we only generate libraries of the form 'libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" @@ -7251,10 +8515,10 @@ func_mode_link () eval libname=\"$libname_spec\" ;; *) - test "$module" = no && \ - func_fatal_help "libtool library \`$output' must begin with \`lib'" + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" - if test "$need_lib_prefix" != no; then + if test no != "$need_lib_prefix"; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result @@ -7268,8 +8532,8 @@ func_mode_link () esac if test -n "$objs"; then - if test "$deplibs_check_method" != pass_all; then - func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" @@ -7278,21 +8542,21 @@ func_mode_link () fi fi - test "$dlself" != no && \ - func_warning "\`-dlopen self' is ignored for libtool libraries" + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift - test "$#" -gt 1 && \ - func_warning "ignoring multiple \`-rpath's for a libtool library" + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" - install_libdir="$1" + install_libdir=$1 oldlibs= if test -z "$rpath"; then - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then # Building a libtool convenience library. - # Some compilers have problems with a `.al' extension so + # Some compilers have problems with a '.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" @@ -7301,20 +8565,20 @@ func_mode_link () fi test -n "$vinfo" && \ - func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + func_warning "'-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ - func_warning "\`-release' is ignored for convenience libraries" + func_warning "'-release' is ignored for convenience libraries" else # Parse the version information argument. - save_ifs="$IFS"; IFS=':' + save_ifs=$IFS; IFS=: set dummy $vinfo 0 0 0 shift - IFS="$save_ifs" + IFS=$save_ifs test -n "$7" && \ - func_fatal_help "too many parameters to \`-version-info'" + func_fatal_help "too many parameters to '-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts @@ -7322,45 +8586,42 @@ func_mode_link () case $vinfo_number in yes) - number_major="$1" - number_minor="$2" - number_revision="$3" + number_major=$1 + number_minor=$2 + number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix - # which has an extra 1 added just for fun + # that has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result - age="$number_minor" - revision="$number_revision" + age=$number_minor + revision=$number_revision ;; freebsd-aout|freebsd-elf|qnx|sunos) - current="$number_major" - revision="$number_minor" - age="0" + current=$number_major + revision=$number_minor + age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result - age="$number_minor" - revision="$number_minor" + age=$number_minor + revision=$number_minor lt_irix_increment=no ;; - *) - func_fatal_configuration "$modename: unknown library version type \`$version_type'" - ;; esac ;; no) - current="$1" - revision="$2" - age="$3" + current=$1 + revision=$2 + age=$3 ;; esac @@ -7368,30 +8629,30 @@ func_mode_link () case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - func_error "CURRENT \`$current' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - func_error "REVISION \`$revision' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - func_error "AGE \`$age' must be a nonnegative integer" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then - func_error "AGE \`$age' is greater than the current interface number \`$current'" - func_fatal_error "\`$vinfo' is not valid version information" + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" fi # Calculate the version variables. @@ -7406,26 +8667,35 @@ func_mode_link () # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result - versuffix="$major.$age.$revision" + versuffix=$major.$age.$revision # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac ;; freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; + major=.$current + versuffix=.$current.$revision ;; freebsd-elf) - major=".$current" - versuffix=".$current" + major=.$current + versuffix=.$current ;; irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then + if test no = "$lt_irix_increment"; then func_arith $current - $age else func_arith $current - $age + 1 @@ -7436,69 +8706,69 @@ func_mode_link () nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac - verstring="$verstring_prefix$major.$revision" + verstring=$verstring_prefix$major.$revision # Add in all the interfaces that we are compatible with. loop=$revision - while test "$loop" -ne 0; do + while test 0 -ne "$loop"; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result - verstring="$verstring_prefix$major.$iface:$verstring" + verstring=$verstring_prefix$major.$iface:$verstring done - # Before this point, $major must not contain `.'. + # Before this point, $major must not contain '.'. major=.$major - versuffix="$major.$revision" + versuffix=$major.$revision ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result - versuffix="$major.$age.$revision" + versuffix=$major.$age.$revision ;; osf) func_arith $current - $age major=.$func_arith_result - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision # Add in all the interfaces that we are compatible with. loop=$age - while test "$loop" -ne 0; do + while test 0 -ne "$loop"; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result - verstring="$verstring:${iface}.0" + verstring=$verstring:$iface.0 done # Make executables depend on our current version. - func_append verstring ":${current}.0" + func_append verstring ":$current.0" ;; qnx) - major=".$current" - versuffix=".$current" + major=.$current + versuffix=.$current ;; sunos) - major=".$current" - versuffix=".$current.$revision" + major=.$current + versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one - # extension on DOS 8.3 filesystems. + # extension on DOS 8.3 file systems. func_arith $current - $age major=$func_arith_result - versuffix="-$major" + versuffix=-$major ;; *) - func_fatal_configuration "unknown library version type \`$version_type'" + func_fatal_configuration "unknown library version type '$version_type'" ;; esac @@ -7512,42 +8782,45 @@ func_mode_link () verstring= ;; *) - verstring="0.0" + verstring=0.0 ;; esac - if test "$need_version" = no; then + if test no = "$need_version"; then versuffix= else - versuffix=".0.0" + versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided - if test "$avoid_version" = yes && test "$need_version" = no; then + if test yes,no = "$avoid_version,$need_version"; then major= versuffix= - verstring="" + verstring= fi # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - func_warning "undefined symbols not allowed in $host shared libraries" - build_libtool_libs=no - build_old_libs=yes + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi fi else # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" + allow_undefined_flag=$no_undefined_flag fi fi - func_generate_dlsyms "$libname" "$libname" "yes" + func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= + test " " = "$libobjs" && libobjs= - if test "$opt_mode" != relink; then + if test relink != "$opt_mode"; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= @@ -7556,8 +8829,8 @@ func_mode_link () case $p in *.$objext | *.gcno) ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - if test "X$precious_files_regex" != "X"; then + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue @@ -7573,11 +8846,11 @@ func_mode_link () fi # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. @@ -7598,13 +8871,13 @@ func_mode_link () *) func_append finalize_rpath " $libdir" ;; esac done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened - old_dlfiles="$dlfiles" + old_dlfiles=$dlfiles dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in @@ -7614,7 +8887,7 @@ func_mode_link () done # Make sure dlprefiles contains only unique files - old_dlprefiles="$dlprefiles" + old_dlprefiles=$dlprefiles dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in @@ -7623,7 +8896,7 @@ func_mode_link () esac done - if test "$build_libtool_libs" = yes; then + if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) @@ -7647,7 +8920,7 @@ func_mode_link () ;; *) # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then + if test yes = "$build_libtool_need_lc"; then func_append deplibs " -lc" fi ;; @@ -7663,9 +8936,9 @@ func_mode_link () # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? - release="" - versuffix="" - major="" + release= + versuffix= + major= newdeplibs= droppeddeps=no case $deplibs_check_method in @@ -7694,20 +8967,20 @@ EOF -l*) func_stripname -l '' "$i" name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $i "*) func_append newdeplibs " $i" - i="" + i= ;; esac fi - if test -n "$i" ; then + if test -n "$i"; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then func_append newdeplibs " $i" else droppeddeps=yes @@ -7737,20 +9010,20 @@ EOF $opt_dry_run || $RM conftest if $LTCC $LTCFLAGS -o conftest conftest.c $i; then ldd_output=`ldd conftest` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $i "*) func_append newdeplibs " $i" - i="" + i= ;; esac fi - if test -n "$i" ; then + if test -n "$i"; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then func_append newdeplibs " $i" else droppeddeps=yes @@ -7787,24 +9060,24 @@ EOF -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= ;; esac fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` if test -n "$file_magic_glob"; then libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` else libnameglob=$libname fi - test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` + test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - if test "$want_nocaseglob" = yes; then + if test yes = "$want_nocaseglob"; then shopt -s nocaseglob potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` $nocaseglob @@ -7822,25 +9095,25 @@ EOF # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? - potlib="$potent_lib" + potlib=$potent_lib while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` case $potliblink in - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= break 2 fi done done fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." @@ -7848,7 +9121,7 @@ EOF echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then + if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" @@ -7871,30 +9144,30 @@ EOF -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= ;; esac fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test + potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" - a_deplib="" + a_deplib= break 2 fi done done fi - if test -n "$a_deplib" ; then + if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." @@ -7902,7 +9175,7 @@ EOF echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" - if test -z "$potlib" ; then + if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" @@ -7918,18 +9191,18 @@ EOF done # Gone through all deplibs. ;; none | unknown | *) - newdeplibs="" + newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - for i in $predeps $postdeps ; do + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo - if test "X$deplibs_check_method" = "Xnone"; then + if test none = "$deplibs_check_method"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." @@ -7953,8 +9226,8 @@ EOF ;; esac - if test "$droppeddeps" = yes; then - if test "$module" = yes; then + if test yes = "$droppeddeps"; then + if test yes = "$module"; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" @@ -7963,12 +9236,12 @@ EOF if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." + echo "*** 'nm' from GNU binutils and a full rebuild may help." fi - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else @@ -7979,14 +9252,14 @@ EOF echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." - if test "$allow_undefined" = no; then + if test no = "$allow_undefined"; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." - if test "$build_old_libs" = no; then - oldlibs="$output_objdir/$libname.$libext" + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else @@ -8032,7 +9305,7 @@ EOF *) func_append new_libs " $deplib" ;; esac done - deplibs="$new_libs" + deplibs=$new_libs # All the library-specific variables (install_libdir is set above). library_names= @@ -8040,25 +9313,25 @@ EOF dlname= # Test again, we may have decided not to build it any more - if test "$build_libtool_libs" = yes; then - # Remove ${wl} instances when linking with ld. + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac - if test "$hardcode_into_libs" = yes; then + if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= - rpath="$finalize_rpath" - test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" + hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in @@ -8083,7 +9356,7 @@ EOF # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" + libdir=$hardcode_libdirs eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then @@ -8097,8 +9370,8 @@ EOF test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi - shlibpath="$finalize_shlibpath" - test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi @@ -8108,19 +9381,19 @@ EOF eval library_names=\"$library_names_spec\" set dummy $library_names shift - realname="$1" + realname=$1 shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else - soname="$realname" + soname=$realname fi if test -z "$dlname"; then dlname=$soname fi - lib="$output_objdir/$realname" + lib=$output_objdir/$realname linknames= for link do @@ -8134,7 +9407,7 @@ EOF delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp func_append delfiles " $export_symbols" fi @@ -8143,31 +9416,31 @@ EOF cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile - if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + func_dll_def_p "$export_symbols" || { # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. - orig_export_symbols="$export_symbols" + orig_export_symbols=$export_symbols export_symbols= always_export_symbols=yes - fi + } fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' + save_ifs=$IFS; IFS='~' for cmd1 in $cmds; do - IFS="$save_ifs" + IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in @@ -8181,7 +9454,7 @@ EOF try_normal_branch=no ;; esac - if test "$try_normal_branch" = yes \ + if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then @@ -8192,7 +9465,7 @@ EOF output_la=$func_basename_result save_libobjs=$libobjs save_output=$output - output=${output_objdir}/${output_la}.nm + output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" @@ -8215,8 +9488,8 @@ EOF break fi done - IFS="$save_ifs" - if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi @@ -8224,16 +9497,16 @@ EOF fi if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine + # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. @@ -8252,11 +9525,11 @@ EOF ;; esac done - deplibs="$tmp_deplibs" + deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && - test "$compiler_needs_object" = yes && + test yes = "$compiler_needs_object" && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. @@ -8267,7 +9540,7 @@ EOF eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $convenience @@ -8276,18 +9549,18 @@ EOF fi fi - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then + if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds @@ -8305,7 +9578,7 @@ EOF fi fi - if test "X$skipped_export" != "X:" && + if test : != "$skipped_export" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then @@ -8338,8 +9611,8 @@ EOF last_robj= k=1 - if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then - output=${output_objdir}/${output_la}.lnkscript + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs @@ -8351,14 +9624,14 @@ EOF func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= - if test "$compiler_needs_object" = yes; then + if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi @@ -8373,7 +9646,7 @@ EOF else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext + output=$output_objdir/$output_la-$k.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result @@ -8385,13 +9658,13 @@ EOF func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result - if test "X$objlist" = X || + if test -z "$objlist" || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. - if test "$k" -eq 1 ; then + if test 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" @@ -8401,10 +9674,10 @@ EOF reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi - last_robj=$output_objdir/$output_la-${k}.$objext + last_robj=$output_objdir/$output_la-$k.$objext func_arith $k + 1 k=$func_arith_result - output=$output_objdir/$output_la-${k}.$objext + output=$output_objdir/$output_la-$k.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result @@ -8416,9 +9689,9 @@ EOF # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" - eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then - eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" @@ -8426,9 +9699,9 @@ EOF output= fi - if ${skipped_export-false}; then - func_verbose "generating symbol list for \`$libname.la'" - export_symbols="$output_objdir/$libname.exp" + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. @@ -8437,16 +9710,16 @@ EOF if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi - fi + } test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. - save_ifs="$IFS"; IFS='~' + save_ifs=$IFS; IFS='~' for cmd in $concat_cmds; do - IFS="$save_ifs" - $opt_silent || { + IFS=$save_ifs + $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } @@ -8454,7 +9727,7 @@ EOF lt_exit=$? # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -8463,7 +9736,7 @@ EOF exit $lt_exit } done - IFS="$save_ifs" + IFS=$save_ifs if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' @@ -8471,18 +9744,18 @@ EOF fi fi - if ${skipped_export-false}; then + ${skipped_export-false} && { if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. - func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of - # 's' commands which not all seds can handle. GNU sed should be fine + # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. @@ -8491,7 +9764,7 @@ EOF export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi - fi + } libobjs=$output # Restore the value of output. @@ -8505,7 +9778,7 @@ EOF # value of $libobjs for piecewise linking. # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then + if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else @@ -8527,7 +9800,7 @@ EOF # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles @@ -8535,11 +9808,12 @@ EOF test "X$libobjs" = "X " && libobjs= fi - save_ifs="$IFS"; IFS='~' + save_ifs=$IFS; IFS='~' for cmd in $cmds; do - IFS="$save_ifs" + IFS=$sp$nl eval cmd=\"$cmd\" - $opt_silent || { + IFS=$save_ifs + $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } @@ -8547,7 +9821,7 @@ EOF lt_exit=$? # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -8556,10 +9830,10 @@ EOF exit $lt_exit } done - IFS="$save_ifs" + IFS=$save_ifs # Restore the uninstalled library and exit - if test "$opt_mode" = relink; then + if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then @@ -8579,39 +9853,39 @@ EOF done # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then + if test yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. - dlname="$soname" + dlname=$soname fi fi ;; obj) - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - func_warning "\`-dlopen' is ignored for objects" + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) - func_warning "\`-l' and \`-L' are ignored for objects" ;; + func_warning "'-l' and '-L' are ignored for objects" ;; esac test -n "$rpath" && \ - func_warning "\`-rpath' is ignored for objects" + func_warning "'-rpath' is ignored for objects" test -n "$xrpath" && \ - func_warning "\`-R' is ignored for objects" + func_warning "'-R' is ignored for objects" test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for objects" + func_warning "'-version-info' is ignored for objects" test -n "$release" && \ - func_warning "\`-release' is ignored for objects" + func_warning "'-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ - func_fatal_error "cannot build library object \`$output' from non-libtool objects" + func_fatal_error "cannot build library object '$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" @@ -8619,7 +9893,7 @@ EOF ;; *) libobj= - obj="$output" + obj=$output ;; esac @@ -8642,7 +9916,7 @@ EOF eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else - gentop="$output_objdir/${obj}x" + gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience @@ -8651,12 +9925,12 @@ EOF fi # If we're not building shared, we need to use non_pic_objs - test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs - output="$obj" + output=$obj func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. @@ -8668,7 +9942,7 @@ EOF exit $EXIT_SUCCESS fi - if test "$build_libtool_libs" != yes; then + test yes = "$build_libtool_libs" || { if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi @@ -8678,12 +9952,12 @@ EOF # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS - fi + } - if test -n "$pic_flag" || test "$pic_mode" != default; then + if test -n "$pic_flag" || test default != "$pic_mode"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" - output="$libobj" + output=$libobj func_execute_cmds "$reload_cmds" 'exit $?' fi @@ -8700,16 +9974,14 @@ EOF output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ - func_warning "\`-version-info' is ignored for programs" + func_warning "'-version-info' is ignored for programs" test -n "$release" && \ - func_warning "\`-release' is ignored for programs" + func_warning "'-release' is ignored for programs" - test "$preload" = yes \ - && test "$dlopen_support" = unknown \ - && test "$dlopen_self" = unknown \ - && test "$dlopen_self_static" = unknown && \ - func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) @@ -8723,11 +9995,11 @@ EOF *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). - if test "$tagname" = CXX ; then + if test CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) - func_append compile_command " ${wl}-bind_at_load" - func_append finalize_command " ${wl}-bind_at_load" + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" ;; esac fi @@ -8763,7 +10035,7 @@ EOF *) func_append new_libs " $deplib" ;; esac done - compile_deplibs="$new_libs" + compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" @@ -8787,7 +10059,7 @@ EOF if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" + hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in @@ -8810,7 +10082,7 @@ EOF fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; @@ -8827,10 +10099,10 @@ EOF # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" + libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi - compile_rpath="$rpath" + compile_rpath=$rpath rpath= hardcode_libdirs= @@ -8838,7 +10110,7 @@ EOF if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" + hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in @@ -8863,45 +10135,43 @@ EOF # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" + libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi - finalize_rpath="$rpath" + finalize_rpath=$rpath - if test -n "$libobjs" && test "$build_old_libs" = yes; then + if test -n "$libobjs" && test yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi - func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi - wrappers_required=yes + wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. - wrappers_required=no + wrappers_required=false ;; *cygwin* | *mingw* ) - if test "$build_libtool_libs" != yes; then - wrappers_required=no - fi + test yes = "$build_libtool_libs" || wrappers_required=false ;; *) - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - wrappers_required=no + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false fi ;; esac - if test "$wrappers_required" = no; then + $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` - link_command="$compile_command$compile_rpath" + link_command=$compile_command$compile_rpath # We have no uninstalled library dependencies, so finalize right now. exit_status=0 @@ -8914,12 +10184,12 @@ EOF fi # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' fi exit $exit_status - fi + } if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" @@ -8949,9 +10219,9 @@ EOF fi fi - if test "$no_install" = yes; then + if test yes = "$no_install"; then # We don't need to create a wrapper script. - link_command="$compile_var$compile_command$compile_rpath" + link_command=$compile_var$compile_command$compile_rpath # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. @@ -8968,27 +10238,28 @@ EOF exit $EXIT_SUCCESS fi - if test "$hardcode_action" = relink; then - # Fast installation is not supported - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath - func_warning "this platform does not like uninstalled shared libraries" - func_warning "\`$output' will be relinked during installation" - else - if test "$fast_install" != no; then - link_command="$finalize_var$compile_command$finalize_rpath" - if test "$fast_install" = yes; then - relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` - else - # fast_install is set to needless - relink_command= - fi - else - link_command="$compile_var$compile_command$compile_rpath" - relink_command="$finalize_var$finalize_command$finalize_rpath" - fi - fi + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` @@ -9045,8 +10316,8 @@ EOF func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 @@ -9067,7 +10338,7 @@ EOF trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. - if test "x$build" = "x$host" ; then + if test "x$build" = "x$host"; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result @@ -9090,25 +10361,27 @@ EOF # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save $symfileobj" - addlibs="$convenience" - build_libtool_libs=no - else - if test "$build_libtool_libs" = module; then - oldobjs="$libobjs_save" + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience build_libtool_libs=no - else + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then - func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" - fi + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs @@ -9116,13 +10389,13 @@ EOF fi # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles @@ -9143,7 +10416,7 @@ EOF : else echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" + gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs @@ -9152,7 +10425,7 @@ EOF for obj in $save_oldobjs do func_basename "$obj" - objbase="$func_basename_result" + objbase=$func_basename_result case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) @@ -9221,18 +10494,18 @@ EOF else # the above command should be used before it gets too long oldobjs=$objlist - if test "$obj" = "$last_oldobj" ; then + if test "$obj" = "$last_oldobj"; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist - if test "X$oldobjs" = "X" ; then + if test -z "$oldobjs"; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" @@ -9249,7 +10522,7 @@ EOF case $output in *.la) old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" + test yes = "$build_old_libs" && old_library=$libname.$libext func_verbose "creating $output" # Preserve any variables that may affect compiler behavior @@ -9264,31 +10537,31 @@ EOF fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` - if test "$hardcode_automatic" = yes ; then + if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do - if test "$installed" = yes; then + if test yes = "$installed"; then if test -z "$install_libdir"; then break fi - output="$output_objdir/$outputname"i + output=$output_objdir/${outputname}i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" - name="$func_basename_result" + name=$func_basename_result func_resolve_sysroot "$deplib" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" + func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) @@ -9304,23 +10577,23 @@ EOF *) func_append newdependency_libs " $deplib" ;; esac done - dependency_libs="$newdependency_libs" + dependency_libs=$newdependency_libs newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" + func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done - dlfiles="$newdlfiles" + dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in @@ -9330,34 +10603,34 @@ EOF # didn't already link the preopened objects directly into # the library: func_basename "$lib" - name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" + func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done - dlprefiles="$newdlprefiles" + dlprefiles=$newdlprefiles else newdlfiles= for lib in $dlfiles; do case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done - dlfiles="$newdlfiles" + dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done - dlprefiles="$newdlprefiles" + dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin @@ -9373,10 +10646,9 @@ EOF case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. - if test "x$bindir" != x ; - then + if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" - tdlname=$func_relative_path_result$dlname + tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname @@ -9385,7 +10657,7 @@ EOF esac $ECHO > $output "\ # $outputname - a libtool library file -# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. @@ -9399,7 +10671,7 @@ library_names='$library_names' # The name of the static archive. old_library='$old_library' -# Linker flags that can not go in dependency_libs. +# Linker flags that cannot go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. @@ -9425,7 +10697,7 @@ dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" - if test "$installed" = no && test "$need_relink" = yes; then + if test no,yes = "$installed,$need_relink"; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi @@ -9440,27 +10712,29 @@ relink_command=\"$relink_command\"" exit $EXIT_SUCCESS } -{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi # func_mode_uninstall arg... func_mode_uninstall () { - $opt_debug - RM="$nonopt" + $debug_cmd + + RM=$nonopt files= - rmforce= + rmforce=false exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. - libtool_install_magic="$magic" + libtool_install_magic=$magic for arg do case $arg in - -f) func_append RM " $arg"; rmforce=yes ;; + -f) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac @@ -9473,18 +10747,18 @@ func_mode_uninstall () for file in $files; do func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then - odir="$objdir" + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir else - odir="$dir/$objdir" + odir=$dir/$objdir fi func_basename "$file" - name="$func_basename_result" - test "$opt_mode" = uninstall && odir="$dir" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates - if test "$opt_mode" = clean; then + if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; @@ -9499,11 +10773,11 @@ func_mode_uninstall () elif test -d "$file"; then exit_status=1 continue - elif test "$rmforce" = yes; then + elif $rmforce; then continue fi - rmfiles="$file" + rmfiles=$file case $name in *.la) @@ -9517,7 +10791,7 @@ func_mode_uninstall () done test -n "$old_library" && func_append rmfiles " $odir/$old_library" - case "$opt_mode" in + case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; @@ -9528,12 +10802,12 @@ func_mode_uninstall () uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. - func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. - func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; @@ -9549,21 +10823,19 @@ func_mode_uninstall () func_source $dir/$name # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then + if test -n "$pic_object" && test none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then + if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) - if test "$opt_mode" = clean ; then + if test clean = "$opt_mode"; then noexename=$name case $file in *.exe) @@ -9590,12 +10862,12 @@ func_mode_uninstall () # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles - func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi - if test "X$noexename" != "X$name" ; then - func_append rmfiles " $odir/lt-${noexename}.c" + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" fi fi fi @@ -9604,7 +10876,7 @@ func_mode_uninstall () func_show_eval "$RM $rmfiles" 'exit_status=1' done - # Try to remove the ${objdir}s in the directories where we deleted files + # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" @@ -9614,16 +10886,17 @@ func_mode_uninstall () exit $exit_status } -{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi test -z "$opt_mode" && { - help="$generic_help" + help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$opt_mode'" + func_fatal_help "invalid operation mode '$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" @@ -9634,7 +10907,7 @@ exit $exit_status # The TAGs below are defined such that we never get into a situation -# in which we disable both kinds of libraries. Given conflicting +# where we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support @@ -9657,5 +10930,3 @@ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # mode:shell-script # sh-indentation:2 # End: -# vi:sw=2 - diff --git a/m4/libtool.m4 b/m4/libtool.m4 index d7c043f..4bc6b22 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -1,8 +1,6 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2013 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -39,7 +37,7 @@ m4_define([_LT_COPYING], [dnl # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) -# serial 57 LT_INIT +# serial 58 LT_INIT # LT_PREREQ(VERSION) @@ -91,7 +89,7 @@ dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed -LIBTOOL_DEPS="$ltmain" +LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' @@ -130,7 +128,7 @@ cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set -# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} @@ -179,13 +177,13 @@ m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ -# See if we are running on zsh, and set the options which allow our +# See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}" ; then +if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi ]) -if test -n "${ZSH_VERSION+set}" ; then +if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi @@ -198,7 +196,7 @@ aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then + if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi @@ -209,14 +207,14 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a `.a' archive for static linking (except MSVC, +# All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a -with_gnu_ld="$lt_cv_prog_gnu_ld" +with_gnu_ld=$lt_cv_prog_gnu_ld -old_CC="$CC" -old_CFLAGS="$CFLAGS" +old_CC=$CC +old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc @@ -269,14 +267,14 @@ no_glob_subst='s/\*/\\\*/g' # _LT_PROG_LTMAIN # --------------- -# Note that this code is called both from `configure', and `config.status' +# Note that this code is called both from 'configure', and 'config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, -# `config.status' has no value for ac_aux_dir unless we are using Automake, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) -ltmain="$ac_aux_dir/ltmain.sh" +ltmain=$ac_aux_dir/ltmain.sh ])# _LT_PROG_LTMAIN @@ -286,7 +284,7 @@ ltmain="$ac_aux_dir/ltmain.sh" # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS -# in macros and then make a single call at the end using the `libtool' +# in macros and then make a single call at the end using the 'libtool' # label. @@ -421,8 +419,8 @@ m4_define([_lt_decl_all_varnames], # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ -# Quote a variable value, and forward it to `config.status' so that its -# declaration there will have the same value as in `configure'. VARNAME +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) @@ -446,7 +444,7 @@ m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl -available_tags="_LT_TAGS"dnl +available_tags='_LT_TAGS'dnl ]) @@ -474,7 +472,7 @@ m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables -# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], @@ -500,8 +498,8 @@ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations -# into `config.status', and then the shell code to quote escape them in -# for loops in `config.status'. Finally, any additional code accumulated +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], @@ -547,7 +545,7 @@ for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -560,7 +558,7 @@ for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -576,7 +574,7 @@ _LT_OUTPUT_LIBTOOL_INIT # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the -# `#!' sequence but before initialization text begins. After this +# '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). @@ -598,7 +596,7 @@ AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF -test $lt_write_fail = 0 && chmod +x $1[]dnl +test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT @@ -621,7 +619,7 @@ exec AS_MESSAGE_LOG_FD>>config.log } >&AS_MESSAGE_LOG_FD lt_cl_help="\ -\`$as_me' creates a local libtool stub from the current configuration, +'$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. @@ -643,7 +641,7 @@ Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." -while test $[#] != 0 +while test 0 != $[#] do case $[1] in --version | --v* | -V ) @@ -656,10 +654,10 @@ do lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] -Try \`$[0] --help' for more information.]) ;; +Try '$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] -Try \`$[0] --help' for more information.]) ;; +Try '$[0] --help' for more information.]) ;; esac shift done @@ -685,7 +683,7 @@ chmod +x "$CONFIG_LT" # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: -test "$silent" = yes && +test yes = "$silent" && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false @@ -705,13 +703,13 @@ m4_defun([_LT_CONFIG], _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ - # See if we are running on zsh, and set the options which allow our + # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}" ; then + if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi - cfgfile="${ofile}T" + cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" @@ -719,7 +717,7 @@ _LT_CONFIG_SAVE_COMMANDS([ #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Generated automatically by $as_me ($PACKAGE) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # @@ -739,7 +737,7 @@ _LT_EOF # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. -if test "X${COLLECT_NAMES+set}" != Xset; then +if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi @@ -756,8 +754,6 @@ _LT_EOF sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) - _LT_PROG_REPLACE_SHELLFNS - mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" @@ -775,7 +771,6 @@ _LT_EOF [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS @@ -974,7 +969,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then + if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the @@ -992,7 +987,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. - elif test -f libconftest.dylib && test $_lt_result -eq 0; then + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -1010,7 +1005,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], @@ -1032,7 +1027,7 @@ _LT_EOF _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD - elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -1042,32 +1037,32 @@ _LT_EOF ]) case $host_os in rhapsody* | darwin1.[[012]]) - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac - if test "$lt_cv_apple_cc_single_mod" = "yes"; then + if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi - if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -1087,29 +1082,29 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - if test "$lt_cv_ld_force_load" = "yes"; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in - ifort*) _lt_dar_can_shared=yes ;; + ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac - if test "$_lt_dar_can_shared" = "yes"; then + if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all - _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" - _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], -[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then - _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else @@ -1129,7 +1124,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl -if test "${lt_cv_aix_libpath+set}" = set; then +if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], @@ -1147,7 +1142,7 @@ else _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then - _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) @@ -1167,8 +1162,8 @@ m4_define([_LT_SHELL_INIT], # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start -# of the generated configure script which will find a shell with a builtin -# printf (which we can use as an echo command). +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO @@ -1196,10 +1191,10 @@ fi # Invoke $ECHO with all args, space-separated. func_echo_all () { - $ECHO "$*" + $ECHO "$*" } -case "$ECHO" in +case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; @@ -1225,16 +1220,17 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], -[ --with-sysroot[=DIR] Search for dependent libraries within DIR - (or the compiler's sysroot if not specified).], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= -case ${with_sysroot} in #( +case $with_sysroot in #( yes) - if test "$GCC" = yes; then + if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( @@ -1244,14 +1240,14 @@ case ${with_sysroot} in #( no|'') ;; #( *) - AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -[dependent libraries, and in which our libraries should be installed.])]) +[dependent libraries, and where our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- @@ -1259,31 +1255,33 @@ m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes +test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) - HPUX_IA64_MODE="32" + HPUX_IA64_MODE=32 ;; *ELF-64*) - HPUX_IA64_MODE="64" + HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - if test "$lt_cv_prog_gnu_ld" = yes; then + if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" @@ -1312,9 +1310,46 @@ ia64-*-hpux*) rm -rf conftest* ;; +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in @@ -1333,10 +1368,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) ;; esac ;; - powerpc64le-*) + powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; - powerpc64-*) + powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) @@ -1355,10 +1390,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; - powerpcle-*) + powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; - powerpc-*) + powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) @@ -1376,19 +1411,20 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" + SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then + if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" + CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) - # Find out which ABI we are using. + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in @@ -1396,7 +1432,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) case $lt_cv_prog_gnu_ld in yes*) case $host in - i?86-*-solaris*) + i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) @@ -1405,7 +1441,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD="${LD-ld}_sol2" + LD=${LD-ld}_sol2 fi ;; *) @@ -1421,7 +1457,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) ;; esac -need_locks="$enable_libtool_lock" +need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK @@ -1440,11 +1476,11 @@ AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -eq 0; then + if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) - if test "$ac_status" -ne 0; then + if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi @@ -1452,7 +1488,7 @@ AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], ]) ]) -if test "x$lt_cv_ar_at_file" = xno; then +if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file @@ -1483,7 +1519,7 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in - openbsd*) + bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) @@ -1519,7 +1555,7 @@ AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$3" + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins @@ -1546,7 +1582,7 @@ AC_CACHE_CHECK([$1], [$2], $RM conftest* ]) -if test x"[$]$2" = xyes; then +if test yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) @@ -1568,7 +1604,7 @@ AC_DEFUN([_LT_LINKER_OPTION], m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then @@ -1587,10 +1623,10 @@ AC_CACHE_CHECK([$1], [$2], fi fi $RM -r conftest* - LDFLAGS="$save_LDFLAGS" + LDFLAGS=$save_LDFLAGS ]) -if test x"[$]$2" = xyes; then +if test yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) @@ -1611,7 +1647,7 @@ AC_DEFUN([LT_CMD_MAX_LEN], AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 - teststring="ABCD" + teststring=ABCD case $build_os in msdosdjgpp*) @@ -1651,7 +1687,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=8192; ;; - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -1702,22 +1738,22 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ - test undefined != "$lt_cv_sys_max_cmd_len"; then + test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8 ; do + for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && - test $i != 17 # 1/2 MB should be enough + test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring @@ -1733,7 +1769,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl ;; esac ]) -if test -n $lt_cv_sys_max_cmd_len ; then +if test -n "$lt_cv_sys_max_cmd_len"; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) @@ -1761,7 +1797,7 @@ m4_defun([_LT_HEADER_DLFCN], # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl -if test "$cross_compiling" = yes; then : +if test yes = "$cross_compiling"; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -1810,7 +1846,7 @@ else /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ -#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif @@ -1836,7 +1872,7 @@ int main () return status; }] _LT_EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in @@ -1857,7 +1893,7 @@ rm -fr conftest* # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl -if test "x$enable_dlopen" != xyes; then +if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown @@ -1867,44 +1903,52 @@ else case $host_os in beos*) - lt_cv_dlopen="load_add_on" + lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) - lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) - lt_cv_dlopen="dlopen" + lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) - # if libdl is installed we need to link against it + # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ - lt_cv_dlopen="dyld" + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + *) AC_CHECK_FUNC([shl_load], - [lt_cv_dlopen="shl_load"], + [lt_cv_dlopen=shl_load], [AC_CHECK_LIB([dld], [shl_load], - [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], [AC_CHECK_FUNC([dlopen], - [lt_cv_dlopen="dlopen"], + [lt_cv_dlopen=dlopen], [AC_CHECK_LIB([dl], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], [AC_CHECK_LIB([svld], [dlopen], - [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], [AC_CHECK_LIB([dld], [dld_link], - [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) ]) ]) ]) @@ -1913,21 +1957,21 @@ else ;; esac - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - else + if test no = "$lt_cv_dlopen"; then enable_dlopen=no + else + enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) - save_CPPFLAGS="$CPPFLAGS" - test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - save_LDFLAGS="$LDFLAGS" + save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - save_LIBS="$LIBS" + save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], @@ -1937,7 +1981,7 @@ else lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) - if test "x$lt_cv_dlopen_self" = xyes; then + if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl @@ -1947,9 +1991,9 @@ else ]) fi - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS ;; esac @@ -2041,8 +2085,8 @@ m4_defun([_LT_COMPILER_FILE_LOCKS], m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) -hard_links="nottested" -if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes @@ -2052,8 +2096,8 @@ if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) - if test "$hard_links" = no; then - AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) need_locks=warn fi else @@ -2080,8 +2124,8 @@ objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl -AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", - [Define to the sub-directory in which libtool stores uninstalled libraries.]) +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR @@ -2093,15 +2137,15 @@ m4_defun([_LT_LINKER_HARDCODE_LIBPATH], _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || - test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then # We can hardcode non-existent directories. - if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one - ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && - test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else @@ -2115,12 +2159,12 @@ else fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) -if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || - test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then # Fast installation is not supported enable_fast_install=no -elif test "$shlibpath_overrides_runpath" = yes || - test "$enable_shared" = no; then +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi @@ -2144,7 +2188,7 @@ else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) - if test -n "$STRIP" ; then + if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) @@ -2175,14 +2219,14 @@ m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ -if test "$GCC" = yes; then +if test yes = "$GCC"; then case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in - mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; - *) lt_sed_strip_eq="s,=/,/,g" ;; + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in @@ -2198,28 +2242,35 @@ if test "$GCC" = yes; then ;; esac # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. + # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; + lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } @@ -2233,7 +2284,7 @@ BEGIN {RS=" "; FS="/|\n";} { # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else @@ -2242,7 +2293,7 @@ fi]) library_names_spec= libname_spec='lib$name' soname_spec= -shrext_cmds=".so" +shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -2262,11 +2313,11 @@ need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}${shared_ext}$major' + soname_spec='$libname$release$shared_ext$major' ;; aix[[4-9]]*) @@ -2274,40 +2325,40 @@ aix[[4-9]]*) need_lib_prefix=no need_version=no hardcode_into_libs=yes - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 - library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with - # the line `#! .'. This would cause the generated library to - # depend on `.', always an invalid library. This was fixed in + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' - echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac - # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. - if test "$aix_use_runtimelinking" = yes; then + if test yes = "$aix_use_runtimelinking"; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. - library_names_spec='${libname}${release}.a $libname.a' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' fi shlibpath_var=LIBPATH fi @@ -2318,18 +2369,18 @@ amigaos*) powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) - library_names_spec='${libname}${shared_ext}' + library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; @@ -2337,8 +2388,8 @@ beos*) bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" @@ -2350,7 +2401,7 @@ bsdi[[45]]*) cygwin* | mingw* | pw32* | cegcc*) version_type=windows - shrext_cmds=".dll" + shrext_cmds=.dll need_version=no need_lib_prefix=no @@ -2359,8 +2410,8 @@ cygwin* | mingw* | pw32* | cegcc*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ @@ -2376,17 +2427,17 @@ cygwin* | mingw* | pw32* | cegcc*) case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' @@ -2395,8 +2446,8 @@ m4_if([$1], [],[ *,cl*) # Native MSVC libname_spec='$name' - soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - library_names_spec='${libname}.dll.lib' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' case $build_os in mingw*) @@ -2423,7 +2474,7 @@ m4_if([$1], [],[ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) - sys_lib_search_path_spec="$LIB" + sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` @@ -2436,8 +2487,8 @@ m4_if([$1], [],[ esac # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' @@ -2450,7 +2501,7 @@ m4_if([$1], [],[ *) # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac @@ -2463,8 +2514,8 @@ darwin* | rhapsody*) version_type=darwin need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' - soname_spec='${libname}${release}${major}$shared_ext' + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' @@ -2477,8 +2528,8 @@ dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; @@ -2496,12 +2547,12 @@ freebsd* | dragonfly*) version_type=freebsd-$objformat case $version_type in freebsd-elf*) - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' need_version=no need_lib_prefix=no ;; freebsd-*) - library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac @@ -2531,10 +2582,10 @@ haiku*) need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes + shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -2552,9 +2603,9 @@ hpux9* | hpux10* | hpux11*) dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - if test "X$HPUX_IA64_MODE" = X32; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" @@ -2567,8 +2618,8 @@ hpux9* | hpux10* | hpux11*) dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; @@ -2577,8 +2628,8 @@ hpux9* | hpux10* | hpux11*) dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... @@ -2591,8 +2642,8 @@ interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -2603,7 +2654,7 @@ irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) - if test "$lt_cv_prog_gnu_ld" = yes; then + if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix @@ -2611,8 +2662,8 @@ irix5* | irix6* | nonstopux*) esac need_lib_prefix=no need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= @@ -2631,8 +2682,8 @@ irix5* | irix6* | nonstopux*) esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; @@ -2641,13 +2692,33 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no @@ -2687,29 +2758,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) dynamic_linker='GNU/Linux ld.so' ;; -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH @@ -2719,7 +2778,7 @@ netbsd*) newsos6) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; @@ -2728,45 +2787,34 @@ newsos6) version_type=qnx need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; -openbsd*) +openbsd* | bitrig*) version_type=sunos - sys_lib_dlsearch_path_spec="/usr/lib" + sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - case $host_os in - openbsd2.[[89]] | openbsd2.[[89]].*) - shlibpath_overrides_runpath=no - ;; - *) - shlibpath_overrides_runpath=yes - ;; - esac + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no else - shlibpath_overrides_runpath=yes + need_version=yes fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' - shrext_cmds=".dll" + shrext_cmds=.dll need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' + library_names_spec='$libname$shared_ext $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; @@ -2775,11 +2823,11 @@ osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) @@ -2790,8 +2838,8 @@ solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes @@ -2801,11 +2849,11 @@ solaris*) sunos4*) version_type=sunos - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes @@ -2813,8 +2861,8 @@ sunos4*) sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) @@ -2835,10 +2883,10 @@ sysv4 | sysv4.3*) ;; sysv4*MP*) - if test -d /usr/nec ;then + if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' - soname_spec='$libname${shared_ext}.$major' + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; @@ -2847,12 +2895,12 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' @@ -2870,7 +2918,7 @@ tpf*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes @@ -2878,8 +2926,8 @@ tpf*) uts4*) version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; @@ -2888,18 +2936,18 @@ uts4*) ;; esac AC_MSG_RESULT([$dynamic_linker]) -test "$dynamic_linker" = no && can_build_shared=no +test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test "$GCC" = yes; then +if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi -if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then - sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi -if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then - sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi _LT_DECL([], [variables_saved_for_relink], [1], @@ -2941,32 +2989,32 @@ _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- -# find a file program which can recognize shared library +# find a file program that can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) - lt_save_MAGIC_CMD="$MAGIC_CMD" - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$1; then - lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : @@ -2989,11 +3037,11 @@ _LT_EOF break fi done - IFS="$lt_save_ifs" - MAGIC_CMD="$lt_save_MAGIC_CMD" + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac]) -MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else @@ -3011,7 +3059,7 @@ dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- -# find a file program which can recognize a shared library +# find a file program that can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then @@ -3038,16 +3086,16 @@ m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], - [test "$withval" = no || with_gnu_ld=yes], + [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld -if test "$GCC" = yes; then +if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw + # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; @@ -3061,7 +3109,7 @@ if test "$GCC" = yes; then while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done - test -z "$LD" && LD="$ac_prog" + test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. @@ -3072,37 +3120,37 @@ if test "$GCC" = yes; then with_gnu_ld=unknown ;; esac -elif test "$with_gnu_ld" = yes; then +elif test yes = "$with_gnu_ld"; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" + lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 /dev/null 2>&1; then + if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else @@ -3300,7 +3347,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd* | netbsdelf*-gnu) +netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else @@ -3318,8 +3365,8 @@ newos6*) lt_cv_deplibs_check_method=pass_all ;; -openbsd*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' @@ -3412,33 +3459,33 @@ AC_DEFUN([LT_PATH_NM], AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. - lt_cv_path_NM="$NM" + lt_cv_path_NM=$NM else - lt_nm_to_check="${ac_tool_prefix}nm" + lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_nm" - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" - break + break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" - break + break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but @@ -3449,21 +3496,21 @@ else esac fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi]) -if test "$lt_cv_path_NM" != "no"; then - NM="$lt_cv_path_NM" +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) - DUMPBIN="$DUMPBIN -symbols" + DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: @@ -3471,8 +3518,8 @@ else esac fi AC_SUBST([DUMPBIN]) - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" + if test : != "$DUMPBIN"; then + NM=$DUMPBIN fi fi test -z "$NM" && NM=nm @@ -3518,8 +3565,8 @@ lt_cv_sharedlib_from_linklib_cmd, case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh - # decide which to use based on capabilities of $DLLTOOL + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib @@ -3531,7 +3578,7 @@ cygwin* | mingw* | pw32* | cegcc*) ;; *) # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd="$ECHO" + lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ]) @@ -3558,13 +3605,28 @@ AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) -if test "x$lt_cv_path_mainfest_tool" != xyes; then +if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + # LT_LIB_M # -------- # check for math library @@ -3576,11 +3638,11 @@ case $host in # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) - AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) - AC_CHECK_LIB(m, cos, LIBM="-lm") + AC_CHECK_LIB(m, cos, LIBM=-lm) ;; esac AC_SUBST([LIBM]) @@ -3599,7 +3661,7 @@ m4_defun([_LT_COMPILER_NO_RTTI], _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= -if test "$GCC" = yes; then +if test yes = "$GCC"; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; @@ -3651,7 +3713,7 @@ cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then symcode='[[ABCDEGRST]]' fi ;; @@ -3684,14 +3746,44 @@ case `$NM -V 2>&1` in symcode='[[ABCDGIRSTW]]' ;; esac +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= @@ -3709,21 +3801,24 @@ for ac_symprfx in "" "_"; do # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function - # and D for any global variable. + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ -" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ -" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ -" s[1]~/^[@?]/{print s[1], s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" @@ -3763,11 +3858,11 @@ _LT_EOF if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -/* DATA imports from DLLs on WIN32 con't be const, because runtime +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST -#elif defined(__osf__) +#elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else @@ -3793,7 +3888,7 @@ lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; @@ -3813,9 +3908,9 @@ _LT_EOF mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" + LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS @@ -3836,7 +3931,7 @@ _LT_EOF rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then + if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= @@ -3863,12 +3958,16 @@ _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS @@ -3884,17 +3983,18 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then + if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) @@ -3905,8 +4005,8 @@ m4_if([$1], [CXX], [ ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac @@ -3971,7 +4071,7 @@ m4_if([$1], [CXX], [ case $host_os in aix[[4-9]]*) # All AIX code is PIC. - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else @@ -4012,14 +4112,14 @@ m4_if([$1], [CXX], [ case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' - if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default @@ -4056,7 +4156,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) - # old Intel C++ for x86_64 which still supported -KPIC. + # old Intel C++ for x86_64, which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' @@ -4112,7 +4212,7 @@ m4_if([$1], [CXX], [ ;; esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -4201,17 +4301,18 @@ m4_if([$1], [CXX], [ fi ], [ - if test "$GCC" = yes; then + if test yes = "$GCC"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) @@ -4222,8 +4323,8 @@ m4_if([$1], [CXX], [ ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac @@ -4310,7 +4411,7 @@ m4_if([$1], [CXX], [ case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else @@ -4318,6 +4419,20 @@ m4_if([$1], [CXX], [ fi ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). @@ -4338,7 +4453,7 @@ m4_if([$1], [CXX], [ ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? - _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) @@ -4349,7 +4464,7 @@ m4_if([$1], [CXX], [ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in - # old Intel for x86_64 which still supported -KPIC. + # old Intel for x86_64, which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' @@ -4374,6 +4489,12 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) @@ -4471,7 +4592,7 @@ m4_if([$1], [CXX], [ ;; sysv4*MP*) - if test -d /usr/nec ;then + if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi @@ -4500,7 +4621,7 @@ m4_if([$1], [CXX], [ fi ]) case $host_os in - # For platforms which do not support PIC, -DPIC is meaningless: + # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; @@ -4576,7 +4697,7 @@ m4_if([$1], [CXX], [ fi ;; pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in @@ -4589,9 +4710,6 @@ m4_if([$1], [CXX], [ ;; esac ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -4625,9 +4743,9 @@ m4_if([$1], [CXX], [ # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ` (' and `)$', so one must not match beginning or - # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', - # as well as any symbol that contains `d'. + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if @@ -4643,7 +4761,7 @@ dnl Note also adjust exclude_expsyms for C++ above. # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. - if test "$GCC" != yes; then + if test yes != "$GCC"; then with_gnu_ld=no fi ;; @@ -4651,12 +4769,9 @@ dnl Note also adjust exclude_expsyms for C++ above. # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; - openbsd*) + openbsd* | bitrig*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes @@ -4664,7 +4779,7 @@ dnl Note also adjust exclude_expsyms for C++ above. # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no - if test "$with_gnu_ld" = yes; then + if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility @@ -4686,24 +4801,24 @@ dnl Note also adjust exclude_expsyms for C++ above. esac fi - if test "$lt_use_gnu_ld_interface" = yes; then + if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='${wl}' + wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no - case `$LD -v 2>&1` in + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -4716,7 +4831,7 @@ dnl Note also adjust exclude_expsyms for C++ above. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then + if test ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 @@ -4735,7 +4850,7 @@ _LT_EOF case $host_cpu in powerpc) # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) @@ -4751,7 +4866,7 @@ _LT_EOF _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4761,7 +4876,7 @@ _LT_EOF # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes @@ -4769,61 +4884,61 @@ _LT_EOF _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no - if test "$host_os" = linux-dietlibc; then + if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test "$tmp_diet" = no + && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -4834,42 +4949,44 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac - _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then + if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then + if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -4878,13 +4995,13 @@ _LT_EOF fi ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -4902,8 +5019,8 @@ _LT_EOF _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4915,7 +5032,7 @@ _LT_EOF _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify @@ -4930,9 +5047,9 @@ _LT_EOF # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4949,15 +5066,15 @@ _LT_EOF *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac - if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= @@ -4973,7 +5090,7 @@ _LT_EOF # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes - if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported @@ -4981,12 +5098,12 @@ _LT_EOF ;; aix[[4-9]]*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' - no_entry_flag="" + no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm @@ -5004,7 +5121,7 @@ _LT_EOF # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi @@ -5027,13 +5144,13 @@ _LT_EOF _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' - if test "$GCC" = yes; then + if test yes = "$GCC"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` + collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then @@ -5052,62 +5169,61 @@ _LT_EOF ;; esac shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' fi - _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' else - shared_flag='${wl}-bM:SRE' + shared_flag='$wl-bM:SRE' fi fi fi - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then + if test yes = "$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $wl-bnoentry $compiler_flags $wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; @@ -5116,7 +5232,7 @@ _LT_EOF case $host_cpu in powerpc) # see comment about AmigaOS4 .so support - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) @@ -5146,16 +5262,17 @@ _LT_EOF # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" + shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes @@ -5164,18 +5281,18 @@ _LT_EOF # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' ;; *) # Assume MSVC wrapper @@ -5184,7 +5301,7 @@ _LT_EOF # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" + shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. @@ -5234,33 +5351,33 @@ _LT_EOF ;; hpux9*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes @@ -5268,25 +5385,25 @@ _LT_EOF ;; hpux11*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then + if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ @@ -5294,14 +5411,14 @@ _LT_EOF # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], - [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in @@ -5312,7 +5429,7 @@ _LT_EOF *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. @@ -5323,16 +5440,16 @@ _LT_EOF ;; irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], - [save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], @@ -5345,22 +5462,22 @@ _LT_EOF end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) - LDFLAGS="$save_LDFLAGS"]) - if test "$lt_cv_irix_exported_symbol" = yes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -5374,7 +5491,7 @@ _LT_EOF newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; @@ -5382,27 +5499,19 @@ _LT_EOF *nto* | *qnx*) ;; - openbsd*) + openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' else - case $host_os in - openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - ;; - *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - ;; - esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' fi else _LT_TAGVAR(ld_shlibs, $1)=no @@ -5418,28 +5527,28 @@ _LT_EOF ;; osf3*) - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' @@ -5450,24 +5559,24 @@ _LT_EOF solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' - _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) - wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi @@ -5477,11 +5586,11 @@ _LT_EOF solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', + # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi @@ -5491,10 +5600,10 @@ _LT_EOF ;; sunos4*) - if test "x$host_vendor" = xsequent; then + if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi @@ -5543,43 +5652,43 @@ _LT_EOF ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not + # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' - if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; @@ -5594,17 +5703,17 @@ _LT_EOF ;; esac - if test x$host_vendor = xsni; then + if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) -test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld @@ -5621,7 +5730,7 @@ x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - if test "$enable_shared" = yes && test "$GCC" = yes; then + if test yes,yes = "$GCC,$enable_shared"; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. @@ -5701,12 +5810,12 @@ _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], - [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary and the resulting library dependency is - "absolute", i.e impossible to change by setting ${shlibpath_var} if the + "absolute", i.e impossible to change by setting $shlibpath_var if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR @@ -5747,10 +5856,10 @@ dnl [Compiler flag to generate thread safe objects]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. +# the compiler configuration to 'libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl -lt_save_CC="$CC" +lt_save_CC=$CC AC_LANG_PUSH(C) # Source file extension for C test sources. @@ -5790,18 +5899,18 @@ if test -n "$compiler"; then LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB - # Report which library types will actually be built + # Report what library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no + test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) - test "$enable_shared" = yes && enable_static=no + test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' @@ -5809,8 +5918,8 @@ if test -n "$compiler"; then ;; aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no + if test ia64 != "$host_cpu" && test no = "$aix_use_runtimelinking"; then + test yes = "$enable_shared" && enable_static=no fi ;; esac @@ -5818,13 +5927,13 @@ if test -n "$compiler"; then AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes + test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP -CC="$lt_save_CC" +CC=$lt_save_CC ])# _LT_LANG_C_CONFIG @@ -5832,14 +5941,14 @@ CC="$lt_save_CC" # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write -# the compiler configuration to `libtool'. +# the compiler configuration to 'libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes @@ -5881,7 +5990,7 @@ _LT_TAGVAR(objext, $1)=$objext # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_caught_CXX_error" != yes; then +if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" @@ -5923,35 +6032,35 @@ if test "$_lt_caught_CXX_error" != yes; then if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately - if test "$GXX" = yes; then + if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi - if test "$GXX" = yes; then + if test yes = "$GXX"; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. - if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) - wlarc='${wl}' + wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi @@ -5987,12 +6096,12 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' - no_entry_flag="" + no_entry_flag= else aix_use_runtimelinking=no @@ -6026,13 +6135,13 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' - if test "$GXX" = yes; then + if test yes = "$GXX"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ - collect2name=`${CC} -print-prog-name=collect2` + collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then @@ -6050,56 +6159,56 @@ if test "$_lt_caught_CXX_error" != yes; then fi esac shared_flag='-shared' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' fi else # not using gcc - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else - if test "$aix_use_runtimelinking" = yes; then - shared_flag='${wl}-G' + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' else - shared_flag='${wl}-bM:SRE' + shared_flag='$wl-bM:SRE' fi fi fi - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes - if test "$aix_use_runtimelinking" = yes; then + if test yes = "$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else - if test "$host_cpu" = ia64; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' @@ -6107,7 +6216,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. - _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $wl-bnoentry $compiler_flags $wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; @@ -6117,7 +6226,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME - _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -6145,57 +6254,58 @@ if test "$_lt_caught_CXX_error" != yes; then # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" + shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; - else - $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile="$lt_outputfile.exe" - lt_tool_outputfile="$lt_tool_outputfile.exe" - ;; - esac~ - func_to_tool_file "$lt_outputfile"~ - if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -6241,14 +6351,14 @@ if test "$_lt_caught_CXX_error" != yes; then ;; haiku*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default @@ -6260,7 +6370,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. @@ -6269,11 +6379,11 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) - if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no @@ -6283,15 +6393,15 @@ if test "$_lt_caught_CXX_error" != yes; then ;; hpux10*|hpux11*) - if test $with_gnu_ld = no; then - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; esac fi @@ -6317,13 +6427,13 @@ if test "$_lt_caught_CXX_error" != yes; then aCC*) case $host_cpu in hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists @@ -6334,20 +6444,20 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) - if test "$GXX" = yes; then - if test $with_gnu_ld = no; then + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi @@ -6362,22 +6472,22 @@ if test "$_lt_caught_CXX_error" != yes; then interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is @@ -6386,17 +6496,17 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; @@ -6409,8 +6519,8 @@ if test "$_lt_caught_CXX_error" != yes; then # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. @@ -6419,10 +6529,10 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. @@ -6436,59 +6546,59 @@ if test "$_lt_caught_CXX_error" != yes; then # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac - _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' @@ -6502,18 +6612,18 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) @@ -6521,10 +6631,10 @@ if test "$_lt_caught_CXX_error" != yes; then *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on @@ -6582,22 +6692,17 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(ld_shlibs, $1)=yes ;; - openbsd2*) - # C++ shared libraries are fairly broken - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - - openbsd*) + openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else @@ -6613,9 +6718,9 @@ if test "$_lt_caught_CXX_error" != yes; then # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. - _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using @@ -6633,17 +6738,17 @@ if test "$_lt_caught_CXX_error" != yes; then cxx*) case $host in osf3*) - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ - echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ - $RM $lib.exp' + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac @@ -6658,21 +6763,21 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' case $host in osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists @@ -6718,9 +6823,9 @@ if test "$_lt_caught_CXX_error" != yes; then # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -6728,7 +6833,7 @@ if test "$_lt_caught_CXX_error" != yes; then solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. + # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; @@ -6745,30 +6850,30 @@ if test "$_lt_caught_CXX_error" != yes; then ;; gcx*) # Green Hills C++ Compiler - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else - # g++ 2.7 appears to require `-G' NOT `-shared' on this + # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. - _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when @@ -6776,11 +6881,11 @@ if test "$_lt_caught_CXX_error" != yes; then output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi @@ -6789,52 +6894,52 @@ if test "$_lt_caught_CXX_error" != yes; then ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not + # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. - _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes - _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) - _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ - '"$_LT_TAGVAR(old_archive_cmds, $1)" + '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ - '"$_LT_TAGVAR(reload_cmds, $1)" + '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; @@ -6865,10 +6970,10 @@ if test "$_lt_caught_CXX_error" != yes; then esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) - test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no - _LT_TAGVAR(GCC, $1)="$GXX" - _LT_TAGVAR(LD, $1)="$LD" + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change @@ -6895,7 +7000,7 @@ if test "$_lt_caught_CXX_error" != yes; then lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld -fi # test "$_lt_caught_CXX_error" != yes +fi # test yes != "$_lt_caught_CXX_error" AC_LANG_POP ])# _LT_LANG_CXX_CONFIG @@ -6917,9 +7022,9 @@ AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { - case ${2} in - .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF @@ -7007,13 +7112,13 @@ if AC_TRY_EVAL(ac_compile); then pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do - case ${prev}${p} in + case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. - if test $p = "-L" || - test $p = "-R"; then + if test x-L = "$p" || + test x-R = "$p"; then prev=$p continue fi @@ -7029,16 +7134,16 @@ if AC_TRY_EVAL(ac_compile); then case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac - if test "$pre_test_object_deps_done" = no; then - case ${prev} in + if test no = "$pre_test_object_deps_done"; then + case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then - _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p else - _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" fi ;; # The "-l" case would never come before the object being @@ -7046,9 +7151,9 @@ if AC_TRY_EVAL(ac_compile); then esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then - _LT_TAGVAR(postdeps, $1)="${prev}${p}" + _LT_TAGVAR(postdeps, $1)=$prev$p else - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" fi fi prev= @@ -7063,15 +7168,15 @@ if AC_TRY_EVAL(ac_compile); then continue fi - if test "$pre_test_object_deps_done" = no; then + if test no = "$pre_test_object_deps_done"; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then - _LT_TAGVAR(predep_objects, $1)="$p" + _LT_TAGVAR(predep_objects, $1)=$p else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then - _LT_TAGVAR(postdep_objects, $1)="$p" + _LT_TAGVAR(postdep_objects, $1)=$p else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi @@ -7118,7 +7223,7 @@ linux*) ;; esac - if test "$solaris_use_stlport4" != yes; then + if test yes != "$solaris_use_stlport4"; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; @@ -7141,7 +7246,7 @@ solaris*) # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then + if test yes != "$solaris_use_stlport4"; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; @@ -7155,7 +7260,7 @@ case " $_LT_TAGVAR(postdeps, $1) " in esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then - _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) @@ -7175,10 +7280,10 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1], # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. +# to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) -if test -z "$F77" || test "X$F77" = "Xno"; then +if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi @@ -7215,7 +7320,7 @@ _LT_TAGVAR(objext, $1)=$objext # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_F77" != yes; then +if test yes != "$_lt_disable_F77"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t @@ -7237,7 +7342,7 @@ if test "$_lt_disable_F77" != yes; then _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. - lt_save_CC="$CC" + lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} @@ -7251,21 +7356,21 @@ if test "$_lt_disable_F77" != yes; then AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no + test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) - test "$enable_shared" = yes && enable_static=no + test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no + if test ia64 != "$host_cpu" && test no = "$aix_use_runtimelinking"; then + test yes = "$enable_shared" && enable_static=no fi ;; esac @@ -7273,11 +7378,11 @@ if test "$_lt_disable_F77" != yes; then AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes + test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) - _LT_TAGVAR(GCC, $1)="$G77" - _LT_TAGVAR(LD, $1)="$LD" + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change @@ -7294,9 +7399,9 @@ if test "$_lt_disable_F77" != yes; then fi # test -n "$compiler" GCC=$lt_save_GCC - CC="$lt_save_CC" - CFLAGS="$lt_save_CFLAGS" -fi # test "$_lt_disable_F77" != yes + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" AC_LANG_POP ])# _LT_LANG_F77_CONFIG @@ -7306,11 +7411,11 @@ AC_LANG_POP # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. +# to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) -if test -z "$FC" || test "X$FC" = "Xno"; then +if test -z "$FC" || test no = "$FC"; then _lt_disable_FC=yes fi @@ -7347,7 +7452,7 @@ _LT_TAGVAR(objext, $1)=$objext # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. -if test "$_lt_disable_FC" != yes; then +if test yes != "$_lt_disable_FC"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t @@ -7369,7 +7474,7 @@ if test "$_lt_disable_FC" != yes; then _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. - lt_save_CC="$CC" + lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} @@ -7385,21 +7490,21 @@ if test "$_lt_disable_FC" != yes; then AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) - test "$can_build_shared" = "no" && enable_shared=no + test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) - test "$enable_shared" = yes && enable_static=no + test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then - test "$enable_shared" = yes && enable_static=no + if test ia64 != "$host_cpu" && test no = "$aix_use_runtimelinking"; then + test yes = "$enable_shared" && enable_static=no fi ;; esac @@ -7407,11 +7512,11 @@ if test "$_lt_disable_FC" != yes; then AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. - test "$enable_shared" = yes || enable_static=yes + test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) - _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" - _LT_TAGVAR(LD, $1)="$LD" + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change @@ -7431,7 +7536,7 @@ if test "$_lt_disable_FC" != yes; then GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS -fi # test "$_lt_disable_FC" != yes +fi # test yes != "$_lt_disable_FC" AC_LANG_POP ])# _LT_LANG_FC_CONFIG @@ -7441,7 +7546,7 @@ AC_LANG_POP # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. +# to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE @@ -7475,7 +7580,7 @@ CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" +_LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. @@ -7512,7 +7617,7 @@ CFLAGS=$lt_save_CFLAGS # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. +# to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE @@ -7546,7 +7651,7 @@ CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC -_LT_TAGVAR(LD, $1)="$LD" +_LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. @@ -7583,7 +7688,7 @@ CFLAGS=$lt_save_CFLAGS # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG -# to write the compiler configuration to `libtool'. +# to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE @@ -7599,7 +7704,7 @@ _LT_TAGVAR(objext, $1)=$objext lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests -lt_simple_link_test_code="$lt_simple_compile_test_code" +lt_simple_link_test_code=$lt_simple_compile_test_code # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER @@ -7609,7 +7714,7 @@ _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. -lt_save_CC="$CC" +lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= @@ -7638,7 +7743,7 @@ AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) @@ -7749,7 +7854,7 @@ lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do - test ! -f $lt_ac_sed && continue + test ! -f "$lt_ac_sed" && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in @@ -7766,9 +7871,9 @@ for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough - test $lt_ac_count -gt 10 && break + test 10 -lt "$lt_ac_count" && break lt_ac_count=`expr $lt_ac_count + 1` - if test $lt_ac_count -gt $lt_ac_max; then + if test "$lt_ac_count" -gt "$lt_ac_max"; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi @@ -7792,27 +7897,7 @@ dnl AC_DEFUN([LT_AC_PROG_SED], []) # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], -[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) -# Try some XSI features -xsi_shell=no -( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -AC_MSG_RESULT([$xsi_shell]) -_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) - -AC_MSG_CHECKING([whether the shell understands "+="]) -lt_shell_append=no -( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ - >/dev/null 2>&1 \ - && lt_shell_append=yes -AC_MSG_RESULT([$lt_shell_append]) -_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false @@ -7836,102 +7921,9 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES -# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -# ------------------------------------------------------ -# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -m4_defun([_LT_PROG_FUNCTION_REPLACE], -[dnl { -sed -e '/^$1 ()$/,/^} # $1 /c\ -$1 ()\ -{\ -m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -test 0 -eq $? || _lt_function_replace_fail=: -]) - - -# _LT_PROG_REPLACE_SHELLFNS -# ------------------------- -# Replace existing portable implementations of several shell functions with -# equivalent extended shell implementations where those features are available.. -m4_defun([_LT_PROG_REPLACE_SHELLFNS], -[if test x"$xsi_shell" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}"]) - - _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl - func_split_long_opt_name=${1%%=*} - func_split_long_opt_arg=${1#*=}]) - - _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl - func_split_short_opt_arg=${1#??} - func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) - - _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac]) - - _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) - - _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) - - _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -fi - -if test x"$lt_shell_append" = xyes; then - _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) - - _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl - func_quote_for_eval "${2}" -dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ - eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) - - # Save a `func_append' function call where possible by direct use of '+=' - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -else - # Save a `func_append' function call even when '+=' is not available - sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ - && mv -f "$cfgfile.tmp" "$cfgfile" \ - || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") - test 0 -eq $? || _lt_function_replace_fail=: -fi - -if test x"$_lt_function_replace_fail" = x":"; then - AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -fi -]) - # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- -# Determine which file name conversion functions should be used by +# Determine what file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 index 5d9acd8..50c7723 100644 --- a/m4/ltoptions.m4 +++ b/m4/ltoptions.m4 @@ -1,14 +1,14 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, -# Inc. +# Copyright (C) 2004-2005, 2007-2009, 2011-2013 Free Software +# Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 7 ltoptions.m4 +# serial 8 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) @@ -29,7 +29,7 @@ m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), - [m4_warning([Unknown $1 option `$2'])])[]dnl + [m4_warning([Unknown $1 option '$2'])])[]dnl ]) @@ -75,13 +75,13 @@ m4_if([$1],[LT_INIT],[ dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither - dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], - [_LT_ENABLE_FAST_INSTALL]) + [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS @@ -112,7 +112,7 @@ AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `dlopen' option into LT_INIT's first parameter.]) +put the 'dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: @@ -148,7 +148,7 @@ AU_DEFUN([AC_LIBTOOL_WIN32_DLL], _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `win32-dll' option into LT_INIT's first parameter.]) +put the 'win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: @@ -157,9 +157,9 @@ dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- -# implement the --enable-shared flag, and supports the `shared' and -# `disable-shared' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], @@ -172,14 +172,14 @@ AC_ARG_ENABLE([shared], *) enable_shared=no # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) @@ -211,9 +211,9 @@ dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- -# implement the --enable-static flag, and support the `static' and -# `disable-static' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], @@ -226,14 +226,14 @@ AC_ARG_ENABLE([static], *) enable_static=no # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) @@ -265,9 +265,9 @@ dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- -# implement the --enable-fast-install flag, and support the `fast-install' -# and `disable-fast-install' LT_INIT options. -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], @@ -280,14 +280,14 @@ AC_ARG_ENABLE([fast-install], *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) @@ -304,14 +304,14 @@ AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `fast-install' option into LT_INIT's first parameter.]) +the 'fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put -the `disable-fast-install' option into LT_INIT's first parameter.]) +the 'disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: @@ -321,9 +321,9 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- -# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' # LT_INIT options. -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], @@ -334,19 +334,17 @@ m4_define([_LT_WITH_PIC], *) pic_mode=default # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do - IFS="$lt_save_ifs" + IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done - IFS="$lt_save_ifs" + IFS=$lt_save_ifs ;; esac], - [pic_mode=default]) - -test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + [pic_mode=m4_default([$1], [default])]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC @@ -359,7 +357,7 @@ AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you -put the `pic-only' option into LT_INIT's first parameter.]) +put the 'pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 index 9000a05..7cbc638 100644 --- a/m4/ltsugar.m4 +++ b/m4/ltsugar.m4 @@ -1,6 +1,7 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2004-2005, 2007-2008, 2011-2013 Free Software +# Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives @@ -33,7 +34,7 @@ m4_define([_lt_join], # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support -# Autoconf-2.59 which quotes differently. +# Autoconf-2.59, which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], @@ -44,7 +45,7 @@ m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ -# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 index 07a8602..daeb0af 100644 --- a/m4/ltversion.m4 +++ b/m4/ltversion.m4 @@ -1,6 +1,6 @@ # ltversion.m4 -- version numbers -*- Autoconf -*- # -# Copyright (C) 2004 Free Software Foundation, Inc. +# Copyright (C) 2004, 2011-2013 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives @@ -9,15 +9,15 @@ # @configure_input@ -# serial 3337 ltversion.m4 +# serial 4038 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4.2]) -m4_define([LT_PACKAGE_REVISION], [1.3337]) +m4_define([LT_PACKAGE_VERSION], [2.4.2.418]) +m4_define([LT_PACKAGE_REVISION], [2.4.2.418]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.2' -macro_revision='1.3337' +[macro_version='2.4.2.418' +macro_revision='2.4.2.418' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 index c573da9..59461e4 100644 --- a/m4/lt~obsolete.m4 +++ b/m4/lt~obsolete.m4 @@ -1,6 +1,7 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 2004-2005, 2007, 2009, 2011-2013 Free Software +# Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives @@ -11,7 +12,7 @@ # These exist entirely to fool aclocal when bootstrapping libtool. # -# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # @@ -25,7 +26,7 @@ # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. -# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until diff --git a/missing b/missing index db98974..cdea514 100755 --- a/missing +++ b/missing @@ -1,7 +1,7 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. @@ -160,7 +160,7 @@ give_advice () ;; autom4te*) echo "You might have modified some maintainer files that require" - echo "the 'autom4te' program to be rebuilt." + echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) diff --git a/src/Makefile.am b/src/Makefile.am index 8cfe4ac..c99967f 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 = @@ -13,98 +14,171 @@ DISTCHECK_CONFIGURE_FLAGS = --enable-introspection #AM_CXXFLAGS = # Convenience targets: -lib: $(BUILT_SOURCES) libharfbuzz.la -fuzzing: $(BUILT_SOURCES) libharfbuzz-fuzzing.la +lib: libharfbuzz.la lib_LTLIBRARIES = libharfbuzz.la -include Makefile.sources - HBCFLAGS = HBLIBS = -HBNONPCLIBS = -HBDEPS = -HBSOURCES = $(HB_BASE_sources) -HBHEADERS = $(HB_BASE_headers) -HBNODISTHEADERS = $(HB_NODIST_headers) +HBSOURCES = \ + hb-atomic-private.hh \ + hb-blob.cc \ + 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 \ + hb-ot-cmap-table.hh \ + hb-ot-head-table.hh \ + hb-ot-hhea-table.hh \ + hb-ot-hmtx-table.hh \ + hb-ot-maxp-table.hh \ + hb-ot-name-table.hh \ + hb-ot-tag.cc \ + hb-private.hh \ + 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 \ + hb-shaper.cc \ + 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 \ + 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_sources) -HBHEADERS += $(HB_OT_headers) +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 \ + hb-ot-layout-jstf-table.hh \ + hb-ot-layout-private.hh \ + hb-ot-map.cc \ + 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-table.hh \ + hb-ot-shape-complex-arabic-win1256.hh \ + 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 \ + 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 \ + hb-ot-shape-complex-sea.cc \ + hb-ot-shape-complex-sea-machine.hh \ + hb-ot-shape-complex-thai.cc \ + hb-ot-shape-complex-tibetan.cc \ + hb-ot-shape-complex-private.hh \ + hb-ot-shape-normalize-private.hh \ + hb-ot-shape-normalize.cc \ + hb-ot-shape-fallback-private.hh \ + hb-ot-shape-fallback.cc \ + hb-ot-shape-private.hh \ + $(NULL) +HBHEADERS += \ + hb-ot.h \ + hb-ot-font.h \ + hb-ot-layout.h \ + hb-ot-shape.h \ + hb-ot-tag.h \ + $(NULL) endif if HAVE_FALLBACK -HBSOURCES += $(HB_FALLBACK_sources) +HBSOURCES += hb-fallback-shape.cc endif if HAVE_PTHREAD HBCFLAGS += $(PTHREAD_CFLAGS) -HBNONPCLIBS += $(PTHREAD_LIBS) +HBLIBS += $(PTHREAD_LIBS) endif if HAVE_GLIB HBCFLAGS += $(GLIB_CFLAGS) HBLIBS += $(GLIB_LIBS) -HBDEPS += $(GLIB_DEPS) -HBSOURCES += $(HB_GLIB_sources) -HBHEADERS += $(HB_GLIB_headers) +HBSOURCES += hb-glib.cc +HBHEADERS += hb-glib.h endif 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_sources) -HBHEADERS += $(HB_FT_headers) +HBSOURCES += hb-ft.cc +HBHEADERS += hb-ft.h endif if HAVE_GRAPHITE2 HBCFLAGS += $(GRAPHITE2_CFLAGS) HBLIBS += $(GRAPHITE2_LIBS) -HBDEPS += $(GRAPHITE2_DEPS) -HBSOURCES += $(HB_GRAPHITE2_sources) -HBHEADERS += $(HB_GRAPHITE2_headers) +HBSOURCES += hb-graphite2.cc +HBHEADERS += hb-graphite2.h endif if HAVE_UNISCRIBE HBCFLAGS += $(UNISCRIBE_CFLAGS) -HBNONPCLIBS += $(UNISCRIBE_LIBS) -HBSOURCES += $(HB_UNISCRIBE_sources) -HBHEADERS += $(HB_UNISCRIBE_headers) -endif - -if HAVE_DIRECTWRITE -HBCFLAGS += $(DIRECTWRITE_CXXFLAGS) -HBNONPCLIBS += $(DIRECTWRITE_LIBS) -HBSOURCES += $(HB_DIRECTWRITE_sources) -HBHEADERS += $(HB_DIRECTWRITE_headers) +HBLIBS += $(UNISCRIBE_LIBS) +HBSOURCES += hb-uniscribe.cc +HBHEADERS += hb-uniscribe.h endif if HAVE_CORETEXT HBCFLAGS += $(CORETEXT_CFLAGS) -HBNONPCLIBS += $(CORETEXT_LIBS) -HBSOURCES += $(HB_CORETEXT_sources) -HBHEADERS += $(HB_CORETEXT_headers) +HBLIBS += $(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_sources) +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 @@ -129,59 +203,35 @@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = harfbuzz.pc EXTRA_DIST += harfbuzz.pc.in -FUZZING_CPPFLAGS= \ - -DHB_NDEBUG \ - -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) -CLEANFILES += libharfbuzz-fuzzing.la - if HAVE_ICU -if HAVE_ICU_BUILTIN -HBCFLAGS += $(ICU_CFLAGS) -HBLIBS += $(ICU_LIBS) -HBSOURCES += $(HB_ICU_sources) -HBHEADERS += $(HB_ICU_headers) -else lib_LTLIBRARIES += libharfbuzz-icu.la -libharfbuzz_icu_la_SOURCES = $(HB_ICU_sources) +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_headers) +pkginclude_HEADERS += hb-icu.h pkgconfig_DATA += harfbuzz-icu.pc endif -endif 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_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_headers) -nodist_pkginclude_HEADERS += $(HB_GOBJECT_ENUM_headers) +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_ENUM_sources) \ - $(HB_GOBJECT_ENUM_headers) \ + hb-gobject-enums.cc \ + hb-gobject-enums.h \ $(NULL) DISTCLEANFILES += \ - $(HB_GOBJECT_ENUM_sources) \ - $(HB_GOBJECT_ENUM_headers) \ + hb-gobject-enums.cc \ + hb-gobject-enums.h \ $(NULL) hb-gobject-enums.%: hb-gobject-enums.%.tmpl $(HBHEADERS) $(AM_V_GEN) $(GLIB_MKENUMS) \ @@ -203,8 +253,6 @@ EXTRA_DIST += \ -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' \ -e 's@%VERSION%@$(VERSION)@g' \ "$<" > "$@" \ || ($(RM) "$@"; false) @@ -219,7 +267,7 @@ harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS) $(EGREP) '^hb_.* \(' | \ sed -e 's/ (.*//' | \ LANG=C sort; \ - echo LIBRARY libharfbuzz-0.dll; \ + echo LIBRARY libharfbuzz-$(HB_VERSION_MAJOR).dll; \ ) >"$@" @ ! grep -q hb_ERROR "$@" \ || ($(RM) "$@"; false) @@ -228,34 +276,29 @@ harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS) GENERATORS = \ gen-arabic-table.py \ gen-indic-table.py \ - gen-use-table.py \ $(NULL) EXTRA_DIST += $(GENERATORS) -unicode-tables: arabic-table indic-table use-table - -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) +unicode-tables: arabic-table indic-table -indic-table: gen-indic-table.py IndicSyllabicCategory-7.0.0.txt IndicMatraCategory-7.0.0.txt Blocks.txt +indic-table: gen-indic-table.py IndicSyllabicCategory.txt IndicMatraCategory.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) +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) built-sources: $(BUILT_SOURCES) -.PHONY: unicode-tables arabic-table indic-table use-table built-sources +.PHONY: unicode-tables arabic-table indic-table built-sources 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 \ + $(srcdir)/hb-ot-shape-complex-sea-machine.hh \ $(NULL) BUILT_SOURCES += $(RAGEL_GENERATED) EXTRA_DIST += \ @@ -263,7 +306,7 @@ EXTRA_DIST += \ 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 \ + hb-ot-shape-complex-sea-machine.rl \ $(NULL) MAINTAINERCLEANFILES += $(RAGEL_GENERATED) $(srcdir)/%.hh: $(srcdir)/%.rl @@ -309,14 +352,7 @@ dist_check_SCRIPTS = \ check-symbols.sh \ $(NULL) -check_PROGRAMS = \ - test-ot-tag \ - $(NULL) -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) +TESTS = $(dist_check_SCRIPTS) TESTS_ENVIRONMENT = \ srcdir="$(srcdir)" \ MAKE="$(MAKE) $(AM_MAKEFLAGS)" \ @@ -327,7 +363,7 @@ TESTS_ENVIRONMENT = \ if HAVE_INTROSPECTION -include $(INTROSPECTION_MAKEFILE) -INTROSPECTION_GIRS = HarfBuzz-0.0.gir # What does the 0 mean anyway?! +INTROSPECTION_GIRS = HarfBuzz-$(HB_VERSION_MAJOR).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)" @@ -343,7 +379,6 @@ HarfBuzz_0_0_gir_CFLAGS = \ -DHB_OT_H_IN \ -DHB_GOBJECT_H \ -DHB_GOBJECT_H_IN \ - -DHB_EXTERN= \ $(NULL) HarfBuzz_0_0_gir_LIBS = \ libharfbuzz.la \ @@ -353,10 +388,10 @@ 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-enums.cc \ + hb-gobject-enums.h \ + hb-gobject-structs.cc \ + hb-gobject-structs.h \ $(NULL) girdir = $(datadir)/gir-1.0 diff --git a/src/Makefile.in b/src/Makefile.in index 7094614..bd923e6 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -83,80 +83,107 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(srcdir)/Makefile.sources $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(srcdir)/hb-version.h.in \ - $(dist_check_SCRIPTS) $(top_srcdir)/depcomp \ - $(am__pkginclude_HEADERS_DIST) $(top_srcdir)/test-driver -@HAVE_OT_TRUE@am__append_1 = $(HB_OT_sources) -@HAVE_OT_TRUE@am__append_2 = $(HB_OT_headers) -@HAVE_FALLBACK_TRUE@am__append_3 = $(HB_FALLBACK_sources) +@HAVE_OT_TRUE@am__append_1 = \ +@HAVE_OT_TRUE@ hb-ot-font.cc \ +@HAVE_OT_TRUE@ hb-ot-layout.cc \ +@HAVE_OT_TRUE@ hb-ot-layout-common-private.hh \ +@HAVE_OT_TRUE@ hb-ot-layout-gdef-table.hh \ +@HAVE_OT_TRUE@ hb-ot-layout-gpos-table.hh \ +@HAVE_OT_TRUE@ hb-ot-layout-gsubgpos-private.hh \ +@HAVE_OT_TRUE@ hb-ot-layout-gsub-table.hh \ +@HAVE_OT_TRUE@ hb-ot-layout-jstf-table.hh \ +@HAVE_OT_TRUE@ hb-ot-layout-private.hh \ +@HAVE_OT_TRUE@ hb-ot-map.cc \ +@HAVE_OT_TRUE@ hb-ot-map-private.hh \ +@HAVE_OT_TRUE@ hb-ot-shape.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-arabic.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-arabic-fallback.hh \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-arabic-table.hh \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-arabic-win1256.hh \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-default.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-hangul.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-hebrew.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-indic.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-indic-machine.hh \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-indic-private.hh \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-indic-table.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-myanmar.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-myanmar-machine.hh \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-sea.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-sea-machine.hh \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-thai.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-tibetan.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-complex-private.hh \ +@HAVE_OT_TRUE@ hb-ot-shape-normalize-private.hh \ +@HAVE_OT_TRUE@ hb-ot-shape-normalize.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-fallback-private.hh \ +@HAVE_OT_TRUE@ hb-ot-shape-fallback.cc \ +@HAVE_OT_TRUE@ hb-ot-shape-private.hh \ +@HAVE_OT_TRUE@ $(NULL) + +@HAVE_OT_TRUE@am__append_2 = \ +@HAVE_OT_TRUE@ hb-ot.h \ +@HAVE_OT_TRUE@ hb-ot-font.h \ +@HAVE_OT_TRUE@ hb-ot-layout.h \ +@HAVE_OT_TRUE@ hb-ot-shape.h \ +@HAVE_OT_TRUE@ hb-ot-tag.h \ +@HAVE_OT_TRUE@ $(NULL) + +@HAVE_FALLBACK_TRUE@am__append_3 = hb-fallback-shape.cc @HAVE_PTHREAD_TRUE@am__append_4 = $(PTHREAD_CFLAGS) @HAVE_PTHREAD_TRUE@am__append_5 = $(PTHREAD_LIBS) @HAVE_GLIB_TRUE@am__append_6 = $(GLIB_CFLAGS) @HAVE_GLIB_TRUE@am__append_7 = $(GLIB_LIBS) -@HAVE_GLIB_TRUE@am__append_8 = $(GLIB_DEPS) -@HAVE_GLIB_TRUE@am__append_9 = $(HB_GLIB_sources) -@HAVE_GLIB_TRUE@am__append_10 = $(HB_GLIB_headers) -@HAVE_FREETYPE_TRUE@am__append_11 = $(FREETYPE_CFLAGS) -@HAVE_FREETYPE_TRUE@am__append_12 = $(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) -@HAVE_FREETYPE_TRUE@am__append_13 = $(HB_FT_sources) -@HAVE_FREETYPE_TRUE@am__append_14 = $(HB_FT_headers) -@HAVE_GRAPHITE2_TRUE@am__append_15 = $(GRAPHITE2_CFLAGS) -@HAVE_GRAPHITE2_TRUE@am__append_16 = $(GRAPHITE2_LIBS) -@HAVE_GRAPHITE2_TRUE@am__append_17 = $(GRAPHITE2_DEPS) -@HAVE_GRAPHITE2_TRUE@am__append_18 = $(HB_GRAPHITE2_sources) -@HAVE_GRAPHITE2_TRUE@am__append_19 = $(HB_GRAPHITE2_headers) -@HAVE_UNISCRIBE_TRUE@am__append_20 = $(UNISCRIBE_CFLAGS) -@HAVE_UNISCRIBE_TRUE@am__append_21 = $(UNISCRIBE_LIBS) -@HAVE_UNISCRIBE_TRUE@am__append_22 = $(HB_UNISCRIBE_sources) -@HAVE_UNISCRIBE_TRUE@am__append_23 = $(HB_UNISCRIBE_headers) -@HAVE_DIRECTWRITE_TRUE@am__append_24 = $(DIRECTWRITE_CXXFLAGS) -@HAVE_DIRECTWRITE_TRUE@am__append_25 = $(DIRECTWRITE_LIBS) -@HAVE_DIRECTWRITE_TRUE@am__append_26 = $(HB_DIRECTWRITE_sources) -@HAVE_DIRECTWRITE_TRUE@am__append_27 = $(HB_DIRECTWRITE_headers) -@HAVE_CORETEXT_TRUE@am__append_28 = $(CORETEXT_CFLAGS) -@HAVE_CORETEXT_TRUE@am__append_29 = $(CORETEXT_LIBS) -@HAVE_CORETEXT_TRUE@am__append_30 = $(HB_CORETEXT_sources) -@HAVE_CORETEXT_TRUE@am__append_31 = $(HB_CORETEXT_headers) -@HAVE_UCDN_TRUE@am__append_32 = hb-ucdn -@HAVE_UCDN_TRUE@am__append_33 = -I$(srcdir)/hb-ucdn -@HAVE_UCDN_TRUE@am__append_34 = hb-ucdn/libhb-ucdn.la -@HAVE_UCDN_TRUE@am__append_35 = $(HB_UCDN_sources) -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@am__append_36 = $(ICU_CFLAGS) -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@am__append_37 = $(ICU_LIBS) -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@am__append_38 = $(HB_ICU_sources) -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@am__append_39 = $(HB_ICU_headers) -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@am__append_40 = libharfbuzz-icu.la -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@am__append_41 = $(HB_ICU_headers) -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@am__append_42 = harfbuzz-icu.pc -@HAVE_GOBJECT_TRUE@am__append_43 = libharfbuzz-gobject.la -@HAVE_GOBJECT_TRUE@am__append_44 = $(HB_GOBJECT_headers) -@HAVE_GOBJECT_TRUE@am__append_45 = $(HB_GOBJECT_ENUM_headers) -@HAVE_GOBJECT_TRUE@am__append_46 = harfbuzz-gobject.pc -@HAVE_GOBJECT_TRUE@am__append_47 = \ -@HAVE_GOBJECT_TRUE@ $(HB_GOBJECT_ENUM_sources) \ -@HAVE_GOBJECT_TRUE@ $(HB_GOBJECT_ENUM_headers) \ +@HAVE_GLIB_TRUE@am__append_8 = hb-glib.cc +@HAVE_GLIB_TRUE@am__append_9 = hb-glib.h +@HAVE_FREETYPE_TRUE@am__append_10 = $(FREETYPE_CFLAGS) +@HAVE_FREETYPE_TRUE@am__append_11 = $(FREETYPE_LIBS) +@HAVE_FREETYPE_TRUE@am__append_12 = hb-ft.cc +@HAVE_FREETYPE_TRUE@am__append_13 = hb-ft.h +@HAVE_GRAPHITE2_TRUE@am__append_14 = $(GRAPHITE2_CFLAGS) +@HAVE_GRAPHITE2_TRUE@am__append_15 = $(GRAPHITE2_LIBS) +@HAVE_GRAPHITE2_TRUE@am__append_16 = hb-graphite2.cc +@HAVE_GRAPHITE2_TRUE@am__append_17 = hb-graphite2.h +@HAVE_UNISCRIBE_TRUE@am__append_18 = $(UNISCRIBE_CFLAGS) +@HAVE_UNISCRIBE_TRUE@am__append_19 = $(UNISCRIBE_LIBS) +@HAVE_UNISCRIBE_TRUE@am__append_20 = hb-uniscribe.cc +@HAVE_UNISCRIBE_TRUE@am__append_21 = hb-uniscribe.h +@HAVE_CORETEXT_TRUE@am__append_22 = $(CORETEXT_CFLAGS) +@HAVE_CORETEXT_TRUE@am__append_23 = $(CORETEXT_LIBS) +@HAVE_CORETEXT_TRUE@am__append_24 = hb-coretext.cc +@HAVE_CORETEXT_TRUE@am__append_25 = hb-coretext.h +@HAVE_UCDN_TRUE@am__append_26 = hb-ucdn +@HAVE_UCDN_TRUE@am__append_27 = -I$(srcdir)/hb-ucdn +@HAVE_UCDN_TRUE@am__append_28 = hb-ucdn/libhb-ucdn.la +@HAVE_UCDN_TRUE@am__append_29 = hb-ucdn.cc +@HAVE_ICU_TRUE@am__append_30 = libharfbuzz-icu.la +@HAVE_ICU_TRUE@am__append_31 = hb-icu.h +@HAVE_ICU_TRUE@am__append_32 = harfbuzz-icu.pc +@HAVE_GOBJECT_TRUE@am__append_33 = libharfbuzz-gobject.la +@HAVE_GOBJECT_TRUE@am__append_34 = hb-gobject.h hb-gobject-structs.h +@HAVE_GOBJECT_TRUE@am__append_35 = hb-gobject-enums.h +@HAVE_GOBJECT_TRUE@am__append_36 = harfbuzz-gobject.pc +@HAVE_GOBJECT_TRUE@am__append_37 = \ +@HAVE_GOBJECT_TRUE@ hb-gobject-enums.cc \ +@HAVE_GOBJECT_TRUE@ hb-gobject-enums.h \ @HAVE_GOBJECT_TRUE@ $(NULL) -@HAVE_GOBJECT_TRUE@am__append_48 = \ -@HAVE_GOBJECT_TRUE@ $(HB_GOBJECT_ENUM_sources) \ -@HAVE_GOBJECT_TRUE@ $(HB_GOBJECT_ENUM_headers) \ +@HAVE_GOBJECT_TRUE@am__append_38 = \ +@HAVE_GOBJECT_TRUE@ hb-gobject-enums.cc \ +@HAVE_GOBJECT_TRUE@ hb-gobject-enums.h \ @HAVE_GOBJECT_TRUE@ $(NULL) noinst_PROGRAMS = main$(EXEEXT) test$(EXEEXT) \ test-buffer-serialize$(EXEEXT) test-size-params$(EXEEXT) \ test-would-substitute$(EXEEXT) $(am__EXEEXT_1) bin_PROGRAMS = -check_PROGRAMS = test-ot-tag$(EXEEXT) $(am__EXEEXT_1) -TESTS = $(am__EXEEXT_2) $(check_PROGRAMS) -@HAVE_INTROSPECTION_TRUE@am__append_49 = $(gir_DATA) $(typelib_DATA) +TESTS = $(am__EXEEXT_2) +@HAVE_INTROSPECTION_TRUE@am__append_39 = $(gir_DATA) $(typelib_DATA) subdir = src +DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ + $(srcdir)/hb-version.h.in $(dist_check_SCRIPTS) \ + $(top_srcdir)/depcomp $(am__pkginclude_HEADERS_DIST) \ + $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/libtool.m4 \ @@ -202,151 +229,12 @@ am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(pkgincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = -@HAVE_GLIB_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) -@HAVE_FREETYPE_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) -@HAVE_GRAPHITE2_TRUE@am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1) -@HAVE_PTHREAD_TRUE@am__DEPENDENCIES_5 = $(am__DEPENDENCIES_1) -@HAVE_UNISCRIBE_TRUE@am__DEPENDENCIES_6 = $(am__DEPENDENCIES_1) -@HAVE_DIRECTWRITE_TRUE@am__DEPENDENCIES_7 = $(am__DEPENDENCIES_1) -@HAVE_CORETEXT_TRUE@am__DEPENDENCIES_8 = $(am__DEPENDENCIES_1) -am__DEPENDENCIES_9 = $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_6) \ - $(am__DEPENDENCIES_7) $(am__DEPENDENCIES_8) -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@am__DEPENDENCIES_10 = \ -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@ $(am__DEPENDENCIES_1) -am__DEPENDENCIES_11 = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \ - $(am__DEPENDENCIES_4) $(am__append_34) $(am__DEPENDENCIES_9) \ - $(am__DEPENDENCIES_10) -am__DEPENDENCIES_12 = $(am__DEPENDENCIES_11) -libharfbuzz_fuzzing_la_DEPENDENCIES = $(am__DEPENDENCIES_12) -am__libharfbuzz_fuzzing_la_SOURCES_DIST = hb-atomic-private.hh \ - hb-blob.cc 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 \ - hb-ot-cmap-table.hh hb-ot-glyf-table.hh hb-ot-head-table.hh \ - hb-ot-hhea-table.hh hb-ot-hmtx-table.hh hb-ot-maxp-table.hh \ - hb-ot-name-table.hh hb-ot-os2-table.hh hb-ot-post-table.hh \ - hb-ot-tag.cc hb-private.hh 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 hb-shaper.cc hb-unicode-private.hh \ - hb-unicode.cc hb-utf-private.hh hb-warning.cc 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 \ - hb-ot-layout-jstf-table.hh hb-ot-layout-private.hh \ - hb-ot-map.cc 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 \ - 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 \ - 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 \ - 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 hb-ot-shape-normalize.cc \ - hb-ot-shape-fallback-private.hh hb-ot-shape-fallback.cc \ - hb-ot-shape-private.hh hb-fallback-shape.cc hb-glib.cc \ - hb-ft.cc hb-graphite2.cc hb-uniscribe.cc hb-directwrite.cc \ - hb-coretext.cc hb-ucdn.cc hb-icu.cc hb.h hb-blob.h hb-buffer.h \ - hb-common.h hb-deprecated.h hb-face.h hb-font.h hb-set.h \ - hb-shape.h hb-shape-plan.h hb-unicode.h hb-ot.h hb-ot-font.h \ - hb-ot-layout.h hb-ot-shape.h hb-ot-tag.h hb-glib.h hb-ft.h \ - hb-graphite2.h hb-uniscribe.h hb-directwrite.h hb-coretext.h \ - hb-icu.h hb-version.h -am__objects_1 = -am__objects_2 = libharfbuzz_fuzzing_la-hb-blob.lo \ - libharfbuzz_fuzzing_la-hb-buffer-serialize.lo \ - libharfbuzz_fuzzing_la-hb-buffer.lo \ - libharfbuzz_fuzzing_la-hb-common.lo \ - libharfbuzz_fuzzing_la-hb-face.lo \ - libharfbuzz_fuzzing_la-hb-font.lo \ - libharfbuzz_fuzzing_la-hb-ot-tag.lo \ - libharfbuzz_fuzzing_la-hb-set.lo \ - libharfbuzz_fuzzing_la-hb-shape.lo \ - libharfbuzz_fuzzing_la-hb-shape-plan.lo \ - libharfbuzz_fuzzing_la-hb-shaper.lo \ - libharfbuzz_fuzzing_la-hb-unicode.lo \ - libharfbuzz_fuzzing_la-hb-warning.lo $(am__objects_1) -am__objects_3 = libharfbuzz_fuzzing_la-hb-ot-font.lo \ - libharfbuzz_fuzzing_la-hb-ot-layout.lo \ - libharfbuzz_fuzzing_la-hb-ot-map.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-arabic.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-default.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-hangul.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-hebrew.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic-table.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-myanmar.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-thai.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-tibetan.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-use.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-complex-use-table.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-normalize.lo \ - libharfbuzz_fuzzing_la-hb-ot-shape-fallback.lo \ - $(am__objects_1) -@HAVE_OT_TRUE@am__objects_4 = $(am__objects_3) -am__objects_5 = libharfbuzz_fuzzing_la-hb-fallback-shape.lo -@HAVE_FALLBACK_TRUE@am__objects_6 = $(am__objects_5) -am__objects_7 = libharfbuzz_fuzzing_la-hb-glib.lo -@HAVE_GLIB_TRUE@am__objects_8 = $(am__objects_7) -am__objects_9 = libharfbuzz_fuzzing_la-hb-ft.lo -@HAVE_FREETYPE_TRUE@am__objects_10 = $(am__objects_9) -am__objects_11 = libharfbuzz_fuzzing_la-hb-graphite2.lo -@HAVE_GRAPHITE2_TRUE@am__objects_12 = $(am__objects_11) -am__objects_13 = libharfbuzz_fuzzing_la-hb-uniscribe.lo -@HAVE_UNISCRIBE_TRUE@am__objects_14 = $(am__objects_13) -am__objects_15 = libharfbuzz_fuzzing_la-hb-directwrite.lo -@HAVE_DIRECTWRITE_TRUE@am__objects_16 = $(am__objects_15) -am__objects_17 = libharfbuzz_fuzzing_la-hb-coretext.lo -@HAVE_CORETEXT_TRUE@am__objects_18 = $(am__objects_17) -am__objects_19 = libharfbuzz_fuzzing_la-hb-ucdn.lo -@HAVE_UCDN_TRUE@am__objects_20 = $(am__objects_19) -am__objects_21 = libharfbuzz_fuzzing_la-hb-icu.lo -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@am__objects_22 = \ -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@ $(am__objects_21) -am__objects_23 = $(am__objects_2) $(am__objects_4) $(am__objects_6) \ - $(am__objects_8) $(am__objects_10) $(am__objects_12) \ - $(am__objects_14) $(am__objects_16) $(am__objects_18) \ - $(am__objects_20) $(am__objects_22) -am__objects_24 = $(am__objects_1) -@HAVE_OT_TRUE@am__objects_25 = $(am__objects_24) -@HAVE_GLIB_TRUE@am__objects_26 = $(am__objects_1) -@HAVE_FREETYPE_TRUE@am__objects_27 = $(am__objects_1) -@HAVE_GRAPHITE2_TRUE@am__objects_28 = $(am__objects_1) -@HAVE_UNISCRIBE_TRUE@am__objects_29 = $(am__objects_1) -@HAVE_DIRECTWRITE_TRUE@am__objects_30 = $(am__objects_1) -@HAVE_CORETEXT_TRUE@am__objects_31 = $(am__objects_1) -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@am__objects_32 = \ -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@ $(am__objects_1) -am__objects_33 = $(am__objects_24) $(am__objects_25) $(am__objects_26) \ - $(am__objects_27) $(am__objects_28) $(am__objects_29) \ - $(am__objects_30) $(am__objects_31) $(am__objects_32) -am__objects_34 = $(am__objects_24) -am__objects_35 = $(am__objects_23) $(am__objects_33) $(am__objects_34) -am_libharfbuzz_fuzzing_la_OBJECTS = $(am__objects_35) -libharfbuzz_fuzzing_la_OBJECTS = $(am_libharfbuzz_fuzzing_la_OBJECTS) @HAVE_GOBJECT_TRUE@libharfbuzz_gobject_la_DEPENDENCIES = \ @HAVE_GOBJECT_TRUE@ $(am__DEPENDENCIES_1) libharfbuzz.la am__libharfbuzz_gobject_la_SOURCES_DIST = hb-gobject-structs.cc -am__objects_36 = libharfbuzz_gobject_la-hb-gobject-structs.lo -@HAVE_GOBJECT_TRUE@am_libharfbuzz_gobject_la_OBJECTS = \ -@HAVE_GOBJECT_TRUE@ $(am__objects_36) -am__objects_37 = libharfbuzz_gobject_la-hb-gobject-enums.lo +@HAVE_GOBJECT_TRUE@am_libharfbuzz_gobject_la_OBJECTS = libharfbuzz_gobject_la-hb-gobject-structs.lo @HAVE_GOBJECT_TRUE@nodist_libharfbuzz_gobject_la_OBJECTS = \ -@HAVE_GOBJECT_TRUE@ $(am__objects_37) +@HAVE_GOBJECT_TRUE@ libharfbuzz_gobject_la-hb-gobject-enums.lo libharfbuzz_gobject_la_OBJECTS = $(am_libharfbuzz_gobject_la_OBJECTS) \ $(nodist_libharfbuzz_gobject_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) @@ -358,21 +246,27 @@ libharfbuzz_gobject_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(AM_CXXFLAGS) $(CXXFLAGS) $(libharfbuzz_gobject_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_GOBJECT_TRUE@am_libharfbuzz_gobject_la_rpath = -rpath $(libdir) -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@libharfbuzz_icu_la_DEPENDENCIES = \ -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@ $(am__DEPENDENCIES_1) \ -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@ libharfbuzz.la +@HAVE_ICU_TRUE@libharfbuzz_icu_la_DEPENDENCIES = \ +@HAVE_ICU_TRUE@ $(am__DEPENDENCIES_1) libharfbuzz.la am__libharfbuzz_icu_la_SOURCES_DIST = hb-icu.cc -am__objects_38 = libharfbuzz_icu_la-hb-icu.lo -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@am_libharfbuzz_icu_la_OBJECTS = \ -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@ $(am__objects_38) +@HAVE_ICU_TRUE@am_libharfbuzz_icu_la_OBJECTS = \ +@HAVE_ICU_TRUE@ libharfbuzz_icu_la-hb-icu.lo libharfbuzz_icu_la_OBJECTS = $(am_libharfbuzz_icu_la_OBJECTS) libharfbuzz_icu_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(libharfbuzz_icu_la_LDFLAGS) \ $(LDFLAGS) -o $@ -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@am_libharfbuzz_icu_la_rpath = \ -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@ -rpath $(libdir) -libharfbuzz_la_DEPENDENCIES = $(am__DEPENDENCIES_11) +@HAVE_ICU_TRUE@am_libharfbuzz_icu_la_rpath = -rpath $(libdir) +@HAVE_PTHREAD_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) +@HAVE_GLIB_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) +@HAVE_FREETYPE_TRUE@am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1) +@HAVE_GRAPHITE2_TRUE@am__DEPENDENCIES_5 = $(am__DEPENDENCIES_1) +@HAVE_UNISCRIBE_TRUE@am__DEPENDENCIES_6 = $(am__DEPENDENCIES_1) +@HAVE_CORETEXT_TRUE@am__DEPENDENCIES_7 = $(am__DEPENDENCIES_1) +am__DEPENDENCIES_8 = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3) \ + $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_5) \ + $(am__DEPENDENCIES_6) $(am__DEPENDENCIES_7) $(am__append_28) +libharfbuzz_la_DEPENDENCIES = $(am__DEPENDENCIES_8) am__libharfbuzz_la_SOURCES_DIST = hb-atomic-private.hh hb-blob.cc \ hb-buffer-deserialize-json.hh hb-buffer-deserialize-text.hh \ hb-buffer-private.hh hb-buffer-serialize.cc hb-buffer.cc \ @@ -380,9 +274,8 @@ am__libharfbuzz_la_SOURCES_DIST = hb-atomic-private.hh hb-blob.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 hb-ot-cmap-table.hh \ - hb-ot-glyf-table.hh hb-ot-head-table.hh hb-ot-hhea-table.hh \ - hb-ot-hmtx-table.hh hb-ot-maxp-table.hh hb-ot-name-table.hh \ - hb-ot-os2-table.hh hb-ot-post-table.hh hb-ot-tag.cc \ + hb-ot-head-table.hh hb-ot-hhea-table.hh hb-ot-hmtx-table.hh \ + hb-ot-maxp-table.hh hb-ot-name-table.hh hb-ot-tag.cc \ hb-private.hh 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 hb-shaper.cc \ @@ -394,7 +287,6 @@ am__libharfbuzz_la_SOURCES_DIST = hb-atomic-private.hh hb-blob.cc \ hb-ot-layout-private.hh hb-ot-map.cc 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 \ hb-ot-shape-complex-default.cc hb-ot-shape-complex-hangul.cc \ @@ -404,98 +296,86 @@ am__libharfbuzz_la_SOURCES_DIST = hb-atomic-private.hh hb-blob.cc \ hb-ot-shape-complex-indic-table.cc \ hb-ot-shape-complex-myanmar.cc \ hb-ot-shape-complex-myanmar-machine.hh \ + hb-ot-shape-complex-sea.cc hb-ot-shape-complex-sea-machine.hh \ 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 hb-ot-shape-normalize.cc \ hb-ot-shape-fallback-private.hh hb-ot-shape-fallback.cc \ hb-ot-shape-private.hh hb-fallback-shape.cc hb-glib.cc \ - hb-ft.cc hb-graphite2.cc hb-uniscribe.cc hb-directwrite.cc \ - hb-coretext.cc hb-ucdn.cc hb-icu.cc hb.h hb-blob.h hb-buffer.h \ - hb-common.h hb-deprecated.h hb-face.h hb-font.h hb-set.h \ - hb-shape.h hb-shape-plan.h hb-unicode.h hb-ot.h hb-ot-font.h \ + hb-ft.cc hb-graphite2.cc hb-uniscribe.cc hb-coretext.cc \ + hb-ucdn.cc hb.h hb-blob.h hb-buffer.h hb-common.h \ + hb-deprecated.h hb-face.h hb-font.h hb-set.h hb-shape.h \ + hb-shape-plan.h hb-unicode.h hb-ot.h hb-ot-font.h \ hb-ot-layout.h hb-ot-shape.h hb-ot-tag.h hb-glib.h hb-ft.h \ - hb-graphite2.h hb-uniscribe.h hb-directwrite.h hb-coretext.h \ - hb-icu.h hb-version.h -am__objects_39 = libharfbuzz_la-hb-blob.lo \ + hb-graphite2.h hb-uniscribe.h hb-coretext.h hb-version.h +am__objects_1 = +@HAVE_OT_TRUE@am__objects_2 = libharfbuzz_la-hb-ot-font.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-layout.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-map.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-complex-arabic.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-complex-default.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-complex-hangul.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-complex-hebrew.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-complex-indic.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-complex-indic-table.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-complex-myanmar.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-complex-sea.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-complex-thai.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-complex-tibetan.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-normalize.lo \ +@HAVE_OT_TRUE@ libharfbuzz_la-hb-ot-shape-fallback.lo \ +@HAVE_OT_TRUE@ $(am__objects_1) +@HAVE_FALLBACK_TRUE@am__objects_3 = \ +@HAVE_FALLBACK_TRUE@ libharfbuzz_la-hb-fallback-shape.lo +@HAVE_GLIB_TRUE@am__objects_4 = libharfbuzz_la-hb-glib.lo +@HAVE_FREETYPE_TRUE@am__objects_5 = libharfbuzz_la-hb-ft.lo +@HAVE_GRAPHITE2_TRUE@am__objects_6 = libharfbuzz_la-hb-graphite2.lo +@HAVE_UNISCRIBE_TRUE@am__objects_7 = libharfbuzz_la-hb-uniscribe.lo +@HAVE_CORETEXT_TRUE@am__objects_8 = libharfbuzz_la-hb-coretext.lo +@HAVE_UCDN_TRUE@am__objects_9 = libharfbuzz_la-hb-ucdn.lo +am__objects_10 = libharfbuzz_la-hb-blob.lo \ libharfbuzz_la-hb-buffer-serialize.lo \ libharfbuzz_la-hb-buffer.lo libharfbuzz_la-hb-common.lo \ libharfbuzz_la-hb-face.lo libharfbuzz_la-hb-font.lo \ libharfbuzz_la-hb-ot-tag.lo libharfbuzz_la-hb-set.lo \ libharfbuzz_la-hb-shape.lo libharfbuzz_la-hb-shape-plan.lo \ libharfbuzz_la-hb-shaper.lo libharfbuzz_la-hb-unicode.lo \ - libharfbuzz_la-hb-warning.lo $(am__objects_1) -am__objects_40 = libharfbuzz_la-hb-ot-font.lo \ - libharfbuzz_la-hb-ot-layout.lo libharfbuzz_la-hb-ot-map.lo \ - libharfbuzz_la-hb-ot-shape.lo \ - libharfbuzz_la-hb-ot-shape-complex-arabic.lo \ - libharfbuzz_la-hb-ot-shape-complex-default.lo \ - libharfbuzz_la-hb-ot-shape-complex-hangul.lo \ - libharfbuzz_la-hb-ot-shape-complex-hebrew.lo \ - libharfbuzz_la-hb-ot-shape-complex-indic.lo \ - libharfbuzz_la-hb-ot-shape-complex-indic-table.lo \ - libharfbuzz_la-hb-ot-shape-complex-myanmar.lo \ - libharfbuzz_la-hb-ot-shape-complex-thai.lo \ - libharfbuzz_la-hb-ot-shape-complex-tibetan.lo \ - libharfbuzz_la-hb-ot-shape-complex-use.lo \ - libharfbuzz_la-hb-ot-shape-complex-use-table.lo \ - libharfbuzz_la-hb-ot-shape-normalize.lo \ - libharfbuzz_la-hb-ot-shape-fallback.lo $(am__objects_1) -@HAVE_OT_TRUE@am__objects_41 = $(am__objects_40) -am__objects_42 = libharfbuzz_la-hb-fallback-shape.lo -@HAVE_FALLBACK_TRUE@am__objects_43 = $(am__objects_42) -am__objects_44 = libharfbuzz_la-hb-glib.lo -@HAVE_GLIB_TRUE@am__objects_45 = $(am__objects_44) -am__objects_46 = libharfbuzz_la-hb-ft.lo -@HAVE_FREETYPE_TRUE@am__objects_47 = $(am__objects_46) -am__objects_48 = libharfbuzz_la-hb-graphite2.lo -@HAVE_GRAPHITE2_TRUE@am__objects_49 = $(am__objects_48) -am__objects_50 = libharfbuzz_la-hb-uniscribe.lo -@HAVE_UNISCRIBE_TRUE@am__objects_51 = $(am__objects_50) -am__objects_52 = libharfbuzz_la-hb-directwrite.lo -@HAVE_DIRECTWRITE_TRUE@am__objects_53 = $(am__objects_52) -am__objects_54 = libharfbuzz_la-hb-coretext.lo -@HAVE_CORETEXT_TRUE@am__objects_55 = $(am__objects_54) -am__objects_56 = libharfbuzz_la-hb-ucdn.lo -@HAVE_UCDN_TRUE@am__objects_57 = $(am__objects_56) -am__objects_58 = libharfbuzz_la-hb-icu.lo -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@am__objects_59 = \ -@HAVE_ICU_BUILTIN_TRUE@@HAVE_ICU_TRUE@ $(am__objects_58) -am__objects_60 = $(am__objects_39) $(am__objects_41) $(am__objects_43) \ - $(am__objects_45) $(am__objects_47) $(am__objects_49) \ - $(am__objects_51) $(am__objects_53) $(am__objects_55) \ - $(am__objects_57) $(am__objects_59) -am_libharfbuzz_la_OBJECTS = $(am__objects_60) $(am__objects_33) \ - $(am__objects_34) + libharfbuzz_la-hb-warning.lo $(am__objects_1) $(am__objects_2) \ + $(am__objects_3) $(am__objects_4) $(am__objects_5) \ + $(am__objects_6) $(am__objects_7) $(am__objects_8) \ + $(am__objects_9) +@HAVE_OT_TRUE@am__objects_11 = $(am__objects_1) +am__objects_12 = $(am__objects_1) $(am__objects_11) $(am__objects_1) \ + $(am__objects_1) $(am__objects_1) $(am__objects_1) \ + $(am__objects_1) +am__objects_13 = $(am__objects_1) +am_libharfbuzz_la_OBJECTS = $(am__objects_10) $(am__objects_12) \ + $(am__objects_13) libharfbuzz_la_OBJECTS = $(am_libharfbuzz_la_OBJECTS) am__EXEEXT_1 = PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am_main_OBJECTS = main-main.$(OBJEXT) main_OBJECTS = $(am_main_OBJECTS) -main_DEPENDENCIES = libharfbuzz.la $(am__DEPENDENCIES_11) +main_DEPENDENCIES = libharfbuzz.la $(am__DEPENDENCIES_8) am_test_OBJECTS = test-test.$(OBJEXT) test_OBJECTS = $(am_test_OBJECTS) -test_DEPENDENCIES = libharfbuzz.la $(am__DEPENDENCIES_11) \ +test_DEPENDENCIES = libharfbuzz.la $(am__DEPENDENCIES_8) \ $(am__DEPENDENCIES_1) am_test_buffer_serialize_OBJECTS = \ test_buffer_serialize-test-buffer-serialize.$(OBJEXT) test_buffer_serialize_OBJECTS = $(am_test_buffer_serialize_OBJECTS) test_buffer_serialize_DEPENDENCIES = libharfbuzz.la \ - $(am__DEPENDENCIES_11) -am_test_ot_tag_OBJECTS = test_ot_tag-hb-ot-tag.$(OBJEXT) -test_ot_tag_OBJECTS = $(am_test_ot_tag_OBJECTS) -test_ot_tag_DEPENDENCIES = libharfbuzz.la $(am__DEPENDENCIES_11) + $(am__DEPENDENCIES_8) am_test_size_params_OBJECTS = \ test_size_params-test-size-params.$(OBJEXT) test_size_params_OBJECTS = $(am_test_size_params_OBJECTS) -test_size_params_DEPENDENCIES = libharfbuzz.la $(am__DEPENDENCIES_11) +test_size_params_DEPENDENCIES = libharfbuzz.la $(am__DEPENDENCIES_8) am_test_would_substitute_OBJECTS = \ test_would_substitute-test-would-substitute.$(OBJEXT) test_would_substitute_OBJECTS = $(am_test_would_substitute_OBJECTS) test_would_substitute_DEPENDENCIES = libharfbuzz.la \ - $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_8) $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -548,20 +428,17 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(libharfbuzz_fuzzing_la_SOURCES) \ - $(libharfbuzz_gobject_la_SOURCES) \ +SOURCES = $(libharfbuzz_gobject_la_SOURCES) \ $(nodist_libharfbuzz_gobject_la_SOURCES) \ $(libharfbuzz_icu_la_SOURCES) $(libharfbuzz_la_SOURCES) \ $(main_SOURCES) $(test_SOURCES) \ - $(test_buffer_serialize_SOURCES) $(test_ot_tag_SOURCES) \ - $(test_size_params_SOURCES) $(test_would_substitute_SOURCES) -DIST_SOURCES = $(am__libharfbuzz_fuzzing_la_SOURCES_DIST) \ - $(am__libharfbuzz_gobject_la_SOURCES_DIST) \ + $(test_buffer_serialize_SOURCES) $(test_size_params_SOURCES) \ + $(test_would_substitute_SOURCES) +DIST_SOURCES = $(am__libharfbuzz_gobject_la_SOURCES_DIST) \ $(am__libharfbuzz_icu_la_SOURCES_DIST) \ $(am__libharfbuzz_la_SOURCES_DIST) $(main_SOURCES) \ $(test_SOURCES) $(test_buffer_serialize_SOURCES) \ - $(test_ot_tag_SOURCES) $(test_size_params_SOURCES) \ - $(test_would_substitute_SOURCES) + $(test_size_params_SOURCES) $(test_would_substitute_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ @@ -580,8 +457,8 @@ am__pkginclude_HEADERS_DIST = hb.h hb-blob.h hb-buffer.h hb-common.h \ hb-deprecated.h hb-face.h hb-font.h hb-set.h hb-shape.h \ hb-shape-plan.h hb-unicode.h hb-ot.h hb-ot-font.h \ hb-ot-layout.h hb-ot-shape.h hb-ot-tag.h hb-glib.h hb-ft.h \ - hb-graphite2.h hb-uniscribe.h hb-directwrite.h hb-coretext.h \ - hb-icu.h hb-gobject.h hb-gobject-structs.h + hb-graphite2.h hb-uniscribe.h hb-coretext.h hb-icu.h \ + hb-gobject.h hb-gobject-structs.h HEADERS = $(nodist_pkginclude_HEADERS) $(pkginclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive @@ -841,8 +718,6 @@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ -DIRECTWRITE_CXXFLAGS = @DIRECTWRITE_CXXFLAGS@ -DIRECTWRITE_LIBS = @DIRECTWRITE_LIBS@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ @@ -852,20 +727,15 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_DEPS = @FREETYPE_DEPS@ FREETYPE_LIBS = @FREETYPE_LIBS@ GIT = @GIT@ GLIB_CFLAGS = @GLIB_CFLAGS@ -GLIB_DEPS = @GLIB_DEPS@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ GOBJECT_LIBS = @GOBJECT_LIBS@ GRAPHITE2_CFLAGS = @GRAPHITE2_CFLAGS@ -GRAPHITE2_DEPS = @GRAPHITE2_DEPS@ GRAPHITE2_LIBS = @GRAPHITE2_LIBS@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ @@ -988,183 +858,55 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = $(am__append_32) +NULL = +SUBDIRS = $(am__append_26) DIST_SUBDIRS = hb-ucdn -BUILT_SOURCES = $(am__append_47) $(RAGEL_GENERATED) +BUILT_SOURCES = $(am__append_37) $(RAGEL_GENERATED) EXTRA_DIST = harfbuzz.pc.in harfbuzz-icu.pc.in harfbuzz-gobject.pc.in \ hb-gobject-enums.cc.tmpl hb-gobject-enums.h.tmpl $(NULL) \ $(GENERATORS) 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) -CLEANFILES = libharfbuzz-fuzzing.la $(pkgconfig_DATA) harfbuzz.def \ - $(am__append_49) -DISTCLEANFILES = $(am__append_48) + hb-ot-shape-complex-sea-machine.rl $(NULL) +CLEANFILES = $(pkgconfig_DATA) harfbuzz.def $(am__append_39) +DISTCLEANFILES = $(am__append_38) MAINTAINERCLEANFILES = $(RAGEL_GENERATED) DISTCHECK_CONFIGURE_FLAGS = --enable-introspection -lib_LTLIBRARIES = libharfbuzz.la $(am__append_40) $(am__append_43) -NULL = - -# Base and default-included sources and headers -HB_BASE_sources = \ - hb-atomic-private.hh \ - hb-blob.cc \ - 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 \ - hb-ot-cmap-table.hh \ - hb-ot-glyf-table.hh \ - hb-ot-head-table.hh \ - hb-ot-hhea-table.hh \ - hb-ot-hmtx-table.hh \ - hb-ot-maxp-table.hh \ - hb-ot-name-table.hh \ - hb-ot-os2-table.hh \ - hb-ot-post-table.hh \ - hb-ot-tag.cc \ - hb-private.hh \ - 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 \ - hb-shaper.cc \ - hb-unicode-private.hh \ - hb-unicode.cc \ - hb-utf-private.hh \ - hb-warning.cc \ - $(NULL) - -HB_BASE_headers = \ - hb.h \ - hb-blob.h \ - hb-buffer.h \ - hb-common.h \ - hb-deprecated.h \ - hb-face.h \ - hb-font.h \ - hb-set.h \ - hb-shape.h \ - hb-shape-plan.h \ - hb-unicode.h \ - $(NULL) - -HB_NODIST_headers = \ +lib_LTLIBRARIES = libharfbuzz.la $(am__append_30) $(am__append_33) +HBCFLAGS = $(am__append_4) $(am__append_6) $(am__append_10) \ + $(am__append_14) $(am__append_18) $(am__append_22) \ + $(am__append_27) +HBLIBS = $(am__append_5) $(am__append_7) $(am__append_11) \ + $(am__append_15) $(am__append_19) $(am__append_23) \ + $(am__append_28) +HBSOURCES = hb-atomic-private.hh hb-blob.cc \ + 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 hb-ot-cmap-table.hh \ + hb-ot-head-table.hh hb-ot-hhea-table.hh hb-ot-hmtx-table.hh \ + hb-ot-maxp-table.hh hb-ot-name-table.hh hb-ot-tag.cc \ + hb-private.hh 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 hb-shaper.cc \ + hb-unicode-private.hh hb-unicode.cc hb-utf-private.hh \ + hb-warning.cc $(NULL) $(am__append_1) $(am__append_3) \ + $(am__append_8) $(am__append_12) $(am__append_16) \ + $(am__append_20) $(am__append_24) $(am__append_29) +HBHEADERS = hb.h hb-blob.h hb-buffer.h hb-common.h hb-deprecated.h \ + hb-face.h hb-font.h hb-set.h hb-shape.h hb-shape-plan.h \ + hb-unicode.h $(NULL) $(am__append_2) $(am__append_9) \ + $(am__append_13) $(am__append_17) $(am__append_21) \ + $(am__append_25) +HBNODISTHEADERS = \ hb-version.h \ $(NULL) -HB_FALLBACK_sources = hb-fallback-shape.cc -HB_OT_sources = \ - 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 \ - hb-ot-layout-jstf-table.hh \ - hb-ot-layout-private.hh \ - hb-ot-map.cc \ - 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 \ - 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 \ - 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 \ - 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 \ - hb-ot-shape-normalize.cc \ - hb-ot-shape-fallback-private.hh \ - hb-ot-shape-fallback.cc \ - hb-ot-shape-private.hh \ - $(NULL) - -HB_OT_headers = \ - hb-ot.h \ - hb-ot-font.h \ - hb-ot-layout.h \ - hb-ot-shape.h \ - hb-ot-tag.h \ - $(NULL) - - -# Optional Sources and Headers with external deps -HB_FT_sources = hb-ft.cc -HB_FT_headers = hb-ft.h -HB_GLIB_sources = hb-glib.cc -HB_GLIB_headers = hb-glib.h -HB_GRAPHITE2_sources = hb-graphite2.cc -HB_GRAPHITE2_headers = hb-graphite2.h - -# System-dependent sources and headers -HB_CORETEXT_sources = hb-coretext.cc -HB_CORETEXT_headers = hb-coretext.h -HB_DIRECTWRITE_sources = hb-directwrite.cc -HB_DIRECTWRITE_headers = hb-directwrite.h -HB_UNISCRIBE_sources = hb-uniscribe.cc -HB_UNISCRIBE_headers = hb-uniscribe.h - -# Additional supplemental sources -HB_UCDN_sources = hb-ucdn.cc - -# Sources for libharfbuzz-gobject and libharfbuzz-icu -HB_ICU_sources = hb-icu.cc -HB_ICU_headers = hb-icu.h -HB_GOBJECT_sources = hb-gobject-structs.cc -HB_GOBJECT_STRUCTS_headers = hb-gobject-structs.h -HB_GOBJECT_headers = hb-gobject.h $(HB_GOBJECT_STRUCTS_headers) -HB_GOBJECT_ENUM_sources = hb-gobject-enums.cc -HB_GOBJECT_ENUM_headers = hb-gobject-enums.h -HBCFLAGS = $(am__append_4) $(am__append_6) $(am__append_11) \ - $(am__append_15) $(am__append_20) $(am__append_24) \ - $(am__append_28) $(am__append_33) $(am__append_36) # Put the library together -HBLIBS = $(am__append_7) $(am__append_12) $(am__append_16) \ - $(am__append_34) $(HBNONPCLIBS) $(am__append_37) -HBNONPCLIBS = $(am__append_5) $(am__append_21) $(am__append_25) \ - $(am__append_29) -HBDEPS = $(am__append_8) $(am__append_17) -HBSOURCES = $(HB_BASE_sources) $(am__append_1) $(am__append_3) \ - $(am__append_9) $(am__append_13) $(am__append_18) \ - $(am__append_22) $(am__append_26) $(am__append_30) \ - $(am__append_35) $(am__append_38) -HBHEADERS = $(HB_BASE_headers) $(am__append_2) $(am__append_10) \ - $(am__append_14) $(am__append_19) $(am__append_23) \ - $(am__append_27) $(am__append_31) $(am__append_39) -HBNODISTHEADERS = $(HB_NODIST_headers) @OS_WIN32_TRUE@export_symbols = -export-symbols harfbuzz.def @OS_WIN32_TRUE@harfbuzz_def_dependency = harfbuzz.def @HAVE_GCC_FALSE@@OS_WIN32_FALSE@libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS) @@ -1176,39 +918,22 @@ libharfbuzz_la_CPPFLAGS = $(HBCFLAGS) libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined libharfbuzz_la_LIBADD = $(HBLIBS) EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency) -pkginclude_HEADERS = $(HBHEADERS) $(am__append_41) $(am__append_44) -nodist_pkginclude_HEADERS = $(HBNODISTHEADERS) $(am__append_45) +pkginclude_HEADERS = $(HBHEADERS) $(am__append_31) $(am__append_34) +nodist_pkginclude_HEADERS = $(HBNODISTHEADERS) $(am__append_35) pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = harfbuzz.pc $(am__append_42) $(am__append_46) -FUZZING_CPPFLAGS = \ - -DHB_NDEBUG \ - -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) -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@libharfbuzz_icu_la_SOURCES = $(HB_ICU_sources) -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@libharfbuzz_icu_la_CPPFLAGS = $(ICU_CFLAGS) -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@libharfbuzz_icu_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined -@HAVE_ICU_BUILTIN_FALSE@@HAVE_ICU_TRUE@libharfbuzz_icu_la_LIBADD = $(ICU_LIBS) libharfbuzz.la -@HAVE_GOBJECT_TRUE@libharfbuzz_gobject_la_SOURCES = $(HB_GOBJECT_sources) -@HAVE_GOBJECT_TRUE@nodist_libharfbuzz_gobject_la_SOURCES = $(HB_GOBJECT_ENUM_sources) +pkgconfig_DATA = harfbuzz.pc $(am__append_32) $(am__append_36) +@HAVE_ICU_TRUE@libharfbuzz_icu_la_SOURCES = hb-icu.cc +@HAVE_ICU_TRUE@libharfbuzz_icu_la_CPPFLAGS = $(ICU_CFLAGS) +@HAVE_ICU_TRUE@libharfbuzz_icu_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined +@HAVE_ICU_TRUE@libharfbuzz_icu_la_LIBADD = $(ICU_LIBS) libharfbuzz.la +@HAVE_GOBJECT_TRUE@libharfbuzz_gobject_la_SOURCES = hb-gobject-structs.cc +@HAVE_GOBJECT_TRUE@nodist_libharfbuzz_gobject_la_SOURCES = hb-gobject-enums.cc @HAVE_GOBJECT_TRUE@libharfbuzz_gobject_la_CPPFLAGS = $(GOBJECT_CFLAGS) @HAVE_GOBJECT_TRUE@libharfbuzz_gobject_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined @HAVE_GOBJECT_TRUE@libharfbuzz_gobject_la_LIBADD = $(GOBJECT_LIBS) libharfbuzz.la GENERATORS = \ gen-arabic-table.py \ gen-indic-table.py \ - gen-use-table.py \ $(NULL) RAGEL_GENERATED = \ @@ -1216,7 +941,7 @@ RAGEL_GENERATED = \ $(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 \ + $(srcdir)/hb-ot-shape-complex-sea-machine.hh \ $(NULL) main_SOURCES = main.cc @@ -1244,9 +969,6 @@ dist_check_SCRIPTS = \ check-symbols.sh \ $(NULL) -test_ot_tag_SOURCES = hb-ot-tag.cc -test_ot_tag_CPPFLAGS = $(HBCFLAGS) -DMAIN -test_ot_tag_LDADD = libharfbuzz.la $(HBLIBS) TESTS_ENVIRONMENT = \ srcdir="$(srcdir)" \ MAKE="$(MAKE) $(AM_MAKEFLAGS)" \ @@ -1254,7 +976,7 @@ TESTS_ENVIRONMENT = \ HBHEADERS="$(HBHEADERS) $(HBNODISTHEADERS)" \ $(NULL) -@HAVE_INTROSPECTION_TRUE@INTROSPECTION_GIRS = HarfBuzz-0.0.gir # What does the 0 mean anyway?! +@HAVE_INTROSPECTION_TRUE@INTROSPECTION_GIRS = HarfBuzz-$(HB_VERSION_MAJOR).0.gir # What does the 0 mean anyway?! @HAVE_INTROSPECTION_TRUE@INTROSPECTION_SCANNER_ARGS = -I$(srcdir) -n hb --identifier-prefix=hb_ --warn-all @HAVE_INTROSPECTION_TRUE@INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) @HAVE_INTROSPECTION_TRUE@INTROSPECTION_SCANNER_ENV = CC="$(CC)" @@ -1268,7 +990,6 @@ TESTS_ENVIRONMENT = \ @HAVE_INTROSPECTION_TRUE@ -DHB_OT_H_IN \ @HAVE_INTROSPECTION_TRUE@ -DHB_GOBJECT_H \ @HAVE_INTROSPECTION_TRUE@ -DHB_GOBJECT_H_IN \ -@HAVE_INTROSPECTION_TRUE@ -DHB_EXTERN= \ @HAVE_INTROSPECTION_TRUE@ $(NULL) @HAVE_INTROSPECTION_TRUE@HarfBuzz_0_0_gir_LIBS = \ @@ -1280,10 +1001,10 @@ TESTS_ENVIRONMENT = \ @HAVE_INTROSPECTION_TRUE@ $(HBHEADERS) \ @HAVE_INTROSPECTION_TRUE@ $(HBNODISTHEADERS) \ @HAVE_INTROSPECTION_TRUE@ $(HBSOURCES) \ -@HAVE_INTROSPECTION_TRUE@ $(HB_GOBJECT_ENUM_sources) \ -@HAVE_INTROSPECTION_TRUE@ $(HB_GOBJECT_ENUM_headers) \ -@HAVE_INTROSPECTION_TRUE@ $(HB_GOBJECT_sources) \ -@HAVE_INTROSPECTION_TRUE@ $(HB_GOBJECT_STRUCTS_headers) \ +@HAVE_INTROSPECTION_TRUE@ hb-gobject-enums.cc \ +@HAVE_INTROSPECTION_TRUE@ hb-gobject-enums.h \ +@HAVE_INTROSPECTION_TRUE@ hb-gobject-structs.cc \ +@HAVE_INTROSPECTION_TRUE@ hb-gobject-structs.h \ @HAVE_INTROSPECTION_TRUE@ $(NULL) @HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0 @@ -1295,7 +1016,7 @@ all: $(BUILT_SOURCES) .SUFFIXES: .SUFFIXES: .cc .lo .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Makefile.sources $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ @@ -1316,7 +1037,6 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; -$(srcdir)/Makefile.sources: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -1364,9 +1084,6 @@ clean-libLTLIBRARIES: rm -f $${locs}; \ } -libharfbuzz-fuzzing.la: $(libharfbuzz_fuzzing_la_OBJECTS) $(libharfbuzz_fuzzing_la_DEPENDENCIES) $(EXTRA_libharfbuzz_fuzzing_la_DEPENDENCIES) - $(AM_V_GEN)$(libharfbuzz_fuzzing_la_LINK) $(libharfbuzz_fuzzing_la_OBJECTS) $(libharfbuzz_fuzzing_la_LIBADD) $(LIBS) - libharfbuzz-gobject.la: $(libharfbuzz_gobject_la_OBJECTS) $(libharfbuzz_gobject_la_DEPENDENCIES) $(EXTRA_libharfbuzz_gobject_la_DEPENDENCIES) $(AM_V_CXXLD)$(libharfbuzz_gobject_la_LINK) $(am_libharfbuzz_gobject_la_rpath) $(libharfbuzz_gobject_la_OBJECTS) $(libharfbuzz_gobject_la_LIBADD) $(LIBS) @@ -1441,15 +1158,6 @@ installcheck-binPROGRAMS: $(bin_PROGRAMS) done; \ done; rm -f c$${pid}_.???; exit $$bad -clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ - echo " rm -f" $$list; \ - rm -f $$list || exit $$?; \ - test -n "$(EXEEXT)" || exit 0; \ - list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f" $$list; \ - rm -f $$list - clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ @@ -1471,10 +1179,6 @@ test-buffer-serialize$(EXEEXT): $(test_buffer_serialize_OBJECTS) $(test_buffer_s @rm -f test-buffer-serialize$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(test_buffer_serialize_OBJECTS) $(test_buffer_serialize_LDADD) $(LIBS) -test-ot-tag$(EXEEXT): $(test_ot_tag_OBJECTS) $(test_ot_tag_DEPENDENCIES) $(EXTRA_test_ot_tag_DEPENDENCIES) - @rm -f test-ot-tag$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(test_ot_tag_OBJECTS) $(test_ot_tag_LDADD) $(LIBS) - test-size-params$(EXEEXT): $(test_size_params_OBJECTS) $(test_size_params_DEPENDENCIES) $(EXTRA_test_size_params_DEPENDENCIES) @rm -f test-size-params$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(test_size_params_OBJECTS) $(test_size_params_LDADD) $(LIBS) @@ -1489,45 +1193,6 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-blob.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-buffer-serialize.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-buffer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-common.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-coretext.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-directwrite.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-face.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-fallback-shape.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-font.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ft.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-glib.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-graphite2.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-icu.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-font.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-layout.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-map.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-arabic.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-default.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-hangul.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-hebrew.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic-table.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-myanmar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-thai.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-tibetan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-use-table.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-use.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-fallback.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-normalize.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-tag.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-set.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-shape-plan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-shape.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-shaper.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-ucdn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-unicode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-uniscribe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_fuzzing_la-hb-warning.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo@am__quote@ @@ -1536,14 +1201,12 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-face.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-font.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo@am__quote@ @@ -1554,10 +1217,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-sea.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-tibetan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo@am__quote@ @@ -1573,7 +1235,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_size_params-test-size-params.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_would_substitute-test-would-substitute.Po@am__quote@ @@ -1598,279 +1259,6 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -libharfbuzz_fuzzing_la-hb-blob.lo: hb-blob.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-blob.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-blob.Tpo -c -o libharfbuzz_fuzzing_la-hb-blob.lo `test -f 'hb-blob.cc' || echo '$(srcdir)/'`hb-blob.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-blob.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-blob.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-blob.cc' object='libharfbuzz_fuzzing_la-hb-blob.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-blob.lo `test -f 'hb-blob.cc' || echo '$(srcdir)/'`hb-blob.cc - -libharfbuzz_fuzzing_la-hb-buffer-serialize.lo: hb-buffer-serialize.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-buffer-serialize.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-buffer-serialize.Tpo -c -o libharfbuzz_fuzzing_la-hb-buffer-serialize.lo `test -f 'hb-buffer-serialize.cc' || echo '$(srcdir)/'`hb-buffer-serialize.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-buffer-serialize.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-buffer-serialize.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-buffer-serialize.cc' object='libharfbuzz_fuzzing_la-hb-buffer-serialize.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-buffer-serialize.lo `test -f 'hb-buffer-serialize.cc' || echo '$(srcdir)/'`hb-buffer-serialize.cc - -libharfbuzz_fuzzing_la-hb-buffer.lo: hb-buffer.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-buffer.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-buffer.Tpo -c -o libharfbuzz_fuzzing_la-hb-buffer.lo `test -f 'hb-buffer.cc' || echo '$(srcdir)/'`hb-buffer.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-buffer.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-buffer.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-buffer.cc' object='libharfbuzz_fuzzing_la-hb-buffer.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-buffer.lo `test -f 'hb-buffer.cc' || echo '$(srcdir)/'`hb-buffer.cc - -libharfbuzz_fuzzing_la-hb-common.lo: hb-common.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-common.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-common.Tpo -c -o libharfbuzz_fuzzing_la-hb-common.lo `test -f 'hb-common.cc' || echo '$(srcdir)/'`hb-common.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-common.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-common.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-common.cc' object='libharfbuzz_fuzzing_la-hb-common.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-common.lo `test -f 'hb-common.cc' || echo '$(srcdir)/'`hb-common.cc - -libharfbuzz_fuzzing_la-hb-face.lo: hb-face.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-face.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-face.Tpo -c -o libharfbuzz_fuzzing_la-hb-face.lo `test -f 'hb-face.cc' || echo '$(srcdir)/'`hb-face.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-face.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-face.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-face.cc' object='libharfbuzz_fuzzing_la-hb-face.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-face.lo `test -f 'hb-face.cc' || echo '$(srcdir)/'`hb-face.cc - -libharfbuzz_fuzzing_la-hb-font.lo: hb-font.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-font.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-font.Tpo -c -o libharfbuzz_fuzzing_la-hb-font.lo `test -f 'hb-font.cc' || echo '$(srcdir)/'`hb-font.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-font.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-font.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-font.cc' object='libharfbuzz_fuzzing_la-hb-font.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-font.lo `test -f 'hb-font.cc' || echo '$(srcdir)/'`hb-font.cc - -libharfbuzz_fuzzing_la-hb-ot-tag.lo: hb-ot-tag.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-tag.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-tag.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-tag.lo `test -f 'hb-ot-tag.cc' || echo '$(srcdir)/'`hb-ot-tag.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-tag.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-tag.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-tag.cc' object='libharfbuzz_fuzzing_la-hb-ot-tag.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-tag.lo `test -f 'hb-ot-tag.cc' || echo '$(srcdir)/'`hb-ot-tag.cc - -libharfbuzz_fuzzing_la-hb-set.lo: hb-set.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-set.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-set.Tpo -c -o libharfbuzz_fuzzing_la-hb-set.lo `test -f 'hb-set.cc' || echo '$(srcdir)/'`hb-set.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-set.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-set.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-set.cc' object='libharfbuzz_fuzzing_la-hb-set.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-set.lo `test -f 'hb-set.cc' || echo '$(srcdir)/'`hb-set.cc - -libharfbuzz_fuzzing_la-hb-shape.lo: hb-shape.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-shape.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-shape.Tpo -c -o libharfbuzz_fuzzing_la-hb-shape.lo `test -f 'hb-shape.cc' || echo '$(srcdir)/'`hb-shape.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-shape.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-shape.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-shape.cc' object='libharfbuzz_fuzzing_la-hb-shape.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-shape.lo `test -f 'hb-shape.cc' || echo '$(srcdir)/'`hb-shape.cc - -libharfbuzz_fuzzing_la-hb-shape-plan.lo: hb-shape-plan.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-shape-plan.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-shape-plan.Tpo -c -o libharfbuzz_fuzzing_la-hb-shape-plan.lo `test -f 'hb-shape-plan.cc' || echo '$(srcdir)/'`hb-shape-plan.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-shape-plan.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-shape-plan.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-shape-plan.cc' object='libharfbuzz_fuzzing_la-hb-shape-plan.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-shape-plan.lo `test -f 'hb-shape-plan.cc' || echo '$(srcdir)/'`hb-shape-plan.cc - -libharfbuzz_fuzzing_la-hb-shaper.lo: hb-shaper.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-shaper.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-shaper.Tpo -c -o libharfbuzz_fuzzing_la-hb-shaper.lo `test -f 'hb-shaper.cc' || echo '$(srcdir)/'`hb-shaper.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-shaper.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-shaper.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-shaper.cc' object='libharfbuzz_fuzzing_la-hb-shaper.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-shaper.lo `test -f 'hb-shaper.cc' || echo '$(srcdir)/'`hb-shaper.cc - -libharfbuzz_fuzzing_la-hb-unicode.lo: hb-unicode.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-unicode.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-unicode.Tpo -c -o libharfbuzz_fuzzing_la-hb-unicode.lo `test -f 'hb-unicode.cc' || echo '$(srcdir)/'`hb-unicode.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-unicode.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-unicode.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-unicode.cc' object='libharfbuzz_fuzzing_la-hb-unicode.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-unicode.lo `test -f 'hb-unicode.cc' || echo '$(srcdir)/'`hb-unicode.cc - -libharfbuzz_fuzzing_la-hb-warning.lo: hb-warning.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-warning.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-warning.Tpo -c -o libharfbuzz_fuzzing_la-hb-warning.lo `test -f 'hb-warning.cc' || echo '$(srcdir)/'`hb-warning.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-warning.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-warning.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-warning.cc' object='libharfbuzz_fuzzing_la-hb-warning.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-warning.lo `test -f 'hb-warning.cc' || echo '$(srcdir)/'`hb-warning.cc - -libharfbuzz_fuzzing_la-hb-ot-font.lo: hb-ot-font.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-font.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-font.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-font.lo `test -f 'hb-ot-font.cc' || echo '$(srcdir)/'`hb-ot-font.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-font.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-font.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-font.cc' object='libharfbuzz_fuzzing_la-hb-ot-font.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-font.lo `test -f 'hb-ot-font.cc' || echo '$(srcdir)/'`hb-ot-font.cc - -libharfbuzz_fuzzing_la-hb-ot-layout.lo: hb-ot-layout.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-layout.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-layout.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-layout.lo `test -f 'hb-ot-layout.cc' || echo '$(srcdir)/'`hb-ot-layout.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-layout.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-layout.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-layout.cc' object='libharfbuzz_fuzzing_la-hb-ot-layout.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-layout.lo `test -f 'hb-ot-layout.cc' || echo '$(srcdir)/'`hb-ot-layout.cc - -libharfbuzz_fuzzing_la-hb-ot-map.lo: hb-ot-map.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-map.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-map.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-map.lo `test -f 'hb-ot-map.cc' || echo '$(srcdir)/'`hb-ot-map.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-map.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-map.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-map.cc' object='libharfbuzz_fuzzing_la-hb-ot-map.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-map.lo `test -f 'hb-ot-map.cc' || echo '$(srcdir)/'`hb-ot-map.cc - -libharfbuzz_fuzzing_la-hb-ot-shape.lo: hb-ot-shape.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape.lo `test -f 'hb-ot-shape.cc' || echo '$(srcdir)/'`hb-ot-shape.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape.lo `test -f 'hb-ot-shape.cc' || echo '$(srcdir)/'`hb-ot-shape.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-arabic.lo: hb-ot-shape-complex-arabic.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-arabic.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-arabic.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-arabic.lo `test -f 'hb-ot-shape-complex-arabic.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-arabic.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-arabic.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-arabic.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-arabic.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-arabic.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-arabic.lo `test -f 'hb-ot-shape-complex-arabic.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-arabic.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-default.lo: hb-ot-shape-complex-default.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-default.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-default.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-default.lo `test -f 'hb-ot-shape-complex-default.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-default.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-default.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-default.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-default.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-default.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-default.lo `test -f 'hb-ot-shape-complex-default.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-default.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-hangul.lo: hb-ot-shape-complex-hangul.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-hangul.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-hangul.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-hangul.lo `test -f 'hb-ot-shape-complex-hangul.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-hangul.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-hangul.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-hangul.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-hangul.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-hangul.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-hangul.lo `test -f 'hb-ot-shape-complex-hangul.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-hangul.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-hebrew.lo: hb-ot-shape-complex-hebrew.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-hebrew.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-hebrew.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-hebrew.lo `test -f 'hb-ot-shape-complex-hebrew.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-hebrew.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-hebrew.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-hebrew.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-hebrew.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-hebrew.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-hebrew.lo `test -f 'hb-ot-shape-complex-hebrew.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-hebrew.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic.lo: hb-ot-shape-complex-indic.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic.lo `test -f 'hb-ot-shape-complex-indic.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-indic.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-indic.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic.lo `test -f 'hb-ot-shape-complex-indic.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-indic.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic-table.lo: hb-ot-shape-complex-indic-table.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic-table.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic-table.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic-table.lo `test -f 'hb-ot-shape-complex-indic-table.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-indic-table.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic-table.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic-table.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-indic-table.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic-table.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-indic-table.lo `test -f 'hb-ot-shape-complex-indic-table.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-indic-table.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-myanmar.lo: hb-ot-shape-complex-myanmar.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-myanmar.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-myanmar.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-myanmar.lo `test -f 'hb-ot-shape-complex-myanmar.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-myanmar.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-myanmar.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-myanmar.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-myanmar.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-myanmar.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-myanmar.lo `test -f 'hb-ot-shape-complex-myanmar.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-myanmar.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-thai.lo: hb-ot-shape-complex-thai.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-thai.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-thai.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-thai.lo `test -f 'hb-ot-shape-complex-thai.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-thai.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-thai.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-thai.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-thai.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-thai.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-thai.lo `test -f 'hb-ot-shape-complex-thai.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-thai.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-tibetan.lo: hb-ot-shape-complex-tibetan.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-tibetan.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-tibetan.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-tibetan.lo `test -f 'hb-ot-shape-complex-tibetan.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-tibetan.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-tibetan.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-tibetan.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-tibetan.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-tibetan.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-tibetan.lo `test -f 'hb-ot-shape-complex-tibetan.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-tibetan.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-use.lo: hb-ot-shape-complex-use.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-use.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-use.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-use.lo `test -f 'hb-ot-shape-complex-use.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-use.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-use.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-use.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-use.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-use.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-use.lo `test -f 'hb-ot-shape-complex-use.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-use.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-complex-use-table.lo: hb-ot-shape-complex-use-table.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-complex-use-table.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-use-table.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-use-table.lo `test -f 'hb-ot-shape-complex-use-table.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-use-table.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-use-table.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-complex-use-table.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-use-table.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-complex-use-table.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-complex-use-table.lo `test -f 'hb-ot-shape-complex-use-table.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-use-table.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-normalize.lo: hb-ot-shape-normalize.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-normalize.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-normalize.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-normalize.lo `test -f 'hb-ot-shape-normalize.cc' || echo '$(srcdir)/'`hb-ot-shape-normalize.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-normalize.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-normalize.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-normalize.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-normalize.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-normalize.lo `test -f 'hb-ot-shape-normalize.cc' || echo '$(srcdir)/'`hb-ot-shape-normalize.cc - -libharfbuzz_fuzzing_la-hb-ot-shape-fallback.lo: hb-ot-shape-fallback.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ot-shape-fallback.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-fallback.Tpo -c -o libharfbuzz_fuzzing_la-hb-ot-shape-fallback.lo `test -f 'hb-ot-shape-fallback.cc' || echo '$(srcdir)/'`hb-ot-shape-fallback.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-fallback.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ot-shape-fallback.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-fallback.cc' object='libharfbuzz_fuzzing_la-hb-ot-shape-fallback.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ot-shape-fallback.lo `test -f 'hb-ot-shape-fallback.cc' || echo '$(srcdir)/'`hb-ot-shape-fallback.cc - -libharfbuzz_fuzzing_la-hb-fallback-shape.lo: hb-fallback-shape.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-fallback-shape.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-fallback-shape.Tpo -c -o libharfbuzz_fuzzing_la-hb-fallback-shape.lo `test -f 'hb-fallback-shape.cc' || echo '$(srcdir)/'`hb-fallback-shape.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-fallback-shape.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-fallback-shape.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-fallback-shape.cc' object='libharfbuzz_fuzzing_la-hb-fallback-shape.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-fallback-shape.lo `test -f 'hb-fallback-shape.cc' || echo '$(srcdir)/'`hb-fallback-shape.cc - -libharfbuzz_fuzzing_la-hb-glib.lo: hb-glib.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-glib.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-glib.Tpo -c -o libharfbuzz_fuzzing_la-hb-glib.lo `test -f 'hb-glib.cc' || echo '$(srcdir)/'`hb-glib.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-glib.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-glib.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-glib.cc' object='libharfbuzz_fuzzing_la-hb-glib.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-glib.lo `test -f 'hb-glib.cc' || echo '$(srcdir)/'`hb-glib.cc - -libharfbuzz_fuzzing_la-hb-ft.lo: hb-ft.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ft.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ft.Tpo -c -o libharfbuzz_fuzzing_la-hb-ft.lo `test -f 'hb-ft.cc' || echo '$(srcdir)/'`hb-ft.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ft.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ft.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ft.cc' object='libharfbuzz_fuzzing_la-hb-ft.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ft.lo `test -f 'hb-ft.cc' || echo '$(srcdir)/'`hb-ft.cc - -libharfbuzz_fuzzing_la-hb-graphite2.lo: hb-graphite2.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-graphite2.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-graphite2.Tpo -c -o libharfbuzz_fuzzing_la-hb-graphite2.lo `test -f 'hb-graphite2.cc' || echo '$(srcdir)/'`hb-graphite2.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-graphite2.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-graphite2.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-graphite2.cc' object='libharfbuzz_fuzzing_la-hb-graphite2.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-graphite2.lo `test -f 'hb-graphite2.cc' || echo '$(srcdir)/'`hb-graphite2.cc - -libharfbuzz_fuzzing_la-hb-uniscribe.lo: hb-uniscribe.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-uniscribe.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-uniscribe.Tpo -c -o libharfbuzz_fuzzing_la-hb-uniscribe.lo `test -f 'hb-uniscribe.cc' || echo '$(srcdir)/'`hb-uniscribe.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-uniscribe.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-uniscribe.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-uniscribe.cc' object='libharfbuzz_fuzzing_la-hb-uniscribe.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-uniscribe.lo `test -f 'hb-uniscribe.cc' || echo '$(srcdir)/'`hb-uniscribe.cc - -libharfbuzz_fuzzing_la-hb-directwrite.lo: hb-directwrite.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-directwrite.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-directwrite.Tpo -c -o libharfbuzz_fuzzing_la-hb-directwrite.lo `test -f 'hb-directwrite.cc' || echo '$(srcdir)/'`hb-directwrite.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-directwrite.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-directwrite.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-directwrite.cc' object='libharfbuzz_fuzzing_la-hb-directwrite.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-directwrite.lo `test -f 'hb-directwrite.cc' || echo '$(srcdir)/'`hb-directwrite.cc - -libharfbuzz_fuzzing_la-hb-coretext.lo: hb-coretext.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-coretext.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-coretext.Tpo -c -o libharfbuzz_fuzzing_la-hb-coretext.lo `test -f 'hb-coretext.cc' || echo '$(srcdir)/'`hb-coretext.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-coretext.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-coretext.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-coretext.cc' object='libharfbuzz_fuzzing_la-hb-coretext.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-coretext.lo `test -f 'hb-coretext.cc' || echo '$(srcdir)/'`hb-coretext.cc - -libharfbuzz_fuzzing_la-hb-ucdn.lo: hb-ucdn.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-ucdn.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ucdn.Tpo -c -o libharfbuzz_fuzzing_la-hb-ucdn.lo `test -f 'hb-ucdn.cc' || echo '$(srcdir)/'`hb-ucdn.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ucdn.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-ucdn.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ucdn.cc' object='libharfbuzz_fuzzing_la-hb-ucdn.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-ucdn.lo `test -f 'hb-ucdn.cc' || echo '$(srcdir)/'`hb-ucdn.cc - -libharfbuzz_fuzzing_la-hb-icu.lo: hb-icu.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_fuzzing_la-hb-icu.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_fuzzing_la-hb-icu.Tpo -c -o libharfbuzz_fuzzing_la-hb-icu.lo `test -f 'hb-icu.cc' || echo '$(srcdir)/'`hb-icu.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_fuzzing_la-hb-icu.Tpo $(DEPDIR)/libharfbuzz_fuzzing_la-hb-icu.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-icu.cc' object='libharfbuzz_fuzzing_la-hb-icu.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_fuzzing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_fuzzing_la-hb-icu.lo `test -f 'hb-icu.cc' || echo '$(srcdir)/'`hb-icu.cc - libharfbuzz_gobject_la-hb-gobject-structs.lo: hb-gobject-structs.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_gobject_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_gobject_la-hb-gobject-structs.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Tpo -c -o libharfbuzz_gobject_la-hb-gobject-structs.lo `test -f 'hb-gobject-structs.cc' || echo '$(srcdir)/'`hb-gobject-structs.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Tpo $(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo @@ -2060,6 +1448,13 @@ libharfbuzz_la-hb-ot-shape-complex-myanmar.lo: hb-ot-shape-complex-myanmar.cc @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_la-hb-ot-shape-complex-myanmar.lo `test -f 'hb-ot-shape-complex-myanmar.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-myanmar.cc +libharfbuzz_la-hb-ot-shape-complex-sea.lo: hb-ot-shape-complex-sea.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_la-hb-ot-shape-complex-sea.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-sea.Tpo -c -o libharfbuzz_la-hb-ot-shape-complex-sea.lo `test -f 'hb-ot-shape-complex-sea.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-sea.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-sea.Tpo $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-sea.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-sea.cc' object='libharfbuzz_la-hb-ot-shape-complex-sea.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_la-hb-ot-shape-complex-sea.lo `test -f 'hb-ot-shape-complex-sea.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-sea.cc + libharfbuzz_la-hb-ot-shape-complex-thai.lo: hb-ot-shape-complex-thai.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_la-hb-ot-shape-complex-thai.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Tpo -c -o libharfbuzz_la-hb-ot-shape-complex-thai.lo `test -f 'hb-ot-shape-complex-thai.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-thai.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Tpo $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo @@ -2074,20 +1469,6 @@ libharfbuzz_la-hb-ot-shape-complex-tibetan.lo: hb-ot-shape-complex-tibetan.cc @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_la-hb-ot-shape-complex-tibetan.lo `test -f 'hb-ot-shape-complex-tibetan.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-tibetan.cc -libharfbuzz_la-hb-ot-shape-complex-use.lo: hb-ot-shape-complex-use.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_la-hb-ot-shape-complex-use.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Tpo -c -o libharfbuzz_la-hb-ot-shape-complex-use.lo `test -f 'hb-ot-shape-complex-use.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-use.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Tpo $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-use.cc' object='libharfbuzz_la-hb-ot-shape-complex-use.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_la-hb-ot-shape-complex-use.lo `test -f 'hb-ot-shape-complex-use.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-use.cc - -libharfbuzz_la-hb-ot-shape-complex-use-table.lo: hb-ot-shape-complex-use-table.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_la-hb-ot-shape-complex-use-table.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Tpo -c -o libharfbuzz_la-hb-ot-shape-complex-use-table.lo `test -f 'hb-ot-shape-complex-use-table.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-use-table.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Tpo $(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-shape-complex-use-table.cc' object='libharfbuzz_la-hb-ot-shape-complex-use-table.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_la-hb-ot-shape-complex-use-table.lo `test -f 'hb-ot-shape-complex-use-table.cc' || echo '$(srcdir)/'`hb-ot-shape-complex-use-table.cc - libharfbuzz_la-hb-ot-shape-normalize.lo: hb-ot-shape-normalize.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_la-hb-ot-shape-normalize.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Tpo -c -o libharfbuzz_la-hb-ot-shape-normalize.lo `test -f 'hb-ot-shape-normalize.cc' || echo '$(srcdir)/'`hb-ot-shape-normalize.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Tpo $(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo @@ -2137,13 +1518,6 @@ libharfbuzz_la-hb-uniscribe.lo: hb-uniscribe.cc @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_la-hb-uniscribe.lo `test -f 'hb-uniscribe.cc' || echo '$(srcdir)/'`hb-uniscribe.cc -libharfbuzz_la-hb-directwrite.lo: hb-directwrite.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_la-hb-directwrite.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_la-hb-directwrite.Tpo -c -o libharfbuzz_la-hb-directwrite.lo `test -f 'hb-directwrite.cc' || echo '$(srcdir)/'`hb-directwrite.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_la-hb-directwrite.Tpo $(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-directwrite.cc' object='libharfbuzz_la-hb-directwrite.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_la-hb-directwrite.lo `test -f 'hb-directwrite.cc' || echo '$(srcdir)/'`hb-directwrite.cc - libharfbuzz_la-hb-coretext.lo: hb-coretext.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_la-hb-coretext.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_la-hb-coretext.Tpo -c -o libharfbuzz_la-hb-coretext.lo `test -f 'hb-coretext.cc' || echo '$(srcdir)/'`hb-coretext.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_la-hb-coretext.Tpo $(DEPDIR)/libharfbuzz_la-hb-coretext.Plo @@ -2158,13 +1532,6 @@ libharfbuzz_la-hb-ucdn.lo: hb-ucdn.cc @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_la-hb-ucdn.lo `test -f 'hb-ucdn.cc' || echo '$(srcdir)/'`hb-ucdn.cc -libharfbuzz_la-hb-icu.lo: hb-icu.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libharfbuzz_la-hb-icu.lo -MD -MP -MF $(DEPDIR)/libharfbuzz_la-hb-icu.Tpo -c -o libharfbuzz_la-hb-icu.lo `test -f 'hb-icu.cc' || echo '$(srcdir)/'`hb-icu.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libharfbuzz_la-hb-icu.Tpo $(DEPDIR)/libharfbuzz_la-hb-icu.Plo -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-icu.cc' object='libharfbuzz_la-hb-icu.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libharfbuzz_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libharfbuzz_la-hb-icu.lo `test -f 'hb-icu.cc' || echo '$(srcdir)/'`hb-icu.cc - main-main.o: main.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(main_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT main-main.o -MD -MP -MF $(DEPDIR)/main-main.Tpo -c -o main-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/main-main.Tpo $(DEPDIR)/main-main.Po @@ -2207,20 +1574,6 @@ test_buffer_serialize-test-buffer-serialize.obj: test-buffer-serialize.cc @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_buffer_serialize_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o test_buffer_serialize-test-buffer-serialize.obj `if test -f 'test-buffer-serialize.cc'; then $(CYGPATH_W) 'test-buffer-serialize.cc'; else $(CYGPATH_W) '$(srcdir)/test-buffer-serialize.cc'; fi` -test_ot_tag-hb-ot-tag.o: hb-ot-tag.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ot_tag_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT test_ot_tag-hb-ot-tag.o -MD -MP -MF $(DEPDIR)/test_ot_tag-hb-ot-tag.Tpo -c -o test_ot_tag-hb-ot-tag.o `test -f 'hb-ot-tag.cc' || echo '$(srcdir)/'`hb-ot-tag.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_ot_tag-hb-ot-tag.Tpo $(DEPDIR)/test_ot_tag-hb-ot-tag.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-tag.cc' object='test_ot_tag-hb-ot-tag.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ot_tag_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o test_ot_tag-hb-ot-tag.o `test -f 'hb-ot-tag.cc' || echo '$(srcdir)/'`hb-ot-tag.cc - -test_ot_tag-hb-ot-tag.obj: hb-ot-tag.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ot_tag_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT test_ot_tag-hb-ot-tag.obj -MD -MP -MF $(DEPDIR)/test_ot_tag-hb-ot-tag.Tpo -c -o test_ot_tag-hb-ot-tag.obj `if test -f 'hb-ot-tag.cc'; then $(CYGPATH_W) 'hb-ot-tag.cc'; else $(CYGPATH_W) '$(srcdir)/hb-ot-tag.cc'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_ot_tag-hb-ot-tag.Tpo $(DEPDIR)/test_ot_tag-hb-ot-tag.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hb-ot-tag.cc' object='test_ot_tag-hb-ot-tag.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_ot_tag_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o test_ot_tag-hb-ot-tag.obj `if test -f 'hb-ot-tag.cc'; then $(CYGPATH_W) 'hb-ot-tag.cc'; else $(CYGPATH_W) '$(srcdir)/hb-ot-tag.cc'; fi` - test_size_params-test-size-params.o: test-size-params.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_size_params_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT test_size_params-test-size-params.o -MD -MP -MF $(DEPDIR)/test_size_params-test-size-params.Tpo -c -o test_size_params-test-size-params.o `test -f 'test-size-params.cc' || echo '$(srcdir)/'`test-size-params.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_size_params-test-size-params.Tpo $(DEPDIR)/test_size_params-test-size-params.Po @@ -2589,7 +1942,7 @@ check-TESTS: log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; -recheck: all $(check_PROGRAMS) $(dist_check_SCRIPTS) +recheck: all $(dist_check_SCRIPTS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ @@ -2649,13 +2002,6 @@ check-symbols.sh.log: check-symbols.sh --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) -test-ot-tag.log: test-ot-tag$(EXEEXT) - @p='test-ot-tag$(EXEEXT)'; \ - b='test-ot-tag'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ @@ -2727,8 +2073,7 @@ distdir: $(DISTFILES) fi; \ done check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ - $(dist_check_SCRIPTS) + $(MAKE) $(AM_MAKEFLAGS) $(dist_check_SCRIPTS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive @@ -2780,9 +2125,8 @@ maintainer-clean-generic: -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive -clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ - clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS \ - mostlyclean-am +clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool clean-noinstPROGRAMS mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) @@ -2859,15 +2203,14 @@ uninstall-am: uninstall-binPROGRAMS uninstall-girDATA \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-TESTS check-am clean clean-binPROGRAMS \ - clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ - clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-girDATA install-html \ - install-html-am install-info install-info-am \ + check-TESTS check-am clean clean-binPROGRAMS clean-generic \ + clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-girDATA \ + install-html install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man \ install-nodist_pkgincludeHEADERS install-pdf install-pdf-am \ install-pkgconfigDATA install-pkgincludeHEADERS install-ps \ @@ -2886,8 +2229,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-girDATA \ #AM_CXXFLAGS = # Convenience targets: -lib: $(BUILT_SOURCES) libharfbuzz.la -fuzzing: $(BUILT_SOURCES) libharfbuzz-fuzzing.la +lib: libharfbuzz.la @HAVE_GOBJECT_TRUE@hb-gobject-enums.%: hb-gobject-enums.%.tmpl $(HBHEADERS) @HAVE_GOBJECT_TRUE@ $(AM_V_GEN) $(GLIB_MKENUMS) \ @HAVE_GOBJECT_TRUE@ --identifier-prefix hb_ --symbol-prefix hb_gobject \ @@ -2901,8 +2243,6 @@ fuzzing: $(BUILT_SOURCES) libharfbuzz-fuzzing.la -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' \ -e 's@%VERSION%@$(VERSION)@g' \ "$<" > "$@" \ || ($(RM) "$@"; false) @@ -2912,28 +2252,24 @@ harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS) $(EGREP) '^hb_.* \(' | \ sed -e 's/ (.*//' | \ LANG=C sort; \ - echo LIBRARY libharfbuzz-0.dll; \ + echo LIBRARY libharfbuzz-$(HB_VERSION_MAJOR).dll; \ ) >"$@" @ ! grep -q hb_ERROR "$@" \ || ($(RM) "$@"; false) -unicode-tables: arabic-table indic-table use-table - -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) +unicode-tables: arabic-table indic-table -indic-table: gen-indic-table.py IndicSyllabicCategory-7.0.0.txt IndicMatraCategory-7.0.0.txt Blocks.txt +indic-table: gen-indic-table.py IndicSyllabicCategory.txt IndicMatraCategory.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) +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) built-sources: $(BUILT_SOURCES) -.PHONY: unicode-tables arabic-table indic-table use-table built-sources +.PHONY: unicode-tables arabic-table indic-table built-sources $(srcdir)/%.hh: $(srcdir)/%.rl $(AM_V_GEN)(cd $(srcdir) && $(RAGEL) -e -F1 -o "$*.hh" "$*.rl") \ || ($(RM) "$@"; false) diff --git a/src/Makefile.sources b/src/Makefile.sources deleted file mode 100644 index ac80683..0000000 --- a/src/Makefile.sources +++ /dev/null @@ -1,151 +0,0 @@ -NULL = - -# Base and default-included sources and headers - -HB_BASE_sources = \ - hb-atomic-private.hh \ - hb-blob.cc \ - 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 \ - hb-ot-cmap-table.hh \ - hb-ot-glyf-table.hh \ - hb-ot-head-table.hh \ - hb-ot-hhea-table.hh \ - hb-ot-hmtx-table.hh \ - hb-ot-maxp-table.hh \ - hb-ot-name-table.hh \ - hb-ot-os2-table.hh \ - hb-ot-post-table.hh \ - hb-ot-tag.cc \ - hb-private.hh \ - 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 \ - hb-shaper.cc \ - hb-unicode-private.hh \ - hb-unicode.cc \ - hb-utf-private.hh \ - hb-warning.cc \ - $(NULL) - -HB_BASE_headers = \ - hb.h \ - hb-blob.h \ - hb-buffer.h \ - hb-common.h \ - hb-deprecated.h \ - hb-face.h \ - hb-font.h \ - hb-set.h \ - hb-shape.h \ - hb-shape-plan.h \ - hb-unicode.h \ - $(NULL) - -HB_NODIST_headers = \ - hb-version.h \ - $(NULL) - -HB_FALLBACK_sources = hb-fallback-shape.cc - -HB_OT_sources = \ - 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 \ - hb-ot-layout-jstf-table.hh \ - hb-ot-layout-private.hh \ - hb-ot-map.cc \ - 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 \ - 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 \ - 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 \ - 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 \ - hb-ot-shape-normalize.cc \ - hb-ot-shape-fallback-private.hh \ - hb-ot-shape-fallback.cc \ - hb-ot-shape-private.hh \ - $(NULL) - -HB_OT_headers = \ - hb-ot.h \ - hb-ot-font.h \ - hb-ot-layout.h \ - hb-ot-shape.h \ - hb-ot-tag.h \ - $(NULL) - -# Optional Sources and Headers with external deps - -HB_FT_sources = hb-ft.cc -HB_FT_headers = hb-ft.h - -HB_GLIB_sources = hb-glib.cc -HB_GLIB_headers = hb-glib.h - -HB_GRAPHITE2_sources = hb-graphite2.cc -HB_GRAPHITE2_headers = hb-graphite2.h - -# System-dependent sources and headers - -HB_CORETEXT_sources = hb-coretext.cc -HB_CORETEXT_headers = hb-coretext.h - -HB_DIRECTWRITE_sources = hb-directwrite.cc -HB_DIRECTWRITE_headers = hb-directwrite.h - -HB_UNISCRIBE_sources = hb-uniscribe.cc -HB_UNISCRIBE_headers = hb-uniscribe.h - -# Additional supplemental sources -HB_UCDN_sources = hb-ucdn.cc - -# Sources for libharfbuzz-gobject and libharfbuzz-icu -HB_ICU_sources = hb-icu.cc -HB_ICU_headers = hb-icu.h - -HB_GOBJECT_sources = hb-gobject-structs.cc -HB_GOBJECT_STRUCTS_headers = hb-gobject-structs.h -HB_GOBJECT_headers = hb-gobject.h $(HB_GOBJECT_STRUCTS_headers) -HB_GOBJECT_ENUM_sources = hb-gobject-enums.cc -HB_GOBJECT_ENUM_headers = hb-gobject-enums.h diff --git a/src/check-header-guards.sh b/src/check-header-guards.sh index 09c5ea8..9a3302c 100755 --- a/src/check-header-guards.sh +++ b/src/check-header-guards.sh @@ -9,12 +9,13 @@ stat=0 test "x$HBHEADERS" = x && HBHEADERS=`cd "$srcdir"; find . -maxdepth 1 -name 'hb*.h'` test "x$HBSOURCES" = x && HBSOURCES=`cd "$srcdir"; find . -maxdepth 1 -name 'hb-*.cc' -or -name 'hb-*.hh'` + for x in $HBHEADERS $HBSOURCES; do test -f "$srcdir/$x" && x="$srcdir/$x" - echo "$x" | grep -q '[^h]$' && continue; + echo "$x" | grep '[^h]$' -q && continue; xx=`echo "$x" | sed 's@.*/@@'` tag=`echo "$xx" | tr 'a-z.-' 'A-Z_'` - lines=`grep -w "$tag" "$x" | wc -l | sed 's/[ ]*//g'` + lines=`grep "\<$tag\>" "$x" | wc -l | sed 's/[ ]*//g'` if test "x$lines" != x3; then echo "Ouch, header file $x does not have correct preprocessor guards" stat=1 diff --git a/src/check-libstdc++.sh b/src/check-libstdc++.sh index b541828..27deb42 100755 --- a/src/check-libstdc++.sh +++ b/src/check-libstdc++.sh @@ -19,9 +19,9 @@ for suffix in so dylib; do so=.libs/libharfbuzz.$suffix if ! test -f "$so"; then continue; fi - echo "Checking that we are not linking to libstdc++ or libc++" - if ldd $so | grep 'libstdc[+][+]\|libc[+][+]'; then - echo "Ouch, linked to libstdc++ or libc++" + echo "Checking that we are not linking to libstdc++" + if ldd $so | grep 'libstdc[+][+]'; then + echo "Ouch, linked to libstdc++" stat=1 fi tested=true diff --git a/src/gen-indic-table.py b/src/gen-indic-table.py index c055163..f5716bd 100755 --- a/src/gen-indic-table.py +++ b/src/gen-indic-table.py @@ -91,7 +91,6 @@ short = [{ "Visarga": 'Vs', "Vowel": 'Vo', "Vowel_Dependent": 'M', - "Consonant_Prefixed": 'CPrf', "Other": 'x', },{ "Not_Applicable": 'x', diff --git a/src/gen-use-table.py b/src/gen-use-table.py deleted file mode 100755 index be04e4b..0000000 --- a/src/gen-use-table.py +++ /dev/null @@ -1,476 +0,0 @@ -#!/usr/bin/python - -import sys - -if len (sys.argv) != 5: - print >>sys.stderr, "usage: ./gen-use-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt UnicodeData.txt Blocks.txt" - sys.exit (1) - -BLACKLISTED_BLOCKS = ["Thai", "Lao", "Tibetan"] - -files = [file (x) for x in sys.argv[1:]] - -headers = [[f.readline () for i in range (2)] for j,f in enumerate(files) if j != 2] -headers.append (["UnicodeData.txt does not have a header."]) - -data = [{} for f in files] -values = [{} for f in files] -for i, f in enumerate (files): - for line in f: - - j = line.find ('#') - if j >= 0: - line = line[:j] - - fields = [x.strip () for x in line.split (';')] - if len (fields) == 1: - continue - - uu = fields[0].split ('..') - start = int (uu[0], 16) - if len (uu) == 1: - end = start - else: - end = int (uu[1], 16) - - t = fields[1 if i != 2 else 2] - - for u in range (start, end + 1): - data[i][u] = t - values[i][t] = values[i].get (t, 0) + end - start + 1 - -defaults = ('Other', 'Not_Applicable', 'Cn', 'No_Block') - -# TODO Characters that are not in Unicode Indic files, but used in USE -data[0][0x034F] = defaults[0] -data[0][0x2060] = defaults[0] -for u in range (0xFE00, 0xFE0F + 1): - data[0][u] = defaults[0] - -# Merge data into one dict: -for i,v in enumerate (defaults): - values[i][v] = values[i].get (v, 0) + 1 -combined = {} -for i,d in enumerate (data): - for u,v in d.items (): - if i >= 2 and not u in combined: - continue - if not u in combined: - combined[u] = list (defaults) - combined[u][i] = v -combined = {k:v for k,v in combined.items() if v[3] not in BLACKLISTED_BLOCKS} -data = combined -del combined -num = len (data) - - -property_names = [ - # General_Category - 'Cc', 'Cf', 'Cn', 'Co', 'Cs', 'Ll', 'Lm', 'Lo', 'Lt', 'Lu', 'Mc', - 'Me', 'Mn', 'Nd', 'Nl', 'No', 'Pc', 'Pd', 'Pe', 'Pf', 'Pi', 'Po', - 'Ps', 'Sc', 'Sk', 'Sm', 'So', 'Zl', 'Zp', 'Zs', - # Indic_Syllabic_Category - 'Other', - 'Bindu', - 'Visarga', - 'Avagraha', - 'Nukta', - 'Virama', - 'Pure_Killer', - 'Invisible_Stacker', - 'Vowel_Independent', - 'Vowel_Dependent', - 'Vowel', - 'Consonant_Placeholder', - 'Consonant', - 'Consonant_Dead', - 'Consonant_With_Stacker', - 'Consonant_Prefixed', - 'Consonant_Preceding_Repha', - 'Consonant_Succeeding_Repha', - 'Consonant_Subjoined', - 'Consonant_Medial', - 'Consonant_Final', - 'Consonant_Head_Letter', - 'Modifying_Letter', - 'Tone_Letter', - 'Tone_Mark', - 'Gemination_Mark', - 'Cantillation_Mark', - 'Register_Shifter', - 'Syllable_Modifier', - 'Consonant_Killer', - 'Non_Joiner', - 'Joiner', - 'Number_Joiner', - 'Number', - 'Brahmi_Joining_Number', - # Indic_Positional_Category - 'Not_Applicable', - 'Right', - 'Left', - 'Visual_Order_Left', - 'Left_And_Right', - 'Top', - 'Bottom', - 'Top_And_Bottom', - 'Top_And_Right', - 'Top_And_Left', - 'Top_And_Left_And_Right', - 'Bottom_And_Right', - 'Top_And_Bottom_And_Right', - 'Overstruck', -] - -class PropertyValue(object): - def __init__(self, name_): - self.name = name_ - def __str__(self): - return self.name - def __eq__(self, other): - return self.name == (other if isinstance(other, basestring) else other.name) - def __ne__(self, other): - return not (self == other) - -property_values = {} - -for name in property_names: - value = PropertyValue(name) - assert value not in property_values - assert value not in globals() - property_values[name] = value -globals().update(property_values) - - -def is_BASE(U, UISC, UGC): - return (UISC in [Number, Consonant, Consonant_Head_Letter, - #SPEC-OUTDATED Consonant_Placeholder, - Tone_Letter] or - (UGC == Lo and UISC in [Avagraha, Bindu, Consonant_Final, Consonant_Medial, - Consonant_Subjoined, Vowel, Vowel_Dependent])) -def is_BASE_VOWEL(U, UISC, UGC): - return UISC == Vowel_Independent -def is_BASE_IND(U, UISC, UGC): - #SPEC-BROKEN return (UISC in [Consonant_Dead, Modifying_Letter] or UGC == Po) - return (UISC in [Consonant_Dead, Modifying_Letter] or - (UGC == Po and not is_BASE_OTHER(U, UISC, UGC))) # for 104E -def is_BASE_NUM(U, UISC, UGC): - return UISC == Brahmi_Joining_Number -def is_BASE_OTHER(U, UISC, UGC): - if UISC == Consonant_Placeholder: return True #SPEC-OUTDATED - return U in [0x00A0, 0x00D7, 0x2015, 0x2022, 0x25CC, - 0x25FB, 0x25FC, 0x25FD, 0x25FE] -def is_CGJ(U, UISC, UGC): - return U == 0x034F -def is_CONS_FINAL(U, UISC, UGC): - return ((UISC == Consonant_Final and UGC != Lo) or - UISC == Consonant_Succeeding_Repha) -def is_CONS_FINAL_MOD(U, UISC, UGC): - #SPEC-OUTDATED return UISC in [Consonant_Final_Modifier, Syllable_Modifier] - return UISC == Syllable_Modifier -def is_CONS_MED(U, UISC, UGC): - return UISC == Consonant_Medial and UGC != Lo -def is_CONS_MOD(U, UISC, UGC): - return UISC in [Nukta, Gemination_Mark, Consonant_Killer] -def is_CONS_SUB(U, UISC, UGC): - #SPEC-OUTDATED return UISC == Consonant_Subjoined - return UISC == Consonant_Subjoined and UGC != Lo -def is_HALANT(U, UISC, UGC): - return UISC in [Virama, Invisible_Stacker] -def is_HALANT_NUM(U, UISC, UGC): - return UISC == Number_Joiner -def is_ZWNJ(U, UISC, UGC): - return UISC == Non_Joiner -def is_ZWJ(U, UISC, UGC): - return UISC == Joiner -def is_Word_Joiner(U, UISC, UGC): - return U == 0x2060 -def is_OTHER(U, UISC, UGC): - #SPEC-OUTDATED return UGC == Zs # or any other SCRIPT_COMMON characters - return (UISC == Other - and not is_SYM_MOD(U, UISC, UGC) - and not is_CGJ(U, UISC, UGC) - and not is_Word_Joiner(U, UISC, UGC) - and not is_VARIATION_SELECTOR(U, UISC, UGC) - ) -def is_Reserved(U, UISC, UGC): - return UGC == 'Cn' -def is_REPHA(U, UISC, UGC): - #return UISC == Consonant_Preceding_Repha - #SPEC-OUTDATED hack to categorize Consonant_With_Stacker and Consonant_Prefixed - return UISC in [Consonant_Preceding_Repha, Consonant_With_Stacker, Consonant_Prefixed] -def is_SYM(U, UISC, UGC): - if U == 0x25CC: return False #SPEC-OUTDATED - #SPEC-OUTDATED return UGC in [So, Sc] or UISC == Symbol_Letter - return UGC in [So, Sc] -def is_SYM_MOD(U, UISC, UGC): - return U in [0x1B6B, 0x1B6C, 0x1B6D, 0x1B6E, 0x1B6F, 0x1B70, 0x1B71, 0x1B72, 0x1B73] -def is_VARIATION_SELECTOR(U, UISC, UGC): - return 0xFE00 <= U <= 0xFE0F -def is_VOWEL(U, UISC, UGC): - return (UISC == Pure_Killer or - (UGC != Lo and UISC in [Vowel, Vowel_Dependent])) -def is_VOWEL_MOD(U, UISC, UGC): - return (UISC in [Tone_Mark, Cantillation_Mark, Register_Shifter, Visarga] or - (UGC != Lo and UISC == Bindu)) - -use_mapping = { - 'B': is_BASE, - 'IV': is_BASE_VOWEL, - 'IND': is_BASE_IND, - 'N': is_BASE_NUM, - 'GB': is_BASE_OTHER, - 'CGJ': is_CGJ, - 'F': is_CONS_FINAL, - 'FM': is_CONS_FINAL_MOD, - 'M': is_CONS_MED, - 'CM': is_CONS_MOD, - 'SUB': is_CONS_SUB, - 'H': is_HALANT, - 'HN': is_HALANT_NUM, - 'ZWNJ': is_ZWNJ, - 'ZWJ': is_ZWJ, - 'WJ': is_Word_Joiner, - 'O': is_OTHER, - 'Rsv': is_Reserved, - 'R': is_REPHA, - 'S': is_SYM, - 'SM': is_SYM_MOD, - 'VS': is_VARIATION_SELECTOR, - 'V': is_VOWEL, - 'VM': is_VOWEL_MOD, -} - -use_positions = { - 'F': { - 'Abv': [Top], - 'Blw': [Bottom], - 'Pst': [Right], - }, - 'M': { - 'Abv': [Top], - 'Blw': [Bottom], - 'Pst': [Right], - 'Pre': [Left], - }, - 'CM': { - 'Abv': [Top], - 'Blw': [Bottom], - }, - 'V': { - 'Abv': [Top, Top_And_Bottom, Top_And_Bottom_And_Right, Top_And_Right], - 'Blw': [Bottom, Overstruck, Bottom_And_Right], - 'Pst': [Right], - 'Pre': [Left, Top_And_Left, Top_And_Left_And_Right, Left_And_Right], - }, - 'VM': { - 'Abv': [Top], - 'Blw': [Bottom, Overstruck], - 'Pst': [Right], - 'Pre': [Left], - }, - 'SM': { - 'Abv': [Top], - 'Blw': [Bottom], - }, - 'H': None, - 'B': None, - 'FM': None, - 'SUB': None, -} - -def map_to_use(data): - out = {} - items = use_mapping.items() - for U,(UISC,UIPC,UGC,UBlock) in data.items(): - - # Resolve Indic_Syllabic_Category - - # TODO: These don't have UISC assigned in Unicode 8.0, but - # have UIPC - if U == 0x17DD: UISC = Vowel_Dependent - if 0x1CE2 <= U <= 0x1CE8: UISC = Cantillation_Mark - - # TODO: U+1CED should only be allowed after some of - # the nasalization marks, maybe only for U+1CE9..U+1CF1. - if U == 0x1CED: UISC = Tone_Mark - - evals = [(k, v(U,UISC,UGC)) for k,v in items] - values = [k for k,v in evals if v] - assert len(values) == 1, "%s %s %s %s" % (hex(U), UISC, UGC, values) - USE = values[0] - - # Resolve Indic_Positional_Category - - # TODO: Not in Unicode 8.0 yet, but in spec. - if U == 0x1B6C: UIPC = Bottom - - # TODO: These should die, but have UIPC in Unicode 8.0 - if U in [0x953, 0x954]: UIPC = Not_Applicable - - # TODO: In USE's override list but not in Unicode 8.0 - if U == 0x103C: UIPC = Left - - # TODO: These are not in USE's override list that we have, nor are they in Unicode 8.0 - if 0xA926 <= U <= 0xA92A: UIPC = Top - if U == 0x111CA: UIPC = Bottom - if U == 0x11300: UIPC = Top - if U == 0x1133C: UIPC = Bottom - if U == 0x1171E: UIPC = Left # Correct?! - if 0x1CF2 <= U <= 0x1CF3: UIPC = Right - if 0x1CF8 <= U <= 0x1CF9: UIPC = Top - - assert (UIPC in [Not_Applicable, Visual_Order_Left] or - USE in use_positions), "%s %s %s %s %s" % (hex(U), UIPC, USE, UISC, UGC) - - pos_mapping = use_positions.get(USE, None) - if pos_mapping: - values = [k for k,v in pos_mapping.items() if v and UIPC in v] - assert len(values) == 1, "%s %s %s %s %s %s" % (hex(U), UIPC, USE, UISC, UGC, values) - USE = USE + values[0] - - out[U] = (USE, UBlock) - return out - -defaults = ('O', 'No_Block') -data = map_to_use(data) - -# Remove the outliers -singles = {} -for u in [0x034F, 0x25CC, 0x1107F]: - singles[u] = data[u] - del data[u] - -print "/* == Start of generated table == */" -print "/*" -print " * The following table is generated by running:" -print " *" -print " * ./gen-use-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt UnicodeData.txt Blocks.txt" -print " *" -print " * on files with these headers:" -print " *" -for h in headers: - for l in h: - print " * %s" % (l.strip()) -print " */" -print -print '#include "hb-ot-shape-complex-use-private.hh"' -print - -total = 0 -used = 0 -last_block = None -def print_block (block, start, end, data): - global total, used, last_block - if block and block != last_block: - print - print - print " /* %s */" % block - if start % 16: - print ' ' * (20 + (start % 16 * 6)), - num = 0 - assert start % 8 == 0 - assert (end+1) % 8 == 0 - for u in range (start, end+1): - if u % 16 == 0: - print - print " /* %04X */" % u, - if u in data: - num += 1 - d = data.get (u, defaults) - sys.stdout.write ("%6s," % d[0]) - - total += end - start + 1 - used += num - if block: - last_block = block - -uu = data.keys () -uu.sort () - -last = -100000 -num = 0 -offset = 0 -starts = [] -ends = [] -for k,v in sorted(use_mapping.items()): - if k in use_positions and use_positions[k]: continue - print "#define %s USE_%s /* %s */" % (k, k, v.__name__[3:]) -for k,v in sorted(use_positions.items()): - if not v: continue - for suf in v.keys(): - tag = k + suf - print "#define %s USE_%s" % (tag, tag) -print "" -print "static const USE_TABLE_ELEMENT_TYPE use_table[] = {" -for u in uu: - if u <= last: - continue - block = data[u][1] - - start = u//8*8 - end = start+1 - while end in uu and block == data[end][1]: - end += 1 - end = (end-1)//8*8 + 7 - - if start != last + 1: - if start - last <= 1+16*3: - print_block (None, last+1, start-1, data) - last = start-1 - else: - if last >= 0: - ends.append (last + 1) - offset += ends[-1] - starts[-1] - print - print - print "#define use_offset_0x%04xu %d" % (start, offset) - starts.append (start) - - print_block (block, start, end, data) - last = end -ends.append (last + 1) -offset += ends[-1] - starts[-1] -print -print -occupancy = used * 100. / total -page_bits = 12 -print "}; /* Table items: %d; occupancy: %d%% */" % (offset, occupancy) -print -print "USE_TABLE_ELEMENT_TYPE" -print "hb_use_get_categories (hb_codepoint_t u)" -print "{" -print " switch (u >> %d)" % page_bits -print " {" -pages = set([u>>page_bits for u in starts+ends+singles.keys()]) -for p in sorted(pages): - print " case 0x%0Xu:" % p - for (start,end) in zip (starts, ends): - if p not in [start>>page_bits, end>>page_bits]: continue - offset = "use_offset_0x%04xu" % start - print " if (hb_in_range (u, 0x%04Xu, 0x%04Xu)) return use_table[u - 0x%04Xu + %s];" % (start, end-1, start, offset) - for u,d in singles.items (): - if p != u>>page_bits: continue - print " if (unlikely (u == 0x%04Xu)) return %s;" % (u, d[0]) - print " break;" - print "" -print " default:" -print " break;" -print " }" -print " return USE_O;" -print "}" -print -for k in sorted(use_mapping.keys()): - if k in use_positions and use_positions[k]: continue - print "#undef %s" % k -for k,v in sorted(use_positions.items()): - if not v: continue - for suf in v.keys(): - tag = k + suf - print "#undef %s" % tag -print -print "/* == End of generated table == */" - -# Maintain at least 50% occupancy in the table */ -if occupancy < 50: - raise Exception ("Table too sparse, please investigate: ", occupancy) diff --git a/src/harfbuzz.pc.in b/src/harfbuzz.pc.in index b3e124a..7f27bbb 100644 --- a/src/harfbuzz.pc.in +++ b/src/harfbuzz.pc.in @@ -8,6 +8,4 @@ Description: HarfBuzz text shaping library Version: %VERSION% Libs: -L${libdir} -lharfbuzz -Libs.private: %libs_private% -Requires.private: %requires_private% Cflags: -I${includedir}/harfbuzz diff --git a/src/hb-atomic-private.hh b/src/hb-atomic-private.hh index 100ba53..e6738b7 100644 --- a/src/hb-atomic-private.hh +++ b/src/hb-atomic-private.hh @@ -39,11 +39,7 @@ /* We need external help for these */ -#if defined(hb_atomic_int_impl_add) \ - && defined(hb_atomic_ptr_impl_get) \ - && defined(hb_atomic_ptr_impl_cmpexch) - -/* Defined externally, i.e. in config.h; must have typedef'ed hb_atomic_int_impl_t as well. */ +#if 0 #elif !defined(HB_NO_MT) && (defined(_WIN32) || defined(__CYGWIN__)) @@ -62,12 +58,11 @@ static inline void _HBMemoryBarrier (void) { #endif } -typedef LONG hb_atomic_int_impl_t; -#define HB_ATOMIC_INT_IMPL_INIT(V) (V) -#define hb_atomic_int_impl_add(AI, V) InterlockedExchangeAdd (&(AI), (V)) +typedef LONG hb_atomic_int_t; +#define hb_atomic_int_add(AI, V) InterlockedExchangeAdd (&(AI), (V)) -#define hb_atomic_ptr_impl_get(P) (_HBMemoryBarrier (), (void *) *(P)) -#define hb_atomic_ptr_impl_cmpexch(P,O,N) (InterlockedCompareExchangePointer ((void **) (P), (void *) (N), (void *) (O)) == (void *) (O)) +#define hb_atomic_ptr_get(P) (_HBMemoryBarrier (), (void *) *(P)) +#define hb_atomic_ptr_cmpexch(P,O,N) (InterlockedCompareExchangePointer ((void **) (P), (void *) (N), (void *) (O)) == (void *) (O)) #elif !defined(HB_NO_MT) && defined(__APPLE__) @@ -79,31 +74,28 @@ typedef LONG hb_atomic_int_impl_t; #include #endif +typedef int32_t hb_atomic_int_t; +#define hb_atomic_int_add(AI, V) (OSAtomicAdd32Barrier ((V), &(AI)) - (V)) -typedef int32_t hb_atomic_int_impl_t; -#define HB_ATOMIC_INT_IMPL_INIT(V) (V) -#define hb_atomic_int_impl_add(AI, V) (OSAtomicAdd32Barrier ((V), &(AI)) - (V)) - -#define hb_atomic_ptr_impl_get(P) (OSMemoryBarrier (), (void *) *(P)) +#define hb_atomic_ptr_get(P) (OSMemoryBarrier (), (void *) *(P)) #if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4 || __IPHONE_VERSION_MIN_REQUIRED >= 20100) -#define hb_atomic_ptr_impl_cmpexch(P,O,N) OSAtomicCompareAndSwapPtrBarrier ((void *) (O), (void *) (N), (void **) (P)) +#define hb_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwapPtrBarrier ((void *) (O), (void *) (N), (void **) (P)) #else #if __ppc64__ || __x86_64__ || __aarch64__ -#define hb_atomic_ptr_impl_cmpexch(P,O,N) OSAtomicCompareAndSwap64Barrier ((int64_t) (O), (int64_t) (N), (int64_t*) (P)) +#define hb_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwap64Barrier ((int64_t) (O), (int64_t) (N), (int64_t*) (P)) #else -#define hb_atomic_ptr_impl_cmpexch(P,O,N) OSAtomicCompareAndSwap32Barrier ((int32_t) (O), (int32_t) (N), (int32_t*) (P)) +#define hb_atomic_ptr_cmpexch(P,O,N) OSAtomicCompareAndSwap32Barrier ((int32_t) (O), (int32_t) (N), (int32_t*) (P)) #endif #endif #elif !defined(HB_NO_MT) && defined(HAVE_INTEL_ATOMIC_PRIMITIVES) -typedef int hb_atomic_int_impl_t; -#define HB_ATOMIC_INT_IMPL_INIT(V) (V) -#define hb_atomic_int_impl_add(AI, V) __sync_fetch_and_add (&(AI), (V)) +typedef int hb_atomic_int_t; +#define hb_atomic_int_add(AI, V) __sync_fetch_and_add (&(AI), (V)) -#define hb_atomic_ptr_impl_get(P) (void *) (__sync_synchronize (), *(P)) -#define hb_atomic_ptr_impl_cmpexch(P,O,N) __sync_bool_compare_and_swap ((P), (O), (N)) +#define hb_atomic_ptr_get(P) (void *) (__sync_synchronize (), *(P)) +#define hb_atomic_ptr_cmpexch(P,O,N) __sync_bool_compare_and_swap ((P), (O), (N)) #elif !defined(HB_NO_MT) && defined(HAVE_SOLARIS_ATOMIC_OPS) @@ -111,79 +103,33 @@ typedef int hb_atomic_int_impl_t; #include #include -typedef unsigned int hb_atomic_int_impl_t; -#define HB_ATOMIC_INT_IMPL_INIT(V) (V) -#define hb_atomic_int_impl_add(AI, V) ( ({__machine_rw_barrier ();}), atomic_add_int_nv (&(AI), (V)) - (V)) - -#define hb_atomic_ptr_impl_get(P) ( ({__machine_rw_barrier ();}), (void *) *(P)) -#define hb_atomic_ptr_impl_cmpexch(P,O,N) ( ({__machine_rw_barrier ();}), atomic_cas_ptr ((void **) (P), (void *) (O), (void *) (N)) == (void *) (O) ? true : false) - - -#elif !defined(HB_NO_MT) && defined(_AIX) && defined(__IBMCPP__) - -#include - - -static inline int hb_fetch_and_add(volatile int* AI, unsigned int V) { - __lwsync(); - int result = __fetch_and_add(AI, V); - __isync(); - return result; -} -static inline int hb_compare_and_swaplp(volatile long* P, long O, long N) { - __sync(); - int result = __compare_and_swaplp (P, &O, N); - __sync(); - return result; -} +typedef unsigned int hb_atomic_int_t; +#define hb_atomic_int_add(AI, V) ( ({__machine_rw_barrier ();}), atomic_add_int_nv (&(AI), (V)) - (V)) -typedef int hb_atomic_int_impl_t; -#define HB_ATOMIC_INT_IMPL_INIT(V) (V) -#define hb_atomic_int_impl_add(AI, V) hb_fetch_and_add (&(AI), (V)) +#define hb_atomic_ptr_get(P) ( ({__machine_rw_barrier ();}), (void *) *(P)) +#define hb_atomic_ptr_cmpexch(P,O,N) ( ({__machine_rw_barrier ();}), atomic_cas_ptr ((void **) (P), (void *) (O), (void *) (N)) == (void *) (O) ? true : false) -#define hb_atomic_ptr_impl_get(P) (__sync(), (void *) *(P)) -#define hb_atomic_ptr_impl_cmpexch(P,O,N) hb_compare_and_swaplp ((long*)(P), (long)(O), (long)(N)) #elif !defined(HB_NO_MT) #define HB_ATOMIC_INT_NIL 1 /* Warn that fallback implementation is in use. */ +typedef volatile int hb_atomic_int_t; +#define hb_atomic_int_add(AI, V) (((AI) += (V)) - (V)) -typedef volatile int hb_atomic_int_impl_t; -#define HB_ATOMIC_INT_IMPL_INIT(V) (V) -#define hb_atomic_int_impl_add(AI, V) (((AI) += (V)) - (V)) - -#define hb_atomic_ptr_impl_get(P) ((void *) *(P)) -#define hb_atomic_ptr_impl_cmpexch(P,O,N) (* (void * volatile *) (P) == (void *) (O) ? (* (void * volatile *) (P) = (void *) (N), true) : false) +#define hb_atomic_ptr_get(P) ((void *) *(P)) +#define hb_atomic_ptr_cmpexch(P,O,N) (* (void * volatile *) (P) == (void *) (O) ? (* (void * volatile *) (P) = (void *) (N), true) : false) #else /* HB_NO_MT */ -typedef int hb_atomic_int_impl_t; -#define HB_ATOMIC_INT_IMPL_INIT(V) (V) -#define hb_atomic_int_impl_add(AI, V) (((AI) += (V)) - (V)) - -#define hb_atomic_ptr_impl_get(P) ((void *) *(P)) -#define hb_atomic_ptr_impl_cmpexch(P,O,N) (* (void **) (P) == (void *) (O) ? (* (void **) (P) = (void *) (N), true) : false) +typedef int hb_atomic_int_t; +#define hb_atomic_int_add(AI, V) (((AI) += (V)) - (V)) +#define hb_atomic_ptr_get(P) ((void *) *(P)) +#define hb_atomic_ptr_cmpexch(P,O,N) (* (void **) (P) == (void *) (O) ? (* (void **) (P) = (void *) (N), true) : false) #endif - -#define HB_ATOMIC_INT_INIT(V) {HB_ATOMIC_INT_IMPL_INIT(V)} - -struct hb_atomic_int_t -{ - hb_atomic_int_impl_t v; - - inline void set_unsafe (int v_) { v = v_; } - inline int get_unsafe (void) const { return v; } - inline int inc (void) { return hb_atomic_int_impl_add (const_cast (v), 1); } - inline int dec (void) { return hb_atomic_int_impl_add (const_cast (v), -1); } -}; - - -#define hb_atomic_ptr_get(P) hb_atomic_ptr_impl_get(P) -#define hb_atomic_ptr_cmpexch(P,O,N) hb_atomic_ptr_impl_cmpexch((P),(O),(N)) - +/* TODO Add tracing. */ #endif /* HB_ATOMIC_PRIVATE_HH */ diff --git a/src/hb-blob.cc b/src/hb-blob.cc index fb48f03..8759a25 100644 --- a/src/hb-blob.cc +++ b/src/hb-blob.cc @@ -91,7 +91,7 @@ _hb_blob_destroy_user_data (hb_blob_t *blob) * Return value: New blob, or the empty blob if something failed or if @length is * zero. Destroy with hb_blob_destroy(). * - * Since: 0.9.2 + * Since: 1.0 **/ hb_blob_t * hb_blob_create (const char *data, @@ -104,6 +104,7 @@ hb_blob_create (const char *data, if (!length || length >= 1u << 31 || + data + length < data /* overflows */ || !(blob = hb_object_create ())) { if (destroy) destroy (user_data); @@ -146,7 +147,7 @@ hb_blob_create (const char *data, * @length is zero or @offset is beyond the end of @parent's data. Destroy * with hb_blob_destroy(). * - * Since: 0.9.2 + * Since: 1.0 **/ hb_blob_t * hb_blob_create_sub_blob (hb_blob_t *parent, @@ -178,7 +179,7 @@ hb_blob_create_sub_blob (hb_blob_t *parent, * * Return value: (transfer full): the empty blob. * - * Since: 0.9.2 + * Since: 1.0 **/ hb_blob_t * hb_blob_get_empty (void) @@ -209,7 +210,7 @@ hb_blob_get_empty (void) * * Return value: @blob. * - * Since: 0.9.2 + * Since: 1.0 **/ hb_blob_t * hb_blob_reference (hb_blob_t *blob) @@ -227,7 +228,7 @@ hb_blob_reference (hb_blob_t *blob) * * See TODO:link object types for more information. * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_blob_destroy (hb_blob_t *blob) @@ -249,7 +250,7 @@ hb_blob_destroy (hb_blob_t *blob) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_blob_set_user_data (hb_blob_t *blob, @@ -270,7 +271,7 @@ hb_blob_set_user_data (hb_blob_t *blob, * * Return value: (transfer none): * - * Since: 0.9.2 + * Since: 1.0 **/ void * hb_blob_get_user_data (hb_blob_t *blob, @@ -286,7 +287,7 @@ hb_blob_get_user_data (hb_blob_t *blob, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_blob_make_immutable (hb_blob_t *blob) @@ -305,7 +306,7 @@ hb_blob_make_immutable (hb_blob_t *blob) * * Return value: TODO * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_blob_is_immutable (hb_blob_t *blob) @@ -322,7 +323,7 @@ hb_blob_is_immutable (hb_blob_t *blob) * * Return value: the length of blob data in bytes. * - * Since: 0.9.2 + * Since: 1.0 **/ unsigned int hb_blob_get_length (hb_blob_t *blob) @@ -339,7 +340,7 @@ hb_blob_get_length (hb_blob_t *blob) * * Returns: (transfer none) (array length=length): * - * Since: 0.9.2 + * Since: 1.0 **/ const char * hb_blob_get_data (hb_blob_t *blob, unsigned int *length) @@ -364,7 +365,7 @@ hb_blob_get_data (hb_blob_t *blob, unsigned int *length) * Returns: (transfer none) (array length=length): Writable blob data, * or %NULL if failed. * - * Since: 0.9.2 + * Since: 1.0 **/ char * hb_blob_get_data_writable (hb_blob_t *blob, unsigned int *length) diff --git a/src/hb-blob.h b/src/hb-blob.h index ef3fc98..b2419ab 100644 --- a/src/hb-blob.h +++ b/src/hb-blob.h @@ -64,7 +64,7 @@ typedef enum { typedef struct hb_blob_t hb_blob_t; -HB_EXTERN hb_blob_t * +hb_blob_t * hb_blob_create (const char *data, unsigned int length, hb_memory_mode_t mode, @@ -77,21 +77,21 @@ hb_blob_create (const char *data, * modify the parent data as that data may be * shared among multiple sub-blobs. */ -HB_EXTERN hb_blob_t * +hb_blob_t * hb_blob_create_sub_blob (hb_blob_t *parent, unsigned int offset, unsigned int length); -HB_EXTERN hb_blob_t * +hb_blob_t * hb_blob_get_empty (void); -HB_EXTERN hb_blob_t * +hb_blob_t * hb_blob_reference (hb_blob_t *blob); -HB_EXTERN void +void hb_blob_destroy (hb_blob_t *blob); -HB_EXTERN hb_bool_t +hb_bool_t hb_blob_set_user_data (hb_blob_t *blob, hb_user_data_key_t *key, void * data, @@ -99,25 +99,25 @@ hb_blob_set_user_data (hb_blob_t *blob, hb_bool_t replace); -HB_EXTERN void * +void * hb_blob_get_user_data (hb_blob_t *blob, hb_user_data_key_t *key); -HB_EXTERN void +void hb_blob_make_immutable (hb_blob_t *blob); -HB_EXTERN hb_bool_t +hb_bool_t hb_blob_is_immutable (hb_blob_t *blob); -HB_EXTERN unsigned int +unsigned int hb_blob_get_length (hb_blob_t *blob); -HB_EXTERN const char * +const char * hb_blob_get_data (hb_blob_t *blob, unsigned int *length); -HB_EXTERN char * +char * hb_blob_get_data_writable (hb_blob_t *blob, unsigned int *length); diff --git a/src/hb-buffer-deserialize-text.hh b/src/hb-buffer-deserialize-text.hh index d2d8daa..7a46ab2 100644 --- a/src/hb-buffer-deserialize-text.hh +++ b/src/hb-buffer-deserialize-text.hh @@ -336,8 +336,8 @@ _hb_buffer_deserialize_glyphs_text (hb_buffer_t *buffer, const char *eof = pe, *tok = NULL; int cs; - hb_glyph_info_t info = {0}; - hb_glyph_position_t pos = {0}; + hb_glyph_info_t info; + hb_glyph_position_t pos; #line 343 "hb-buffer-deserialize-text.hh" { diff --git a/src/hb-buffer-deserialize-text.rl b/src/hb-buffer-deserialize-text.rl index 8a682f7..8856580 100644 --- a/src/hb-buffer-deserialize-text.rl +++ b/src/hb-buffer-deserialize-text.rl @@ -111,8 +111,8 @@ _hb_buffer_deserialize_glyphs_text (hb_buffer_t *buffer, const char *eof = pe, *tok = NULL; int cs; - hb_glyph_info_t info = {0}; - hb_glyph_position_t pos = {0}; + hb_glyph_info_t info; + hb_glyph_position_t pos; %%{ write init; write exec; diff --git a/src/hb-buffer-private.hh b/src/hb-buffer-private.hh index ed592f4..069f925 100644 --- a/src/hb-buffer-private.hh +++ b/src/hb-buffer-private.hh @@ -35,36 +35,9 @@ #include "hb-unicode-private.hh" -#ifndef HB_BUFFER_MAX_EXPANSION_FACTOR -#define HB_BUFFER_MAX_EXPANSION_FACTOR 32 -#endif -#ifndef HB_BUFFER_MAX_LEN_MIN -#define HB_BUFFER_MAX_LEN_MIN 8192 -#endif -#ifndef HB_BUFFER_MAX_LEN_DEFAULT -#define HB_BUFFER_MAX_LEN_DEFAULT 0x3FFFFFFF /* Shaping more than a billion chars? Let us know! */ -#endif - ASSERT_STATIC (sizeof (hb_glyph_info_t) == 20); ASSERT_STATIC (sizeof (hb_glyph_info_t) == sizeof (hb_glyph_position_t)); -HB_MARK_AS_FLAG_T (hb_buffer_flags_t); -HB_MARK_AS_FLAG_T (hb_buffer_serialize_flags_t); - -enum hb_buffer_scratch_flags_t { - HB_BUFFER_SCRATCH_FLAG_DEFAULT = 0x00000000u, - HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII = 0x00000001u, - HB_BUFFER_SCRATCH_FLAG_HAS_DEFAULT_IGNORABLES = 0x00000002u, - HB_BUFFER_SCRATCH_FLAG_HAS_SPACE_FALLBACK = 0x00000004u, - HB_BUFFER_SCRATCH_FLAG_HAS_GPOS_ATTACHMENT = 0x00000008u, - /* Reserved for complex shapers' internal use. */ - HB_BUFFER_SCRATCH_FLAG_COMPLEX0 = 0x01000000u, - HB_BUFFER_SCRATCH_FLAG_COMPLEX1 = 0x02000000u, - HB_BUFFER_SCRATCH_FLAG_COMPLEX2 = 0x04000000u, - HB_BUFFER_SCRATCH_FLAG_COMPLEX3 = 0x08000000u, -}; -HB_MARK_AS_FLAG_T (hb_buffer_scratch_flags_t); - /* * hb_buffer_t @@ -77,10 +50,7 @@ struct hb_buffer_t { /* Information about how the text in the buffer should be treated */ hb_unicode_funcs_t *unicode; /* Unicode functions */ hb_buffer_flags_t flags; /* BOT / EOT / etc. */ - hb_buffer_cluster_level_t cluster_level; hb_codepoint_t replacement; /* U+FFFD or something else. */ - hb_buffer_scratch_flags_t scratch_flags; /* Have space-flallback, etc. */ - unsigned int max_len; /* Maximum allowed len. */ /* Buffer contents */ hb_buffer_content_type_t content_type; @@ -105,13 +75,17 @@ struct hb_buffer_t { inline hb_glyph_position_t &cur_pos (unsigned int i = 0) { return pos[idx + i]; } inline hb_glyph_position_t cur_pos (unsigned int i = 0) const { return pos[idx + i]; } - inline hb_glyph_info_t &prev (void) { return out_info[out_len ? out_len - 1 : 0]; } - inline hb_glyph_info_t prev (void) const { return out_info[out_len ? out_len - 1 : 0]; } + inline hb_glyph_info_t &prev (void) { return out_info[out_len - 1]; } + inline hb_glyph_info_t prev (void) const { return info[out_len - 1]; } inline bool has_separate_output (void) const { return info != out_info; } unsigned int serial; + /* These reflect current allocations of the bytes in glyph_info_t's var1 and var2. */ + uint8_t allocated_var_bytes[8]; + const char *allocated_var_owner[8]; + /* Text before / after the main buffer contents. * Always in Unicode, and ordered outward. * Index 0 is for "pre-context", 1 for "post-context". */ @@ -119,52 +93,6 @@ struct hb_buffer_t { hb_codepoint_t context[2][CONTEXT_LENGTH]; unsigned int context_len[2]; - /* Debugging API */ - hb_buffer_message_func_t message_func; - void *message_data; - hb_destroy_func_t message_destroy; - - /* Internal debugging. */ - /* The bits here reflect current allocations of the bytes in glyph_info_t's var1 and var2. */ -#ifndef HB_NDEBUG - uint8_t allocated_var_bits; -#endif - inline void allocate_var (unsigned int start, unsigned int count) - { -#ifndef HB_NDEBUG - unsigned int end = start + count; - assert (end <= 8); - unsigned int bits = (1<func (offsetof (hb_glyph_info_t, var) - offsetof(hb_glyph_info_t, var1), \ - sizeof (b->info[0].var)) -#define HB_BUFFER_ALLOCATE_VAR(b, var) HB_BUFFER_XALLOCATE_VAR (b, allocate_var, var ()) -#define HB_BUFFER_DEALLOCATE_VAR(b, var) HB_BUFFER_XALLOCATE_VAR (b, deallocate_var, var ()) -#define HB_BUFFER_ASSERT_VAR(b, var) HB_BUFFER_XALLOCATE_VAR (b, assert_var, var ()) + sizeof (b->info[0].var), owner) +#define HB_BUFFER_ALLOCATE_VAR(b, var) \ + HB_BUFFER_XALLOCATE_VAR (b, allocate_var, var (), #var) +#define HB_BUFFER_DEALLOCATE_VAR(b, var) \ + HB_BUFFER_XALLOCATE_VAR (b, deallocate_var, var (), #var) +#define HB_BUFFER_ASSERT_VAR(b, var) \ + HB_BUFFER_XALLOCATE_VAR (b, assert_var, var (), #var) #endif /* HB_BUFFER_PRIVATE_HH */ diff --git a/src/hb-buffer-serialize.cc b/src/hb-buffer-serialize.cc index 63a0f34..406d69d 100644 --- a/src/hb-buffer-serialize.cc +++ b/src/hb-buffer-serialize.cc @@ -36,12 +36,11 @@ static const char *serialize_formats[] = { /** * hb_buffer_serialize_list_formats: * - * Returns a list of supported buffer serialization formats. + * * * Return value: (transfer none): - * A string array of buffer serialization formats. Should not be freed. * - * Since: 0.9.7 + * Since: 1.0 **/ const char ** hb_buffer_serialize_list_formats (void) @@ -51,17 +50,14 @@ hb_buffer_serialize_list_formats (void) /** * hb_buffer_serialize_format_from_string: - * @str: (array length=len) (element-type uint8_t): a string to parse - * @len: length of @str, or -1 if string is %NULL terminated + * @str: + * @len: * - * Parses a string into an #hb_buffer_serialize_format_t. Does not check if - * @str is a valid buffer serialization format, use - * hb_buffer_serialize_list_formats() to get the list of supported formats. + * * * Return value: - * The parsed #hb_buffer_serialize_format_t. * - * Since: 0.9.7 + * Since: 1.0 **/ hb_buffer_serialize_format_t hb_buffer_serialize_format_from_string (const char *str, int len) @@ -72,15 +68,13 @@ hb_buffer_serialize_format_from_string (const char *str, int len) /** * hb_buffer_serialize_format_to_string: - * @format: an #hb_buffer_serialize_format_t to convert. + * @format: * - * Converts @format to the string corresponding it, or %NULL if it is not a valid - * #hb_buffer_serialize_format_t. + * * - * Return value: (transfer none): - * A %NULL terminated string corresponding to @format. Should not be freed. + * Return value: * - * Since: 0.9.7 + * Since: 1.0 **/ const char * hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format) @@ -105,8 +99,7 @@ _hb_buffer_serialize_glyphs_json (hb_buffer_t *buffer, hb_buffer_serialize_flags_t flags) { hb_glyph_info_t *info = hb_buffer_get_glyph_infos (buffer, NULL); - hb_glyph_position_t *pos = (flags & HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS) ? - NULL : hb_buffer_get_glyph_positions (buffer, NULL); + hb_glyph_position_t *pos = hb_buffer_get_glyph_positions (buffer, NULL); *buf_consumed = 0; for (unsigned int i = start; i < end; i++) @@ -151,16 +144,6 @@ _hb_buffer_serialize_glyphs_json (hb_buffer_t *buffer, pos[i].x_advance, pos[i].y_advance); } - if (flags & HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS) - { - hb_glyph_extents_t extents; - hb_font_get_glyph_extents(font, info[i].codepoint, &extents); - p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), ",\"xb\":%d,\"yb\":%d", - extents.x_bearing, extents.y_bearing)); - p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), ",\"w\":%d,\"h\":%d", - extents.width, extents.height)); - } - *p++ = '}'; unsigned int l = p - b; @@ -189,8 +172,7 @@ _hb_buffer_serialize_glyphs_text (hb_buffer_t *buffer, hb_buffer_serialize_flags_t flags) { hb_glyph_info_t *info = hb_buffer_get_glyph_infos (buffer, NULL); - hb_glyph_position_t *pos = (flags & HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS) ? - NULL : hb_buffer_get_glyph_positions (buffer, NULL); + hb_glyph_position_t *pos = hb_buffer_get_glyph_positions (buffer, NULL); *buf_consumed = 0; for (unsigned int i = start; i < end; i++) @@ -226,13 +208,6 @@ _hb_buffer_serialize_glyphs_text (hb_buffer_t *buffer, p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), ",%d", pos[i].y_advance)); } - if (flags & HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS) - { - hb_glyph_extents_t extents; - hb_font_get_glyph_extents(font, info[i].codepoint, &extents); - p += MAX (0, snprintf (p, ARRAY_LENGTH (b) - (p - b), "<%d,%d,%d,%d>", extents.x_bearing, extents.y_bearing, extents.width, extents.height)); - } - unsigned int l = p - b; if (buf_size > l) { @@ -248,51 +223,24 @@ _hb_buffer_serialize_glyphs_text (hb_buffer_t *buffer, return end - start; } +/* Returns number of items, starting at start, that were serialized. */ /** * hb_buffer_serialize_glyphs: - * @buffer: an #hb_buffer_t buffer. - * @start: the first item in @buffer to serialize. - * @end: the last item in @buffer to serialize. - * @buf: (out) (array length=buf_size) (element-type uint8_t): output string to - * write serialized buffer into. - * @buf_size: the size of @buf. - * @buf_consumed: (out) (allow-none): if not %NULL, will be set to the number of byes written into @buf. - * @font: (allow-none): the #hb_font_t used to shape this buffer, needed to - * read glyph names and extents. If %NULL, and empty font will be used. - * @format: the #hb_buffer_serialize_format_t to use for formatting the output. - * @flags: the #hb_buffer_serialize_flags_t that control what glyph properties - * to serialize. - * - * Serializes @buffer into a textual representation of its glyph content, - * useful for showing the contents of the buffer, for example during debugging. - * There are currently two supported serialization formats: - * - * ## text - * A human-readable, plain text format. - * The serialized glyphs will look something like: - * - * ``` - * [uni0651=0@518,0+0|uni0628=0+1897] - * ``` - * - The serialized glyphs are delimited with `[` and `]`. - * - Glyphs are separated with `|` - * - Each glyph starts with glyph name, or glyph index if - * #HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES flag is set. Then, - * - If #HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS is not set, `=` then #hb_glyph_info_t.cluster. - * - If #HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS is not set, the #hb_glyph_position_t in the format: - * - If both #hb_glyph_position_t.x_offset and #hb_glyph_position_t.y_offset are not 0, `@x_offset,y_offset`. Then, - * - `+x_advance`, then `,y_advance` if #hb_glyph_position_t.y_advance is not 0. Then, - * - If #HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS is set, the - * #hb_glyph_extents_t in the format - * `<x_bearing,y_bearing,width,height>` + * @buffer: a buffer. + * @start: + * @end: + * @buf: (array length=buf_size): + * @buf_size: + * @buf_consumed: (out): + * @font: + * @format: + * @flags: * - * ## json - * TODO. + * * * Return value: - * The number of serialized items. * - * Since: 0.9.7 + * Since: 1.0 **/ unsigned int hb_buffer_serialize_glyphs (hb_buffer_t *buffer, @@ -300,8 +248,8 @@ hb_buffer_serialize_glyphs (hb_buffer_t *buffer, unsigned int end, char *buf, unsigned int buf_size, - unsigned int *buf_consumed, - hb_font_t *font, + unsigned int *buf_consumed, /* May be NULL */ + hb_font_t *font, /* May be NULL */ hb_buffer_serialize_format_t format, hb_buffer_serialize_flags_t flags) { @@ -315,9 +263,6 @@ hb_buffer_serialize_glyphs (hb_buffer_t *buffer, assert ((!buffer->len && buffer->content_type == HB_BUFFER_CONTENT_TYPE_INVALID) || buffer->content_type == HB_BUFFER_CONTENT_TYPE_GLYPHS); - if (!buffer->have_positions) - flags |= HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS; - if (unlikely (start == end)) return 0; @@ -391,7 +336,7 @@ parse_int (const char *pp, const char *end, int32_t *pv) /** * hb_buffer_deserialize_glyphs: - * @buffer: an #hb_buffer_t buffer. + * @buffer: a buffer. * @buf: (array length=buf_len): * @buf_len: * @end_ptr: (out): @@ -402,7 +347,7 @@ parse_int (const char *pp, const char *end, int32_t *pv) * * Return value: * - * Since: 0.9.7 + * Since: 1.0 **/ hb_bool_t hb_buffer_deserialize_glyphs (hb_buffer_t *buffer, diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc index 406db9c..b9fe263 100644 --- a/src/hb-buffer.cc +++ b/src/hb-buffer.cc @@ -35,28 +35,7 @@ #define HB_DEBUG_BUFFER (HB_DEBUG+0) #endif -/** - * SECTION: hb-buffer - * @title: Buffers - * @short_description: Input and output buffers - * @include: hb.h - * - * Buffers serve dual role in HarfBuzz; they hold the input characters that are - * passed hb_shape(), and after shaping they hold the output glyphs. - **/ -/** - * hb_segment_properties_equal: - * @a: first #hb_segment_properties_t to compare. - * @b: second #hb_segment_properties_t to compare. - * - * Checks the equality of two #hb_segment_properties_t's. - * - * Return value: (transfer full): - * %true if all properties of @a equal those of @b, false otherwise. - * - * Since: 0.9.7 - **/ hb_bool_t hb_segment_properties_equal (const hb_segment_properties_t *a, const hb_segment_properties_t *b) @@ -69,17 +48,6 @@ hb_segment_properties_equal (const hb_segment_properties_t *a, } -/** - * hb_segment_properties_hash: - * @p: #hb_segment_properties_t to hash. - * - * Creates a hash representing @p. - * - * Return value: - * A hash of @p. - * - * Since: 0.9.7 - **/ unsigned int hb_segment_properties_hash (const hb_segment_properties_t *p) { @@ -117,11 +85,6 @@ hb_buffer_t::enlarge (unsigned int size) { if (unlikely (in_error)) return false; - if (unlikely (size > max_len)) - { - in_error = true; - return false; - } unsigned int new_allocated = allocated; hb_glyph_position_t *new_pos = NULL; @@ -229,7 +192,6 @@ hb_buffer_t::clear (void) hb_segment_properties_t default_props = HB_SEGMENT_PROPERTIES_DEFAULT; props = default_props; - scratch_flags = HB_BUFFER_SCRATCH_FLAG_DEFAULT; content_type = HB_BUFFER_CONTENT_TYPE_INVALID; in_error = false; @@ -242,11 +204,11 @@ hb_buffer_t::clear (void) out_info = info; serial = 0; + memset (allocated_var_bytes, 0, sizeof allocated_var_bytes); + memset (allocated_var_owner, 0, sizeof allocated_var_owner); memset (context, 0, sizeof context); memset (context_len, 0, sizeof context_len); - - deallocate_var_all (); } void @@ -407,8 +369,6 @@ hb_buffer_t::move_to (unsigned int i) idx = i; return true; } - if (unlikely (in_error)) - return false; assert (i <= out_len + (len - idx)); @@ -538,10 +498,14 @@ hb_buffer_t::reverse_clusters (void) } void -hb_buffer_t::merge_clusters_impl (unsigned int start, - unsigned int end) +hb_buffer_t::merge_clusters (unsigned int start, + unsigned int end) { - if (cluster_level == HB_BUFFER_CLUSTER_LEVEL_CHARACTERS) +#ifdef HB_NO_MERGE_CLUSTERS + return; +#endif + + if (unlikely (end - start < 2)) return; unsigned int cluster = info[start].cluster; @@ -559,7 +523,7 @@ hb_buffer_t::merge_clusters_impl (unsigned int start, /* If we hit the start of buffer, continue in out-buffer. */ if (idx == start) - for (unsigned int i = out_len; i && out_info[i - 1].cluster == info[start].cluster; i--) + for (unsigned i = out_len; i && out_info[i - 1].cluster == info[start].cluster; i--) out_info[i - 1].cluster = cluster; for (unsigned int i = start; i < end; i++) @@ -569,8 +533,9 @@ void hb_buffer_t::merge_out_clusters (unsigned int start, unsigned int end) { - if (cluster_level == HB_BUFFER_CLUSTER_LEVEL_CHARACTERS) - return; +#ifdef HB_NO_MERGE_CLUSTERS + return; +#endif if (unlikely (end - start < 2)) return; @@ -590,44 +555,12 @@ hb_buffer_t::merge_out_clusters (unsigned int start, /* If we hit the end of out-buffer, continue in buffer. */ if (end == out_len) - for (unsigned int i = idx; i < len && info[i].cluster == out_info[end - 1].cluster; i++) + for (unsigned i = idx; i < len && info[i].cluster == out_info[end - 1].cluster; i++) info[i].cluster = cluster; for (unsigned int i = start; i < end; i++) out_info[i].cluster = cluster; } -void -hb_buffer_t::delete_glyph () -{ - unsigned int cluster = info[idx].cluster; - if (idx + 1 < len && cluster == info[idx + 1].cluster) - { - /* Cluster survives; do nothing. */ - goto done; - } - - if (out_len) - { - /* Merge cluster backward. */ - if (cluster < out_info[out_len - 1].cluster) - { - unsigned int old_cluster = out_info[out_len - 1].cluster; - for (unsigned i = out_len; i && out_info[i - 1].cluster == old_cluster; i--) - out_info[i - 1].cluster = cluster; - } - goto done; - } - - if (idx + 1 < len) - { - /* Merge cluster forward. */ - merge_clusters (idx, idx + 2); - goto done; - } - -done: - skip_glyph (); -} void hb_buffer_t::guess_segment_properties (void) @@ -661,21 +594,84 @@ hb_buffer_t::guess_segment_properties (void) } +static inline void +dump_var_allocation (const hb_buffer_t *buffer) +{ + char buf[80]; + for (unsigned int i = 0; i < 8; i++) + buf[i] = '0' + buffer->allocated_var_bytes[7 - i]; + buf[8] = '\0'; + DEBUG_MSG (BUFFER, buffer, + "Current var allocation: %s", + buf); +} + +void hb_buffer_t::allocate_var (unsigned int byte_i, unsigned int count, const char *owner) +{ + assert (byte_i < 8 && byte_i + count <= 8); + + if (DEBUG_ENABLED (BUFFER)) + dump_var_allocation (this); + DEBUG_MSG (BUFFER, this, + "Allocating var bytes %d..%d for %s", + byte_i, byte_i + count - 1, owner); + + for (unsigned int i = byte_i; i < byte_i + count; i++) { + assert (!allocated_var_bytes[i]); + allocated_var_bytes[i]++; + allocated_var_owner[i] = owner; + } +} + +void hb_buffer_t::deallocate_var (unsigned int byte_i, unsigned int count, const char *owner) +{ + if (DEBUG_ENABLED (BUFFER)) + dump_var_allocation (this); + + DEBUG_MSG (BUFFER, this, + "Deallocating var bytes %d..%d for %s", + byte_i, byte_i + count - 1, owner); + + assert (byte_i < 8 && byte_i + count <= 8); + for (unsigned int i = byte_i; i < byte_i + count; i++) { + assert (allocated_var_bytes[i]); + assert (0 == strcmp (allocated_var_owner[i], owner)); + allocated_var_bytes[i]--; + } +} + +void hb_buffer_t::assert_var (unsigned int byte_i, unsigned int count, const char *owner) +{ + if (DEBUG_ENABLED (BUFFER)) + dump_var_allocation (this); + + DEBUG_MSG (BUFFER, this, + "Asserting var bytes %d..%d for %s", + byte_i, byte_i + count - 1, owner); + + assert (byte_i < 8 && byte_i + count <= 8); + for (unsigned int i = byte_i; i < byte_i + count; i++) { + assert (allocated_var_bytes[i]); + assert (0 == strcmp (allocated_var_owner[i], owner)); + } +} + +void hb_buffer_t::deallocate_var_all (void) +{ + memset (allocated_var_bytes, 0, sizeof (allocated_var_bytes)); + memset (allocated_var_owner, 0, sizeof (allocated_var_owner)); +} + /* Public API */ /** * hb_buffer_create: (Xconstructor) * - * Creates a new #hb_buffer_t with all properties to defaults. + * * - * Return value: (transfer full): - * A newly allocated #hb_buffer_t with a reference count of 1. The initial - * reference count should be released with hb_buffer_destroy() when you are done - * using the #hb_buffer_t. This function never returns %NULL. If memory cannot - * be allocated, a special #hb_buffer_t object will be returned on which - * hb_buffer_allocation_successful() returns %false. + * Return value: (transfer full) * - * Since: 0.9.2 + * Since: 1.0 **/ hb_buffer_t * hb_buffer_create (void) @@ -685,8 +681,6 @@ hb_buffer_create (void) if (!(buffer = hb_object_create ())) return hb_buffer_get_empty (); - buffer->max_len = HB_BUFFER_MAX_LEN_DEFAULT; - buffer->reset (); return buffer; @@ -699,7 +693,7 @@ hb_buffer_create (void) * * Return value: (transfer full): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_buffer_t * hb_buffer_get_empty (void) @@ -709,10 +703,7 @@ hb_buffer_get_empty (void) const_cast (&_hb_unicode_funcs_nil), HB_BUFFER_FLAG_DEFAULT, - HB_BUFFER_CLUSTER_LEVEL_DEFAULT, HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT, - HB_BUFFER_SCRATCH_FLAG_DEFAULT, - HB_BUFFER_MAX_LEN_DEFAULT, HB_BUFFER_CONTENT_TYPE_INVALID, HB_SEGMENT_PROPERTIES_DEFAULT, @@ -728,15 +719,13 @@ hb_buffer_get_empty (void) /** * hb_buffer_reference: (skip) - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * Increases the reference count on @buffer by one. This prevents @buffer from - * being destroyed until a matching call to hb_buffer_destroy() is made. + * * * Return value: (transfer full): - * The referenced #hb_buffer_t. * - * Since: 0.9.2 + * Since: 1.0 **/ hb_buffer_t * hb_buffer_reference (hb_buffer_t *buffer) @@ -746,13 +735,11 @@ hb_buffer_reference (hb_buffer_t *buffer) /** * hb_buffer_destroy: (skip) - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * Deallocate the @buffer. - * Decreases the reference count on @buffer by one. If the result is zero, then - * @buffer and all associated resources are freed. See hb_buffer_reference(). + * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_destroy (hb_buffer_t *buffer) @@ -763,15 +750,13 @@ hb_buffer_destroy (hb_buffer_t *buffer) free (buffer->info); free (buffer->pos); - if (buffer->message_destroy) - buffer->message_destroy (buffer->message_data); free (buffer); } /** * hb_buffer_set_user_data: (skip) - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * @key: * @data: * @destroy: @@ -781,7 +766,7 @@ hb_buffer_destroy (hb_buffer_t *buffer) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_buffer_set_user_data (hb_buffer_t *buffer, @@ -795,14 +780,14 @@ hb_buffer_set_user_data (hb_buffer_t *buffer, /** * hb_buffer_get_user_data: (skip) - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * @key: * * * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ void * hb_buffer_get_user_data (hb_buffer_t *buffer, @@ -814,13 +799,12 @@ hb_buffer_get_user_data (hb_buffer_t *buffer, /** * hb_buffer_set_content_type: - * @buffer: an #hb_buffer_t. - * @content_type: the type of buffer contents to set + * @buffer: a buffer. + * @content_type: * - * Sets the type of @buffer contents, buffers are either empty, contain - * characters (before shaping) or glyphs (the result of shaping). + * * - * Since: 0.9.5 + * Since: 1.0 **/ void hb_buffer_set_content_type (hb_buffer_t *buffer, @@ -831,14 +815,13 @@ hb_buffer_set_content_type (hb_buffer_t *buffer, /** * hb_buffer_get_content_type: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * see hb_buffer_set_content_type(). + * * - * Return value: - * The type of @buffer contents. + * Return value: * - * Since: 0.9.5 + * Since: 1.0 **/ hb_buffer_content_type_t hb_buffer_get_content_type (hb_buffer_t *buffer) @@ -849,12 +832,12 @@ hb_buffer_get_content_type (hb_buffer_t *buffer) /** * hb_buffer_set_unicode_funcs: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * @unicode_funcs: * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_set_unicode_funcs (hb_buffer_t *buffer, @@ -874,13 +857,13 @@ hb_buffer_set_unicode_funcs (hb_buffer_t *buffer, /** * hb_buffer_get_unicode_funcs: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * * * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_unicode_funcs_t * hb_buffer_get_unicode_funcs (hb_buffer_t *buffer) @@ -890,18 +873,12 @@ hb_buffer_get_unicode_funcs (hb_buffer_t *buffer) /** * hb_buffer_set_direction: - * @buffer: an #hb_buffer_t. - * @direction: the #hb_direction_t of the @buffer - * - * Set the text flow direction of the buffer. No shaping can happen without - * setting @buffer direction, and it controls the visual direction for the - * output glyphs; for RTL direction the glyphs will be reversed. Many layout - * features depend on the proper setting of the direction, for example, - * reversing RTL text before shaping, then shaping with LTR direction is not - * the same as keeping the text in logical order and shaping with RTL - * direction. - * - * Since: 0.9.2 + * @buffer: a buffer. + * @direction: + * + * + * + * Since: 1.0 **/ void hb_buffer_set_direction (hb_buffer_t *buffer, @@ -916,14 +893,13 @@ hb_buffer_set_direction (hb_buffer_t *buffer, /** * hb_buffer_get_direction: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * See hb_buffer_set_direction() + * * - * Return value: - * The direction of the @buffer. + * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_direction_t hb_buffer_get_direction (hb_buffer_t *buffer) @@ -933,20 +909,12 @@ hb_buffer_get_direction (hb_buffer_t *buffer) /** * hb_buffer_set_script: - * @buffer: an #hb_buffer_t. - * @script: an #hb_script_t to set. + * @buffer: a buffer. + * @script: * - * Sets the script of @buffer to @script. - * - * Script is crucial for choosing the proper shaping behaviour for scripts that - * require it (e.g. Arabic) and the which OpenType features defined in the font - * to be applied. - * - * You can pass one of the predefined #hb_script_t values, or use - * hb_script_from_string() or hb_script_from_iso15924_tag() to get the - * corresponding script from an ISO 15924 script tag. + * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_set_script (hb_buffer_t *buffer, @@ -960,14 +928,13 @@ hb_buffer_set_script (hb_buffer_t *buffer, /** * hb_buffer_get_script: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * See hb_buffer_set_script(). + * * - * Return value: - * The #hb_script_t of the @buffer. + * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_script_t hb_buffer_get_script (hb_buffer_t *buffer) @@ -977,20 +944,12 @@ hb_buffer_get_script (hb_buffer_t *buffer) /** * hb_buffer_set_language: - * @buffer: an #hb_buffer_t. - * @language: an hb_language_t to set. - * - * Sets the language of @buffer to @language. + * @buffer: a buffer. + * @language: * - * Languages are crucial for selecting which OpenType feature to apply to the - * buffer which can result in applying language-specific behaviour. Languages - * are orthogonal to the scripts, and though they are related, they are - * different concepts and should not be confused with each other. - * - * Use hb_language_from_string() to convert from ISO 639 language codes to - * #hb_language_t. + * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_set_language (hb_buffer_t *buffer, @@ -1004,14 +963,13 @@ hb_buffer_set_language (hb_buffer_t *buffer, /** * hb_buffer_get_language: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * See hb_buffer_set_language(). + * * - * Return value: (transfer none): - * The #hb_language_t of the buffer. Must not be freed by the caller. + * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_language_t hb_buffer_get_language (hb_buffer_t *buffer) @@ -1021,14 +979,12 @@ hb_buffer_get_language (hb_buffer_t *buffer) /** * hb_buffer_set_segment_properties: - * @buffer: an #hb_buffer_t. - * @props: an #hb_segment_properties_t to use. + * @buffer: a buffer. + * @props: * - * Sets the segment properties of the buffer, a shortcut for calling - * hb_buffer_set_direction(), hb_buffer_set_script() and - * hb_buffer_set_language() individually. + * * - * Since: 0.9.7 + * Since: 1.0 **/ void hb_buffer_set_segment_properties (hb_buffer_t *buffer, @@ -1042,12 +998,12 @@ hb_buffer_set_segment_properties (hb_buffer_t *buffer, /** * hb_buffer_get_segment_properties: - * @buffer: an #hb_buffer_t. - * @props: (out): the output #hb_segment_properties_t. + * @buffer: a buffer. + * @props: * - * Sets @props to the #hb_segment_properties_t of @buffer. + * * - * Since: 0.9.7 + * Since: 1.0 **/ void hb_buffer_get_segment_properties (hb_buffer_t *buffer, @@ -1059,12 +1015,12 @@ hb_buffer_get_segment_properties (hb_buffer_t *buffer, /** * hb_buffer_set_flags: - * @buffer: an #hb_buffer_t. - * @flags: the buffer flags to set. + * @buffer: a buffer. + * @flags: * - * Sets @buffer flags to @flags. See #hb_buffer_flags_t. + * * - * Since: 0.9.7 + * Since: 1.0 **/ void hb_buffer_set_flags (hb_buffer_t *buffer, @@ -1078,14 +1034,13 @@ hb_buffer_set_flags (hb_buffer_t *buffer, /** * hb_buffer_get_flags: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * See hb_buffer_set_flags(). + * * * Return value: - * The @buffer flags. * - * Since: 0.9.7 + * Since: 1.0 **/ hb_buffer_flags_t hb_buffer_get_flags (hb_buffer_t *buffer) @@ -1093,53 +1048,15 @@ hb_buffer_get_flags (hb_buffer_t *buffer) return buffer->flags; } -/** - * hb_buffer_set_cluster_level: - * @buffer: an #hb_buffer_t. - * @cluster_level: - * - * - * - * Since: 0.9.42 - **/ -void -hb_buffer_set_cluster_level (hb_buffer_t *buffer, - hb_buffer_cluster_level_t cluster_level) -{ - if (unlikely (hb_object_is_inert (buffer))) - return; - - buffer->cluster_level = cluster_level; -} - -/** - * hb_buffer_get_cluster_level: - * @buffer: an #hb_buffer_t. - * - * - * - * Return value: - * - * Since: 0.9.42 - **/ -hb_buffer_cluster_level_t -hb_buffer_get_cluster_level (hb_buffer_t *buffer) -{ - return buffer->cluster_level; -} - /** * hb_buffer_set_replacement_codepoint: - * @buffer: an #hb_buffer_t. - * @replacement: the replacement #hb_codepoint_t - * - * Sets the #hb_codepoint_t that replaces invalid entries for a given encoding - * when adding text to @buffer. + * @buffer: a buffer. + * @replacement: * - * Default is %HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT. + * * - * Since: 0.9.31 + * Since: 1.0 **/ void hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer, @@ -1153,14 +1070,13 @@ hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer, /** * hb_buffer_get_replacement_codepoint: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * See hb_buffer_set_replacement_codepoint(). + * * * Return value: - * The @buffer replacement #hb_codepoint_t. * - * Since: 0.9.31 + * Since: 1.0 **/ hb_codepoint_t hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer) @@ -1171,12 +1087,11 @@ hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer) /** * hb_buffer_reset: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * Resets the buffer to its initial status, as if it was just newly created - * with hb_buffer_create(). + * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_reset (hb_buffer_t *buffer) @@ -1186,12 +1101,11 @@ hb_buffer_reset (hb_buffer_t *buffer) /** * hb_buffer_clear_contents: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * Similar to hb_buffer_reset(), but does not clear the Unicode functions and - * the replacement code point. + * * - * Since: 0.9.11 + * Since: 1.0 **/ void hb_buffer_clear_contents (hb_buffer_t *buffer) @@ -1201,15 +1115,14 @@ hb_buffer_clear_contents (hb_buffer_t *buffer) /** * hb_buffer_pre_allocate: - * @buffer: an #hb_buffer_t. - * @size: number of items to pre allocate. + * @buffer: a buffer. + * @size: * - * Pre allocates memory for @buffer to fit at least @size number of items. + * * - * Return value: - * %true if @buffer memory allocation succeeded, %false otherwise. + * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_buffer_pre_allocate (hb_buffer_t *buffer, unsigned int size) @@ -1219,14 +1132,13 @@ hb_buffer_pre_allocate (hb_buffer_t *buffer, unsigned int size) /** * hb_buffer_allocation_successful: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * Check if allocating memory for the buffer succeeded. + * * - * Return value: - * %true if @buffer memory allocation succeeded, %false otherwise. + * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_buffer_allocation_successful (hb_buffer_t *buffer) @@ -1236,20 +1148,13 @@ hb_buffer_allocation_successful (hb_buffer_t *buffer) /** * hb_buffer_add: - * @buffer: an #hb_buffer_t. - * @codepoint: a Unicode code point. - * @cluster: the cluster value of @codepoint. + * @buffer: a buffer. + * @codepoint: + * @cluster: * - * Appends a character with the Unicode value of @codepoint to @buffer, and - * gives it the initial cluster value of @cluster. Clusters can be any thing - * the client wants, they are usually used to refer to the index of the - * character in the input text stream and are output in - * #hb_glyph_info_t.cluster field. - * - * This function does not check the validity of @codepoint, it is up to the - * caller to ensure it is a valid Unicode code point. + * * - * Since: 0.9.7 + * Since: 1.0 **/ void hb_buffer_add (hb_buffer_t *buffer, @@ -1262,16 +1167,14 @@ hb_buffer_add (hb_buffer_t *buffer, /** * hb_buffer_set_length: - * @buffer: an #hb_buffer_t. - * @length: the new length of @buffer. + * @buffer: a buffer. + * @length: * - * Similar to hb_buffer_pre_allocate(), but clears any new items added at the - * end. + * * * Return value: - * %true if @buffer memory allocation succeeded, %false otherwise. * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_buffer_set_length (hb_buffer_t *buffer, @@ -1304,15 +1207,13 @@ hb_buffer_set_length (hb_buffer_t *buffer, /** * hb_buffer_get_length: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * * Returns the number of items in the buffer. * - * Return value: - * The @buffer length. - * The value valid as long as buffer has not been modified. + * Return value: buffer length. * - * Since: 0.9.2 + * Since: 1.0 **/ unsigned int hb_buffer_get_length (hb_buffer_t *buffer) @@ -1322,17 +1223,15 @@ hb_buffer_get_length (hb_buffer_t *buffer) /** * hb_buffer_get_glyph_infos: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * @length: (out): output array length. * - * Returns @buffer glyph information array. Returned pointer - * is valid as long as @buffer contents are not modified. + * Returns buffer glyph information array. Returned pointer + * is valid as long as buffer contents are not modified. * - * Return value: (transfer none) (array length=length): - * The @buffer glyph information array. - * The value valid as long as buffer has not been modified. + * Return value: (transfer none) (array length=length): buffer glyph information array. * - * Since: 0.9.2 + * Since: 1.0 **/ hb_glyph_info_t * hb_buffer_get_glyph_infos (hb_buffer_t *buffer, @@ -1346,17 +1245,15 @@ hb_buffer_get_glyph_infos (hb_buffer_t *buffer, /** * hb_buffer_get_glyph_positions: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * @length: (out): output length. * - * Returns @buffer glyph position array. Returned pointer - * is valid as long as @buffer contents are not modified. + * Returns buffer glyph position array. Returned pointer + * is valid as long as buffer contents are not modified. * - * Return value: (transfer none) (array length=length): - * The @buffer glyph position array. - * The value valid as long as buffer has not been modified. + * Return value: (transfer none) (array length=length): buffer glyph position array. * - * Since: 0.9.2 + * Since: 1.0 **/ hb_glyph_position_t * hb_buffer_get_glyph_positions (hb_buffer_t *buffer, @@ -1373,11 +1270,11 @@ hb_buffer_get_glyph_positions (hb_buffer_t *buffer, /** * hb_buffer_reverse: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * * Reverses buffer contents. * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_reverse (hb_buffer_t *buffer) @@ -1386,31 +1283,14 @@ hb_buffer_reverse (hb_buffer_t *buffer) } /** - * hb_buffer_reverse_range: - * @buffer: an #hb_buffer_t. - * @start: start index. - * @end: end index. - * - * Reverses buffer contents between start to end. - * - * Since: 0.9.41 - **/ -void -hb_buffer_reverse_range (hb_buffer_t *buffer, - unsigned int start, unsigned int end) -{ - buffer->reverse_range (start, end); -} - -/** * hb_buffer_reverse_clusters: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * * Reverses buffer clusters. That is, the buffer contents are * reversed, then each cluster (consecutive items having the * same cluster number) are reversed again. * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_reverse_clusters (hb_buffer_t *buffer) @@ -1420,7 +1300,7 @@ hb_buffer_reverse_clusters (hb_buffer_t *buffer) /** * hb_buffer_guess_segment_properties: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * * Sets unset buffer segment properties based on buffer Unicode * contents. If buffer is not empty, it must have content type @@ -1440,7 +1320,7 @@ hb_buffer_reverse_clusters (hb_buffer_t *buffer) * hb_language_get_default(). This may change in the future by * taking buffer script into consideration when choosing a language. * - * Since: 0.9.7 + * Since: 1.0 **/ void hb_buffer_guess_segment_properties (hb_buffer_t *buffer) @@ -1519,20 +1399,15 @@ hb_buffer_add_utf (hb_buffer_t *buffer, /** * hb_buffer_add_utf8: - * @buffer: an #hb_buffer_t. - * @text: (array length=text_length) (element-type uint8_t): an array of UTF-8 - * characters to append. - * @text_length: the length of the @text, or -1 if it is %NULL terminated. - * @item_offset: the offset of the first character to add to the @buffer. - * @item_length: the number of characters to add to the @buffer, or -1 for the - * end of @text (assuming it is %NULL terminated). + * @buffer: a buffer. + * @text: (array length=text_length) (element-type uint8_t): + * @text_length: + * @item_offset: + * @item_length: * - * See hb_buffer_add_codepoints(). - * - * Replaces invalid UTF-8 characters with the @buffer replacement code point, - * see hb_buffer_set_replacement_codepoint(). + * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_add_utf8 (hb_buffer_t *buffer, @@ -1546,19 +1421,15 @@ hb_buffer_add_utf8 (hb_buffer_t *buffer, /** * hb_buffer_add_utf16: - * @buffer: an #hb_buffer_t. - * @text: (array length=text_length): an array of UTF-16 characters to append. - * @text_length: the length of the @text, or -1 if it is %NULL terminated. - * @item_offset: the offset of the first character to add to the @buffer. - * @item_length: the number of characters to add to the @buffer, or -1 for the - * end of @text (assuming it is %NULL terminated). - * - * See hb_buffer_add_codepoints(). + * @buffer: a buffer. + * @text: (array length=text_length): + * @text_length: + * @item_offset: + * @item_length: * - * Replaces invalid UTF-16 characters with the @buffer replacement code point, - * see hb_buffer_set_replacement_codepoint(). + * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_add_utf16 (hb_buffer_t *buffer, @@ -1572,19 +1443,15 @@ hb_buffer_add_utf16 (hb_buffer_t *buffer, /** * hb_buffer_add_utf32: - * @buffer: an #hb_buffer_t. - * @text: (array length=text_length): an array of UTF-32 characters to append. - * @text_length: the length of the @text, or -1 if it is %NULL terminated. - * @item_offset: the offset of the first character to add to the @buffer. - * @item_length: the number of characters to add to the @buffer, or -1 for the - * end of @text (assuming it is %NULL terminated). - * - * See hb_buffer_add_codepoints(). + * @buffer: a buffer. + * @text: (array length=text_length): + * @text_length: + * @item_offset: + * @item_length: * - * Replaces invalid UTF-32 characters with the @buffer replacement code point, - * see hb_buffer_set_replacement_codepoint(). + * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_add_utf32 (hb_buffer_t *buffer, @@ -1598,20 +1465,15 @@ hb_buffer_add_utf32 (hb_buffer_t *buffer, /** * hb_buffer_add_latin1: - * @buffer: an #hb_buffer_t. - * @text: (array length=text_length) (element-type uint8_t): an array of UTF-8 - * characters to append. - * @text_length: the length of the @text, or -1 if it is %NULL terminated. - * @item_offset: the offset of the first character to add to the @buffer. - * @item_length: the number of characters to add to the @buffer, or -1 for the - * end of @text (assuming it is %NULL terminated). + * @buffer: a buffer. + * @text: (array length=text_length) (element-type uint8_t): + * @text_length: + * @item_offset: + * @item_length: * - * Similar to hb_buffer_add_codepoints(), but allows only access to first 256 - * Unicode code points that can fit in 8-bit strings. - * - * Has nothing to do with non-Unicode Latin-1 encoding. + * * - * Since: 0.9.39 + * Since: 1.0 **/ void hb_buffer_add_latin1 (hb_buffer_t *buffer, @@ -1625,27 +1487,15 @@ hb_buffer_add_latin1 (hb_buffer_t *buffer, /** * hb_buffer_add_codepoints: - * @buffer: a #hb_buffer_t to append characters to. - * @text: (array length=text_length): an array of Unicode code points to append. - * @text_length: the length of the @text, or -1 if it is %NULL terminated. - * @item_offset: the offset of the first code point to add to the @buffer. - * @item_length: the number of code points to add to the @buffer, or -1 for the - * end of @text (assuming it is %NULL terminated). - * - * Appends characters from @text array to @buffer. The @item_offset is the - * position of the first character from @text that will be appended, and - * @item_length is the number of character. When shaping part of a larger text - * (e.g. a run of text from a paragraph), instead of passing just the substring - * corresponding to the run, it is preferable to pass the whole - * paragraph and specify the run start and length as @item_offset and - * @item_length, respectively, to give HarfBuzz the full context to be able, - * for example, to do cross-run Arabic shaping or properly handle combining - * marks at stat of run. - * - * This function does not check the validity of @text, it is up to the caller - * to ensure it contains a valid Unicode code points. - * - * Since: 0.9.31 + * @buffer: a buffer. + * @text: (array length=text_length): + * @text_length: + * @item_offset: + * @item_length: + * + * + * + * Since: 1.0 **/ void hb_buffer_add_codepoints (hb_buffer_t *buffer, @@ -1700,7 +1550,7 @@ normalize_glyphs_cluster (hb_buffer_t *buffer, pos[end - 1].x_advance = total_x_advance; pos[end - 1].y_advance = total_y_advance; - hb_stable_sort (buffer->info + start, end - start - 1, compare_info_codepoint, buffer->pos + start); + hb_bubble_sort (buffer->info + start, end - start - 1, compare_info_codepoint, buffer->pos + start); } else { /* Transfer all cluster advance to the first glyph. */ pos[start].x_advance += total_x_advance; @@ -1709,20 +1559,17 @@ normalize_glyphs_cluster (hb_buffer_t *buffer, pos[i].x_offset -= total_x_advance; pos[i].y_offset -= total_y_advance; } - hb_stable_sort (buffer->info + start + 1, end - start - 1, compare_info_codepoint, buffer->pos + start + 1); + hb_bubble_sort (buffer->info + start + 1, end - start - 1, compare_info_codepoint, buffer->pos + start + 1); } } /** * hb_buffer_normalize_glyphs: - * @buffer: an #hb_buffer_t. + * @buffer: a buffer. * - * Reorders a glyph buffer to have canonical in-cluster glyph order / position. - * The resulting clusters should behave identical to pre-reordering clusters. - * - * This has nothing to do with Unicode normalization. + * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_buffer_normalize_glyphs (hb_buffer_t *buffer) @@ -1745,66 +1592,3 @@ hb_buffer_normalize_glyphs (hb_buffer_t *buffer) } normalize_glyphs_cluster (buffer, start, end, backward); } - -void -hb_buffer_t::sort (unsigned int start, unsigned int end, int(*compar)(const hb_glyph_info_t *, const hb_glyph_info_t *)) -{ - assert (!have_positions); - for (unsigned int i = start + 1; i < end; i++) - { - unsigned int j = i; - while (j > start && compar (&info[j - 1], &info[i]) > 0) - j--; - if (i == j) - continue; - /* Move item i to occupy place for item j, shift what's in between. */ - merge_clusters (j, i + 1); - { - hb_glyph_info_t t = info[i]; - memmove (&info[j + 1], &info[j], (i - j) * sizeof (hb_glyph_info_t)); - info[j] = t; - } - } -} - -/* - * Debugging. - */ - -/** - * hb_buffer_set_message_func: - * @buffer: an #hb_buffer_t. - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * - * - * - * Since: 1.1.3 - **/ -void -hb_buffer_set_message_func (hb_buffer_t *buffer, - hb_buffer_message_func_t func, - void *user_data, hb_destroy_func_t destroy) -{ - if (buffer->message_destroy) - buffer->message_destroy (buffer->message_data); - - if (func) { - buffer->message_func = func; - buffer->message_data = user_data; - buffer->message_destroy = destroy; - } else { - buffer->message_func = NULL; - buffer->message_data = NULL; - buffer->message_destroy = NULL; - } -} - -bool -hb_buffer_t::message_impl (hb_font_t *font, const char *fmt, va_list ap) -{ - char buf[100]; - vsnprintf (buf, sizeof (buf), fmt, ap); - return (bool) this->message_func (this, font, buf, this->message_data); -} diff --git a/src/hb-buffer.h b/src/hb-buffer.h index bf289c1..e5b46d8 100644 --- a/src/hb-buffer.h +++ b/src/hb-buffer.h @@ -40,27 +40,7 @@ HB_BEGIN_DECLS -/** - * hb_glyph_info_t: - * @codepoint: either a Unicode code point (before shaping) or a glyph index - * (after shaping). - * @mask: - * @cluster: the index of the character in the original text that corresponds - * to this #hb_glyph_info_t, or whatever the client passes to - * hb_buffer_add(). More than one #hb_glyph_info_t can have the same - * @cluster value, if they resulted from the same character (e.g. one - * to many glyph substitution), and when more than one character gets - * merged in the same glyph (e.g. many to one glyph substitution) the - * #hb_glyph_info_t will have the smallest cluster value of them. - * By default some characters are merged into the same cluster - * (e.g. combining marks have the same cluster as their bases) - * even if they are separate glyphs, hb_buffer_set_cluster_level() - * allow selecting more fine-grained cluster handling. - * - * The #hb_glyph_info_t is the structure that holds information about the - * glyphs and their relation to input text. - * - */ + typedef struct hb_glyph_info_t { hb_codepoint_t codepoint; hb_mask_t mask; @@ -71,22 +51,6 @@ typedef struct hb_glyph_info_t { hb_var_int_t var2; } hb_glyph_info_t; -/** - * hb_glyph_position_t: - * @x_advance: how much the line advances after drawing this glyph when setting - * text in horizontal direction. - * @y_advance: how much the line advances after drawing this glyph when setting - * text in vertical direction. - * @x_offset: how much the glyph moves on the X-axis before drawing it, this - * should not affect how much the line advances. - * @y_offset: how much the glyph moves on the Y-axis before drawing it, this - * should not affect how much the line advances. - * - * The #hb_glyph_position_t is the structure that holds the positions of the - * glyph in both horizontal and vertical directions. All positions in - * #hb_glyph_position_t are relative to the current point. - * - */ typedef struct hb_glyph_position_t { hb_position_t x_advance; hb_position_t y_advance; @@ -97,16 +61,7 @@ typedef struct hb_glyph_position_t { hb_var_int_t var; } hb_glyph_position_t; -/** - * hb_segment_properties_t: - * @direction: the #hb_direction_t of the buffer, see hb_buffer_set_direction(). - * @script: the #hb_script_t of the buffer, see hb_buffer_set_script(). - * @language: the #hb_language_t of the buffer, see hb_buffer_set_language(). - * - * The structure that holds various text properties of an #hb_buffer_t. Can be - * set and retrieved using hb_buffer_set_segment_properties() and - * hb_buffer_get_segment_properties(), respectively. - */ + typedef struct hb_segment_properties_t { hb_direction_t direction; hb_script_t script; @@ -122,127 +77,100 @@ typedef struct hb_segment_properties_t { NULL, \ NULL} -HB_EXTERN hb_bool_t +hb_bool_t hb_segment_properties_equal (const hb_segment_properties_t *a, const hb_segment_properties_t *b); -HB_EXTERN unsigned int +unsigned int hb_segment_properties_hash (const hb_segment_properties_t *p); -/** - * hb_buffer_t: - * - * The main structure holding the input text and its properties before shaping, - * and output glyphs and their information after shaping. +/* + * hb_buffer_t */ typedef struct hb_buffer_t hb_buffer_t; -HB_EXTERN hb_buffer_t * +hb_buffer_t * hb_buffer_create (void); -HB_EXTERN hb_buffer_t * +hb_buffer_t * hb_buffer_get_empty (void); -HB_EXTERN hb_buffer_t * +hb_buffer_t * hb_buffer_reference (hb_buffer_t *buffer); -HB_EXTERN void +void hb_buffer_destroy (hb_buffer_t *buffer); -HB_EXTERN hb_bool_t +hb_bool_t hb_buffer_set_user_data (hb_buffer_t *buffer, hb_user_data_key_t *key, void * data, hb_destroy_func_t destroy, hb_bool_t replace); -HB_EXTERN void * +void * hb_buffer_get_user_data (hb_buffer_t *buffer, hb_user_data_key_t *key); -/** - * hb_buffer_content_type_t: - * @HB_BUFFER_CONTENT_TYPE_INVALID: Initial value for new buffer. - * @HB_BUFFER_CONTENT_TYPE_UNICODE: The buffer contains input characters (before shaping). - * @HB_BUFFER_CONTENT_TYPE_GLYPHS: The buffer contains output glyphs (after shaping). - */ + typedef enum { HB_BUFFER_CONTENT_TYPE_INVALID = 0, HB_BUFFER_CONTENT_TYPE_UNICODE, HB_BUFFER_CONTENT_TYPE_GLYPHS } hb_buffer_content_type_t; -HB_EXTERN void +void hb_buffer_set_content_type (hb_buffer_t *buffer, hb_buffer_content_type_t content_type); -HB_EXTERN hb_buffer_content_type_t +hb_buffer_content_type_t hb_buffer_get_content_type (hb_buffer_t *buffer); -HB_EXTERN void +void hb_buffer_set_unicode_funcs (hb_buffer_t *buffer, hb_unicode_funcs_t *unicode_funcs); -HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_t * hb_buffer_get_unicode_funcs (hb_buffer_t *buffer); -HB_EXTERN void +void hb_buffer_set_direction (hb_buffer_t *buffer, hb_direction_t direction); -HB_EXTERN hb_direction_t +hb_direction_t hb_buffer_get_direction (hb_buffer_t *buffer); -HB_EXTERN void +void hb_buffer_set_script (hb_buffer_t *buffer, hb_script_t script); -HB_EXTERN hb_script_t +hb_script_t hb_buffer_get_script (hb_buffer_t *buffer); -HB_EXTERN void +void hb_buffer_set_language (hb_buffer_t *buffer, hb_language_t language); -HB_EXTERN hb_language_t +hb_language_t hb_buffer_get_language (hb_buffer_t *buffer); -HB_EXTERN void +void hb_buffer_set_segment_properties (hb_buffer_t *buffer, const hb_segment_properties_t *props); -HB_EXTERN void +void hb_buffer_get_segment_properties (hb_buffer_t *buffer, hb_segment_properties_t *props); -HB_EXTERN void +void hb_buffer_guess_segment_properties (hb_buffer_t *buffer); -/** - * hb_buffer_flags_t: - * @HB_BUFFER_FLAG_DEFAULT: the default buffer flag. - * @HB_BUFFER_FLAG_BOT: flag indicating that special handling of the beginning - * of text paragraph can be applied to this buffer. Should usually - * be set, unless you are passing to the buffer only part - * of the text without the full context. - * @HB_BUFFER_FLAG_EOT: flag indicating that special handling of the end of text - * paragraph can be applied to this buffer, similar to - * @HB_BUFFER_FLAG_EOT. - * @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES: - * flag indication that character with Default_Ignorable - * Unicode property should use the corresponding glyph - * from the font, instead of hiding them (currently done - * by replacing them with the space glyph and zeroing the - * advance width.) - * - * Since: 0.9.20 - */ typedef enum { /*< flags >*/ HB_BUFFER_FLAG_DEFAULT = 0x00000000u, HB_BUFFER_FLAG_BOT = 0x00000001u, /* Beginning-of-text */ @@ -250,109 +178,91 @@ typedef enum { /*< flags >*/ HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES = 0x00000004u } hb_buffer_flags_t; -HB_EXTERN void +void hb_buffer_set_flags (hb_buffer_t *buffer, hb_buffer_flags_t flags); -HB_EXTERN hb_buffer_flags_t +hb_buffer_flags_t hb_buffer_get_flags (hb_buffer_t *buffer); -/* - * Since: 0.9.42 - */ -typedef enum { - HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES = 0, - HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS = 1, - HB_BUFFER_CLUSTER_LEVEL_CHARACTERS = 2, - HB_BUFFER_CLUSTER_LEVEL_DEFAULT = HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES -} hb_buffer_cluster_level_t; - -HB_EXTERN void -hb_buffer_set_cluster_level (hb_buffer_t *buffer, - hb_buffer_cluster_level_t cluster_level); -HB_EXTERN hb_buffer_cluster_level_t -hb_buffer_get_cluster_level (hb_buffer_t *buffer); -/** - * HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT: - * - * The default code point for replacing invalid characters in a given encoding. - * Set to U+FFFD REPLACEMENT CHARACTER. - * - * Since: 0.9.31 - */ #define HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT 0xFFFDu -HB_EXTERN void +/* Sets codepoint used to replace invalid UTF-8/16/32 entries. + * Default is 0xFFFDu. */ +void hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer, hb_codepoint_t replacement); -HB_EXTERN hb_codepoint_t +hb_codepoint_t hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer); -HB_EXTERN void +/* Resets the buffer. Afterwards it's as if it was just created, + * except that it has a larger buffer allocated perhaps... */ +void hb_buffer_reset (hb_buffer_t *buffer); -HB_EXTERN void +/* Like reset, but does NOT clear unicode_funcs and replacement_codepoint. */ +void hb_buffer_clear_contents (hb_buffer_t *buffer); -HB_EXTERN hb_bool_t +/* Returns false if allocation failed */ +hb_bool_t hb_buffer_pre_allocate (hb_buffer_t *buffer, unsigned int size); -HB_EXTERN hb_bool_t +/* Returns false if allocation has failed before */ +hb_bool_t hb_buffer_allocation_successful (hb_buffer_t *buffer); -HB_EXTERN void +void hb_buffer_reverse (hb_buffer_t *buffer); -HB_EXTERN void -hb_buffer_reverse_range (hb_buffer_t *buffer, - unsigned int start, unsigned int end); - -HB_EXTERN void +void hb_buffer_reverse_clusters (hb_buffer_t *buffer); /* Filling the buffer in */ -HB_EXTERN void +void hb_buffer_add (hb_buffer_t *buffer, hb_codepoint_t codepoint, unsigned int cluster); -HB_EXTERN void +void hb_buffer_add_utf8 (hb_buffer_t *buffer, const char *text, int text_length, unsigned int item_offset, int item_length); -HB_EXTERN void +void hb_buffer_add_utf16 (hb_buffer_t *buffer, const uint16_t *text, int text_length, unsigned int item_offset, int item_length); -HB_EXTERN void +void hb_buffer_add_utf32 (hb_buffer_t *buffer, const uint32_t *text, int text_length, unsigned int item_offset, int item_length); -HB_EXTERN void +/* Allows only access to first 256 Unicode codepoints. */ +void hb_buffer_add_latin1 (hb_buffer_t *buffer, const uint8_t *text, int text_length, unsigned int item_offset, int item_length); -HB_EXTERN void +/* Like add_utf32 but does NOT check for invalid Unicode codepoints. */ +void hb_buffer_add_codepoints (hb_buffer_t *buffer, const hb_codepoint_t *text, int text_length, @@ -360,25 +270,32 @@ hb_buffer_add_codepoints (hb_buffer_t *buffer, int item_length); -HB_EXTERN hb_bool_t +/* Clears any new items added at the end */ +hb_bool_t hb_buffer_set_length (hb_buffer_t *buffer, unsigned int length); -HB_EXTERN unsigned int +/* Return value valid as long as buffer not modified */ +unsigned int hb_buffer_get_length (hb_buffer_t *buffer); /* Getting glyphs out of the buffer */ -HB_EXTERN hb_glyph_info_t * +/* Return value valid as long as buffer not modified */ +hb_glyph_info_t * hb_buffer_get_glyph_infos (hb_buffer_t *buffer, unsigned int *length); -HB_EXTERN hb_glyph_position_t * +/* Return value valid as long as buffer not modified */ +hb_glyph_position_t * hb_buffer_get_glyph_positions (hb_buffer_t *buffer, unsigned int *length); -HB_EXTERN void +/* Reorders a glyph buffer to have canonical in-cluster glyph order / position. + * The resulting clusters should behave identical to pre-reordering clusters. + * NOTE: This has nothing to do with Unicode normalization. */ +void hb_buffer_normalize_glyphs (hb_buffer_t *buffer); @@ -386,87 +303,50 @@ hb_buffer_normalize_glyphs (hb_buffer_t *buffer); * Serialize */ -/** - * hb_buffer_serialize_flags_t: - * @HB_BUFFER_SERIALIZE_FLAG_DEFAULT: serialize glyph names, clusters and positions. - * @HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS: do not serialize glyph cluster. - * @HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS: do not serialize glyph position information. - * @HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES: do no serialize glyph name. - * @HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS: serialize glyph extents. - * - * Flags that control what glyph information are serialized in hb_buffer_serialize_glyphs(). - * - * Since: 0.9.20 - */ typedef enum { /*< flags >*/ HB_BUFFER_SERIALIZE_FLAG_DEFAULT = 0x00000000u, HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS = 0x00000001u, HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS = 0x00000002u, - HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES = 0x00000004u, - HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS = 0x00000008u + HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES = 0x00000004u } hb_buffer_serialize_flags_t; -/** - * hb_buffer_serialize_format_t: - * @HB_BUFFER_SERIALIZE_FORMAT_TEXT: a human-readable, plain text format. - * @HB_BUFFER_SERIALIZE_FORMAT_JSON: a machine-readable JSON format. - * @HB_BUFFER_SERIALIZE_FORMAT_INVALID: invalid format. - * - * The buffer serialization and de-serialization format used in - * hb_buffer_serialize_glyphs() and hb_buffer_deserialize_glyphs(). - * - * Since: 0.9.2 - */ typedef enum { HB_BUFFER_SERIALIZE_FORMAT_TEXT = HB_TAG('T','E','X','T'), HB_BUFFER_SERIALIZE_FORMAT_JSON = HB_TAG('J','S','O','N'), HB_BUFFER_SERIALIZE_FORMAT_INVALID = HB_TAG_NONE } hb_buffer_serialize_format_t; -HB_EXTERN hb_buffer_serialize_format_t +/* len=-1 means str is NUL-terminated. */ +hb_buffer_serialize_format_t hb_buffer_serialize_format_from_string (const char *str, int len); -HB_EXTERN const char * +const char * hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format); -HB_EXTERN const char ** +const char ** hb_buffer_serialize_list_formats (void); -HB_EXTERN unsigned int +/* Returns number of items, starting at start, that were serialized. */ +unsigned int hb_buffer_serialize_glyphs (hb_buffer_t *buffer, unsigned int start, unsigned int end, char *buf, unsigned int buf_size, - unsigned int *buf_consumed, - hb_font_t *font, + unsigned int *buf_consumed, /* May be NULL */ + hb_font_t *font, /* May be NULL */ hb_buffer_serialize_format_t format, hb_buffer_serialize_flags_t flags); -HB_EXTERN hb_bool_t +hb_bool_t hb_buffer_deserialize_glyphs (hb_buffer_t *buffer, const char *buf, - int buf_len, - const char **end_ptr, - hb_font_t *font, + int buf_len, /* -1 means nul-terminated */ + const char **end_ptr, /* May be NULL */ + hb_font_t *font, /* May be NULL */ hb_buffer_serialize_format_t format); -/* - * Debugging. - */ - -typedef hb_bool_t (*hb_buffer_message_func_t) (hb_buffer_t *buffer, - hb_font_t *font, - const char *message, - void *user_data); - -HB_EXTERN void -hb_buffer_set_message_func (hb_buffer_t *buffer, - hb_buffer_message_func_t func, - void *user_data, hb_destroy_func_t destroy); - - HB_END_DECLS #endif /* HB_BUFFER_H */ diff --git a/src/hb-common.cc b/src/hb-common.cc index 140ee0a..05a1f9c 100644 --- a/src/hb-common.cc +++ b/src/hb-common.cc @@ -57,14 +57,14 @@ _hb_options_init (void) /** * hb_tag_from_string: - * @str: (array length=len) (element-type uint8_t): + * @str: (array length=len): * @len: * * * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_tag_t hb_tag_from_string (const char *str, int len) @@ -92,7 +92,7 @@ hb_tag_from_string (const char *str, int len) * * * - * Since: 0.9.5 + * Since: 1.0 **/ void hb_tag_to_string (hb_tag_t tag, char *buf) @@ -115,14 +115,14 @@ const char direction_strings[][4] = { /** * hb_direction_from_string: - * @str: (array length=len) (element-type uint8_t): + * @str: (array length=len): * @len: * * * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_direction_t hb_direction_from_string (const char *str, int len) @@ -149,7 +149,7 @@ hb_direction_from_string (const char *str, int len) * * Return value: (transfer none): * - * Since: 0.9.2 + * Since: 1.0 **/ const char * hb_direction_to_string (hb_direction_t direction) @@ -179,7 +179,7 @@ static const char canon_map[256] = { 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 0, 0, 0, 0, 0 }; -static bool +static hb_bool_t lang_equal (hb_language_t v1, const void *v2) { @@ -281,51 +281,46 @@ retry: /** * hb_language_from_string: - * @str: (array length=len) (element-type uint8_t): a string representing - * ISO 639 language code - * @len: length of the @str, or -1 if it is %NULL-terminated. + * @str: (array length=len): + * @len: * - * Converts @str representing an ISO 639 language code to the corresponding - * #hb_language_t. + * * - * Return value: (transfer none): - * The #hb_language_t corresponding to the ISO 639 language code. + * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_language_t hb_language_from_string (const char *str, int len) { + char strbuf[64]; + if (!str || !len || !*str) return HB_LANGUAGE_INVALID; - hb_language_item_t *item = NULL; if (len >= 0) { /* NUL-terminate it. */ - char strbuf[64]; len = MIN (len, (int) sizeof (strbuf) - 1); memcpy (strbuf, str, len); strbuf[len] = '\0'; - item = lang_find_or_insert (strbuf); + str = strbuf; } - else - item = lang_find_or_insert (str); + + hb_language_item_t *item = lang_find_or_insert (str); return likely (item) ? item->lang : HB_LANGUAGE_INVALID; } /** * hb_language_to_string: - * @language: an #hb_language_t to convert. + * @language: * - * See hb_language_from_string(). + * * - * Return value: (transfer none): - * A %NULL-terminated string representing the @language. Must not be freed by - * the caller. + * Return value: (transfer none): * - * Since: 0.9.2 + * Since: 1.0 **/ const char * hb_language_to_string (hb_language_t language) @@ -339,9 +334,9 @@ hb_language_to_string (hb_language_t language) * * * - * Return value: (transfer none): + * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_language_t hb_language_get_default (void) @@ -362,14 +357,13 @@ hb_language_get_default (void) /** * hb_script_from_iso15924_tag: - * @tag: an #hb_tag_t representing an ISO 15924 tag. + * @tag: * - * Converts an ISO 15924 script tag to a corresponding #hb_script_t. + * * * Return value: - * An #hb_script_t corresponding to the ISO 15924 tag. * - * Since: 0.9.2 + * Since: 1.0 **/ hb_script_t hb_script_from_iso15924_tag (hb_tag_t tag) @@ -407,35 +401,30 @@ hb_script_from_iso15924_tag (hb_tag_t tag) /** * hb_script_from_string: - * @str: (array length=len) (element-type uint8_t): a string representing an - * ISO 15924 tag. - * @len: length of the @str, or -1 if it is %NULL-terminated. + * @s: (array length=len): + * @len: * - * Converts a string @str representing an ISO 15924 script tag to a - * corresponding #hb_script_t. Shorthand for hb_tag_from_string() then - * hb_script_from_iso15924_tag(). + * * * Return value: - * An #hb_script_t corresponding to the ISO 15924 tag. * - * Since: 0.9.2 + * Since: 1.0 **/ hb_script_t -hb_script_from_string (const char *str, int len) +hb_script_from_string (const char *s, int len) { - return hb_script_from_iso15924_tag (hb_tag_from_string (str, len)); + return hb_script_from_iso15924_tag (hb_tag_from_string (s, len)); } /** * hb_script_to_iso15924_tag: - * @script: an #hb_script_ to convert. + * @script: * - * See hb_script_from_iso15924_tag(). + * * - * Return value: - * An #hb_tag_t representing an ISO 15924 script tag. + * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_tag_t hb_script_to_iso15924_tag (hb_script_t script) @@ -451,7 +440,7 @@ hb_script_to_iso15924_tag (hb_script_t script) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_direction_t hb_script_get_horizontal_direction (hb_script_t script) @@ -504,9 +493,6 @@ hb_script_get_horizontal_direction (hb_script_t script) case HB_SCRIPT_PALMYRENE: case HB_SCRIPT_PSALTER_PAHLAVI: - /* Unicode-8.0 additions */ - case HB_SCRIPT_OLD_HUNGARIAN: - return HB_DIRECTION_RTL; } @@ -532,7 +518,7 @@ hb_user_data_array_t::set (hb_user_data_key_t *key, } } hb_user_data_item_t item = {key, data, destroy}; - bool ret = !!items.replace_or_insert (item, lock, (bool) replace); + bool ret = !!items.replace_or_insert (item, lock, replace); return ret; } @@ -540,7 +526,7 @@ hb_user_data_array_t::set (hb_user_data_key_t *key, void * hb_user_data_array_t::get (hb_user_data_key_t *key) { - hb_user_data_item_t item = {NULL, NULL, NULL}; + hb_user_data_item_t item = {NULL }; return items.find (key, &item, lock) ? item.data : NULL; } @@ -556,7 +542,7 @@ hb_user_data_array_t::get (hb_user_data_key_t *key) * * Returns library version as three integer components. * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_version (unsigned int *major, @@ -575,7 +561,7 @@ hb_version (unsigned int *major, * * Return value: library version string. * - * Since: 0.9.2 + * Since: 1.0 **/ const char * hb_version_string (void) @@ -593,7 +579,7 @@ hb_version_string (void) * * Return value: * - * Since: 0.9.30 + * Since: 1.0 **/ hb_bool_t hb_version_atleast (unsigned int major, diff --git a/src/hb-common.h b/src/hb-common.h index 5b0a0b6..b6ce3f7 100644 --- a/src/hb-common.h +++ b/src/hb-common.h @@ -98,22 +98,16 @@ typedef uint32_t hb_tag_t; #define HB_TAG_MAX_SIGNED HB_TAG(0x7f,0xff,0xff,0xff) /* len=-1 means str is NUL-terminated. */ -HB_EXTERN hb_tag_t +hb_tag_t hb_tag_from_string (const char *str, int len); /* buf should have 4 bytes. */ -HB_EXTERN void +void hb_tag_to_string (hb_tag_t tag, char *buf); -/** - * hb_direction_t: - * @HB_DIRECTION_INVALID: Initial, unset direction. - * @HB_DIRECTION_LTR: Text is set horizontally from left to right. - * @HB_DIRECTION_RTL: Text is set horizontally from right to left. - * @HB_DIRECTION_TTB: Text is set vertically from top to bottom. - * @HB_DIRECTION_BTT: Text is set vertically from bottom to top. - */ +/* hb_direction_t */ + typedef enum { HB_DIRECTION_INVALID = 0, HB_DIRECTION_LTR = 4, @@ -123,10 +117,10 @@ typedef enum { } hb_direction_t; /* len=-1 means str is NUL-terminated */ -HB_EXTERN hb_direction_t +hb_direction_t hb_direction_from_string (const char *str, int len); -HB_EXTERN const char * +const char * hb_direction_to_string (hb_direction_t direction); #define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4) @@ -142,15 +136,16 @@ hb_direction_to_string (hb_direction_t direction); typedef const struct hb_language_impl_t *hb_language_t; -HB_EXTERN hb_language_t +/* len=-1 means str is NUL-terminated */ +hb_language_t hb_language_from_string (const char *str, int len); -HB_EXTERN const char * +const char * hb_language_to_string (hb_language_t language); #define HB_LANGUAGE_INVALID ((hb_language_t) NULL) -HB_EXTERN hb_language_t +hb_language_t hb_language_get_default (void); @@ -277,9 +272,6 @@ typedef enum /*6.1*/ HB_SCRIPT_SORA_SOMPENG = HB_TAG ('S','o','r','a'), /*6.1*/ HB_SCRIPT_TAKRI = HB_TAG ('T','a','k','r'), - /* - * Since: 0.9.30 - */ /*7.0*/ HB_SCRIPT_BASSA_VAH = HB_TAG ('B','a','s','s'), /*7.0*/ HB_SCRIPT_CAUCASIAN_ALBANIAN = HB_TAG ('A','g','h','b'), /*7.0*/ HB_SCRIPT_DUPLOYAN = HB_TAG ('D','u','p','l'), @@ -304,13 +296,6 @@ typedef enum /*7.0*/ HB_SCRIPT_TIRHUTA = HB_TAG ('T','i','r','h'), /*7.0*/ HB_SCRIPT_WARANG_CITI = HB_TAG ('W','a','r','a'), - /*8.0*/ HB_SCRIPT_AHOM = HB_TAG ('A','h','o','m'), - /*8.0*/ HB_SCRIPT_ANATOLIAN_HIEROGLYPHS = HB_TAG ('H','l','u','w'), - /*8.0*/ HB_SCRIPT_HATRAN = HB_TAG ('H','a','t','r'), - /*8.0*/ HB_SCRIPT_MULTANI = HB_TAG ('M','u','l','t'), - /*8.0*/ HB_SCRIPT_OLD_HUNGARIAN = HB_TAG ('H','u','n','g'), - /*8.0*/ HB_SCRIPT_SIGNWRITING = HB_TAG ('S','g','n','w'), - /* No script set. */ HB_SCRIPT_INVALID = HB_TAG_NONE, @@ -329,16 +314,18 @@ typedef enum /* Script functions */ -HB_EXTERN hb_script_t +hb_script_t hb_script_from_iso15924_tag (hb_tag_t tag); -HB_EXTERN hb_script_t -hb_script_from_string (const char *str, int len); +/* sugar for tag_from_string() then script_from_iso15924_tag */ +/* len=-1 means s is NUL-terminated */ +hb_script_t +hb_script_from_string (const char *s, int len); -HB_EXTERN hb_tag_t +hb_tag_t hb_script_to_iso15924_tag (hb_script_t script); -HB_EXTERN hb_direction_t +hb_direction_t hb_script_get_horizontal_direction (hb_script_t script); diff --git a/src/hb-coretext.cc b/src/hb-coretext.cc index e64d265..4a45175 100644 --- a/src/hb-coretext.cc +++ b/src/hb-coretext.cc @@ -27,6 +27,7 @@ */ #define HB_SHAPER coretext +#define hb_coretext_shaper_face_data_t CGFont #include "hb-shaper-impl-private.hh" #include "hb-coretext.h" @@ -77,29 +78,6 @@ HB_SHAPER_DATA_ENSURE_DECLARE(coretext, font) * shaper face data */ -static CTFontDescriptorRef -get_last_resort_font_desc (void) -{ - // TODO Handle allocation failures? - CTFontDescriptorRef last_resort = CTFontDescriptorCreateWithNameAndSize (CFSTR("LastResort"), 0); - CFArrayRef cascade_list = CFArrayCreate (kCFAllocatorDefault, - (const void **) &last_resort, - 1, - &kCFTypeArrayCallBacks); - CFRelease (last_resort); - CFDictionaryRef attributes = CFDictionaryCreate (kCFAllocatorDefault, - (const void **) &kCTFontCascadeListAttribute, - (const void **) &cascade_list, - 1, - &kCFTypeDictionaryKeyCallBacks, - &kCFTypeDictionaryValueCallBacks); - CFRelease (cascade_list); - - CTFontDescriptorRef font_desc = CTFontDescriptorCreateWithAttributes (attributes); - CFRelease (attributes); - return font_desc; -} - static void release_data (void *info, const void *data, size_t size) { @@ -109,13 +87,14 @@ release_data (void *info, const void *data, size_t size) hb_blob_destroy ((hb_blob_t *) info); } -static CGFontRef -create_cg_font (hb_face_t *face) +hb_coretext_shaper_face_data_t * +_hb_coretext_shaper_face_data_create (hb_face_t *face) { - CGFontRef cg_font = NULL; + hb_coretext_shaper_face_data_t *data = NULL; + if (face->destroy == (hb_destroy_func_t) CGFontRelease) { - cg_font = CGFontRetain ((CGFontRef) face->user_data); + data = CGFontRetain ((CGFontRef) face->user_data); } else { @@ -128,76 +107,13 @@ create_cg_font (hb_face_t *face) CGDataProviderRef provider = CGDataProviderCreateWithData (blob, blob_data, blob_length, &release_data); if (likely (provider)) { - cg_font = CGFontCreateWithDataProvider (provider); - if (unlikely (!cg_font)) - DEBUG_MSG (CORETEXT, face, "Face CGFontCreateWithDataProvider() failed"); + data = CGFontCreateWithDataProvider (provider); CGDataProviderRelease (provider); } } - return cg_font; -} - -static CTFontRef -create_ct_font (CGFontRef cg_font, CGFloat font_size) -{ - CTFontRef ct_font = CTFontCreateWithGraphicsFont (cg_font, font_size, NULL, NULL); - if (unlikely (!ct_font)) { - DEBUG_MSG (CORETEXT, cg_font, "Font CTFontCreateWithGraphicsFont() failed"); - return NULL; - } - - /* Create font copy with cascade list that has LastResort first; this speeds up CoreText - * font fallback which we don't need anyway. */ - { - CTFontDescriptorRef last_resort_font_desc = get_last_resort_font_desc (); - CTFontRef new_ct_font = CTFontCreateCopyWithAttributes (ct_font, 0.0, NULL, last_resort_font_desc); - CFRelease (last_resort_font_desc); - if (new_ct_font) - { - CFRelease (ct_font); - ct_font = new_ct_font; - } - else - DEBUG_MSG (CORETEXT, ct_font, "Font copy with empty cascade list failed"); - } - return ct_font; -} - -struct hb_coretext_shaper_face_data_t { - CGFontRef cg_font; - CTFontRef ct_font; -}; - -hb_coretext_shaper_face_data_t * -_hb_coretext_shaper_face_data_create (hb_face_t *face) -{ - hb_coretext_shaper_face_data_t *data = (hb_coretext_shaper_face_data_t *) calloc (1, sizeof (hb_coretext_shaper_face_data_t)); - if (unlikely (!data)) - return NULL; - - data->cg_font = create_cg_font (face); - if (unlikely (!data->cg_font)) - { - DEBUG_MSG (CORETEXT, face, "CGFont creation failed.."); - free (data); - return NULL; - } - - /* We use 36pt size instead of UPEM, because CoreText implements the 'trak' table, - * which can make the font too tight at large sizes. 36pt should be a good semi-neutral - * size. - * - * Since we always create CTFont at a fixed size, our CTFont lives in face_data - * instead of font_data. Which is good, because when people change scale on - * hb_font_t, we won't need to update our CTFont. */ - data->ct_font = create_ct_font (data->cg_font, 36.); - if (unlikely (!data->ct_font)) - { - DEBUG_MSG (CORETEXT, face, "CTFont creation failed."); - CFRelease (data->cg_font); - free (data); - return NULL; + if (unlikely (!data)) { + DEBUG_MSG (CORETEXT, face, "Face CGFontCreateWithDataProvider() failed"); } return data; @@ -206,20 +122,15 @@ _hb_coretext_shaper_face_data_create (hb_face_t *face) void _hb_coretext_shaper_face_data_destroy (hb_coretext_shaper_face_data_t *data) { - CFRelease (data->ct_font); - CFRelease (data->cg_font); - free (data); + CFRelease (data); } -/* - * Since: 0.9.10 - */ CGFontRef hb_coretext_face_get_cg_font (hb_face_t *face) { if (unlikely (!hb_coretext_shaper_face_data_ensure (face))) return NULL; hb_coretext_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face); - return face_data->cg_font; + return face_data; } @@ -227,17 +138,48 @@ hb_coretext_face_get_cg_font (hb_face_t *face) * shaper font data */ -struct hb_coretext_shaper_font_data_t {}; +struct hb_coretext_shaper_font_data_t { + CTFontRef ct_font; + CGFloat x_mult, y_mult; /* From CT space to HB space. */ +}; hb_coretext_shaper_font_data_t * -_hb_coretext_shaper_font_data_create (hb_font_t *font HB_UNUSED) +_hb_coretext_shaper_font_data_create (hb_font_t *font) { - return (hb_coretext_shaper_font_data_t *) HB_SHAPER_DATA_SUCCEEDED; + if (unlikely (!hb_coretext_shaper_face_data_ensure (font->face))) return NULL; + + hb_coretext_shaper_font_data_t *data = (hb_coretext_shaper_font_data_t *) calloc (1, sizeof (hb_coretext_shaper_font_data_t)); + if (unlikely (!data)) + return NULL; + + hb_face_t *face = font->face; + hb_coretext_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face); + + /* Choose a CoreText font size and calculate multipliers to convert to HarfBuzz space. */ + CGFloat font_size = 36.; /* Default... */ + /* No idea if the following is even a good idea. */ + if (font->y_ppem) + font_size = font->y_ppem; + + if (font_size < 0) + font_size = -font_size; + data->x_mult = (CGFloat) font->x_scale / font_size; + data->y_mult = (CGFloat) font->y_scale / font_size; + data->ct_font = CTFontCreateWithGraphicsFont (face_data, font_size, NULL, NULL); + if (unlikely (!data->ct_font)) { + DEBUG_MSG (CORETEXT, font, "Font CTFontCreateWithGraphicsFont() failed"); + free (data); + return NULL; + } + + return data; } void _hb_coretext_shaper_font_data_destroy (hb_coretext_shaper_font_data_t *data) { + CFRelease (data->ct_font); + free (data); } @@ -263,10 +205,9 @@ _hb_coretext_shaper_shape_plan_data_destroy (hb_coretext_shaper_shape_plan_data_ CTFontRef hb_coretext_font_get_ct_font (hb_font_t *font) { - hb_face_t *face = font->face; - if (unlikely (!hb_coretext_shaper_face_data_ensure (face))) return NULL; - hb_coretext_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face); - return face_data->ct_font; + if (unlikely (!hb_coretext_shaper_font_data_ensure (font))) return NULL; + hb_coretext_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font); + return font_data->ct_font; } @@ -499,10 +440,7 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan, { hb_face_t *face = font->face; hb_coretext_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face); - - CGFloat ct_font_size = CTFontGetSize (face_data->ct_font); - CGFloat x_mult = (CGFloat) font->x_scale / ct_font_size; - CGFloat y_mult = (CGFloat) font->y_scale / ct_font_size; + hb_coretext_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font); /* Attach marks to their bases, to match the 'ot' shaper. * Adapted from hb-ot-shape:hb_form_clusters(). @@ -511,7 +449,6 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan, * B1 M1 B2 M2, and B1-B2 form a ligature, M2's cluster will * continue pointing to B2 even though B2 was merged into B1's * cluster... */ - if (buffer->cluster_level == HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES) { hb_unicode_funcs_t *unicode = buffer->unicode; unsigned int count = buffer->len; @@ -634,7 +571,7 @@ _hb_coretext_shape (hb_shape_plan_t *shape_plan, CTFontDescriptorRef font_desc = CTFontDescriptorCreateWithAttributes (attributes); CFRelease (attributes); - range->font = CTFontCreateCopyWithAttributes (face_data->ct_font, 0.0, NULL, font_desc); + range->font = CTFontCreateCopyWithAttributes (font_data->ct_font, 0.0, NULL, font_desc); CFRelease (font_desc); } else @@ -752,6 +689,7 @@ resize_and_retry: scratch += old_scratch_used; scratch_size -= old_scratch_used; } +retry: { string_ref = CFStringCreateWithCharactersNoCopy (NULL, pchars, chars_len, @@ -791,7 +729,7 @@ resize_and_retry: CFRelease (lang); } CFAttributedStringSetAttribute (attr_string, CFRangeMake (0, chars_len), - kCTFontAttributeName, face_data->ct_font); + kCTFontAttributeName, font_data->ct_font); if (num_features) { @@ -850,17 +788,6 @@ resize_and_retry: buffer->len = 0; uint32_t status_and = ~0, status_or = 0; double advances_so_far = 0; - /* For right-to-left runs, CoreText returns the glyphs positioned such that - * any trailing whitespace is to the left of (0,0). Adjust coordinate system - * to fix for that. Test with any RTL string with trailing spaces. - * https://code.google.com/p/chromium/issues/detail?id=469028 - */ - if (HB_DIRECTION_IS_BACKWARD (buffer->props.direction)) - { - advances_so_far -= CTLineGetTrailingWhitespaceWidth (line); - if (HB_DIRECTION_IS_VERTICAL (buffer->props.direction)) - advances_so_far = -advances_so_far; - } const CFRange range_all = CFRangeMake (0, 0); @@ -884,7 +811,7 @@ resize_and_retry: */ CFDictionaryRef attributes = CTRunGetAttributes (run); CTFontRef run_ct_font = static_cast(CFDictionaryGetValue (attributes, kCTFontAttributeName)); - if (!CFEqual (run_ct_font, face_data->ct_font)) + if (!CFEqual (run_ct_font, font_data->ct_font)) { /* The run doesn't use our main font instance. We have to figure out * whether font fallback happened, or this is just CoreText giving us @@ -904,11 +831,15 @@ resize_and_retry: * backend. * * However, even that wouldn't work if we were passed in the CGFont to - * construct a hb_face to begin with. + * begin with. * - * See: http://github.com/behdad/harfbuzz/pull/36 + * Webkit uses a slightly different approach: it installs LastResort + * as fallback chain, and then checks PS name of used font against + * LastResort. That one is safe for any font except for LastResort, + * as opposed to ours, which can fail if we are using any uninstalled + * font that has the same name as an installed font. * - * Also see: https://bugs.chromium.org/p/chromium/issues/detail?id=597098 + * See: http://github.com/behdad/harfbuzz/pull/36 */ bool matched = false; for (unsigned int i = 0; i < range_records.len; i++) @@ -922,13 +853,13 @@ resize_and_retry: CGFontRef run_cg_font = CTFontCopyGraphicsFont (run_ct_font, 0); if (run_cg_font) { - matched = CFEqual (run_cg_font, face_data->cg_font); + matched = CFEqual (run_cg_font, face_data); CFRelease (run_cg_font); } } if (!matched) { - CFStringRef font_ps_name = CTFontCopyName (face_data->ct_font, kCTFontPostScriptNameKey); + CFStringRef font_ps_name = CTFontCopyName (font_data->ct_font, kCTFontPostScriptNameKey); CFStringRef run_ps_name = CTFontCopyName (run_ct_font, kCTFontPostScriptNameKey); CFComparisonResult result = CFStringCompare (run_ps_name, font_ps_name, 0); CFRelease (run_ps_name); @@ -973,8 +904,8 @@ resize_and_retry: info->cluster = log_clusters[j]; info->mask = advance; - info->var1.i32 = x_offset; - info->var2.i32 = y_offset; + info->var1.u32 = x_offset; + info->var2.u32 = y_offset; info++; buffer->len++; @@ -1048,6 +979,7 @@ resize_and_retry: positions = position_buf; } hb_glyph_info_t *info = run_info; + CGFloat x_mult = font_data->x_mult, y_mult = font_data->y_mult; if (HB_DIRECTION_IS_HORIZONTAL (buffer->props.direction)) { hb_position_t x_offset = (positions[0].x - advances_so_far) * x_mult; @@ -1059,8 +991,8 @@ resize_and_retry: else /* last glyph */ advance = run_advance - (positions[j].x - positions[0].x); info->mask = advance * x_mult; - info->var1.i32 = x_offset; - info->var2.i32 = positions[j].y * y_mult; + info->var1.u32 = x_offset; + info->var2.u32 = positions[j].y * y_mult; info++; } } @@ -1075,8 +1007,8 @@ resize_and_retry: else /* last glyph */ advance = run_advance - (positions[j].y - positions[0].y); info->mask = advance * y_mult; - info->var1.i32 = positions[j].x * x_mult; - info->var2.i32 = y_offset; + info->var1.u32 = positions[j].x * x_mult; + info->var2.u32 = y_offset; info++; } } @@ -1091,20 +1023,10 @@ resize_and_retry: buffer->len += num_glyphs; } - /* Mac OS 10.6 doesn't have kCTTypesetterOptionForcedEmbeddingLevel, - * or if it does, it doesn't resepct it. So we get runs with wrong - * directions. As such, disable the assert... It wouldn't crash, but - * cursoring will be off... - * - * http://crbug.com/419769 - */ - if (0) - { - /* Make sure all runs had the expected direction. */ - bool backward = HB_DIRECTION_IS_BACKWARD (buffer->props.direction); - assert (bool (status_and & kCTRunStatusRightToLeft) == backward); - assert (bool (status_or & kCTRunStatusRightToLeft) == backward); - } + /* Make sure all runs had the expected direction. */ + bool backward = HB_DIRECTION_IS_BACKWARD (buffer->props.direction); + assert (bool (status_and & kCTRunStatusRightToLeft) == backward); + assert (bool (status_or & kCTRunStatusRightToLeft) == backward); buffer->clear_positions (); @@ -1115,16 +1037,16 @@ resize_and_retry: for (unsigned int i = 0; i < count; i++) { pos->x_advance = info->mask; - pos->x_offset = info->var1.i32; - pos->y_offset = info->var2.i32; + pos->x_offset = info->var1.u32; + pos->y_offset = info->var2.u32; info++, pos++; } else for (unsigned int i = 0; i < count; i++) { pos->y_advance = info->mask; - pos->x_offset = info->var1.i32; - pos->y_offset = info->var2.i32; + pos->x_offset = info->var1.u32; + pos->y_offset = info->var2.u32; info++, pos++; } @@ -1182,6 +1104,10 @@ fail: * AAT shaper */ +HB_SHAPER_DATA_ENSURE_DECLARE(coretext_aat, face) +HB_SHAPER_DATA_ENSURE_DECLARE(coretext_aat, font) + + /* * shaper face data */ diff --git a/src/hb-coretext.h b/src/hb-coretext.h index 82066e4..25267bc 100644 --- a/src/hb-coretext.h +++ b/src/hb-coretext.h @@ -44,14 +44,14 @@ HB_BEGIN_DECLS #define HB_CORETEXT_TAG_MORX HB_TAG('m','o','r','x') -HB_EXTERN hb_face_t * +hb_face_t * hb_coretext_face_create (CGFontRef cg_font); -HB_EXTERN CGFontRef +CGFontRef hb_coretext_face_get_cg_font (hb_face_t *face); -HB_EXTERN CTFontRef +CTFontRef hb_coretext_font_get_ct_font (hb_font_t *font); diff --git a/src/hb-deprecated.h b/src/hb-deprecated.h index 0398dfa..30ae4b1 100644 --- a/src/hb-deprecated.h +++ b/src/hb-deprecated.h @@ -44,16 +44,6 @@ HB_BEGIN_DECLS #define HB_BUFFER_FLAGS_DEFAULT HB_BUFFER_FLAG_DEFAULT #define HB_BUFFER_SERIALIZE_FLAGS_DEFAULT HB_BUFFER_SERIALIZE_FLAG_DEFAULT -typedef hb_bool_t (*hb_font_get_glyph_func_t) (hb_font_t *font, void *font_data, - hb_codepoint_t unicode, hb_codepoint_t variation_selector, - hb_codepoint_t *glyph, - void *user_data); - -HB_EXTERN void -hb_font_funcs_set_glyph_func (hb_font_funcs_t *ffuncs, - hb_font_get_glyph_func_t func, - void *user_data, hb_destroy_func_t destroy); - #endif HB_END_DECLS diff --git a/src/hb-directwrite.cc b/src/hb-directwrite.cc deleted file mode 100644 index 96d1870..0000000 --- a/src/hb-directwrite.cc +++ /dev/null @@ -1,970 +0,0 @@ -/* - * Copyright © 2015-2016 Ebrahim Byagowi - * - * This is part of HarfBuzz, a text shaping library. - * - * Permission is hereby granted, without written agreement and without - * license or royalty fees, to use, copy, modify, and distribute this - * software and its documentation for any purpose, provided that the - * above copyright notice and the following two paragraphs appear in - * all copies of this software. - * - * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR - * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES - * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN - * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS - * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO - * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - */ - -#define HB_SHAPER directwrite -#include "hb-shaper-impl-private.hh" - -#ifndef HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION - #include -#else - #include -#endif - -#include "hb-directwrite.h" - -#include "hb-open-file-private.hh" -#include "hb-ot-name-table.hh" -#include "hb-ot-tag.h" - - -#ifndef HB_DEBUG_DIRECTWRITE -#define HB_DEBUG_DIRECTWRITE (HB_DEBUG+0) -#endif - -HB_SHAPER_DATA_ENSURE_DECLARE(directwrite, face) -HB_SHAPER_DATA_ENSURE_DECLARE(directwrite, font) - -/* -* shaper face data -*/ - -struct hb_directwrite_shaper_face_data_t { - HANDLE fh; - wchar_t face_name[LF_FACESIZE]; -}; - -/* face_name should point to a wchar_t[LF_FACESIZE] object. */ -static void -_hb_generate_unique_face_name(wchar_t *face_name, unsigned int *plen) -{ - /* We'll create a private name for the font from a UUID using a simple, - * somewhat base64-like encoding scheme */ - const char *enc = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-"; - UUID id; - UuidCreate ((UUID*)&id); - ASSERT_STATIC (2 + 3 * (16 / 2) < LF_FACESIZE); - unsigned int name_str_len = 0; - face_name[name_str_len++] = 'F'; - face_name[name_str_len++] = '_'; - unsigned char *p = (unsigned char *)&id; - for (unsigned int i = 0; i < 16; i += 2) - { - /* Spread the 16 bits from two bytes of the UUID across three chars of face_name, - * using the bits in groups of 5,5,6 to select chars from enc. - * This will generate 24 characters; with the 'F_' prefix we already provided, - * the name will be 26 chars (plus the NUL terminator), so will always fit within - * face_name (LF_FACESIZE = 32). */ - face_name[name_str_len++] = enc[p[i] >> 3]; - face_name[name_str_len++] = enc[((p[i] << 2) | (p[i + 1] >> 6)) & 0x1f]; - face_name[name_str_len++] = enc[p[i + 1] & 0x3f]; - } - face_name[name_str_len] = 0; - if (plen) - *plen = name_str_len; -} - -/* Destroys blob. */ -static hb_blob_t * -_hb_rename_font(hb_blob_t *blob, wchar_t *new_name) -{ - /* Create a copy of the font data, with the 'name' table replaced by a - * table that names the font with our private F_* name created above. - * For simplicity, we just append a new 'name' table and update the - * sfnt directory; the original table is left in place, but unused. - * - * The new table will contain just 5 name IDs: family, style, unique, - * full, PS. All of them point to the same name data with our unique name. - */ - - blob = OT::Sanitizer::sanitize (blob); - - unsigned int length, new_length, name_str_len; - const char *orig_sfnt_data = hb_blob_get_data (blob, &length); - - _hb_generate_unique_face_name (new_name, &name_str_len); - - static const uint16_t name_IDs[] = { 1, 2, 3, 4, 6 }; - - unsigned int name_table_length = OT::name::min_size + - ARRAY_LENGTH(name_IDs) * OT::NameRecord::static_size + - name_str_len * 2; /* for name data in UTF16BE form */ - unsigned int name_table_offset = (length + 3) & ~3; - - new_length = name_table_offset + ((name_table_length + 3) & ~3); - void *new_sfnt_data = calloc(1, new_length); - if (!new_sfnt_data) - { - hb_blob_destroy (blob); - return NULL; - } - - memcpy(new_sfnt_data, orig_sfnt_data, length); - - OT::name &name = OT::StructAtOffset (new_sfnt_data, name_table_offset); - name.format.set (0); - name.count.set (ARRAY_LENGTH (name_IDs)); - name.stringOffset.set (name.get_size()); - for (unsigned int i = 0; i < ARRAY_LENGTH (name_IDs); i++) - { - OT::NameRecord &record = name.nameRecord[i]; - record.platformID.set(3); - record.encodingID.set(1); - record.languageID.set(0x0409u); /* English */ - record.nameID.set(name_IDs[i]); - record.length.set(name_str_len * 2); - record.offset.set(0); - } - - /* Copy string data from new_name, converting wchar_t to UTF16BE. */ - unsigned char *p = &OT::StructAfter(name); - for (unsigned int i = 0; i < name_str_len; i++) - { - *p++ = new_name[i] >> 8; - *p++ = new_name[i] & 0xff; - } - - /* Adjust name table entry to point to new name table */ - const OT::OpenTypeFontFile &file = *(OT::OpenTypeFontFile *) (new_sfnt_data); - unsigned int face_count = file.get_face_count (); - for (unsigned int face_index = 0; face_index < face_count; face_index++) - { - /* Note: doing multiple edits (ie. TTC) can be unsafe. There may be - * toe-stepping. But we don't really care. */ - const OT::OpenTypeFontFace &face = file.get_face (face_index); - unsigned int index; - if (face.find_table_index (HB_OT_TAG_name, &index)) - { - OT::TableRecord &record = const_cast (face.get_table (index)); - record.checkSum.set_for_data (&name, name_table_length); - record.offset.set (name_table_offset); - record.length.set (name_table_length); - } - else if (face_index == 0) /* Fail if first face doesn't have 'name' table. */ - { - free (new_sfnt_data); - hb_blob_destroy (blob); - return NULL; - } - } - - /* The checkSumAdjustment field in the 'head' table is now wrong, - * but that doesn't actually seem to cause any problems so we don't - * bother. */ - - hb_blob_destroy (blob); - return hb_blob_create ((const char *)new_sfnt_data, new_length, - HB_MEMORY_MODE_WRITABLE, NULL, free); -} - -hb_directwrite_shaper_face_data_t * -_hb_directwrite_shaper_face_data_create(hb_face_t *face) -{ - hb_directwrite_shaper_face_data_t *data = - (hb_directwrite_shaper_face_data_t *) calloc (1, sizeof (hb_directwrite_shaper_face_data_t)); - if (unlikely (!data)) - return NULL; - - hb_blob_t *blob = hb_face_reference_blob (face); - if (unlikely (!hb_blob_get_length (blob))) - DEBUG_MSG(DIRECTWRITE, face, "Face has empty blob"); - - blob = _hb_rename_font (blob, data->face_name); - if (unlikely (!blob)) - { - free(data); - return NULL; - } - - DWORD num_fonts_installed; - data->fh = AddFontMemResourceEx ((void *)hb_blob_get_data(blob, NULL), - hb_blob_get_length (blob), - 0, &num_fonts_installed); - if (unlikely (!data->fh)) - { - DEBUG_MSG (DIRECTWRITE, face, "Face AddFontMemResourceEx() failed"); - free (data); - return NULL; - } - - return data; -} - -void -_hb_directwrite_shaper_face_data_destroy(hb_directwrite_shaper_face_data_t *data) -{ - RemoveFontMemResourceEx(data->fh); - free(data); -} - - -/* - * shaper font data - */ - -struct hb_directwrite_shaper_font_data_t { - HDC hdc; - LOGFONTW log_font; - HFONT hfont; -}; - -static bool -populate_log_font (LOGFONTW *lf, - hb_font_t *font) -{ - memset (lf, 0, sizeof (*lf)); - lf->lfHeight = -font->y_scale; - lf->lfCharSet = DEFAULT_CHARSET; - - hb_face_t *face = font->face; - hb_directwrite_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face); - - memcpy (lf->lfFaceName, face_data->face_name, sizeof (lf->lfFaceName)); - - return true; -} - -hb_directwrite_shaper_font_data_t * -_hb_directwrite_shaper_font_data_create (hb_font_t *font) -{ - if (unlikely (!hb_directwrite_shaper_face_data_ensure (font->face))) return NULL; - - hb_directwrite_shaper_font_data_t *data = - (hb_directwrite_shaper_font_data_t *) calloc (1, sizeof (hb_directwrite_shaper_font_data_t)); - if (unlikely (!data)) - return NULL; - - data->hdc = GetDC (NULL); - - if (unlikely (!populate_log_font (&data->log_font, font))) - { - DEBUG_MSG (DIRECTWRITE, font, "Font populate_log_font() failed"); - _hb_directwrite_shaper_font_data_destroy (data); - return NULL; - } - - data->hfont = CreateFontIndirectW (&data->log_font); - if (unlikely (!data->hfont)) - { - DEBUG_MSG (DIRECTWRITE, font, "Font CreateFontIndirectW() failed"); - _hb_directwrite_shaper_font_data_destroy (data); - return NULL; - } - - if (!SelectObject (data->hdc, data->hfont)) - { - DEBUG_MSG (DIRECTWRITE, font, "Font SelectObject() failed"); - _hb_directwrite_shaper_font_data_destroy (data); - return NULL; - } - - return data; -} - -void -_hb_directwrite_shaper_font_data_destroy (hb_directwrite_shaper_font_data_t *data) -{ - if (data->hdc) - ReleaseDC (NULL, data->hdc); - if (data->hfont) - DeleteObject (data->hfont); - free (data); -} - -LOGFONTW * -hb_directwrite_font_get_logfontw (hb_font_t *font) -{ - if (unlikely (!hb_directwrite_shaper_font_data_ensure (font))) return NULL; - hb_directwrite_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font); - return &font_data->log_font; -} - -HFONT -hb_directwrite_font_get_hfont (hb_font_t *font) -{ - if (unlikely (!hb_directwrite_shaper_font_data_ensure (font))) return NULL; - hb_directwrite_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font); - return font_data->hfont; -} - - -/* - * shaper shape_plan data - */ - -struct hb_directwrite_shaper_shape_plan_data_t {}; - -hb_directwrite_shaper_shape_plan_data_t * -_hb_directwrite_shaper_shape_plan_data_create (hb_shape_plan_t *shape_plan HB_UNUSED, - const hb_feature_t *user_features HB_UNUSED, - unsigned int num_user_features HB_UNUSED) -{ - return (hb_directwrite_shaper_shape_plan_data_t *) HB_SHAPER_DATA_SUCCEEDED; -} - -void -_hb_directwrite_shaper_shape_plan_data_destroy (hb_directwrite_shaper_shape_plan_data_t *data HB_UNUSED) -{ -} - -// Most of here TextAnalysis is originally written by Bas Schouten for Mozilla project -// but now is relicensed to MIT for HarfBuzz use -class TextAnalysis - : public IDWriteTextAnalysisSource, public IDWriteTextAnalysisSink -{ -public: - - IFACEMETHOD(QueryInterface)(IID const& iid, OUT void** ppObject) { return S_OK; } - IFACEMETHOD_(ULONG, AddRef)() { return 1; } - IFACEMETHOD_(ULONG, Release)() { return 1; } - - // A single contiguous run of characters containing the same analysis - // results. - struct Run - { - uint32_t mTextStart; // starting text position of this run - uint32_t mTextLength; // number of contiguous code units covered - uint32_t mGlyphStart; // starting glyph in the glyphs array - uint32_t mGlyphCount; // number of glyphs associated with this run of - // text - DWRITE_SCRIPT_ANALYSIS mScript; - uint8_t mBidiLevel; - bool mIsSideways; - - inline bool ContainsTextPosition(uint32_t aTextPosition) const - { - return aTextPosition >= mTextStart - && aTextPosition < mTextStart + mTextLength; - } - - Run *nextRun; - }; - -public: - TextAnalysis(const wchar_t* text, - uint32_t textLength, - const wchar_t* localeName, - DWRITE_READING_DIRECTION readingDirection) - : mText(text) - , mTextLength(textLength) - , mLocaleName(localeName) - , mReadingDirection(readingDirection) - , mCurrentRun(NULL) { }; - - ~TextAnalysis() { - // delete runs, except mRunHead which is part of the TextAnalysis object - for (Run *run = mRunHead.nextRun; run;) { - Run *origRun = run; - run = run->nextRun; - free (origRun); - } - } - - STDMETHODIMP GenerateResults(IDWriteTextAnalyzer* textAnalyzer, - Run **runHead) { - // Analyzes the text using the script analyzer and returns - // the result as a series of runs. - - HRESULT hr = S_OK; - - // Initially start out with one result that covers the entire range. - // This result will be subdivided by the analysis processes. - mRunHead.mTextStart = 0; - mRunHead.mTextLength = mTextLength; - mRunHead.mBidiLevel = - (mReadingDirection == DWRITE_READING_DIRECTION_RIGHT_TO_LEFT); - mRunHead.nextRun = NULL; - mCurrentRun = &mRunHead; - - // Call each of the analyzers in sequence, recording their results. - if (SUCCEEDED (hr = textAnalyzer->AnalyzeScript (this, 0, mTextLength, this))) { - *runHead = &mRunHead; - } - - return hr; - } - - // IDWriteTextAnalysisSource implementation - - IFACEMETHODIMP GetTextAtPosition(uint32_t textPosition, - OUT wchar_t const** textString, - OUT uint32_t* textLength) - { - if (textPosition >= mTextLength) { - // No text at this position, valid query though. - *textString = NULL; - *textLength = 0; - } - else { - *textString = mText + textPosition; - *textLength = mTextLength - textPosition; - } - return S_OK; - } - - IFACEMETHODIMP GetTextBeforePosition(uint32_t textPosition, - OUT wchar_t const** textString, - OUT uint32_t* textLength) - { - if (textPosition == 0 || textPosition > mTextLength) { - // Either there is no text before here (== 0), or this - // is an invalid position. The query is considered valid thouh. - *textString = NULL; - *textLength = 0; - } - else { - *textString = mText; - *textLength = textPosition; - } - return S_OK; - } - - IFACEMETHODIMP_(DWRITE_READING_DIRECTION) - GetParagraphReadingDirection() { return mReadingDirection; } - - IFACEMETHODIMP GetLocaleName(uint32_t textPosition, - uint32_t* textLength, - wchar_t const** localeName) { - return S_OK; - } - - IFACEMETHODIMP - GetNumberSubstitution(uint32_t textPosition, - OUT uint32_t* textLength, - OUT IDWriteNumberSubstitution** numberSubstitution) - { - // We do not support number substitution. - *numberSubstitution = NULL; - *textLength = mTextLength - textPosition; - - return S_OK; - } - - // IDWriteTextAnalysisSink implementation - - IFACEMETHODIMP - SetScriptAnalysis(uint32_t textPosition, - uint32_t textLength, - DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis) - { - SetCurrentRun(textPosition); - SplitCurrentRun(textPosition); - while (textLength > 0) { - Run *run = FetchNextRun(&textLength); - run->mScript = *scriptAnalysis; - } - - return S_OK; - } - - IFACEMETHODIMP - SetLineBreakpoints(uint32_t textPosition, - uint32_t textLength, - const DWRITE_LINE_BREAKPOINT* lineBreakpoints) { return S_OK; } - - IFACEMETHODIMP SetBidiLevel(uint32_t textPosition, - uint32_t textLength, - uint8_t explicitLevel, - uint8_t resolvedLevel) { return S_OK; } - - IFACEMETHODIMP - SetNumberSubstitution(uint32_t textPosition, - uint32_t textLength, - IDWriteNumberSubstitution* numberSubstitution) { return S_OK; } - -protected: - Run *FetchNextRun(IN OUT uint32_t* textLength) - { - // Used by the sink setters, this returns a reference to the next run. - // Position and length are adjusted to now point after the current run - // being returned. - - Run *origRun = mCurrentRun; - // Split the tail if needed (the length remaining is less than the - // current run's size). - if (*textLength < mCurrentRun->mTextLength) { - SplitCurrentRun(mCurrentRun->mTextStart + *textLength); - } - else { - // Just advance the current run. - mCurrentRun = mCurrentRun->nextRun; - } - *textLength -= origRun->mTextLength; - - // Return a reference to the run that was just current. - return origRun; - } - - void SetCurrentRun(uint32_t textPosition) - { - // Move the current run to the given position. - // Since the analyzers generally return results in a forward manner, - // this will usually just return early. If not, find the - // corresponding run for the text position. - - if (mCurrentRun && mCurrentRun->ContainsTextPosition(textPosition)) { - return; - } - - for (Run *run = &mRunHead; run; run = run->nextRun) { - if (run->ContainsTextPosition(textPosition)) { - mCurrentRun = run; - return; - } - } - //NS_NOTREACHED("We should always be able to find the text position in one \ - // of our runs"); - } - - void SplitCurrentRun(uint32_t splitPosition) - { - if (!mCurrentRun) { - //NS_ASSERTION(false, "SplitCurrentRun called without current run."); - // Shouldn't be calling this when no current run is set! - return; - } - // Split the current run. - if (splitPosition <= mCurrentRun->mTextStart) { - // No need to split, already the start of a run - // or before it. Usually the first. - return; - } - Run *newRun = (Run*) malloc (sizeof (Run)); - - *newRun = *mCurrentRun; - - // Insert the new run in our linked list. - newRun->nextRun = mCurrentRun->nextRun; - mCurrentRun->nextRun = newRun; - - // Adjust runs' text positions and lengths. - uint32_t splitPoint = splitPosition - mCurrentRun->mTextStart; - newRun->mTextStart += splitPoint; - newRun->mTextLength -= splitPoint; - mCurrentRun->mTextLength = splitPoint; - mCurrentRun = newRun; - } - -protected: - // Input - // (weak references are fine here, since this class is a transient - // stack-based helper that doesn't need to copy data) - uint32_t mTextLength; - const wchar_t* mText; - const wchar_t* mLocaleName; - DWRITE_READING_DIRECTION mReadingDirection; - - // Current processing state. - Run *mCurrentRun; - - // Output is a list of runs starting here - Run mRunHead; -}; - -static inline uint16_t hb_uint16_swap (const uint16_t v) -{ return (v >> 8) | (v << 8); } -static inline uint32_t hb_uint32_swap (const uint32_t v) -{ return (hb_uint16_swap(v) << 16) | hb_uint16_swap(v >> 16); } - -/* - * shaper - */ - -hb_bool_t -_hb_directwrite_shape(hb_shape_plan_t *shape_plan, - hb_font_t *font, - hb_buffer_t *buffer, - const hb_feature_t *features, - unsigned int num_features) -{ - hb_face_t *face = font->face; - hb_directwrite_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face); - hb_directwrite_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font); - - // factory probably should be cached -#ifndef HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION - IDWriteFactory* dwriteFactory; -#else - IDWriteFactory1* dwriteFactory; -#endif - DWriteCreateFactory ( - DWRITE_FACTORY_TYPE_SHARED, - __uuidof (IDWriteFactory), - (IUnknown**) &dwriteFactory - ); - - IDWriteGdiInterop *gdiInterop; - dwriteFactory->GetGdiInterop (&gdiInterop); - IDWriteFontFace* fontFace; - gdiInterop->CreateFontFaceFromHdc (font_data->hdc, &fontFace); - -#ifndef HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION - IDWriteTextAnalyzer* analyzer; - dwriteFactory->CreateTextAnalyzer(&analyzer); -#else - IDWriteTextAnalyzer* analyzer0; - dwriteFactory->CreateTextAnalyzer (&analyzer0); - IDWriteTextAnalyzer1* analyzer = (IDWriteTextAnalyzer1*) analyzer0; -#endif - - unsigned int scratch_size; - hb_buffer_t::scratch_buffer_t *scratch = buffer->get_scratch_buffer (&scratch_size); -#define ALLOCATE_ARRAY(Type, name, len) \ - Type *name = (Type *) scratch; \ - { \ - unsigned int _consumed = DIV_CEIL ((len) * sizeof (Type), sizeof (*scratch)); \ - assert (_consumed <= scratch_size); \ - scratch += _consumed; \ - scratch_size -= _consumed; \ - } - -#define utf16_index() var1.u32 - - ALLOCATE_ARRAY(wchar_t, textString, buffer->len * 2); - - unsigned int chars_len = 0; - for (unsigned int i = 0; i < buffer->len; i++) - { - hb_codepoint_t c = buffer->info[i].codepoint; - buffer->info[i].utf16_index() = chars_len; - if (likely(c <= 0xFFFFu)) - textString[chars_len++] = c; - else if (unlikely(c > 0x10FFFFu)) - textString[chars_len++] = 0xFFFDu; - else { - textString[chars_len++] = 0xD800u + ((c - 0x10000u) >> 10); - textString[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1 << 10) - 1)); - } - } - - ALLOCATE_ARRAY(WORD, log_clusters, chars_len); - // if (num_features) - { - /* Need log_clusters to assign features. */ - chars_len = 0; - for (unsigned int i = 0; i < buffer->len; i++) - { - hb_codepoint_t c = buffer->info[i].codepoint; - unsigned int cluster = buffer->info[i].cluster; - log_clusters[chars_len++] = cluster; - if (hb_in_range(c, 0x10000u, 0x10FFFFu)) - log_clusters[chars_len++] = cluster; /* Surrogates. */ - } - } - - HRESULT hr; - // TODO: Handle TEST_DISABLE_OPTIONAL_LIGATURES - - DWRITE_READING_DIRECTION readingDirection = buffer->props.direction ? - DWRITE_READING_DIRECTION_RIGHT_TO_LEFT : - DWRITE_READING_DIRECTION_LEFT_TO_RIGHT; - - /* - * There's an internal 16-bit limit on some things inside the analyzer, - * but we never attempt to shape a word longer than 64K characters - * in a single gfxShapedWord, so we cannot exceed that limit. - */ - uint32_t textLength = buffer->len; - - TextAnalysis analysis(textString, textLength, NULL, readingDirection); - TextAnalysis::Run *runHead; - hr = analysis.GenerateResults(analyzer, &runHead); - -#define FAIL(...) \ - HB_STMT_START { \ - DEBUG_MSG (DIRECTWRITE, NULL, __VA_ARGS__); \ - return false; \ - } HB_STMT_END; - - if (FAILED (hr)) - { - FAIL ("Analyzer failed to generate results."); - return false; - } - - uint32_t maxGlyphCount = 3 * textLength / 2 + 16; - uint32_t glyphCount; - bool isRightToLeft = HB_DIRECTION_IS_BACKWARD (buffer->props.direction); - - const wchar_t localeName[20] = {0}; - if (buffer->props.language != NULL) - { - mbstowcs ((wchar_t*) localeName, - hb_language_to_string (buffer->props.language), 20); - } - - DWRITE_TYPOGRAPHIC_FEATURES singleFeatures; - singleFeatures.featureCount = num_features; - if (num_features) - { - DWRITE_FONT_FEATURE* dwfeatureArray = (DWRITE_FONT_FEATURE*) - malloc (sizeof (DWRITE_FONT_FEATURE) * num_features); - for (unsigned int i = 0; i < num_features; ++i) - { - dwfeatureArray[i].nameTag = (DWRITE_FONT_FEATURE_TAG) - hb_uint32_swap (features[i].tag); - dwfeatureArray[i].parameter = features[i].value; - } - singleFeatures.features = dwfeatureArray; - } - const DWRITE_TYPOGRAPHIC_FEATURES* dwFeatures = - (const DWRITE_TYPOGRAPHIC_FEATURES*) &singleFeatures; - const uint32_t featureRangeLengths[] = { textLength }; - -retry_getglyphs: - uint16_t* clusterMap = (uint16_t*) malloc (maxGlyphCount * sizeof (uint16_t)); - uint16_t* glyphIndices = (uint16_t*) malloc (maxGlyphCount * sizeof (uint16_t)); - DWRITE_SHAPING_TEXT_PROPERTIES* textProperties = (DWRITE_SHAPING_TEXT_PROPERTIES*) - malloc (maxGlyphCount * sizeof (DWRITE_SHAPING_TEXT_PROPERTIES)); - DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProperties = (DWRITE_SHAPING_GLYPH_PROPERTIES*) - malloc (maxGlyphCount * sizeof (DWRITE_SHAPING_GLYPH_PROPERTIES)); - - hr = analyzer->GetGlyphs (textString, textLength, fontFace, FALSE, - isRightToLeft, &runHead->mScript, localeName, NULL, &dwFeatures, - featureRangeLengths, 1, maxGlyphCount, clusterMap, textProperties, glyphIndices, - glyphProperties, &glyphCount); - - if (unlikely (hr == HRESULT_FROM_WIN32 (ERROR_INSUFFICIENT_BUFFER))) - { - free (clusterMap); - free (glyphIndices); - free (textProperties); - free (glyphProperties); - - maxGlyphCount *= 2; - - goto retry_getglyphs; - } - if (FAILED (hr)) - { - FAIL ("Analyzer failed to get glyphs."); - return false; - } - - float* glyphAdvances = (float*) malloc (maxGlyphCount * sizeof (float)); - DWRITE_GLYPH_OFFSET* glyphOffsets = (DWRITE_GLYPH_OFFSET*) - malloc(maxGlyphCount * sizeof (DWRITE_GLYPH_OFFSET)); - - /* The -2 in the following is to compensate for possible - * alignment needed after the WORD array. sizeof(WORD) == 2. */ - unsigned int glyphs_size = (scratch_size * sizeof(int) - 2) - / (sizeof(WORD) + - sizeof(DWRITE_SHAPING_GLYPH_PROPERTIES) + - sizeof(int) + - sizeof(DWRITE_GLYPH_OFFSET) + - sizeof(uint32_t)); - ALLOCATE_ARRAY (uint32_t, vis_clusters, glyphs_size); - -#undef ALLOCATE_ARRAY - - int fontEmSize = font->face->get_upem(); - if (fontEmSize < 0) - fontEmSize = -fontEmSize; - - if (fontEmSize < 0) - fontEmSize = -fontEmSize; - double x_mult = (double) font->x_scale / fontEmSize; - double y_mult = (double) font->y_scale / fontEmSize; - - hr = analyzer->GetGlyphPlacements (textString, - clusterMap, textProperties, textLength, glyphIndices, - glyphProperties, glyphCount, fontFace, fontEmSize, - FALSE, isRightToLeft, &runHead->mScript, localeName, - &dwFeatures, featureRangeLengths, 1, - glyphAdvances, glyphOffsets); - - if (FAILED (hr)) - { - FAIL ("Analyzer failed to get glyph placements."); - return false; - } - -#ifdef HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION - - DWRITE_JUSTIFICATION_OPPORTUNITY* justificationOpportunities = - (DWRITE_JUSTIFICATION_OPPORTUNITY*) - malloc (maxGlyphCount * sizeof (DWRITE_JUSTIFICATION_OPPORTUNITY)); - hr = analyzer->GetJustificationOpportunities (fontFace, fontEmSize, - runHead->mScript, textLength, glyphCount, textString, clusterMap, - glyphProperties, justificationOpportunities); - - if (FAILED (hr)) - { - FAIL ("Analyzer failed to get justification opportunities."); - return false; - } - - // TODO: get lineWith from somewhere - float lineWidth = 60000; - - float* justifiedGlyphAdvances = - (float*) malloc (maxGlyphCount * sizeof (float)); - DWRITE_GLYPH_OFFSET* justifiedGlyphOffsets = (DWRITE_GLYPH_OFFSET*) - malloc (glyphCount * sizeof (DWRITE_GLYPH_OFFSET)); - hr = analyzer->JustifyGlyphAdvances (lineWidth, glyphCount, justificationOpportunities, - glyphAdvances, glyphOffsets, justifiedGlyphAdvances, justifiedGlyphOffsets); - - if (FAILED (hr)) - { - FAIL ("Analyzer failed to get justified glyph advances."); - return false; - } - - DWRITE_SCRIPT_PROPERTIES scriptProperties; - hr = analyzer->GetScriptProperties (runHead->mScript, &scriptProperties); - if (FAILED (hr)) - { - FAIL ("Analyzer failed to get script properties."); - return false; - } - uint32_t justificationCharacter = scriptProperties.justificationCharacter; - - // if a script justificationCharacter is not space, it can have GetJustifiedGlyphs - if (justificationCharacter != 32) - { -retry_getjustifiedglyphs: - uint16_t* modifiedClusterMap = (uint16_t*) malloc (maxGlyphCount * sizeof (uint16_t)); - uint16_t* modifiedGlyphIndices = (uint16_t*) malloc (maxGlyphCount * sizeof (uint16_t)); - float* modifiedGlyphAdvances = (float*) malloc (maxGlyphCount * sizeof (float)); - DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets = (DWRITE_GLYPH_OFFSET*) - malloc (maxGlyphCount * sizeof (DWRITE_GLYPH_OFFSET)); - uint32_t actualGlyphsCount; - hr = analyzer->GetJustifiedGlyphs (fontFace, fontEmSize, runHead->mScript, - textLength, glyphCount, maxGlyphCount, clusterMap, glyphIndices, - glyphAdvances, justifiedGlyphAdvances, justifiedGlyphOffsets, - glyphProperties, &actualGlyphsCount, modifiedClusterMap, modifiedGlyphIndices, - modifiedGlyphAdvances, modifiedGlyphOffsets); - - if (hr == HRESULT_FROM_WIN32 (ERROR_INSUFFICIENT_BUFFER)) - { - maxGlyphCount = actualGlyphsCount; - free (modifiedClusterMap); - free (modifiedGlyphIndices); - free (modifiedGlyphAdvances); - free (modifiedGlyphOffsets); - - maxGlyphCount = actualGlyphsCount; - - goto retry_getjustifiedglyphs; - } - if (FAILED (hr)) - { - FAIL ("Analyzer failed to get justified glyphs."); - return false; - } - - free (clusterMap); - free (glyphIndices); - free (glyphAdvances); - free (glyphOffsets); - - glyphCount = actualGlyphsCount; - clusterMap = modifiedClusterMap; - glyphIndices = modifiedGlyphIndices; - glyphAdvances = modifiedGlyphAdvances; - glyphOffsets = modifiedGlyphOffsets; - - free(justifiedGlyphAdvances); - free(justifiedGlyphOffsets); - } - else - { - free(glyphAdvances); - free(glyphOffsets); - - glyphAdvances = justifiedGlyphAdvances; - glyphOffsets = justifiedGlyphOffsets; - } - - free(justificationOpportunities); - -#endif - - /* Ok, we've got everything we need, now compose output buffer, - * very, *very*, carefully! */ - - /* Calculate visual-clusters. That's what we ship. */ - for (unsigned int i = 0; i < glyphCount; i++) - vis_clusters[i] = -1; - for (unsigned int i = 0; i < buffer->len; i++) - { - uint32_t *p = - &vis_clusters[log_clusters[buffer->info[i].utf16_index()]]; - *p = MIN (*p, buffer->info[i].cluster); - } - for (unsigned int i = 1; i < glyphCount; i++) - if (vis_clusters[i] == -1) - vis_clusters[i] = vis_clusters[i - 1]; - -#undef utf16_index - - if (unlikely (!buffer->ensure (glyphCount))) - FAIL ("Buffer in error"); - -#undef FAIL - - /* Set glyph infos */ - buffer->len = 0; - for (unsigned int i = 0; i < glyphCount; i++) - { - hb_glyph_info_t *info = &buffer->info[buffer->len++]; - - info->codepoint = glyphIndices[i]; - info->cluster = vis_clusters[i]; - - /* The rest is crap. Let's store position info there for now. */ - info->mask = glyphAdvances[i]; - info->var1.i32 = glyphOffsets[i].advanceOffset; - info->var2.i32 = glyphOffsets[i].ascenderOffset; - } - - /* Set glyph positions */ - buffer->clear_positions (); - for (unsigned int i = 0; i < glyphCount; i++) - { - hb_glyph_info_t *info = &buffer->info[i]; - hb_glyph_position_t *pos = &buffer->pos[i]; - - /* TODO vertical */ - pos->x_advance = x_mult * (int32_t) info->mask; - pos->x_offset = - x_mult * (isRightToLeft ? -info->var1.i32 : info->var1.i32); - pos->y_offset = y_mult * info->var2.i32; - } - - if (isRightToLeft) - hb_buffer_reverse (buffer); - - free (clusterMap); - free (glyphIndices); - free (textProperties); - free (glyphProperties); - free (glyphAdvances); - free (glyphOffsets); - - if (num_features) - free (singleFeatures.features); - - /* Wow, done! */ - return true; -} diff --git a/src/hb-directwrite.h b/src/hb-directwrite.h deleted file mode 100644 index adf33df..0000000 --- a/src/hb-directwrite.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright © 2015 Ebrahim Byagowi - * - * This is part of HarfBuzz, a text shaping library. - * - * Permission is hereby granted, without written agreement and without - * license or royalty fees, to use, copy, modify, and distribute this - * software and its documentation for any purpose, provided that the - * above copyright notice and the following two paragraphs appear in - * all copies of this software. - * - * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR - * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES - * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN - * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS - * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO - * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - */ - -#ifndef HB_DIRECTWRITE_H -#define HB_DIRECTWRITE_H - -#include "hb.h" - -HB_BEGIN_DECLS - -HB_END_DECLS - -#endif /* HB_UNISCRIBE_H */ diff --git a/src/hb-face.cc b/src/hb-face.cc index 9effc41..9348af7 100644 --- a/src/hb-face.cc +++ b/src/hb-face.cc @@ -77,7 +77,7 @@ const hb_face_t _hb_face_nil = { * * Return value: (transfer full) * - * Since: 0.9.2 + * Since: 1.0 **/ hb_face_t * hb_face_create_for_tables (hb_reference_table_func_t reference_table_func, @@ -113,7 +113,7 @@ _hb_face_for_data_closure_create (hb_blob_t *blob, unsigned int index) { hb_face_for_data_closure_t *closure; - closure = (hb_face_for_data_closure_t *) calloc (1, sizeof (hb_face_for_data_closure_t)); + closure = (hb_face_for_data_closure_t *) malloc (sizeof (hb_face_for_data_closure_t)); if (unlikely (!closure)) return NULL; @@ -157,7 +157,7 @@ _hb_face_for_data_reference_table (hb_face_t *face HB_UNUSED, hb_tag_t tag, void * * Return value: (transfer full): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_face_t * hb_face_create (hb_blob_t *blob, @@ -165,8 +165,8 @@ hb_face_create (hb_blob_t *blob, { hb_face_t *face; - if (unlikely (!blob)) - blob = hb_blob_get_empty (); + if (unlikely (!blob || !hb_blob_get_length (blob))) + return hb_face_get_empty (); hb_face_for_data_closure_t *closure = _hb_face_for_data_closure_create (OT::Sanitizer::sanitize (hb_blob_reference (blob)), index); @@ -189,7 +189,7 @@ hb_face_create (hb_blob_t *blob, * * Return value: (transfer full) * - * Since: 0.9.2 + * Since: 1.0 **/ hb_face_t * hb_face_get_empty (void) @@ -206,7 +206,7 @@ hb_face_get_empty (void) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_face_t * hb_face_reference (hb_face_t *face) @@ -220,7 +220,7 @@ hb_face_reference (hb_face_t *face) * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_face_destroy (hb_face_t *face) @@ -257,7 +257,7 @@ hb_face_destroy (hb_face_t *face) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_face_set_user_data (hb_face_t *face, @@ -278,7 +278,7 @@ hb_face_set_user_data (hb_face_t *face, * * Return value: (transfer none): * - * Since: 0.9.2 + * Since: 1.0 **/ void * hb_face_get_user_data (hb_face_t *face, @@ -293,7 +293,7 @@ hb_face_get_user_data (hb_face_t *face, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_face_make_immutable (hb_face_t *face) @@ -312,7 +312,7 @@ hb_face_make_immutable (hb_face_t *face) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_face_is_immutable (hb_face_t *face) @@ -330,7 +330,7 @@ hb_face_is_immutable (hb_face_t *face) * * Return value: (transfer full): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_blob_t * hb_face_reference_table (hb_face_t *face, @@ -347,7 +347,7 @@ hb_face_reference_table (hb_face_t *face, * * Return value: (transfer full): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_blob_t * hb_face_reference_blob (hb_face_t *face) @@ -362,7 +362,7 @@ hb_face_reference_blob (hb_face_t *face) * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_face_set_index (hb_face_t *face, @@ -382,7 +382,7 @@ hb_face_set_index (hb_face_t *face, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ unsigned int hb_face_get_index (hb_face_t *face) @@ -397,7 +397,7 @@ hb_face_get_index (hb_face_t *face) * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_face_set_upem (hb_face_t *face, @@ -417,7 +417,7 @@ hb_face_set_upem (hb_face_t *face, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ unsigned int hb_face_get_upem (hb_face_t *face) @@ -441,7 +441,7 @@ hb_face_t::load_upem (void) const * * * - * Since: 0.9.7 + * Since: 1.0 **/ void hb_face_set_glyph_count (hb_face_t *face, @@ -461,7 +461,7 @@ hb_face_set_glyph_count (hb_face_t *face, * * Return value: * - * Since: 0.9.7 + * Since: 1.0 **/ unsigned int hb_face_get_glyph_count (hb_face_t *face) diff --git a/src/hb-face.h b/src/hb-face.h index 91237b7..f682c46 100644 --- a/src/hb-face.h +++ b/src/hb-face.h @@ -43,28 +43,28 @@ HB_BEGIN_DECLS typedef struct hb_face_t hb_face_t; -HB_EXTERN hb_face_t * +hb_face_t * hb_face_create (hb_blob_t *blob, unsigned int index); typedef hb_blob_t * (*hb_reference_table_func_t) (hb_face_t *face, hb_tag_t tag, void *user_data); /* calls destroy() when not needing user_data anymore */ -HB_EXTERN hb_face_t * +hb_face_t * hb_face_create_for_tables (hb_reference_table_func_t reference_table_func, void *user_data, hb_destroy_func_t destroy); -HB_EXTERN hb_face_t * +hb_face_t * hb_face_get_empty (void); -HB_EXTERN hb_face_t * +hb_face_t * hb_face_reference (hb_face_t *face); -HB_EXTERN void +void hb_face_destroy (hb_face_t *face); -HB_EXTERN hb_bool_t +hb_bool_t hb_face_set_user_data (hb_face_t *face, hb_user_data_key_t *key, void * data, @@ -72,43 +72,43 @@ hb_face_set_user_data (hb_face_t *face, hb_bool_t replace); -HB_EXTERN void * +void * hb_face_get_user_data (hb_face_t *face, hb_user_data_key_t *key); -HB_EXTERN void +void hb_face_make_immutable (hb_face_t *face); -HB_EXTERN hb_bool_t +hb_bool_t hb_face_is_immutable (hb_face_t *face); -HB_EXTERN hb_blob_t * +hb_blob_t * hb_face_reference_table (hb_face_t *face, hb_tag_t tag); -HB_EXTERN hb_blob_t * +hb_blob_t * hb_face_reference_blob (hb_face_t *face); -HB_EXTERN void +void hb_face_set_index (hb_face_t *face, unsigned int index); -HB_EXTERN unsigned int +unsigned int hb_face_get_index (hb_face_t *face); -HB_EXTERN void +void hb_face_set_upem (hb_face_t *face, unsigned int upem); -HB_EXTERN unsigned int +unsigned int hb_face_get_upem (hb_face_t *face); -HB_EXTERN void +void hb_face_set_glyph_count (hb_face_t *face, unsigned int glyph_count); -HB_EXTERN unsigned int +unsigned int hb_face_get_glyph_count (hb_face_t *face); diff --git a/src/hb-fallback-shape.cc b/src/hb-fallback-shape.cc index e2ad240..9d061a9 100644 --- a/src/hb-fallback-shape.cc +++ b/src/hb-fallback-shape.cc @@ -106,7 +106,7 @@ _hb_fallback_shape (hb_shape_plan_t *shape_plan HB_UNUSED, */ hb_codepoint_t space; - bool has_space = (bool) font->get_nominal_glyph (' ', &space); + bool has_space = font->get_glyph (' ', 0, &space); buffer->clear_positions (); @@ -123,7 +123,7 @@ _hb_fallback_shape (hb_shape_plan_t *shape_plan HB_UNUSED, pos[i].y_advance = 0; continue; } - font->get_nominal_glyph (info[i].codepoint, &info[i].codepoint); + font->get_glyph (info[i].codepoint, 0, &info[i].codepoint); font->get_glyph_advance_for_direction (info[i].codepoint, direction, &pos[i].x_advance, diff --git a/src/hb-font-private.hh b/src/hb-font-private.hh index 8da40a9..33bbf71 100644 --- a/src/hb-font-private.hh +++ b/src/hb-font-private.hh @@ -42,10 +42,7 @@ */ #define HB_FONT_FUNCS_IMPLEMENT_CALLBACKS \ - HB_FONT_FUNC_IMPLEMENT (font_h_extents) \ - HB_FONT_FUNC_IMPLEMENT (font_v_extents) \ - HB_FONT_FUNC_IMPLEMENT (nominal_glyph) \ - HB_FONT_FUNC_IMPLEMENT (variation_glyph) \ + HB_FONT_FUNC_IMPLEMENT (glyph) \ HB_FONT_FUNC_IMPLEMENT (glyph_h_advance) \ HB_FONT_FUNC_IMPLEMENT (glyph_v_advance) \ HB_FONT_FUNC_IMPLEMENT (glyph_h_origin) \ @@ -64,6 +61,14 @@ struct hb_font_funcs_t { hb_bool_t immutable; + /* Don't access these directly. Call hb_font_get_*() instead. */ + + struct { +#define HB_FONT_FUNC_IMPLEMENT(name) hb_font_get_##name##_func_t name; + HB_FONT_FUNCS_IMPLEMENT_CALLBACKS +#undef HB_FONT_FUNC_IMPLEMENT + } get; + struct { #define HB_FONT_FUNC_IMPLEMENT(name) void *name; HB_FONT_FUNCS_IMPLEMENT_CALLBACKS @@ -75,16 +80,6 @@ struct hb_font_funcs_t { HB_FONT_FUNCS_IMPLEMENT_CALLBACKS #undef HB_FONT_FUNC_IMPLEMENT } destroy; - - /* Don't access these directly. Call font->get_*() instead. */ - union get_t { - struct get_funcs_t { -#define HB_FONT_FUNC_IMPLEMENT(name) hb_font_get_##name##_func_t name; - HB_FONT_FUNCS_IMPLEMENT_CALLBACKS -#undef HB_FONT_FUNC_IMPLEMENT - } f; - void (*array[VAR]) (void); - } get; }; @@ -149,133 +144,95 @@ struct hb_font_t { /* Public getters */ - HB_INTERNAL bool has_func (unsigned int i); - - /* has_* ... */ -#define HB_FONT_FUNC_IMPLEMENT(name) \ - bool \ - has_##name##_func (void) \ - { \ - hb_font_funcs_t *funcs = this->klass; \ - unsigned int i = offsetof (hb_font_funcs_t::get_t::get_funcs_t, name) / sizeof (funcs->get.array[0]); \ - return has_func (i); \ - } - HB_FONT_FUNCS_IMPLEMENT_CALLBACKS -#undef HB_FONT_FUNC_IMPLEMENT - - inline hb_bool_t get_font_h_extents (hb_font_extents_t *extents) - { - memset (extents, 0, sizeof (*extents)); - return klass->get.f.font_h_extents (this, user_data, - extents, - klass->user_data.font_h_extents); - } - inline hb_bool_t get_font_v_extents (hb_font_extents_t *extents) - { - memset (extents, 0, sizeof (*extents)); - return klass->get.f.font_v_extents (this, user_data, - extents, - klass->user_data.font_v_extents); - } - - inline bool has_glyph (hb_codepoint_t unicode) + inline hb_bool_t has_glyph (hb_codepoint_t unicode) { hb_codepoint_t glyph; - return get_nominal_glyph (unicode, &glyph); + return get_glyph (unicode, 0, &glyph); } - inline hb_bool_t get_nominal_glyph (hb_codepoint_t unicode, - hb_codepoint_t *glyph) - { - *glyph = 0; - return klass->get.f.nominal_glyph (this, user_data, - unicode, glyph, - klass->user_data.nominal_glyph); - } - - inline hb_bool_t get_variation_glyph (hb_codepoint_t unicode, hb_codepoint_t variation_selector, - hb_codepoint_t *glyph) + inline hb_bool_t get_glyph (hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph) { *glyph = 0; - return klass->get.f.variation_glyph (this, user_data, - unicode, variation_selector, glyph, - klass->user_data.variation_glyph); + return klass->get.glyph (this, user_data, + unicode, variation_selector, glyph, + klass->user_data.glyph); } inline hb_position_t get_glyph_h_advance (hb_codepoint_t glyph) { - return klass->get.f.glyph_h_advance (this, user_data, - glyph, - klass->user_data.glyph_h_advance); + return klass->get.glyph_h_advance (this, user_data, + glyph, + klass->user_data.glyph_h_advance); } inline hb_position_t get_glyph_v_advance (hb_codepoint_t glyph) { - return klass->get.f.glyph_v_advance (this, user_data, - glyph, - klass->user_data.glyph_v_advance); + return klass->get.glyph_v_advance (this, user_data, + glyph, + klass->user_data.glyph_v_advance); } inline hb_bool_t get_glyph_h_origin (hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y) { *x = *y = 0; - return klass->get.f.glyph_h_origin (this, user_data, - glyph, x, y, - klass->user_data.glyph_h_origin); + return klass->get.glyph_h_origin (this, user_data, + glyph, x, y, + klass->user_data.glyph_h_origin); } inline hb_bool_t get_glyph_v_origin (hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y) { *x = *y = 0; - return klass->get.f.glyph_v_origin (this, user_data, - glyph, x, y, - klass->user_data.glyph_v_origin); + return klass->get.glyph_v_origin (this, user_data, + glyph, x, y, + klass->user_data.glyph_v_origin); } inline hb_position_t get_glyph_h_kerning (hb_codepoint_t left_glyph, hb_codepoint_t right_glyph) { - return klass->get.f.glyph_h_kerning (this, user_data, - left_glyph, right_glyph, - klass->user_data.glyph_h_kerning); + return klass->get.glyph_h_kerning (this, user_data, + left_glyph, right_glyph, + klass->user_data.glyph_h_kerning); } inline hb_position_t get_glyph_v_kerning (hb_codepoint_t top_glyph, hb_codepoint_t bottom_glyph) { - return klass->get.f.glyph_v_kerning (this, user_data, - top_glyph, bottom_glyph, - klass->user_data.glyph_v_kerning); + return klass->get.glyph_v_kerning (this, user_data, + top_glyph, bottom_glyph, + klass->user_data.glyph_v_kerning); } inline hb_bool_t get_glyph_extents (hb_codepoint_t glyph, hb_glyph_extents_t *extents) { memset (extents, 0, sizeof (*extents)); - return klass->get.f.glyph_extents (this, user_data, - glyph, - extents, - klass->user_data.glyph_extents); + return klass->get.glyph_extents (this, user_data, + glyph, + extents, + klass->user_data.glyph_extents); } inline hb_bool_t get_glyph_contour_point (hb_codepoint_t glyph, unsigned int point_index, hb_position_t *x, hb_position_t *y) { *x = *y = 0; - return klass->get.f.glyph_contour_point (this, user_data, - glyph, point_index, - x, y, - klass->user_data.glyph_contour_point); + return klass->get.glyph_contour_point (this, user_data, + glyph, point_index, + x, y, + klass->user_data.glyph_contour_point); } inline hb_bool_t get_glyph_name (hb_codepoint_t glyph, char *name, unsigned int size) { if (size) *name = '\0'; - return klass->get.f.glyph_name (this, user_data, - glyph, - name, size, - klass->user_data.glyph_name); + return klass->get.glyph_name (this, user_data, + glyph, + name, size, + klass->user_data.glyph_name); } inline hb_bool_t get_glyph_from_name (const char *name, int len, /* -1 means nul-terminated */ @@ -283,35 +240,15 @@ struct hb_font_t { { *glyph = 0; if (len == -1) len = strlen (name); - return klass->get.f.glyph_from_name (this, user_data, - name, len, - glyph, - klass->user_data.glyph_from_name); + return klass->get.glyph_from_name (this, user_data, + name, len, + glyph, + klass->user_data.glyph_from_name); } /* A bit higher-level, and with fallback */ - inline void get_extents_for_direction (hb_direction_t direction, - hb_font_extents_t *extents) - { - if (likely (HB_DIRECTION_IS_HORIZONTAL (direction))) { - if (!get_font_h_extents (extents)) - { - extents->ascender = y_scale * .8; - extents->descender = y_scale - extents->ascender; - extents->line_gap = 0; - } - } else { - if (!get_font_v_extents (extents)) - { - extents->ascender = x_scale / 2; - extents->descender = x_scale - extents->ascender; - extents->line_gap = 0; - } - } - } - inline void get_glyph_advance_for_direction (hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y) @@ -331,7 +268,7 @@ struct hb_font_t { { *x = get_glyph_h_advance (glyph) / 2; - /* TODO use font_extents.ascender */ + /* TODO use font_metics.ascent */ *y = y_scale; } @@ -361,26 +298,6 @@ struct hb_font_t { } } - inline void add_glyph_h_origin (hb_codepoint_t glyph, - hb_position_t *x, hb_position_t *y) - { - hb_position_t origin_x, origin_y; - - get_glyph_h_origin (glyph, &origin_x, &origin_y); - - *x += origin_x; - *y += origin_y; - } - inline void add_glyph_v_origin (hb_codepoint_t glyph, - hb_position_t *x, hb_position_t *y) - { - hb_position_t origin_x, origin_y; - - get_glyph_v_origin (glyph, &origin_x, &origin_y); - - *x += origin_x; - *y += origin_y; - } inline void add_glyph_origin_for_direction (hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y) @@ -393,26 +310,6 @@ struct hb_font_t { *y += origin_y; } - inline void subtract_glyph_h_origin (hb_codepoint_t glyph, - hb_position_t *x, hb_position_t *y) - { - hb_position_t origin_x, origin_y; - - get_glyph_h_origin (glyph, &origin_x, &origin_y); - - *x -= origin_x; - *y -= origin_y; - } - inline void subtract_glyph_v_origin (hb_codepoint_t glyph, - hb_position_t *x, hb_position_t *y) - { - hb_position_t origin_x, origin_y; - - get_glyph_v_origin (glyph, &origin_x, &origin_y); - - *x -= origin_x; - *y -= origin_y; - } inline void subtract_glyph_origin_for_direction (hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y) @@ -497,7 +394,7 @@ struct hb_font_t { hb_codepoint_t unichar; if (0 == strncmp (s, "uni", 3) && hb_codepoint_parse (s + 3, len - 3, 16, &unichar) && - get_nominal_glyph (unichar, glyph)) + get_glyph (unichar, 0, glyph)) return true; } diff --git a/src/hb-font.cc b/src/hb-font.cc index 6a4823a..4364ca7 100644 --- a/src/hb-font.cc +++ b/src/hb-font.cc @@ -45,245 +45,130 @@ */ static hb_bool_t -hb_font_get_font_h_extents_nil (hb_font_t *font, - void *font_data HB_UNUSED, - hb_font_extents_t *metrics, - void *user_data HB_UNUSED) -{ - memset (metrics, 0, sizeof (*metrics)); - return false; -} -static hb_bool_t -hb_font_get_font_h_extents_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_font_extents_t *metrics, - void *user_data HB_UNUSED) -{ - hb_bool_t ret = font->parent->get_font_h_extents (metrics); - if (ret) { - metrics->ascender = font->parent_scale_y_distance (metrics->ascender); - metrics->descender = font->parent_scale_y_distance (metrics->descender); - metrics->line_gap = font->parent_scale_y_distance (metrics->line_gap); - } - return ret; -} - -static hb_bool_t -hb_font_get_font_v_extents_nil (hb_font_t *font, - void *font_data HB_UNUSED, - hb_font_extents_t *metrics, - void *user_data HB_UNUSED) -{ - memset (metrics, 0, sizeof (*metrics)); - return false; -} -static hb_bool_t -hb_font_get_font_v_extents_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_font_extents_t *metrics, - void *user_data HB_UNUSED) +hb_font_get_glyph_nil (hb_font_t *font, + void *font_data HB_UNUSED, + hb_codepoint_t unicode, + hb_codepoint_t variation_selector, + hb_codepoint_t *glyph, + void *user_data HB_UNUSED) { - hb_bool_t ret = font->parent->get_font_v_extents (metrics); - if (ret) { - metrics->ascender = font->parent_scale_x_distance (metrics->ascender); - metrics->descender = font->parent_scale_x_distance (metrics->descender); - metrics->line_gap = font->parent_scale_x_distance (metrics->line_gap); - } - return ret; -} + if (font->parent) + return font->parent->get_glyph (unicode, variation_selector, glyph); -static hb_bool_t -hb_font_get_nominal_glyph_nil (hb_font_t *font HB_UNUSED, - void *font_data HB_UNUSED, - hb_codepoint_t unicode, - hb_codepoint_t *glyph, - void *user_data HB_UNUSED) -{ *glyph = 0; return false; } -static hb_bool_t -hb_font_get_nominal_glyph_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t unicode, - hb_codepoint_t *glyph, - void *user_data HB_UNUSED) -{ - return font->parent->get_nominal_glyph (unicode, glyph); -} - -static hb_bool_t -hb_font_get_variation_glyph_nil (hb_font_t *font HB_UNUSED, - void *font_data HB_UNUSED, - hb_codepoint_t unicode, - hb_codepoint_t variation_selector, - hb_codepoint_t *glyph, - void *user_data HB_UNUSED) -{ - *glyph = 0; - return false; -} -static hb_bool_t -hb_font_get_variation_glyph_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t unicode, - hb_codepoint_t variation_selector, - hb_codepoint_t *glyph, - void *user_data HB_UNUSED) -{ - return font->parent->get_variation_glyph (unicode, variation_selector, glyph); -} - static hb_position_t -hb_font_get_glyph_h_advance_nil (hb_font_t *font HB_UNUSED, +hb_font_get_glyph_h_advance_nil (hb_font_t *font, void *font_data HB_UNUSED, hb_codepoint_t glyph, void *user_data HB_UNUSED) { + if (font->parent) + return font->parent_scale_x_distance (font->parent->get_glyph_h_advance (glyph)); + return font->x_scale; } -static hb_position_t -hb_font_get_glyph_h_advance_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t glyph, - void *user_data HB_UNUSED) -{ - return font->parent_scale_x_distance (font->parent->get_glyph_h_advance (glyph)); -} static hb_position_t -hb_font_get_glyph_v_advance_nil (hb_font_t *font HB_UNUSED, +hb_font_get_glyph_v_advance_nil (hb_font_t *font, void *font_data HB_UNUSED, hb_codepoint_t glyph, void *user_data HB_UNUSED) { + if (font->parent) + return font->parent_scale_y_distance (font->parent->get_glyph_v_advance (glyph)); + return font->y_scale; } -static hb_position_t -hb_font_get_glyph_v_advance_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t glyph, - void *user_data HB_UNUSED) -{ - return font->parent_scale_y_distance (font->parent->get_glyph_v_advance (glyph)); -} static hb_bool_t -hb_font_get_glyph_h_origin_nil (hb_font_t *font HB_UNUSED, +hb_font_get_glyph_h_origin_nil (hb_font_t *font, void *font_data HB_UNUSED, hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y, void *user_data HB_UNUSED) { + if (font->parent) { + hb_bool_t ret = font->parent->get_glyph_h_origin (glyph, x, y); + if (ret) + font->parent_scale_position (x, y); + return ret; + } + *x = *y = 0; - return true; -} -static hb_bool_t -hb_font_get_glyph_h_origin_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t glyph, - hb_position_t *x, - hb_position_t *y, - void *user_data HB_UNUSED) -{ - hb_bool_t ret = font->parent->get_glyph_h_origin (glyph, x, y); - if (ret) - font->parent_scale_position (x, y); - return ret; + return false; } static hb_bool_t -hb_font_get_glyph_v_origin_nil (hb_font_t *font HB_UNUSED, +hb_font_get_glyph_v_origin_nil (hb_font_t *font, void *font_data HB_UNUSED, hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y, void *user_data HB_UNUSED) { + if (font->parent) { + hb_bool_t ret = font->parent->get_glyph_v_origin (glyph, x, y); + if (ret) + font->parent_scale_position (x, y); + return ret; + } + *x = *y = 0; return false; } -static hb_bool_t -hb_font_get_glyph_v_origin_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t glyph, - hb_position_t *x, - hb_position_t *y, - void *user_data HB_UNUSED) -{ - hb_bool_t ret = font->parent->get_glyph_v_origin (glyph, x, y); - if (ret) - font->parent_scale_position (x, y); - return ret; -} static hb_position_t -hb_font_get_glyph_h_kerning_nil (hb_font_t *font HB_UNUSED, +hb_font_get_glyph_h_kerning_nil (hb_font_t *font, void *font_data HB_UNUSED, hb_codepoint_t left_glyph, hb_codepoint_t right_glyph, void *user_data HB_UNUSED) { + if (font->parent) + return font->parent_scale_x_distance (font->parent->get_glyph_h_kerning (left_glyph, right_glyph)); + return 0; } -static hb_position_t -hb_font_get_glyph_h_kerning_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t left_glyph, - hb_codepoint_t right_glyph, - void *user_data HB_UNUSED) -{ - return font->parent_scale_x_distance (font->parent->get_glyph_h_kerning (left_glyph, right_glyph)); -} static hb_position_t -hb_font_get_glyph_v_kerning_nil (hb_font_t *font HB_UNUSED, +hb_font_get_glyph_v_kerning_nil (hb_font_t *font, void *font_data HB_UNUSED, hb_codepoint_t top_glyph, hb_codepoint_t bottom_glyph, void *user_data HB_UNUSED) { + if (font->parent) + return font->parent_scale_y_distance (font->parent->get_glyph_v_kerning (top_glyph, bottom_glyph)); + return 0; } -static hb_position_t -hb_font_get_glyph_v_kerning_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t top_glyph, - hb_codepoint_t bottom_glyph, - void *user_data HB_UNUSED) -{ - return font->parent_scale_y_distance (font->parent->get_glyph_v_kerning (top_glyph, bottom_glyph)); -} static hb_bool_t -hb_font_get_glyph_extents_nil (hb_font_t *font HB_UNUSED, +hb_font_get_glyph_extents_nil (hb_font_t *font, void *font_data HB_UNUSED, hb_codepoint_t glyph, hb_glyph_extents_t *extents, void *user_data HB_UNUSED) { + if (font->parent) { + hb_bool_t ret = font->parent->get_glyph_extents (glyph, extents); + if (ret) { + font->parent_scale_position (&extents->x_bearing, &extents->y_bearing); + font->parent_scale_distance (&extents->width, &extents->height); + } + return ret; + } + memset (extents, 0, sizeof (*extents)); return false; } -static hb_bool_t -hb_font_get_glyph_extents_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t glyph, - hb_glyph_extents_t *extents, - void *user_data HB_UNUSED) -{ - hb_bool_t ret = font->parent->get_glyph_extents (glyph, extents); - if (ret) { - font->parent_scale_position (&extents->x_bearing, &extents->y_bearing); - font->parent_scale_distance (&extents->width, &extents->height); - } - return ret; -} static hb_bool_t -hb_font_get_glyph_contour_point_nil (hb_font_t *font HB_UNUSED, +hb_font_get_glyph_contour_point_nil (hb_font_t *font, void *font_data HB_UNUSED, hb_codepoint_t glyph, unsigned int point_index, @@ -291,63 +176,45 @@ hb_font_get_glyph_contour_point_nil (hb_font_t *font HB_UNUSED, hb_position_t *y, void *user_data HB_UNUSED) { + if (font->parent) { + hb_bool_t ret = font->parent->get_glyph_contour_point (glyph, point_index, x, y); + if (ret) + font->parent_scale_position (x, y); + return ret; + } + *x = *y = 0; return false; } -static hb_bool_t -hb_font_get_glyph_contour_point_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t glyph, - unsigned int point_index, - hb_position_t *x, - hb_position_t *y, - void *user_data HB_UNUSED) -{ - hb_bool_t ret = font->parent->get_glyph_contour_point (glyph, point_index, x, y); - if (ret) - font->parent_scale_position (x, y); - return ret; -} static hb_bool_t -hb_font_get_glyph_name_nil (hb_font_t *font HB_UNUSED, +hb_font_get_glyph_name_nil (hb_font_t *font, void *font_data HB_UNUSED, hb_codepoint_t glyph, char *name, unsigned int size, void *user_data HB_UNUSED) { + if (font->parent) + return font->parent->get_glyph_name (glyph, name, size); + if (size) *name = '\0'; return false; } -static hb_bool_t -hb_font_get_glyph_name_parent (hb_font_t *font, - void *font_data HB_UNUSED, - hb_codepoint_t glyph, - char *name, unsigned int size, - void *user_data HB_UNUSED) -{ - return font->parent->get_glyph_name (glyph, name, size); -} static hb_bool_t -hb_font_get_glyph_from_name_nil (hb_font_t *font HB_UNUSED, +hb_font_get_glyph_from_name_nil (hb_font_t *font, void *font_data HB_UNUSED, const char *name, int len, /* -1 means nul-terminated */ hb_codepoint_t *glyph, void *user_data HB_UNUSED) { + if (font->parent) + return font->parent->get_glyph_from_name (name, len, glyph); + *glyph = 0; return false; } -static hb_bool_t -hb_font_get_glyph_from_name_parent (hb_font_t *font, - void *font_data HB_UNUSED, - const char *name, int len, /* -1 means nul-terminated */ - hb_codepoint_t *glyph, - void *user_data HB_UNUSED) -{ - return font->parent->get_glyph_from_name (name, len, glyph); -} + static const hb_font_funcs_t _hb_font_funcs_nil = { HB_OBJECT_HEADER_STATIC, @@ -355,44 +222,9 @@ static const hb_font_funcs_t _hb_font_funcs_nil = { true, /* immutable */ { -#define HB_FONT_FUNC_IMPLEMENT(name) NULL, - HB_FONT_FUNCS_IMPLEMENT_CALLBACKS -#undef HB_FONT_FUNC_IMPLEMENT - }, - { -#define HB_FONT_FUNC_IMPLEMENT(name) NULL, - HB_FONT_FUNCS_IMPLEMENT_CALLBACKS -#undef HB_FONT_FUNC_IMPLEMENT - }, - { - { #define HB_FONT_FUNC_IMPLEMENT(name) hb_font_get_##name##_nil, - HB_FONT_FUNCS_IMPLEMENT_CALLBACKS -#undef HB_FONT_FUNC_IMPLEMENT - } - } -}; -static const hb_font_funcs_t _hb_font_funcs_parent = { - HB_OBJECT_HEADER_STATIC, - - true, /* immutable */ - - { -#define HB_FONT_FUNC_IMPLEMENT(name) NULL, HB_FONT_FUNCS_IMPLEMENT_CALLBACKS #undef HB_FONT_FUNC_IMPLEMENT - }, - { -#define HB_FONT_FUNC_IMPLEMENT(name) NULL, - HB_FONT_FUNCS_IMPLEMENT_CALLBACKS -#undef HB_FONT_FUNC_IMPLEMENT - }, - { - { -#define HB_FONT_FUNC_IMPLEMENT(name) hb_font_get_##name##_parent, - HB_FONT_FUNCS_IMPLEMENT_CALLBACKS -#undef HB_FONT_FUNC_IMPLEMENT - } } }; @@ -404,7 +236,7 @@ static const hb_font_funcs_t _hb_font_funcs_parent = { * * Return value: (transfer full): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_font_funcs_t * hb_font_funcs_create (void) @@ -414,7 +246,7 @@ hb_font_funcs_create (void) if (!(ffuncs = hb_object_create ())) return hb_font_funcs_get_empty (); - ffuncs->get = _hb_font_funcs_parent.get; + ffuncs->get = _hb_font_funcs_nil.get; return ffuncs; } @@ -426,12 +258,12 @@ hb_font_funcs_create (void) * * Return value: (transfer full): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_font_funcs_t * hb_font_funcs_get_empty (void) { - return const_cast (&_hb_font_funcs_parent); + return const_cast (&_hb_font_funcs_nil); } /** @@ -442,7 +274,7 @@ hb_font_funcs_get_empty (void) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_font_funcs_t * hb_font_funcs_reference (hb_font_funcs_t *ffuncs) @@ -456,7 +288,7 @@ hb_font_funcs_reference (hb_font_funcs_t *ffuncs) * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_funcs_destroy (hb_font_funcs_t *ffuncs) @@ -483,7 +315,7 @@ hb_font_funcs_destroy (hb_font_funcs_t *ffuncs) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, @@ -504,7 +336,7 @@ hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, * * Return value: (transfer none): * - * Since: 0.9.2 + * Since: 1.0 **/ void * hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs, @@ -520,7 +352,7 @@ hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs) @@ -539,7 +371,7 @@ hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs) @@ -566,11 +398,11 @@ hb_font_funcs_set_##name##_func (hb_font_funcs_t *ffuncs, \ ffuncs->destroy.name (ffuncs->user_data.name); \ \ if (func) { \ - ffuncs->get.f.name = func; \ + ffuncs->get.name = func; \ ffuncs->user_data.name = user_data; \ ffuncs->destroy.name = destroy; \ } else { \ - ffuncs->get.f.name = hb_font_get_##name##_parent; \ + ffuncs->get.name = hb_font_get_##name##_nil; \ ffuncs->user_data.name = NULL; \ ffuncs->destroy.name = NULL; \ } \ @@ -579,53 +411,10 @@ hb_font_funcs_set_##name##_func (hb_font_funcs_t *ffuncs, \ HB_FONT_FUNCS_IMPLEMENT_CALLBACKS #undef HB_FONT_FUNC_IMPLEMENT -bool -hb_font_t::has_func (unsigned int i) -{ - if (parent && parent != hb_font_get_empty () && parent->has_func (i)) - return true; - return this->klass->get.array[i] != _hb_font_funcs_parent.get.array[i]; -} /* Public getters */ /** - * hb_font_get_h_extents: - * @font: a font. - * @extents: (out): - * - * - * - * Return value: - * - * Since: 1.1.3 - **/ -hb_bool_t -hb_font_get_h_extents (hb_font_t *font, - hb_font_extents_t *extents) -{ - return font->get_font_h_extents (extents); -} - -/** - * hb_font_get_v_extents: - * @font: a font. - * @extents: (out): - * - * - * - * Return value: - * - * Since: 1.1.3 - **/ -hb_bool_t -hb_font_get_v_extents (hb_font_t *font, - hb_font_extents_t *extents) -{ - return font->get_font_v_extents (extents); -} - -/** * hb_font_get_glyph: * @font: a font. * @unicode: @@ -636,57 +425,14 @@ hb_font_get_v_extents (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_get_glyph (hb_font_t *font, hb_codepoint_t unicode, hb_codepoint_t variation_selector, hb_codepoint_t *glyph) { - if (unlikely (variation_selector)) - return font->get_variation_glyph (unicode, variation_selector, glyph); - return font->get_nominal_glyph (unicode, glyph); -} - -/** - * hb_font_get_nominal_glyph: - * @font: a font. - * @unicode: - * @glyph: (out): - * - * - * - * Return value: - * - * Since: 1.2.3 - **/ -hb_bool_t -hb_font_get_nominal_glyph (hb_font_t *font, - hb_codepoint_t unicode, - hb_codepoint_t *glyph) -{ - return font->get_nominal_glyph (unicode, glyph); -} - -/** - * hb_font_get_variation_glyph: - * @font: a font. - * @unicode: - * @variation_selector: - * @glyph: (out): - * - * - * - * Return value: - * - * Since: 1.2.3 - **/ -hb_bool_t -hb_font_get_variation_glyph (hb_font_t *font, - hb_codepoint_t unicode, hb_codepoint_t variation_selector, - hb_codepoint_t *glyph) -{ - return font->get_variation_glyph (unicode, variation_selector, glyph); + return font->get_glyph (unicode, variation_selector, glyph); } /** @@ -698,7 +444,7 @@ hb_font_get_variation_glyph (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_position_t hb_font_get_glyph_h_advance (hb_font_t *font, @@ -716,7 +462,7 @@ hb_font_get_glyph_h_advance (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_position_t hb_font_get_glyph_v_advance (hb_font_t *font, @@ -736,7 +482,7 @@ hb_font_get_glyph_v_advance (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_get_glyph_h_origin (hb_font_t *font, @@ -757,7 +503,7 @@ hb_font_get_glyph_h_origin (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_get_glyph_v_origin (hb_font_t *font, @@ -777,7 +523,7 @@ hb_font_get_glyph_v_origin (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_position_t hb_font_get_glyph_h_kerning (hb_font_t *font, @@ -796,7 +542,7 @@ hb_font_get_glyph_h_kerning (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_position_t hb_font_get_glyph_v_kerning (hb_font_t *font, @@ -815,7 +561,7 @@ hb_font_get_glyph_v_kerning (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_get_glyph_extents (hb_font_t *font, @@ -837,7 +583,7 @@ hb_font_get_glyph_extents (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_get_glyph_contour_point (hb_font_t *font, @@ -858,7 +604,7 @@ hb_font_get_glyph_contour_point (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_get_glyph_name (hb_font_t *font, @@ -879,7 +625,7 @@ hb_font_get_glyph_name (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_get_glyph_from_name (hb_font_t *font, @@ -893,23 +639,6 @@ hb_font_get_glyph_from_name (hb_font_t *font, /* A bit higher-level, and with fallback */ /** - * hb_font_get_extents_for_direction: - * @font: a font. - * @direction: - * @extents: - * - * - * - * Since: 1.1.3 - **/ -void -hb_font_get_extents_for_direction (hb_font_t *font, - hb_direction_t direction, - hb_font_extents_t *extents) -{ - return font->get_extents_for_direction (direction, extents); -} -/** * hb_font_get_glyph_advance_for_direction: * @font: a font. * @glyph: @@ -919,7 +648,7 @@ hb_font_get_extents_for_direction (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_get_glyph_advance_for_direction (hb_font_t *font, @@ -940,7 +669,7 @@ hb_font_get_glyph_advance_for_direction (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_get_glyph_origin_for_direction (hb_font_t *font, @@ -961,7 +690,7 @@ hb_font_get_glyph_origin_for_direction (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_add_glyph_origin_for_direction (hb_font_t *font, @@ -982,7 +711,7 @@ hb_font_add_glyph_origin_for_direction (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_subtract_glyph_origin_for_direction (hb_font_t *font, @@ -1004,7 +733,7 @@ hb_font_subtract_glyph_origin_for_direction (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_get_glyph_kerning_for_direction (hb_font_t *font, @@ -1026,7 +755,7 @@ hb_font_get_glyph_kerning_for_direction (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_get_glyph_extents_for_origin (hb_font_t *font, @@ -1050,7 +779,7 @@ hb_font_get_glyph_extents_for_origin (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_get_glyph_contour_point_for_origin (hb_font_t *font, @@ -1071,7 +800,7 @@ hb_font_get_glyph_contour_point_for_origin (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_glyph_to_string (hb_font_t *font, @@ -1085,7 +814,7 @@ hb_font_glyph_to_string (hb_font_t *font, /** * hb_font_glyph_from_string: * @font: a font. - * @s: (array length=len) (element-type uint8_t): + * @s: (array length=len): * @len: * @glyph: (out): * @@ -1093,7 +822,7 @@ hb_font_glyph_to_string (hb_font_t *font, * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_glyph_from_string (hb_font_t *font, @@ -1116,7 +845,7 @@ hb_font_glyph_from_string (hb_font_t *font, * * Return value: (transfer full): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_font_t * hb_font_create (hb_face_t *face) @@ -1125,16 +854,15 @@ hb_font_create (hb_face_t *face) if (unlikely (!face)) face = hb_face_get_empty (); + if (unlikely (hb_object_is_inert (face))) + return hb_font_get_empty (); if (!(font = hb_object_create ())) return hb_font_get_empty (); hb_face_make_immutable (face); - font->parent = hb_font_get_empty (); font->face = hb_face_reference (face); font->klass = hb_font_funcs_get_empty (); - font->x_scale = font->y_scale = hb_face_get_upem (face); - return font; } @@ -1146,19 +874,20 @@ hb_font_create (hb_face_t *face) * * Return value: (transfer full): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_font_t * hb_font_create_sub_font (hb_font_t *parent) { if (unlikely (!parent)) - parent = hb_font_get_empty (); + return hb_font_get_empty (); hb_font_t *font = hb_font_create (parent->face); if (unlikely (hb_object_is_inert (font))) return font; + hb_font_make_immutable (parent); font->parent = hb_font_reference (parent); font->x_scale = parent->x_scale; @@ -1176,7 +905,7 @@ hb_font_create_sub_font (hb_font_t *parent) * * Return value: (transfer full) * - * Since: 0.9.2 + * Since: 1.0 **/ hb_font_t * hb_font_get_empty (void) @@ -1189,8 +918,8 @@ hb_font_get_empty (void) NULL, /* parent */ const_cast (&_hb_face_nil), - 1000, /* x_scale */ - 1000, /* y_scale */ + 0, /* x_scale */ + 0, /* y_scale */ 0, /* x_ppem */ 0, /* y_ppem */ @@ -1217,7 +946,7 @@ hb_font_get_empty (void) * * Return value: (transfer full): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_font_t * hb_font_reference (hb_font_t *font) @@ -1231,7 +960,7 @@ hb_font_reference (hb_font_t *font) * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_destroy (hb_font_t *font) @@ -1264,7 +993,7 @@ hb_font_destroy (hb_font_t *font) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_set_user_data (hb_font_t *font, @@ -1285,7 +1014,7 @@ hb_font_set_user_data (hb_font_t *font, * * Return value: (transfer none): * - * Since: 0.9.2 + * Since: 1.0 **/ void * hb_font_get_user_data (hb_font_t *font, @@ -1300,7 +1029,7 @@ hb_font_get_user_data (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_make_immutable (hb_font_t *font) @@ -1308,9 +1037,6 @@ hb_font_make_immutable (hb_font_t *font) if (unlikely (hb_object_is_inert (font))) return; - if (font->parent) - hb_font_make_immutable (font->parent); - font->immutable = true; } @@ -1322,7 +1048,7 @@ hb_font_make_immutable (hb_font_t *font) * * Return value: * - * Since: 0.9.2 + * Since: 1.0 **/ hb_bool_t hb_font_is_immutable (hb_font_t *font) @@ -1331,32 +1057,6 @@ hb_font_is_immutable (hb_font_t *font) } /** - * hb_font_set_parent: - * @font: a font. - * @parent: new parent. - * - * Sets parent font of @font. - * - * Since: 1.0.5 - **/ -void -hb_font_set_parent (hb_font_t *font, - hb_font_t *parent) -{ - if (font->immutable) - return; - - if (!parent) - parent = hb_font_get_empty (); - - hb_font_t *old = font->parent; - - font->parent = hb_font_reference (parent); - - hb_font_destroy (old); -} - -/** * hb_font_get_parent: * @font: a font. * @@ -1364,7 +1064,7 @@ hb_font_set_parent (hb_font_t *font, * * Return value: (transfer none): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_font_t * hb_font_get_parent (hb_font_t *font) @@ -1380,7 +1080,7 @@ hb_font_get_parent (hb_font_t *font) * * Return value: (transfer none): * - * Since: 0.9.2 + * Since: 1.0 **/ hb_face_t * hb_font_get_face (hb_font_t *font) @@ -1398,7 +1098,7 @@ hb_font_get_face (hb_font_t *font) * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_set_funcs (hb_font_t *font, @@ -1433,7 +1133,7 @@ hb_font_set_funcs (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_set_funcs_data (hb_font_t *font, @@ -1463,7 +1163,7 @@ hb_font_set_funcs_data (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_set_scale (hb_font_t *font, @@ -1485,7 +1185,7 @@ hb_font_set_scale (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_get_scale (hb_font_t *font, @@ -1504,7 +1204,7 @@ hb_font_get_scale (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_set_ppem (hb_font_t *font, @@ -1526,7 +1226,7 @@ hb_font_set_ppem (hb_font_t *font, * * * - * Since: 0.9.2 + * Since: 1.0 **/ void hb_font_get_ppem (hb_font_t *font, @@ -1536,131 +1236,3 @@ hb_font_get_ppem (hb_font_t *font, if (x_ppem) *x_ppem = font->x_ppem; if (y_ppem) *y_ppem = font->y_ppem; } - - -#ifndef HB_DISABLE_DEPRECATED - -/* - * Deprecated get_glyph_func(): - */ - -struct hb_trampoline_closure_t -{ - void *user_data; - hb_destroy_func_t destroy; - unsigned int ref_count; -}; - -template -struct hb_trampoline_t -{ - hb_trampoline_closure_t closure; /* Must be first. */ - FuncType func; -}; - -template -static hb_trampoline_t * -trampoline_create (FuncType func, - void *user_data, - hb_destroy_func_t destroy) -{ - typedef hb_trampoline_t trampoline_t; - - trampoline_t *trampoline = (trampoline_t *) calloc (1, sizeof (trampoline_t)); - - if (unlikely (!trampoline)) - return NULL; - - trampoline->closure.user_data = user_data; - trampoline->closure.destroy = destroy; - trampoline->closure.ref_count = 1; - trampoline->func = func; - - return trampoline; -} - -static void -trampoline_reference (hb_trampoline_closure_t *closure) -{ - closure->ref_count++; -} - -static void -trampoline_destroy (void *user_data) -{ - hb_trampoline_closure_t *closure = (hb_trampoline_closure_t *) user_data; - - if (--closure->ref_count) - return; - - if (closure->destroy) - closure->destroy (closure->user_data); - free (closure); -} - -typedef hb_trampoline_t hb_font_get_glyph_trampoline_t; - -static hb_bool_t -hb_font_get_nominal_glyph_trampoline (hb_font_t *font, - void *font_data, - hb_codepoint_t unicode, - hb_codepoint_t *glyph, - void *user_data) -{ - hb_font_get_glyph_trampoline_t *trampoline = (hb_font_get_glyph_trampoline_t *) user_data; - return trampoline->func (font, font_data, unicode, 0, glyph, trampoline->closure.user_data); -} - -static hb_bool_t -hb_font_get_variation_glyph_trampoline (hb_font_t *font, - void *font_data, - hb_codepoint_t unicode, - hb_codepoint_t variation_selector, - hb_codepoint_t *glyph, - void *user_data) -{ - hb_font_get_glyph_trampoline_t *trampoline = (hb_font_get_glyph_trampoline_t *) user_data; - return trampoline->func (font, font_data, unicode, variation_selector, glyph, trampoline->closure.user_data); -} - -/** - * hb_font_funcs_set_glyph_func: - * @ffuncs: font functions. - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * - * Deprecated. Use hb_font_funcs_set_nominal_glyph_func() and - * hb_font_funcs_set_variation_glyph_func() instead. - * - * Since: 0.9.2 - * Deprecated: 1.2.3 - **/ -void -hb_font_funcs_set_glyph_func (hb_font_funcs_t *ffuncs, - hb_font_get_glyph_func_t func, - void *user_data, hb_destroy_func_t destroy) -{ - hb_font_get_glyph_trampoline_t *trampoline; - - trampoline = trampoline_create (func, user_data, destroy); - if (unlikely (!trampoline)) - { - if (destroy) - destroy (user_data); - return; - } - - hb_font_funcs_set_nominal_glyph_func (ffuncs, - hb_font_get_nominal_glyph_trampoline, - trampoline, - trampoline_destroy); - - trampoline_reference (&trampoline->closure); - hb_font_funcs_set_variation_glyph_func (ffuncs, - hb_font_get_variation_glyph_trampoline, - trampoline, - trampoline_destroy); -} - -#endif /* HB_DISABLE_DEPRECATED */ diff --git a/src/hb-font.h b/src/hb-font.h index 2b6ab50..7273db4 100644 --- a/src/hb-font.h +++ b/src/hb-font.h @@ -46,19 +46,19 @@ typedef struct hb_font_t hb_font_t; typedef struct hb_font_funcs_t hb_font_funcs_t; -HB_EXTERN hb_font_funcs_t * +hb_font_funcs_t * hb_font_funcs_create (void); -HB_EXTERN hb_font_funcs_t * +hb_font_funcs_t * hb_font_funcs_get_empty (void); -HB_EXTERN hb_font_funcs_t * +hb_font_funcs_t * hb_font_funcs_reference (hb_font_funcs_t *ffuncs); -HB_EXTERN void +void hb_font_funcs_destroy (hb_font_funcs_t *ffuncs); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, hb_user_data_key_t *key, void * data, @@ -66,64 +66,35 @@ hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, hb_bool_t replace); -HB_EXTERN void * +void * hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs, hb_user_data_key_t *key); -HB_EXTERN void +void hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs); -/* font and glyph extents */ +/* glyph extents */ -/* Note that typically ascender is positive and descender negative in coordinate systems that grow up. */ -typedef struct hb_font_extents_t -{ - hb_position_t ascender; /* typographic ascender. */ - hb_position_t descender; /* typographic descender. */ - hb_position_t line_gap; /* suggested line spacing gap. */ - /*< private >*/ - hb_position_t reserved9; - hb_position_t reserved8; - hb_position_t reserved7; - hb_position_t reserved6; - hb_position_t reserved5; - hb_position_t reserved4; - hb_position_t reserved3; - hb_position_t reserved2; - hb_position_t reserved1; -} hb_font_extents_t; - -/* Note that height is negative in coordinate systems that grow up. */ typedef struct hb_glyph_extents_t { - hb_position_t x_bearing; /* left side of glyph from origin. */ - hb_position_t y_bearing; /* top side of glyph from origin. */ - hb_position_t width; /* distance from left to right side. */ - hb_position_t height; /* distance from top to bottom side. */ + hb_position_t x_bearing; + hb_position_t y_bearing; + hb_position_t width; + hb_position_t height; } hb_glyph_extents_t; -/* func types */ - -typedef hb_bool_t (*hb_font_get_font_extents_func_t) (hb_font_t *font, void *font_data, - hb_font_extents_t *metrics, - void *user_data); -typedef hb_font_get_font_extents_func_t hb_font_get_font_h_extents_func_t; -typedef hb_font_get_font_extents_func_t hb_font_get_font_v_extents_func_t; +/* func types */ -typedef hb_bool_t (*hb_font_get_nominal_glyph_func_t) (hb_font_t *font, void *font_data, - hb_codepoint_t unicode, - hb_codepoint_t *glyph, - void *user_data); -typedef hb_bool_t (*hb_font_get_variation_glyph_func_t) (hb_font_t *font, void *font_data, - hb_codepoint_t unicode, hb_codepoint_t variation_selector, - hb_codepoint_t *glyph, - void *user_data); +typedef hb_bool_t (*hb_font_get_glyph_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph, + void *user_data); typedef hb_position_t (*hb_font_get_glyph_advance_func_t) (hb_font_t *font, void *font_data, @@ -169,39 +140,7 @@ typedef hb_bool_t (*hb_font_get_glyph_from_name_func_t) (hb_font_t *font, void * /* func setters */ /** - * hb_font_funcs_set_font_h_extents_func: - * @ffuncs: font functions. - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * - * - * - * Since: 1.1.2 - **/ -HB_EXTERN void -hb_font_funcs_set_font_h_extents_func (hb_font_funcs_t *ffuncs, - hb_font_get_font_h_extents_func_t func, - void *user_data, hb_destroy_func_t destroy); - -/** - * hb_font_funcs_set_font_v_extents_func: - * @ffuncs: font functions. - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * - * - * - * Since: 1.1.2 - **/ -HB_EXTERN void -hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs, - hb_font_get_font_v_extents_func_t func, - void *user_data, hb_destroy_func_t destroy); - -/** - * hb_font_funcs_set_nominal_glyph_func: + * hb_font_funcs_set_glyph_func: * @ffuncs: font functions. * @func: (closure user_data) (destroy destroy) (scope notified): * @user_data: @@ -209,28 +148,12 @@ hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs, * * * - * Since: 1.2.3 + * Since: 1.0 **/ -HB_EXTERN void -hb_font_funcs_set_nominal_glyph_func (hb_font_funcs_t *ffuncs, - hb_font_get_nominal_glyph_func_t func, - void *user_data, hb_destroy_func_t destroy); - -/** - * hb_font_funcs_set_variation_glyph_func: - * @ffuncs: font functions. - * @func: (closure user_data) (destroy destroy) (scope notified): - * @user_data: - * @destroy: - * - * - * - * Since: 1.2.3 - **/ -HB_EXTERN void -hb_font_funcs_set_variation_glyph_func (hb_font_funcs_t *ffuncs, - hb_font_get_variation_glyph_func_t func, - void *user_data, hb_destroy_func_t destroy); +void +hb_font_funcs_set_glyph_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_func_t func, + void *user_data, hb_destroy_func_t destroy); /** * hb_font_funcs_set_glyph_h_advance_func: @@ -241,9 +164,9 @@ hb_font_funcs_set_variation_glyph_func (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ -HB_EXTERN void +void hb_font_funcs_set_glyph_h_advance_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_h_advance_func_t func, void *user_data, hb_destroy_func_t destroy); @@ -257,9 +180,9 @@ hb_font_funcs_set_glyph_h_advance_func (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ -HB_EXTERN void +void hb_font_funcs_set_glyph_v_advance_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_v_advance_func_t func, void *user_data, hb_destroy_func_t destroy); @@ -273,9 +196,9 @@ hb_font_funcs_set_glyph_v_advance_func (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ -HB_EXTERN void +void hb_font_funcs_set_glyph_h_origin_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_h_origin_func_t func, void *user_data, hb_destroy_func_t destroy); @@ -289,9 +212,9 @@ hb_font_funcs_set_glyph_h_origin_func (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ -HB_EXTERN void +void hb_font_funcs_set_glyph_v_origin_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_v_origin_func_t func, void *user_data, hb_destroy_func_t destroy); @@ -305,9 +228,9 @@ hb_font_funcs_set_glyph_v_origin_func (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ -HB_EXTERN void +void hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_h_kerning_func_t func, void *user_data, hb_destroy_func_t destroy); @@ -321,9 +244,9 @@ hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ -HB_EXTERN void +void hb_font_funcs_set_glyph_v_kerning_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_v_kerning_func_t func, void *user_data, hb_destroy_func_t destroy); @@ -337,9 +260,9 @@ hb_font_funcs_set_glyph_v_kerning_func (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ -HB_EXTERN void +void hb_font_funcs_set_glyph_extents_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_extents_func_t func, void *user_data, hb_destroy_func_t destroy); @@ -353,9 +276,9 @@ hb_font_funcs_set_glyph_extents_func (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ -HB_EXTERN void +void hb_font_funcs_set_glyph_contour_point_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_contour_point_func_t func, void *user_data, hb_destroy_func_t destroy); @@ -369,9 +292,9 @@ hb_font_funcs_set_glyph_contour_point_func (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ -HB_EXTERN void +void hb_font_funcs_set_glyph_name_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_name_func_t func, void *user_data, hb_destroy_func_t destroy); @@ -385,69 +308,59 @@ hb_font_funcs_set_glyph_name_func (hb_font_funcs_t *ffuncs, * * * - * Since: 0.9.2 + * Since: 1.0 **/ -HB_EXTERN void +void hb_font_funcs_set_glyph_from_name_func (hb_font_funcs_t *ffuncs, hb_font_get_glyph_from_name_func_t func, void *user_data, hb_destroy_func_t destroy); -/* func dispatch */ -HB_EXTERN hb_bool_t -hb_font_get_h_extents (hb_font_t *font, - hb_font_extents_t *extents); -HB_EXTERN hb_bool_t -hb_font_get_v_extents (hb_font_t *font, - hb_font_extents_t *extents); +/* func dispatch */ -HB_EXTERN hb_bool_t -hb_font_get_nominal_glyph (hb_font_t *font, - hb_codepoint_t unicode, - hb_codepoint_t *glyph); -HB_EXTERN hb_bool_t -hb_font_get_variation_glyph (hb_font_t *font, - hb_codepoint_t unicode, hb_codepoint_t variation_selector, - hb_codepoint_t *glyph); +hb_bool_t +hb_font_get_glyph (hb_font_t *font, + hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph); -HB_EXTERN hb_position_t +hb_position_t hb_font_get_glyph_h_advance (hb_font_t *font, hb_codepoint_t glyph); -HB_EXTERN hb_position_t +hb_position_t hb_font_get_glyph_v_advance (hb_font_t *font, hb_codepoint_t glyph); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_get_glyph_h_origin (hb_font_t *font, hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_get_glyph_v_origin (hb_font_t *font, hb_codepoint_t glyph, hb_position_t *x, hb_position_t *y); -HB_EXTERN hb_position_t +hb_position_t hb_font_get_glyph_h_kerning (hb_font_t *font, hb_codepoint_t left_glyph, hb_codepoint_t right_glyph); -HB_EXTERN hb_position_t +hb_position_t hb_font_get_glyph_v_kerning (hb_font_t *font, hb_codepoint_t top_glyph, hb_codepoint_t bottom_glyph); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_get_glyph_extents (hb_font_t *font, hb_codepoint_t glyph, hb_glyph_extents_t *extents); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_get_glyph_contour_point (hb_font_t *font, hb_codepoint_t glyph, unsigned int point_index, hb_position_t *x, hb_position_t *y); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_get_glyph_name (hb_font_t *font, hb_codepoint_t glyph, char *name, unsigned int size); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_get_glyph_from_name (hb_font_t *font, const char *name, int len, /* -1 means nul-terminated */ hb_codepoint_t *glyph); @@ -455,63 +368,52 @@ hb_font_get_glyph_from_name (hb_font_t *font, /* high-level funcs, with fallback */ -/* Calls either hb_font_get_nominal_glyph() if variation_selector is 0, - * otherwise callse hb_font_get_variation_glyph(). */ -HB_EXTERN hb_bool_t -hb_font_get_glyph (hb_font_t *font, - hb_codepoint_t unicode, hb_codepoint_t variation_selector, - hb_codepoint_t *glyph); - -HB_EXTERN void -hb_font_get_extents_for_direction (hb_font_t *font, - hb_direction_t direction, - hb_font_extents_t *extents); -HB_EXTERN void +void hb_font_get_glyph_advance_for_direction (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y); -HB_EXTERN void +void hb_font_get_glyph_origin_for_direction (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y); -HB_EXTERN void +void hb_font_add_glyph_origin_for_direction (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y); -HB_EXTERN void +void hb_font_subtract_glyph_origin_for_direction (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y); -HB_EXTERN void +void hb_font_get_glyph_kerning_for_direction (hb_font_t *font, hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, hb_direction_t direction, hb_position_t *x, hb_position_t *y); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_get_glyph_extents_for_origin (hb_font_t *font, hb_codepoint_t glyph, hb_direction_t direction, hb_glyph_extents_t *extents); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_get_glyph_contour_point_for_origin (hb_font_t *font, hb_codepoint_t glyph, unsigned int point_index, hb_direction_t direction, hb_position_t *x, hb_position_t *y); /* Generates gidDDD if glyph has no name. */ -HB_EXTERN void +void hb_font_glyph_to_string (hb_font_t *font, hb_codepoint_t glyph, char *s, unsigned int size); /* Parses gidDDD and uniUUUU strings automatically. */ -HB_EXTERN hb_bool_t +hb_bool_t hb_font_glyph_from_string (hb_font_t *font, const char *s, int len, /* -1 means nul-terminated */ hb_codepoint_t *glyph); @@ -523,22 +425,22 @@ hb_font_glyph_from_string (hb_font_t *font, /* Fonts are very light-weight objects */ -HB_EXTERN hb_font_t * +hb_font_t * hb_font_create (hb_face_t *face); -HB_EXTERN hb_font_t * +hb_font_t * hb_font_create_sub_font (hb_font_t *parent); -HB_EXTERN hb_font_t * +hb_font_t * hb_font_get_empty (void); -HB_EXTERN hb_font_t * +hb_font_t * hb_font_reference (hb_font_t *font); -HB_EXTERN void +void hb_font_destroy (hb_font_t *font); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_set_user_data (hb_font_t *font, hb_user_data_key_t *key, void * data, @@ -546,46 +448,42 @@ hb_font_set_user_data (hb_font_t *font, hb_bool_t replace); -HB_EXTERN void * +void * hb_font_get_user_data (hb_font_t *font, hb_user_data_key_t *key); -HB_EXTERN void +void hb_font_make_immutable (hb_font_t *font); -HB_EXTERN hb_bool_t +hb_bool_t hb_font_is_immutable (hb_font_t *font); -HB_EXTERN void -hb_font_set_parent (hb_font_t *font, - hb_font_t *parent); - -HB_EXTERN hb_font_t * +hb_font_t * hb_font_get_parent (hb_font_t *font); -HB_EXTERN hb_face_t * +hb_face_t * hb_font_get_face (hb_font_t *font); -HB_EXTERN void +void hb_font_set_funcs (hb_font_t *font, hb_font_funcs_t *klass, void *font_data, hb_destroy_func_t destroy); /* Be *very* careful with this function! */ -HB_EXTERN void +void hb_font_set_funcs_data (hb_font_t *font, void *font_data, hb_destroy_func_t destroy); -HB_EXTERN void +void hb_font_set_scale (hb_font_t *font, int x_scale, int y_scale); -HB_EXTERN void +void hb_font_get_scale (hb_font_t *font, int *x_scale, int *y_scale); @@ -593,12 +491,12 @@ hb_font_get_scale (hb_font_t *font, /* * A zero value means "no hinting in that direction" */ -HB_EXTERN void +void hb_font_set_ppem (hb_font_t *font, unsigned int x_ppem, unsigned int y_ppem); -HB_EXTERN void +void hb_font_get_ppem (hb_font_t *font, unsigned int *x_ppem, unsigned int *y_ppem); diff --git a/src/hb-ft.cc b/src/hb-ft.cc index 2cad8c2..322f93a 100644 --- a/src/hb-ft.cc +++ b/src/hb-ft.cc @@ -1,7 +1,6 @@ /* * Copyright © 2009 Red Hat, Inc. * Copyright © 2009 Keith Stribley - * Copyright © 2015 Google, Inc. * * This is part of HarfBuzz, a text shaping library. * @@ -24,7 +23,6 @@ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * Red Hat Author(s): Behdad Esfahbod - * Google Author(s): Behdad Esfahbod */ #include "hb-private.hh" @@ -48,15 +46,17 @@ * In general, this file does a fine job of what it's supposed to do. * There are, however, things that need more work: * - * - I remember seeing FT_Get_Advance() without the NO_HINTING flag to be buggy. - * Have not investigated. + * - We don't handle any load_flags. That definitely has API implications. :( + * I believe hb_ft_font_create() should take load_flags input. + * In particular, FT_Get_Advance() without the NO_HINTING flag seems to be + * buggy. * - * - FreeType works in 26.6 mode. Clients can decide to use that mode, and everything + * FreeType works in 26.6 mode. Clients can decide to use that mode, and everything * would work fine. However, we also abuse this API for performing in font-space, * but don't pass the correct flags to FreeType. We just abuse the no-hinting mode * for that, such that no rounding etc happens. As such, we don't set ppem, and - * pass NO_HINTING as load_flags. Would be much better to use NO_SCALE, and scale - * ourselves, like we do in uniscribe, etc. + * pass NO_HINTING around. This seems to work best, until we go ahead and add a full + * load_flags API. * * - We don't handle / allow for emboldening / obliqueing. * @@ -66,127 +66,24 @@ */ -struct hb_ft_font_t -{ - FT_Face ft_face; - int load_flags; - bool unref; /* Whether to destroy ft_face when done. */ -}; - -static hb_ft_font_t * -_hb_ft_font_create (FT_Face ft_face, bool unref) -{ - hb_ft_font_t *ft_font = (hb_ft_font_t *) calloc (1, sizeof (hb_ft_font_t)); - - if (unlikely (!ft_font)) - return NULL; - - ft_font->ft_face = ft_face; - ft_font->unref = unref; - - ft_font->load_flags = FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING; - - return ft_font; -} - -static void -_hb_ft_font_destroy (hb_ft_font_t *ft_font) -{ - if (ft_font->unref) - FT_Done_Face (ft_font->ft_face); - - free (ft_font); -} - -/** - * hb_ft_font_set_load_flags: - * @font: - * @load_flags: - * - * - * - * Since: 1.0.5 - **/ -void -hb_ft_font_set_load_flags (hb_font_t *font, int load_flags) -{ - if (font->immutable) - return; - - if (font->destroy != (hb_destroy_func_t) _hb_ft_font_destroy) - return; - - hb_ft_font_t *ft_font = (hb_ft_font_t *) font->user_data; - - ft_font->load_flags = load_flags; -} - -/** - * hb_ft_font_get_load_flags: - * @font: - * - * - * - * Return value: - * Since: 1.0.5 - **/ -int -hb_ft_font_get_load_flags (hb_font_t *font) -{ - if (font->destroy != (hb_destroy_func_t) _hb_ft_font_destroy) - return 0; - - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font->user_data; - - return ft_font->load_flags; -} - -FT_Face -hb_ft_font_get_face (hb_font_t *font) -{ - if (font->destroy != (hb_destroy_func_t) _hb_ft_font_destroy) - return NULL; - - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font->user_data; - - return ft_font->ft_face; -} - - - static hb_bool_t -hb_ft_get_nominal_glyph (hb_font_t *font HB_UNUSED, - void *font_data, - hb_codepoint_t unicode, - hb_codepoint_t *glyph, - void *user_data HB_UNUSED) -{ - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; - unsigned int g = FT_Get_Char_Index (ft_font->ft_face, unicode); - - if (unlikely (!g)) - return false; +hb_ft_get_glyph (hb_font_t *font HB_UNUSED, + void *font_data, + hb_codepoint_t unicode, + hb_codepoint_t variation_selector, + hb_codepoint_t *glyph, + void *user_data HB_UNUSED) - *glyph = g; - return true; -} - -static hb_bool_t -hb_ft_get_variation_glyph (hb_font_t *font HB_UNUSED, - void *font_data, - hb_codepoint_t unicode, - hb_codepoint_t variation_selector, - hb_codepoint_t *glyph, - void *user_data HB_UNUSED) { - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; - unsigned int g = FT_Face_GetCharVariantIndex (ft_font->ft_face, unicode, variation_selector); + FT_Face ft_face = (FT_Face) font_data; - if (unlikely (!g)) - return false; + if (unlikely (variation_selector)) { + *glyph = FT_Face_GetCharVariantIndex (ft_face, unicode, variation_selector); + return *glyph != 0; + } - *glyph = g; - return true; + *glyph = FT_Get_Char_Index (ft_face, unicode); + return *glyph != 0; } static hb_position_t @@ -195,10 +92,11 @@ hb_ft_get_glyph_h_advance (hb_font_t *font HB_UNUSED, hb_codepoint_t glyph, void *user_data HB_UNUSED) { - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; + FT_Face ft_face = (FT_Face) font_data; + int load_flags = FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING; FT_Fixed v; - if (unlikely (FT_Get_Advance (ft_font->ft_face, glyph, ft_font->load_flags, &v))) + if (unlikely (FT_Get_Advance (ft_face, glyph, load_flags, &v))) return 0; if (font->x_scale < 0) @@ -213,10 +111,11 @@ hb_ft_get_glyph_v_advance (hb_font_t *font HB_UNUSED, hb_codepoint_t glyph, void *user_data HB_UNUSED) { - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; + FT_Face ft_face = (FT_Face) font_data; + int load_flags = FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING | FT_LOAD_VERTICAL_LAYOUT; FT_Fixed v; - if (unlikely (FT_Get_Advance (ft_font->ft_face, glyph, ft_font->load_flags | FT_LOAD_VERTICAL_LAYOUT, &v))) + if (unlikely (FT_Get_Advance (ft_face, glyph, load_flags, &v))) return 0; if (font->y_scale < 0) @@ -228,6 +127,18 @@ hb_ft_get_glyph_v_advance (hb_font_t *font HB_UNUSED, } static hb_bool_t +hb_ft_get_glyph_h_origin (hb_font_t *font HB_UNUSED, + void *font_data HB_UNUSED, + hb_codepoint_t glyph HB_UNUSED, + hb_position_t *x HB_UNUSED, + hb_position_t *y HB_UNUSED, + void *user_data HB_UNUSED) +{ + /* We always work in the horizontal coordinates. */ + return true; +} + +static hb_bool_t hb_ft_get_glyph_v_origin (hb_font_t *font HB_UNUSED, void *font_data, hb_codepoint_t glyph, @@ -235,10 +146,10 @@ hb_ft_get_glyph_v_origin (hb_font_t *font HB_UNUSED, hb_position_t *y, void *user_data HB_UNUSED) { - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; - FT_Face ft_face = ft_font->ft_face; + FT_Face ft_face = (FT_Face) font_data; + int load_flags = FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING; - if (unlikely (FT_Load_Glyph (ft_face, glyph, ft_font->load_flags))) + if (unlikely (FT_Load_Glyph (ft_face, glyph, load_flags))) return false; /* Note: FreeType's vertical metrics grows downward while other FreeType coordinates @@ -261,16 +172,27 @@ hb_ft_get_glyph_h_kerning (hb_font_t *font, hb_codepoint_t right_glyph, void *user_data HB_UNUSED) { - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; + FT_Face ft_face = (FT_Face) font_data; FT_Vector kerningv; FT_Kerning_Mode mode = font->x_ppem ? FT_KERNING_DEFAULT : FT_KERNING_UNFITTED; - if (FT_Get_Kerning (ft_font->ft_face, left_glyph, right_glyph, mode, &kerningv)) + if (FT_Get_Kerning (ft_face, left_glyph, right_glyph, mode, &kerningv)) return 0; return kerningv.x; } +static hb_position_t +hb_ft_get_glyph_v_kerning (hb_font_t *font HB_UNUSED, + void *font_data HB_UNUSED, + hb_codepoint_t top_glyph HB_UNUSED, + hb_codepoint_t bottom_glyph HB_UNUSED, + void *user_data HB_UNUSED) +{ + /* FreeType API doesn't support vertical kerning */ + return 0; +} + static hb_bool_t hb_ft_get_glyph_extents (hb_font_t *font HB_UNUSED, void *font_data, @@ -278,26 +200,16 @@ hb_ft_get_glyph_extents (hb_font_t *font HB_UNUSED, hb_glyph_extents_t *extents, void *user_data HB_UNUSED) { - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; - FT_Face ft_face = ft_font->ft_face; + FT_Face ft_face = (FT_Face) font_data; + int load_flags = FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING; - if (unlikely (FT_Load_Glyph (ft_face, glyph, ft_font->load_flags))) + if (unlikely (FT_Load_Glyph (ft_face, glyph, load_flags))) return false; extents->x_bearing = ft_face->glyph->metrics.horiBearingX; extents->y_bearing = ft_face->glyph->metrics.horiBearingY; extents->width = ft_face->glyph->metrics.width; extents->height = -ft_face->glyph->metrics.height; - if (font->x_scale < 0) - { - extents->x_bearing = -extents->x_bearing; - extents->width = -extents->width; - } - if (font->y_scale < 0) - { - extents->y_bearing = -extents->y_bearing; - extents->height = -extents->height; - } return true; } @@ -310,10 +222,10 @@ hb_ft_get_glyph_contour_point (hb_font_t *font HB_UNUSED, hb_position_t *y, void *user_data HB_UNUSED) { - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; - FT_Face ft_face = ft_font->ft_face; + FT_Face ft_face = (FT_Face) font_data; + int load_flags = FT_LOAD_DEFAULT; - if (unlikely (FT_Load_Glyph (ft_face, glyph, ft_font->load_flags))) + if (unlikely (FT_Load_Glyph (ft_face, glyph, load_flags))) return false; if (unlikely (ft_face->glyph->format != FT_GLYPH_FORMAT_OUTLINE)) @@ -335,9 +247,9 @@ hb_ft_get_glyph_name (hb_font_t *font HB_UNUSED, char *name, unsigned int size, void *user_data HB_UNUSED) { - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; + FT_Face ft_face = (FT_Face) font_data; - hb_bool_t ret = !FT_Get_Glyph_Name (ft_font->ft_face, glyph, name, size); + hb_bool_t ret = !FT_Get_Glyph_Name (ft_face, glyph, name, size); if (ret && (size && !*name)) ret = false; @@ -351,8 +263,7 @@ hb_ft_get_glyph_from_name (hb_font_t *font HB_UNUSED, hb_codepoint_t *glyph, void *user_data HB_UNUSED) { - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; - FT_Face ft_face = ft_font->ft_face; + FT_Face ft_face = (FT_Face) font_data; if (len < 0) *glyph = FT_Get_Name_Index (ft_face, (FT_String *) name); @@ -377,77 +288,23 @@ hb_ft_get_glyph_from_name (hb_font_t *font HB_UNUSED, return *glyph != 0; } -static hb_bool_t -hb_ft_get_font_h_extents (hb_font_t *font HB_UNUSED, - void *font_data, - hb_font_extents_t *metrics, - void *user_data HB_UNUSED) -{ - const hb_ft_font_t *ft_font = (const hb_ft_font_t *) font_data; - FT_Face ft_face = ft_font->ft_face; - metrics->ascender = ft_face->size->metrics.ascender; - metrics->descender = ft_face->size->metrics.descender; - metrics->line_gap = ft_face->size->metrics.height - (ft_face->size->metrics.ascender - ft_face->size->metrics.descender); - if (font->y_scale < 0) - { - metrics->ascender = -metrics->ascender; - metrics->descender = -metrics->descender; - metrics->line_gap = -metrics->line_gap; - } - return true; -} - -static hb_font_funcs_t *static_ft_funcs = NULL; -#ifdef HB_USE_ATEXIT -static -void free_static_ft_funcs (void) +static hb_font_funcs_t * +_hb_ft_get_font_funcs (void) { - hb_font_funcs_destroy (static_ft_funcs); -} -#endif + static const hb_font_funcs_t ft_ffuncs = { + HB_OBJECT_HEADER_STATIC, -static void -_hb_ft_font_set_funcs (hb_font_t *font, FT_Face ft_face, bool unref) -{ -retry: - hb_font_funcs_t *funcs = (hb_font_funcs_t *) hb_atomic_ptr_get (&static_ft_funcs); + true, /* immutable */ - if (unlikely (!funcs)) - { - funcs = hb_font_funcs_create (); - - hb_font_funcs_set_font_h_extents_func (funcs, hb_ft_get_font_h_extents, NULL, NULL); - //hb_font_funcs_set_font_v_extents_func (funcs, hb_ft_get_font_v_extents, NULL, NULL); - hb_font_funcs_set_nominal_glyph_func (funcs, hb_ft_get_nominal_glyph, NULL, NULL); - hb_font_funcs_set_variation_glyph_func (funcs, hb_ft_get_variation_glyph, NULL, NULL); - hb_font_funcs_set_glyph_h_advance_func (funcs, hb_ft_get_glyph_h_advance, NULL, NULL); - hb_font_funcs_set_glyph_v_advance_func (funcs, hb_ft_get_glyph_v_advance, NULL, NULL); - //hb_font_funcs_set_glyph_h_origin_func (funcs, hb_ft_get_glyph_h_origin, NULL, NULL); - hb_font_funcs_set_glyph_v_origin_func (funcs, hb_ft_get_glyph_v_origin, NULL, NULL); - hb_font_funcs_set_glyph_h_kerning_func (funcs, hb_ft_get_glyph_h_kerning, NULL, NULL); - //hb_font_funcs_set_glyph_v_kerning_func (funcs, hb_ft_get_glyph_v_kerning, NULL, NULL); - hb_font_funcs_set_glyph_extents_func (funcs, hb_ft_get_glyph_extents, NULL, NULL); - hb_font_funcs_set_glyph_contour_point_func (funcs, hb_ft_get_glyph_contour_point, NULL, NULL); - hb_font_funcs_set_glyph_name_func (funcs, hb_ft_get_glyph_name, NULL, NULL); - hb_font_funcs_set_glyph_from_name_func (funcs, hb_ft_get_glyph_from_name, NULL, NULL); - - hb_font_funcs_make_immutable (funcs); - - if (!hb_atomic_ptr_cmpexch (&static_ft_funcs, NULL, funcs)) { - hb_font_funcs_destroy (funcs); - goto retry; + { +#define HB_FONT_FUNC_IMPLEMENT(name) hb_ft_get_##name, + HB_FONT_FUNCS_IMPLEMENT_CALLBACKS +#undef HB_FONT_FUNC_IMPLEMENT } - -#ifdef HB_USE_ATEXIT - atexit (free_static_ft_funcs); /* First person registers atexit() callback. */ -#endif }; - hb_font_set_funcs (font, - funcs, - _hb_ft_font_create (ft_face, unref), - (hb_destroy_func_t) _hb_ft_font_destroy); + return const_cast (&ft_ffuncs); } @@ -486,7 +343,7 @@ reference_table (hb_face_t *face HB_UNUSED, hb_tag_t tag, void *user_data) * * * Return value: (transfer full): - * Since: 0.9.2 + * Since: 1.0 **/ hb_face_t * hb_ft_face_create (FT_Face ft_face, @@ -520,7 +377,7 @@ hb_ft_face_create (FT_Face ft_face, * * * Return value: (transfer full): - * Since: 0.9.38 + * Since: 1.0 **/ hb_face_t * hb_ft_face_create_referenced (FT_Face ft_face) @@ -542,7 +399,7 @@ hb_ft_face_finalize (FT_Face ft_face) * * * Return value: (transfer full): - * Since: 0.9.2 + * Since: 1.0 **/ hb_face_t * hb_ft_face_create_cached (FT_Face ft_face) @@ -559,6 +416,11 @@ hb_ft_face_create_cached (FT_Face ft_face) return hb_face_reference ((hb_face_t *) ft_face->generic.data); } +static void +_do_nothing (void) +{ +} + /** * hb_ft_font_create: @@ -568,7 +430,7 @@ hb_ft_face_create_cached (FT_Face ft_face) * * * Return value: (transfer full): - * Since: 0.9.2 + * Since: 1.0 **/ hb_font_t * hb_ft_font_create (FT_Face ft_face, @@ -580,7 +442,9 @@ hb_ft_font_create (FT_Face ft_face, face = hb_ft_face_create (ft_face, destroy); font = hb_font_create (face); hb_face_destroy (face); - _hb_ft_font_set_funcs (font, ft_face, false); + hb_font_set_funcs (font, + _hb_ft_get_font_funcs (), + ft_face, (hb_destroy_func_t) _do_nothing); hb_font_set_scale (font, (int) (((uint64_t) ft_face->size->metrics.x_scale * (uint64_t) ft_face->units_per_EM + (1<<15)) >> 16), (int) (((uint64_t) ft_face->size->metrics.y_scale * (uint64_t) ft_face->units_per_EM + (1<<15)) >> 16)); @@ -600,7 +464,7 @@ hb_ft_font_create (FT_Face ft_face, * * * Return value: (transfer full): - * Since: 0.9.38 + * Since: 1.0 **/ hb_font_t * hb_ft_font_create_referenced (FT_Face ft_face) @@ -694,6 +558,18 @@ hb_ft_font_set_funcs (hb_font_t *font) ft_face->generic.data = blob; ft_face->generic.finalizer = (FT_Generic_Finalizer) _release_blob; - _hb_ft_font_set_funcs (font, ft_face, true); - hb_ft_font_set_load_flags (font, FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING); + hb_font_set_funcs (font, + _hb_ft_get_font_funcs (), + ft_face, + (hb_destroy_func_t) FT_Done_Face); +} + +FT_Face +hb_ft_font_get_face (hb_font_t *font) +{ + if (font->destroy == (hb_destroy_func_t) FT_Done_Face || + font->destroy == (hb_destroy_func_t) _do_nothing) + return (FT_Face) font->user_data; + + return NULL; } diff --git a/src/hb-ft.h b/src/hb-ft.h index dc8ef85..92f4b36 100644 --- a/src/hb-ft.h +++ b/src/hb-ft.h @@ -1,6 +1,5 @@ /* * Copyright © 2009 Red Hat, Inc. - * Copyright © 2015 Google, Inc. * * This is part of HarfBuzz, a text shaping library. * @@ -23,7 +22,6 @@ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * Red Hat Author(s): Behdad Esfahbod - * Google Author(s): Behdad Esfahbod */ #ifndef HB_FT_H @@ -59,7 +57,7 @@ HB_BEGIN_DECLS * probably should use (the more recent) hb_ft_face_create_referenced() * instead. */ -HB_EXTERN hb_face_t * +hb_face_t * hb_ft_face_create (FT_Face ft_face, hb_destroy_func_t destroy); @@ -71,7 +69,7 @@ hb_ft_face_create (FT_Face ft_face, * Client is still responsible for making sure that ft-face is destroyed * after hb-face is. */ -HB_EXTERN hb_face_t * +hb_face_t * hb_ft_face_create_cached (FT_Face ft_face); /* This version is like hb_ft_face_create(), except that it calls @@ -81,7 +79,7 @@ hb_ft_face_create_cached (FT_Face ft_face); * This is the most convenient version to use. Use it unless you have * very good reasons not to. */ -HB_EXTERN hb_face_t * +hb_face_t * hb_ft_face_create_referenced (FT_Face ft_face); @@ -98,28 +96,23 @@ hb_ft_face_create_referenced (FT_Face ft_face); /* See notes on hb_ft_face_create(). Same issues re lifecycle-management * apply here. Use hb_ft_font_create_referenced() if you can. */ -HB_EXTERN hb_font_t * +hb_font_t * hb_ft_font_create (FT_Face ft_face, hb_destroy_func_t destroy); /* See notes on hb_ft_face_create_referenced() re lifecycle-management * issues. */ -HB_EXTERN hb_font_t * +hb_font_t * hb_ft_font_create_referenced (FT_Face ft_face); -HB_EXTERN FT_Face -hb_ft_font_get_face (hb_font_t *font); - -HB_EXTERN void -hb_ft_font_set_load_flags (hb_font_t *font, int load_flags); - -HB_EXTERN int -hb_ft_font_get_load_flags (hb_font_t *font); /* Makes an hb_font_t use FreeType internally to implement font functions. */ -HB_EXTERN void +void hb_ft_font_set_funcs (hb_font_t *font); +FT_Face +hb_ft_font_get_face (hb_font_t *font); + HB_END_DECLS diff --git a/src/hb-glib.cc b/src/hb-glib.cc index e203524..61dff5e 100644 --- a/src/hb-glib.cc +++ b/src/hb-glib.cc @@ -382,11 +382,6 @@ hb_glib_get_unicode_funcs (void) return const_cast (&_hb_glib_unicode_funcs); } -/** - * hb_glib_blob_create: - * - * Since: 0.9.38 - **/ hb_blob_t * hb_glib_blob_create (GBytes *gbytes) { diff --git a/src/hb-glib.h b/src/hb-glib.h index 12c3e3b..1a8f42e 100644 --- a/src/hb-glib.h +++ b/src/hb-glib.h @@ -36,17 +36,17 @@ HB_BEGIN_DECLS -HB_EXTERN hb_script_t +hb_script_t hb_glib_script_to_script (GUnicodeScript script); -HB_EXTERN GUnicodeScript +GUnicodeScript hb_glib_script_from_script (hb_script_t script); -HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_t * hb_glib_get_unicode_funcs (void); -HB_EXTERN hb_blob_t * +hb_blob_t * hb_glib_blob_create (GBytes *gbytes); diff --git a/src/hb-gobject-enums.h.tmpl b/src/hb-gobject-enums.h.tmpl index e28510c..6ecda06 100644 --- a/src/hb-gobject-enums.h.tmpl +++ b/src/hb-gobject-enums.h.tmpl @@ -42,7 +42,7 @@ HB_BEGIN_DECLS /*** END file-header ***/ /*** BEGIN value-header ***/ -HB_EXTERN GType @enum_name@_get_type (void) G_GNUC_CONST; +GType @enum_name@_get_type (void) G_GNUC_CONST; #define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) /*** END value-header ***/ diff --git a/src/hb-gobject-structs.cc b/src/hb-gobject-structs.cc index 6bd6336..2451b66 100644 --- a/src/hb-gobject-structs.cc +++ b/src/hb-gobject-structs.cc @@ -54,17 +54,6 @@ hb_gobject_##name##_get_type (void) \ #define HB_DEFINE_OBJECT_TYPE(name) \ HB_DEFINE_BOXED_TYPE (name, hb_##name##_reference, hb_##name##_destroy); -#define HB_DEFINE_VALUE_TYPE(name) \ - static hb_##name##_t *_hb_##name##_reference (const hb_##name##_t *l) \ - { \ - hb_##name##_t *c = (hb_##name##_t *) calloc (1, sizeof (hb_##name##_t)); \ - if (unlikely (!c)) return NULL; \ - *c = *l; \ - return c; \ - } \ - static void _hb_##name##_destroy (hb_##name##_t *l) { free (l); } \ - HB_DEFINE_BOXED_TYPE (name, _hb_##name##_reference, _hb_##name##_destroy); - HB_DEFINE_OBJECT_TYPE (buffer) HB_DEFINE_OBJECT_TYPE (blob) HB_DEFINE_OBJECT_TYPE (face) @@ -73,8 +62,59 @@ HB_DEFINE_OBJECT_TYPE (font_funcs) HB_DEFINE_OBJECT_TYPE (set) HB_DEFINE_OBJECT_TYPE (shape_plan) HB_DEFINE_OBJECT_TYPE (unicode_funcs) -HB_DEFINE_VALUE_TYPE (feature) -HB_DEFINE_VALUE_TYPE (glyph_info) -HB_DEFINE_VALUE_TYPE (glyph_position) -HB_DEFINE_VALUE_TYPE (segment_properties) -HB_DEFINE_VALUE_TYPE (user_data_key) + + +static hb_feature_t *feature_reference (hb_feature_t *g) +{ + hb_feature_t *c = (hb_feature_t *) calloc (1, sizeof (hb_feature_t)); + if (unlikely (!c)) return NULL; + *c = *g; + return c; +} +static void feature_destroy (hb_feature_t *g) { free (g); } +HB_DEFINE_BOXED_TYPE (feature, feature_reference, feature_destroy) + +static hb_glyph_info_t *glyph_info_reference (hb_glyph_info_t *g) +{ + hb_glyph_info_t *c = (hb_glyph_info_t *) calloc (1, sizeof (hb_glyph_info_t)); + if (unlikely (!c)) return NULL; + *c = *g; + return c; +} +static void glyph_info_destroy (hb_glyph_info_t *g) { free (g); } +HB_DEFINE_BOXED_TYPE (glyph_info, glyph_info_reference, glyph_info_destroy) + +static hb_glyph_position_t *glyph_position_reference (hb_glyph_position_t *g) +{ + hb_glyph_position_t *c = (hb_glyph_position_t *) calloc (1, sizeof (hb_glyph_position_t)); + if (unlikely (!c)) return NULL; + *c = *g; + return c; +} +static void glyph_position_destroy (hb_glyph_position_t *g) { free (g); } +HB_DEFINE_BOXED_TYPE (glyph_position, glyph_position_reference, glyph_position_destroy) + +static hb_segment_properties_t *segment_properties_reference (hb_segment_properties_t *g) +{ + hb_segment_properties_t *c = (hb_segment_properties_t *) calloc (1, sizeof (hb_segment_properties_t)); + if (unlikely (!c)) return NULL; + *c = *g; + return c; +} +static void segment_properties_destroy (hb_segment_properties_t *g) { free (g); } +HB_DEFINE_BOXED_TYPE (segment_properties, segment_properties_reference, segment_properties_destroy) + +static hb_user_data_key_t user_data_key_reference (hb_user_data_key_t l) { return l; } +static void user_data_key_destroy (hb_user_data_key_t l) { } +HB_DEFINE_BOXED_TYPE (user_data_key, user_data_key_reference, user_data_key_destroy) + + +static hb_language_t *language_reference (hb_language_t *l) +{ + hb_language_t *c = (hb_language_t *) calloc (1, sizeof (hb_language_t)); + if (unlikely (!c)) return NULL; + *c = *l; + return c; +} +static void language_destroy (hb_language_t *l) { free (l); } +HB_DEFINE_BOXED_TYPE (language, language_reference, language_destroy) diff --git a/src/hb-gobject-structs.h b/src/hb-gobject-structs.h index 0ea3b12..4a88d56 100644 --- a/src/hb-gobject-structs.h +++ b/src/hb-gobject-structs.h @@ -40,65 +40,55 @@ HB_BEGIN_DECLS /* Object types */ -/** - * Since: 0.9.2 - **/ -HB_EXTERN GType hb_gobject_blob_get_type (void); +GType hb_gobject_blob_get_type (void); #define HB_GOBJECT_TYPE_BLOB (hb_gobject_blob_get_type ()) -/** - * Since: 0.9.2 - **/ -HB_EXTERN GType hb_gobject_buffer_get_type (void); +GType hb_gobject_buffer_get_type (void); #define HB_GOBJECT_TYPE_BUFFER (hb_gobject_buffer_get_type ()) -/** - * Since: 0.9.2 - **/ -HB_EXTERN GType hb_gobject_face_get_type (void); +GType hb_gobject_face_get_type (void); #define HB_GOBJECT_TYPE_FACE (hb_gobject_face_get_type ()) -/** - * Since: 0.9.2 - **/ -HB_EXTERN GType hb_gobject_font_get_type (void); +GType hb_gobject_font_get_type (void); #define HB_GOBJECT_TYPE_FONT (hb_gobject_font_get_type ()) -/** - * Since: 0.9.2 - **/ -HB_EXTERN GType hb_gobject_font_funcs_get_type (void); +GType hb_gobject_font_funcs_get_type (void); #define HB_GOBJECT_TYPE_FONT_FUNCS (hb_gobject_font_funcs_get_type ()) -HB_EXTERN GType hb_gobject_set_get_type (void); +GType hb_gobject_set_get_type (void); #define HB_GOBJECT_TYPE_SET (hb_gobject_set_get_type ()) -HB_EXTERN GType hb_gobject_shape_plan_get_type (void); +GType hb_gobject_shape_plan_get_type (void); #define HB_GOBJECT_TYPE_SHAPE_PLAN (hb_gobject_shape_plan_get_type ()) -/** - * Since: 0.9.2 - **/ -HB_EXTERN GType hb_gobject_unicode_funcs_get_type (void); +GType hb_gobject_unicode_funcs_get_type (void); #define HB_GOBJECT_TYPE_UNICODE_FUNCS (hb_gobject_unicode_funcs_get_type ()) /* Value types */ -HB_EXTERN GType hb_gobject_feature_get_type (void); +GType hb_gobject_feature_get_type (void); #define HB_GOBJECT_TYPE_FEATURE (hb_gobject_feature_get_type ()) -HB_EXTERN GType hb_gobject_glyph_info_get_type (void); +GType hb_gobject_glyph_info_get_type (void); #define HB_GOBJECT_TYPE_GLYPH_INFO (hb_gobject_glyph_info_get_type ()) -HB_EXTERN GType hb_gobject_glyph_position_get_type (void); +GType hb_gobject_glyph_position_get_type (void); #define HB_GOBJECT_TYPE_GLYPH_POSITION (hb_gobject_glyph_position_get_type ()) -HB_EXTERN GType hb_gobject_segment_properties_get_type (void); +GType hb_gobject_segment_properties_get_type (void); #define HB_GOBJECT_TYPE_SEGMENT_PROPERTIES (hb_gobject_segment_properties_get_type ()) -HB_EXTERN GType hb_gobject_user_data_key_get_type (void); +GType hb_gobject_user_data_key_get_type (void); #define HB_GOBJECT_TYPE_USER_DATA_KEY (hb_gobject_user_data_key_get_type ()) +/* Currently gobject-introspection doesn't understand that hb_language_t + * can be passed by-value. As such we box it up. May remove in the + * future. + * + * https://bugzilla.gnome.org/show_bug.cgi?id=707656 + */ +GType hb_gobject_language_get_type (void); +#define HB_GOBJECT_TYPE_LANGUAGE (hb_gobject_language_get_type ()) HB_END_DECLS diff --git a/src/hb-graphite2.cc b/src/hb-graphite2.cc index c32318d..807c330 100644 --- a/src/hb-graphite2.cc +++ b/src/hb-graphite2.cc @@ -138,9 +138,6 @@ _hb_graphite2_shaper_face_data_destroy (hb_graphite2_shaper_face_data_t *data) free (data); } -/* - * Since: 0.9.10 - */ gr_face * hb_graphite2_face_get_gr_face (hb_face_t *face) { @@ -175,9 +172,6 @@ _hb_graphite2_shaper_font_data_destroy (hb_graphite2_shaper_font_data_t *data) gr_font_destroy (data); } -/* - * Since: 0.9.10 - */ gr_font * hb_graphite2_font_get_gr_font (hb_font_t *font) { @@ -216,7 +210,6 @@ struct hb_graphite2_cluster_t { unsigned int base_glyph; unsigned int num_glyphs; unsigned int cluster; - float advance; }; hb_bool_t @@ -235,11 +228,12 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan, int lang_len = lang_end ? lang_end - lang : -1; gr_feature_val *feats = gr_face_featureval_for_lang (grface, lang ? hb_tag_from_string (lang, lang_len) : 0); - for (unsigned int i = 0; i < num_features; i++) + while (num_features--) { - const gr_feature_ref *fref = gr_face_find_fref (grface, features[i].tag); + const gr_feature_ref *fref = gr_face_find_fref (grface, features->tag); if (fref) - gr_fref_set_feature_value (fref, features[i].value, feats); + gr_fref_set_feature_value (fref, features->value, feats); + features++; } gr_segment *seg = NULL; @@ -255,8 +249,6 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan, for (unsigned int i = 0; i < buffer->len; ++i) chars[i] = buffer->info[i].codepoint; - /* TODO ensure_native_direction. */ - hb_tag_t script_tag[2]; hb_ot_tags_from_script (hb_buffer_get_script (buffer), &script_tag[0], &script_tag[1]); @@ -275,11 +267,9 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan, if (unlikely (!glyph_count)) { if (feats) gr_featureval_destroy (feats); gr_seg_destroy (seg); - buffer->len = 0; - return true; + return false; } - buffer->ensure (glyph_count); scratch = buffer->get_scratch_buffer (&scratch_size); while ((DIV_CEIL (sizeof (hb_graphite2_cluster_t) * buffer->len, sizeof (*scratch)) + DIV_CEIL (sizeof (hb_codepoint_t) * glyph_count, sizeof (*scratch))) > scratch_size) @@ -311,12 +301,6 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan, hb_codepoint_t *pg = gids; clusters[0].cluster = buffer->info[0].cluster; - float curradv = HB_DIRECTION_IS_BACKWARD(buffer->props.direction) ? gr_slot_origin_X(gr_seg_first_slot(seg)) : 0.; - if (HB_DIRECTION_IS_BACKWARD(buffer->props.direction)) - { - curradv = gr_slot_origin_X(gr_seg_first_slot(seg)); - clusters[0].advance = gr_seg_advance_X(seg) - curradv; - } for (is = gr_seg_first_slot (seg), ic = 0; is; is = gr_slot_next_in_segment (is), ic++) { unsigned int before = gr_slot_before (is); @@ -327,7 +311,6 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan, { clusters[ci-1].num_chars += clusters[ci].num_chars; clusters[ci-1].num_glyphs += clusters[ci].num_glyphs; - clusters[ci-1].advance += clusters[ci].advance; ci--; } @@ -339,26 +322,16 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan, c->num_chars = before - c->base_char; c->base_glyph = ic; c->num_glyphs = 0; - if (HB_DIRECTION_IS_BACKWARD(buffer->props.direction)) - { - ci++; - clusters[ci].advance = curradv - gr_slot_origin_X(is); - } else { - clusters[ci].advance = gr_slot_origin_X(is) - curradv; - ci++; - } - curradv = gr_slot_origin_X(is); + ci++; } clusters[ci].num_glyphs++; if (clusters[ci].base_char + clusters[ci].num_chars < after + 1) clusters[ci].num_chars = after + 1 - clusters[ci].base_char; } - - if (!HB_DIRECTION_IS_BACKWARD(buffer->props.direction)) - clusters[ci].advance = gr_seg_advance_X(seg) - curradv; ci++; + //buffer->clear_output (); for (unsigned int i = 0; i < ci; ++i) { for (unsigned int j = 0; j < clusters[i].num_glyphs; ++j) @@ -366,57 +339,35 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan, hb_glyph_info_t *info = &buffer->info[clusters[i].base_glyph + j]; info->codepoint = gids[clusters[i].base_glyph + j]; info->cluster = clusters[i].cluster; - info->var1.i32 = clusters[i].advance; // all glyphs in the cluster get the same advance } } buffer->len = glyph_count; + //buffer->swap_buffers (); - float yscale = font->y_scale / font->x_scale; - /* Positioning. */ - if (!HB_DIRECTION_IS_BACKWARD(buffer->props.direction)) + if (HB_DIRECTION_IS_BACKWARD(buffer->props.direction)) + curradvx = gr_seg_advance_X(seg); + + hb_glyph_position_t *pPos; + for (pPos = hb_buffer_get_glyph_positions (buffer, NULL), is = gr_seg_first_slot (seg); + is; pPos++, is = gr_slot_next_in_segment (is)) { - int currclus = -1; - const hb_glyph_info_t *info = buffer->info; - hb_glyph_position_t *pPos = hb_buffer_get_glyph_positions (buffer, NULL); - curradvx = 0; - for (is = gr_seg_first_slot (seg); is; pPos++, ++info, is = gr_slot_next_in_segment (is)) - { - pPos->x_offset = gr_slot_origin_X (is) - curradvx; - pPos->y_offset = gr_slot_origin_Y (is) * yscale - curradvy; - if (info->cluster != currclus) { - pPos->x_advance = info->var1.i32; - curradvx += pPos->x_advance; - currclus = info->cluster; - } else - pPos->x_advance = 0.; - - pPos->y_advance = gr_slot_advance_Y (is, grface, grfont) * yscale; - curradvy += pPos->y_advance; - } + pPos->x_offset = gr_slot_origin_X (is) - curradvx; + pPos->y_offset = gr_slot_origin_Y (is) - curradvy; + pPos->x_advance = gr_slot_advance_X (is, grface, grfont); + pPos->y_advance = gr_slot_advance_Y (is, grface, grfont); + if (HB_DIRECTION_IS_BACKWARD (buffer->props.direction)) + curradvx -= pPos->x_advance; + pPos->x_offset = gr_slot_origin_X (is) - curradvx; + if (!HB_DIRECTION_IS_BACKWARD (buffer->props.direction)) + curradvx += pPos->x_advance; + pPos->y_offset = gr_slot_origin_Y (is) - curradvy; + curradvy += pPos->y_advance; } - else - { - int currclus = -1; - const hb_glyph_info_t *info = buffer->info; - hb_glyph_position_t *pPos = hb_buffer_get_glyph_positions (buffer, NULL); - curradvx = gr_seg_advance_X(seg); - for (is = gr_seg_first_slot (seg); is; pPos++, info++, is = gr_slot_next_in_segment (is)) - { - if (info->cluster != currclus) - { - pPos->x_advance = info->var1.i32; - if (currclus != -1) curradvx -= info[-1].var1.i32; - currclus = info->cluster; - } else - pPos->x_advance = 0.; - - pPos->y_advance = gr_slot_advance_Y (is, grface, grfont) * yscale; - curradvy -= pPos->y_advance; - pPos->x_offset = gr_slot_origin_X (is) - curradvx + pPos->x_advance; - pPos->y_offset = gr_slot_origin_Y (is) * yscale - curradvy; - } + if (!HB_DIRECTION_IS_BACKWARD (buffer->props.direction)) + pPos[-1].x_advance += gr_seg_advance_X(seg) - curradvx; + + if (HB_DIRECTION_IS_BACKWARD (buffer->props.direction)) hb_buffer_reverse_clusters (buffer); - } if (feats) gr_featureval_destroy (feats); gr_seg_destroy (seg); diff --git a/src/hb-graphite2.h b/src/hb-graphite2.h index 122c3e4..3eae54a 100644 --- a/src/hb-graphite2.h +++ b/src/hb-graphite2.h @@ -36,10 +36,10 @@ HB_BEGIN_DECLS #define HB_GRAPHITE2_TAG_SILF HB_TAG('S','i','l','f') -HB_EXTERN gr_face * +gr_face * hb_graphite2_face_get_gr_face (hb_face_t *face); -HB_EXTERN gr_font * +gr_font * hb_graphite2_font_get_gr_font (hb_font_t *font); diff --git a/src/hb-icu.cc b/src/hb-icu.cc index ee54721..24cec9d 100644 --- a/src/hb-icu.cc +++ b/src/hb-icu.cc @@ -36,7 +36,6 @@ #include #include #include -#include #include diff --git a/src/hb-icu.h b/src/hb-icu.h index 2db6a7b..f2f35f0 100644 --- a/src/hb-icu.h +++ b/src/hb-icu.h @@ -36,14 +36,14 @@ HB_BEGIN_DECLS -HB_EXTERN hb_script_t +hb_script_t hb_icu_script_to_script (UScriptCode script); -HB_EXTERN UScriptCode +UScriptCode hb_icu_script_from_script (hb_script_t script); -HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_t * hb_icu_get_unicode_funcs (void); diff --git a/src/hb-mutex-private.hh b/src/hb-mutex-private.hh index ed27035..a8ea39c 100644 --- a/src/hb-mutex-private.hh +++ b/src/hb-mutex-private.hh @@ -39,13 +39,7 @@ /* We need external help for these */ -#if defined(HB_MUTEX_IMPL_INIT) \ - && defined(hb_mutex_impl_init) \ - && defined(hb_mutex_impl_lock) \ - && defined(hb_mutex_impl_unlock) \ - && defined(hb_mutex_impl_finish) - -/* Defined externally, i.e. in config.h; must have typedef'ed hb_mutex_impl_t as well. */ +#if 0 #elif !defined(HB_NO_MT) && (defined(_WIN32) || defined(__CYGWIN__)) @@ -119,12 +113,10 @@ typedef int hb_mutex_impl_t; #define hb_mutex_impl_unlock(M) HB_STMT_START {} HB_STMT_END #define hb_mutex_impl_finish(M) HB_STMT_START {} HB_STMT_END - #endif #define HB_MUTEX_INIT {HB_MUTEX_IMPL_INIT} - struct hb_mutex_t { /* TODO Add tracing. */ diff --git a/src/hb-object-private.hh b/src/hb-object-private.hh index 6b73ff9..7bd0f16 100644 --- a/src/hb-object-private.hh +++ b/src/hb-object-private.hh @@ -47,22 +47,19 @@ /* reference_count */ -#define HB_REFERENCE_COUNT_INERT_VALUE -1 -#define HB_REFERENCE_COUNT_POISON_VALUE -0x0000DEAD -#define HB_REFERENCE_COUNT_INIT {HB_ATOMIC_INT_INIT(HB_REFERENCE_COUNT_INERT_VALUE)} - +#define HB_REFERENCE_COUNT_INVALID_VALUE ((hb_atomic_int_t) -1) +#define HB_REFERENCE_COUNT_INVALID {HB_REFERENCE_COUNT_INVALID_VALUE} struct hb_reference_count_t { hb_atomic_int_t ref_count; - inline void init (int v) { ref_count.set_unsafe (v); } - inline int get_unsafe (void) const { return ref_count.get_unsafe (); } - inline int inc (void) { return ref_count.inc (); } - inline int dec (void) { return ref_count.dec (); } - inline void finish (void) { ref_count.set_unsafe (HB_REFERENCE_COUNT_POISON_VALUE); } + inline void init (int v) { ref_count = v; } + inline int inc (void) { return hb_atomic_int_add (const_cast (ref_count), 1); } + inline int dec (void) { return hb_atomic_int_add (const_cast (ref_count), -1); } + inline void finish (void) { ref_count = HB_REFERENCE_COUNT_INVALID_VALUE; } + + inline bool is_invalid (void) const { return ref_count == HB_REFERENCE_COUNT_INVALID_VALUE; } - inline bool is_inert (void) const { return ref_count.get_unsafe () == HB_REFERENCE_COUNT_INERT_VALUE; } - inline bool is_valid (void) const { return ref_count.get_unsafe () > 0; } }; @@ -105,7 +102,7 @@ struct hb_object_header_t hb_reference_count_t ref_count; hb_user_data_array_t user_data; -#define HB_OBJECT_HEADER_STATIC {HB_REFERENCE_COUNT_INIT, HB_USER_DATA_ARRAY_INIT} +#define HB_OBJECT_HEADER_STATIC {HB_REFERENCE_COUNT_INVALID, HB_USER_DATA_ARRAY_INIT} private: ASSERT_POD (); @@ -120,7 +117,7 @@ static inline void hb_object_trace (const Type *obj, const char *function) DEBUG_MSG (OBJECT, (void *) obj, "%s refcount=%d", function, - obj ? obj->header.ref_count.get_unsafe () : 0); + obj ? obj->header.ref_count.ref_count : 0); } template @@ -144,12 +141,7 @@ static inline void hb_object_init (Type *obj) template static inline bool hb_object_is_inert (const Type *obj) { - return unlikely (obj->header.ref_count.is_inert ()); -} -template -static inline bool hb_object_is_valid (const Type *obj) -{ - return likely (obj->header.ref_count.is_valid ()); + return unlikely (obj->header.ref_count.is_invalid ()); } template static inline Type *hb_object_reference (Type *obj) @@ -157,7 +149,6 @@ static inline Type *hb_object_reference (Type *obj) hb_object_trace (obj, HB_FUNC); if (unlikely (!obj || hb_object_is_inert (obj))) return obj; - assert (hb_object_is_valid (obj)); obj->header.ref_count.inc (); return obj; } @@ -167,7 +158,6 @@ static inline bool hb_object_destroy (Type *obj) hb_object_trace (obj, HB_FUNC); if (unlikely (!obj || hb_object_is_inert (obj))) return false; - assert (hb_object_is_valid (obj)); if (obj->header.ref_count.dec () != 1) return false; @@ -184,7 +174,6 @@ static inline bool hb_object_set_user_data (Type *obj, { if (unlikely (!obj || hb_object_is_inert (obj))) return false; - assert (hb_object_is_valid (obj)); return obj->header.user_data.set (key, data, destroy, replace); } @@ -194,7 +183,6 @@ static inline void *hb_object_get_user_data (Type *obj, { if (unlikely (!obj || hb_object_is_inert (obj))) return NULL; - assert (hb_object_is_valid (obj)); return obj->header.user_data.get (key); } diff --git a/src/hb-open-file-private.hh b/src/hb-open-file-private.hh index 5357ddc..178bc7c 100644 --- a/src/hb-open-file-private.hh +++ b/src/hb-open-file-private.hh @@ -56,7 +56,7 @@ typedef struct TableRecord inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this)); + return TRACE_RETURN (c->check_struct (this)); } Tag tag; /* 4-byte identifier. */ @@ -106,7 +106,7 @@ typedef struct OffsetTable inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && c->check_array (tables, TableRecord::static_size, numTables)); + return TRACE_RETURN (c->check_struct (this) && c->check_array (tables, TableRecord::static_size, numTables)); } protected: @@ -135,12 +135,12 @@ struct TTCHeaderVersion1 inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (table.sanitize (c, this)); + return TRACE_RETURN (table.sanitize (c, this)); } protected: Tag ttcTag; /* TrueType Collection ID string: 'ttcf' */ - FixedVersion<>version; /* Version of the TTC Header (1.0), + FixedVersion version; /* Version of the TTC Header (1.0), * 0x00010000u */ ArrayOf, ULONG> table; /* Array of offsets to the OffsetTable for each font @@ -175,11 +175,11 @@ struct TTCHeader inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - if (unlikely (!u.header.version.sanitize (c))) return_trace (false); + if (unlikely (!u.header.version.sanitize (c))) return TRACE_RETURN (false); switch (u.header.version.major) { case 2: /* version 2 is compatible with version 1 */ - case 1: return_trace (u.version1.sanitize (c)); - default:return_trace (true); + case 1: return TRACE_RETURN (u.version1.sanitize (c)); + default:return TRACE_RETURN (true); } } @@ -187,7 +187,7 @@ struct TTCHeader union { struct { Tag ttcTag; /* TrueType Collection ID string: 'ttcf' */ - FixedVersion<>version; /* Version of the TTC Header (1.0 or 2.0), + FixedVersion version; /* Version of the TTC Header (1.0 or 2.0), * 0x00010000u or 0x00020000u */ } header; TTCHeaderVersion1 version1; @@ -240,14 +240,14 @@ struct OpenTypeFontFile inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - if (unlikely (!u.tag.sanitize (c))) return_trace (false); + if (unlikely (!u.tag.sanitize (c))) return TRACE_RETURN (false); switch (u.tag) { case CFFTag: /* All the non-collection tags */ case TrueTag: case Typ1Tag: - case TrueTypeTag: return_trace (u.fontFace.sanitize (c)); - case TTCTag: return_trace (u.ttcHeader.sanitize (c)); - default: return_trace (true); + case TrueTypeTag: return TRACE_RETURN (u.fontFace.sanitize (c)); + case TTCTag: return TRACE_RETURN (u.ttcHeader.sanitize (c)); + default: return TRACE_RETURN (true); } } diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index df683ca..75a0f56 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -101,8 +101,10 @@ static inline Type& StructAfter(TObject &X) #define DEFINE_SIZE_STATIC(size) \ DEFINE_INSTANCE_ASSERTION (sizeof (*this) == (size)); \ static const unsigned int static_size = (size); \ - static const unsigned int min_size = (size); \ - inline unsigned int get_size (void) const { return (size); } + static const unsigned int min_size = (size) + +/* Size signifying variable-sized array */ +#define VAR 1 #define DEFINE_SIZE_UNION(size, _member) \ DEFINE_INSTANCE_ASSERTION (this->u._member.static_size == (size)); \ @@ -152,20 +154,6 @@ ASSERT_STATIC (Type::min_size + 1 <= sizeof (_Null##Type)) #define Null(Type) Null() -/* - * Dispatch - */ - -template -struct hb_dispatch_context_t -{ - static const unsigned int max_debug_depth = MaxDebugDepth; - typedef Return return_t; - template - inline bool may_dispatch (const T *obj, const F *format) { return true; } - static return_t no_dispatch_return_value (void) { return Context::default_return_value (); } -}; - /* * Sanitize @@ -183,26 +171,20 @@ struct hb_dispatch_context_t /* This limits sanitizing time on really broken fonts. */ #ifndef HB_SANITIZE_MAX_EDITS -#define HB_SANITIZE_MAX_EDITS 32 +#define HB_SANITIZE_MAX_EDITS 100 #endif -struct hb_sanitize_context_t : - hb_dispatch_context_t +struct hb_sanitize_context_t { - inline hb_sanitize_context_t (void) : - debug_depth (0), - start (NULL), end (NULL), - writable (false), edit_count (0), - blob (NULL) {} - inline const char *get_name (void) { return "SANITIZE"; } + static const unsigned int max_debug_depth = HB_DEBUG_SANITIZE; + typedef bool return_t; template inline bool may_dispatch (const T *obj, const F *format) { return format->sanitize (this); } template inline return_t dispatch (const T &obj) { return obj.sanitize (this); } static return_t default_return_value (void) { return true; } - static return_t no_dispatch_return_value (void) { return false; } bool stop_sublookup_iteration (const return_t r) const { return !r; } inline void init (hb_blob_t *b) @@ -313,7 +295,7 @@ template struct Sanitizer { static hb_blob_t *sanitize (hb_blob_t *blob) { - hb_sanitize_context_t c[1]; + hb_sanitize_context_t c[1] = {{0, NULL, NULL, false, 0, NULL}}; bool sane; /* TODO is_sane() stuff */ @@ -397,9 +379,9 @@ struct Sanitizer struct hb_serialize_context_t { - inline hb_serialize_context_t (void *start_, unsigned int size) + inline hb_serialize_context_t (void *start, unsigned int size) { - this->start = (char *) start_; + this->start = (char *) start; this->end = this->start + size; this->ran_out_of_room = false; @@ -493,10 +475,10 @@ struct hb_serialize_context_t return reinterpret_cast (&obj); } - inline void truncate (void *new_head) + inline void truncate (void *head) { - assert (this->start < new_head && new_head <= this->head); - this->head = (char *) new_head; + assert (this->start < head && head <= this->head); + this->head = (char *) head; } unsigned int debug_depth; @@ -554,20 +536,6 @@ struct Supplier template struct BEInt; template -struct BEInt -{ - public: - inline void set (Type V) - { - v = V; - } - inline operator Type (void) const - { - return v; - } - private: uint8_t v; -}; -template struct BEInt { public: @@ -642,7 +610,7 @@ struct IntType inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (likely (c->check_struct (this))); + return TRACE_RETURN (likely (c->check_struct (this))); } protected: BEInt v; @@ -650,7 +618,7 @@ struct IntType DEFINE_SIZE_STATIC (Size); }; -typedef IntType BYTE; /* 8-bit unsigned integer. */ +typedef uint8_t BYTE; /* 8-bit unsigned integer. */ typedef IntType USHORT; /* 16-bit unsigned integer. */ typedef IntType SHORT; /* 16-bit signed integer. */ typedef IntType ULONG; /* 32-bit unsigned integer. */ @@ -663,24 +631,6 @@ typedef SHORT FWORD; /* 16-bit unsigned integer (USHORT) that describes a quantity in FUnits. */ typedef USHORT UFWORD; -/* 16-bit signed fixed number with the low 14 bits of fraction (2.14). */ -struct F2DOT14 : SHORT -{ - //inline float to_float (void) const { return ???; } - //inline void set_float (float f) { v.set (f * ???); } - public: - DEFINE_SIZE_STATIC (2); -}; - -/* 32-bit signed fixed-point number (16.16). */ -struct Fixed: LONG -{ - //inline float to_float (void) const { return ???; } - //inline void set_float (float f) { v.set (f * ???); } - public: - DEFINE_SIZE_STATIC (4); -}; - /* Date represented in number of seconds since 12:00 midnight, January 1, * 1904. The value is represented as a signed 64-bit integer. */ struct LONGDATETIME @@ -688,7 +638,7 @@ struct LONGDATETIME inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (likely (c->check_struct (this))); + return TRACE_RETURN (likely (c->check_struct (this))); } protected: LONG major; @@ -758,21 +708,20 @@ struct CheckSum : ULONG * Version Numbers */ -template struct FixedVersion { - inline uint32_t to_int (void) const { return (major << (sizeof(FixedType) * 8)) + minor; } + inline uint32_t to_int (void) const { return (major << 16) + minor; } inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this)); + return TRACE_RETURN (c->check_struct (this)); } - FixedType major; - FixedType minor; + USHORT major; + USHORT minor; public: - DEFINE_SIZE_STATIC (2 * sizeof(FixedType)); + DEFINE_SIZE_STATIC (4); }; @@ -802,21 +751,21 @@ struct OffsetTo : Offset inline bool sanitize (hb_sanitize_context_t *c, const void *base) const { TRACE_SANITIZE (this); - if (unlikely (!c->check_struct (this))) return_trace (false); + if (unlikely (!c->check_struct (this))) return TRACE_RETURN (false); unsigned int offset = *this; - if (unlikely (!offset)) return_trace (true); + if (unlikely (!offset)) return TRACE_RETURN (true); const Type &obj = StructAtOffset (base, offset); - return_trace (likely (obj.sanitize (c)) || neuter (c)); + return TRACE_RETURN (likely (obj.sanitize (c)) || neuter (c)); } template inline bool sanitize (hb_sanitize_context_t *c, const void *base, T user_data) const { TRACE_SANITIZE (this); - if (unlikely (!c->check_struct (this))) return_trace (false); + if (unlikely (!c->check_struct (this))) return TRACE_RETURN (false); unsigned int offset = *this; - if (unlikely (!offset)) return_trace (true); + if (unlikely (!offset)) return TRACE_RETURN (true); const Type &obj = StructAtOffset (base, offset); - return_trace (likely (obj.sanitize (c, user_data)) || neuter (c)); + return TRACE_RETURN (likely (obj.sanitize (c, user_data)) || neuter (c)); } /* Set the offset to Null */ @@ -867,10 +816,10 @@ struct ArrayOf unsigned int items_len) { TRACE_SERIALIZE (this); - if (unlikely (!c->extend_min (*this))) return_trace (false); + if (unlikely (!c->extend_min (*this))) return TRACE_RETURN (false); len.set (items_len); /* TODO(serialize) Overflow? */ - if (unlikely (!c->extend (*this))) return_trace (false); - return_trace (true); + if (unlikely (!c->extend (*this))) return TRACE_RETURN (false); + return TRACE_RETURN (true); } inline bool serialize (hb_serialize_context_t *c, @@ -878,17 +827,17 @@ struct ArrayOf unsigned int items_len) { TRACE_SERIALIZE (this); - if (unlikely (!serialize (c, items_len))) return_trace (false); + if (unlikely (!serialize (c, items_len))) return TRACE_RETURN (false); for (unsigned int i = 0; i < items_len; i++) array[i] = items[i]; items.advance (items_len); - return_trace (true); + return TRACE_RETURN (true); } inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - if (unlikely (!sanitize_shallow (c))) return_trace (false); + if (unlikely (!sanitize_shallow (c))) return TRACE_RETURN (false); /* Note: for structs that do not reference other structs, * we do not need to call their sanitize() as we already did @@ -899,28 +848,28 @@ struct ArrayOf */ (void) (false && array[0].sanitize (c)); - return_trace (true); + return TRACE_RETURN (true); } inline bool sanitize (hb_sanitize_context_t *c, const void *base) const { TRACE_SANITIZE (this); - if (unlikely (!sanitize_shallow (c))) return_trace (false); + if (unlikely (!sanitize_shallow (c))) return TRACE_RETURN (false); unsigned int count = len; for (unsigned int i = 0; i < count; i++) if (unlikely (!array[i].sanitize (c, base))) - return_trace (false); - return_trace (true); + return TRACE_RETURN (false); + return TRACE_RETURN (true); } template inline bool sanitize (hb_sanitize_context_t *c, const void *base, T user_data) const { TRACE_SANITIZE (this); - if (unlikely (!sanitize_shallow (c))) return_trace (false); + if (unlikely (!sanitize_shallow (c))) return TRACE_RETURN (false); unsigned int count = len; for (unsigned int i = 0; i < count; i++) if (unlikely (!array[i].sanitize (c, base, user_data))) - return_trace (false); - return_trace (true); + return TRACE_RETURN (false); + return TRACE_RETURN (true); } template @@ -937,7 +886,7 @@ struct ArrayOf inline bool sanitize_shallow (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && c->check_array (array, Type::static_size, len)); + return TRACE_RETURN (c->check_struct (this) && c->check_array (this, Type::static_size, len)); } public: @@ -964,13 +913,13 @@ struct OffsetListOf : OffsetArrayOf inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (OffsetArrayOf::sanitize (c, this)); + return TRACE_RETURN (OffsetArrayOf::sanitize (c, this)); } template inline bool sanitize (hb_sanitize_context_t *c, T user_data) const { TRACE_SANITIZE (this); - return_trace (OffsetArrayOf::sanitize (c, this, user_data)); + return TRACE_RETURN (OffsetArrayOf::sanitize (c, this, user_data)); } }; @@ -992,14 +941,14 @@ struct HeadlessArrayOf unsigned int items_len) { TRACE_SERIALIZE (this); - if (unlikely (!c->extend_min (*this))) return_trace (false); + if (unlikely (!c->extend_min (*this))) return TRACE_RETURN (false); len.set (items_len); /* TODO(serialize) Overflow? */ - if (unlikely (!items_len)) return_trace (true); - if (unlikely (!c->extend (*this))) return_trace (false); + if (unlikely (!items_len)) return TRACE_RETURN (true); + if (unlikely (!c->extend (*this))) return TRACE_RETURN (false); for (unsigned int i = 0; i < items_len - 1; i++) array[i] = items[i]; items.advance (items_len - 1); - return_trace (true); + return TRACE_RETURN (true); } inline bool sanitize_shallow (hb_sanitize_context_t *c) const @@ -1011,7 +960,7 @@ struct HeadlessArrayOf inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - if (unlikely (!sanitize_shallow (c))) return_trace (false); + if (unlikely (!sanitize_shallow (c))) return TRACE_RETURN (false); /* Note: for structs that do not reference other structs, * we do not need to call their sanitize() as we already did @@ -1022,7 +971,7 @@ struct HeadlessArrayOf */ (void) (false && array[0].sanitize (c)); - return_trace (true); + return TRACE_RETURN (true); } LenType len; diff --git a/src/hb-ot-cmap-table.hh b/src/hb-ot-cmap-table.hh index d7a94a1..0482312 100644 --- a/src/hb-ot-cmap-table.hh +++ b/src/hb-ot-cmap-table.hh @@ -54,7 +54,7 @@ struct CmapSubtableFormat0 inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this)); + return TRACE_RETURN (c->check_struct (this)); } protected: @@ -69,85 +69,68 @@ struct CmapSubtableFormat0 struct CmapSubtableFormat4 { - struct accelerator_t + inline bool get_glyph (hb_codepoint_t codepoint, hb_codepoint_t *glyph) const { - inline void init (const CmapSubtableFormat4 *subtable) - { - segCount = subtable->segCountX2 / 2; - endCount = subtable->values; - startCount = endCount + segCount + 1; - idDelta = startCount + segCount; - idRangeOffset = idDelta + segCount; - glyphIdArray = idRangeOffset + segCount; - glyphIdArrayLength = (subtable->length - 16 - 8 * segCount) / 2; - } - - static inline bool get_glyph_func (const void *obj, hb_codepoint_t codepoint, hb_codepoint_t *glyph) - { - const accelerator_t *thiz = (const accelerator_t *) obj; - - /* Custom two-array bsearch. */ - int min = 0, max = (int) thiz->segCount - 1; - const USHORT *startCount = thiz->startCount; - const USHORT *endCount = thiz->endCount; - unsigned int i; - while (min <= max) - { - int mid = (min + max) / 2; - if (codepoint < startCount[mid]) - max = mid - 1; - else if (codepoint > endCount[mid]) - min = mid + 1; - else - { - i = mid; - goto found; - } - } - return false; - - found: - hb_codepoint_t gid; - unsigned int rangeOffset = thiz->idRangeOffset[i]; - if (rangeOffset == 0) - gid = codepoint + thiz->idDelta[i]; - else - { - /* Somebody has been smoking... */ - unsigned int index = rangeOffset / 2 + (codepoint - thiz->startCount[i]) + i - thiz->segCount; - if (unlikely (index >= thiz->glyphIdArrayLength)) - return false; - gid = thiz->glyphIdArray[index]; - if (unlikely (!gid)) - return false; - gid += thiz->idDelta[i]; - } - - *glyph = gid & 0xFFFFu; - return true; - } - + unsigned int segCount; const USHORT *endCount; const USHORT *startCount; const USHORT *idDelta; const USHORT *idRangeOffset; const USHORT *glyphIdArray; - unsigned int segCount; unsigned int glyphIdArrayLength; - }; - inline bool get_glyph (hb_codepoint_t codepoint, hb_codepoint_t *glyph) const - { - accelerator_t accel; - accel.init (this); - return accel.get_glyph_func (&accel, codepoint, glyph); + segCount = this->segCountX2 / 2; + endCount = this->values; + startCount = endCount + segCount + 1; + idDelta = startCount + segCount; + idRangeOffset = idDelta + segCount; + glyphIdArray = idRangeOffset + segCount; + glyphIdArrayLength = (this->length - 16 - 8 * segCount) / 2; + + /* Custom two-array bsearch. */ + int min = 0, max = (int) segCount - 1; + unsigned int i; + while (min <= max) + { + int mid = (min + max) / 2; + if (codepoint < startCount[mid]) + max = mid - 1; + else if (codepoint > endCount[mid]) + min = mid + 1; + else + { + i = mid; + goto found; + } + } + return false; + + found: + hb_codepoint_t gid; + unsigned int rangeOffset = idRangeOffset[i]; + if (rangeOffset == 0) + gid = codepoint + idDelta[i]; + else + { + /* Somebody has been smoking... */ + unsigned int index = rangeOffset / 2 + (codepoint - startCount[i]) + i - segCount; + if (unlikely (index >= glyphIdArrayLength)) + return false; + gid = glyphIdArray[index]; + if (unlikely (!gid)) + return false; + gid += idDelta[i]; + } + + *glyph = gid & 0xFFFFu; + return true; } inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); if (unlikely (!c->check_struct (this))) - return_trace (false); + return TRACE_RETURN (false); if (unlikely (!c->check_range (this, length))) { @@ -158,10 +141,10 @@ struct CmapSubtableFormat4 (uintptr_t) (c->end - (char *) this)); if (!c->try_set (&length, new_length)) - return_trace (false); + return TRACE_RETURN (false); } - return_trace (16 + 4 * (unsigned int) segCountX2 <= length); + return TRACE_RETURN (16 + 4 * (unsigned int) segCountX2 <= length); } protected: @@ -204,7 +187,7 @@ struct CmapSubtableLongGroup inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this)); + return TRACE_RETURN (c->check_struct (this)); } private: @@ -232,7 +215,7 @@ struct CmapSubtableTrimmed inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && glyphIdArray.sanitize (c)); + return TRACE_RETURN (c->check_struct (this) && glyphIdArray.sanitize (c)); } protected: @@ -265,7 +248,7 @@ struct CmapSubtableLongSegmented inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && groups.sanitize (c)); + return TRACE_RETURN (c->check_struct (this) && groups.sanitize (c)); } protected: @@ -312,7 +295,7 @@ struct UnicodeValueRange inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this)); + return TRACE_RETURN (c->check_struct (this)); } UINT24 startUnicodeValue; /* First value in this range. */ @@ -334,7 +317,7 @@ struct UVSMapping inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this)); + return TRACE_RETURN (c->check_struct (this)); } UINT24 unicodeValue; /* Base Unicode value of the UVS */ @@ -374,9 +357,9 @@ struct VariationSelectorRecord inline bool sanitize (hb_sanitize_context_t *c, const void *base) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && - defaultUVS.sanitize (c, base) && - nonDefaultUVS.sanitize (c, base)); + return TRACE_RETURN (c->check_struct (this) && + defaultUVS.sanitize (c, base) && + nonDefaultUVS.sanitize (c, base)); } UINT24 varSelector; /* Variation selector. */ @@ -400,12 +383,12 @@ struct CmapSubtableFormat14 inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && - record.sanitize (c, this)); + return TRACE_RETURN (c->check_struct (this) && + record.sanitize (c, this)); } protected: - USHORT format; /* Format number is set to 14. */ + USHORT format; /* Format number is set to 0. */ ULONG lengthZ; /* Byte length of this subtable. */ SortedArrayOf record; /* Variation selector records; sorted @@ -433,23 +416,33 @@ struct CmapSubtable } } + inline glyph_variant_t get_glyph_variant (hb_codepoint_t codepoint, + hb_codepoint_t variation_selector, + hb_codepoint_t *glyph) const + { + switch (u.format) { + case 14: return u.format14.get_glyph_variant(codepoint, variation_selector, glyph); + default: return GLYPH_VARIANT_NOT_FOUND; + } + } + inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - if (!u.format.sanitize (c)) return_trace (false); + if (!u.format.sanitize (c)) return TRACE_RETURN (false); switch (u.format) { - case 0: return_trace (u.format0 .sanitize (c)); - case 4: return_trace (u.format4 .sanitize (c)); - case 6: return_trace (u.format6 .sanitize (c)); - case 10: return_trace (u.format10.sanitize (c)); - case 12: return_trace (u.format12.sanitize (c)); - case 13: return_trace (u.format13.sanitize (c)); - case 14: return_trace (u.format14.sanitize (c)); - default:return_trace (true); + case 0: return TRACE_RETURN (u.format0 .sanitize (c)); + case 4: return TRACE_RETURN (u.format4 .sanitize (c)); + case 6: return TRACE_RETURN (u.format6 .sanitize (c)); + case 10: return TRACE_RETURN (u.format10.sanitize (c)); + case 12: return TRACE_RETURN (u.format12.sanitize (c)); + case 13: return TRACE_RETURN (u.format13.sanitize (c)); + case 14: return TRACE_RETURN (u.format14.sanitize (c)); + default:return TRACE_RETURN (true); } } - public: + protected: union { USHORT format; /* Format identifier */ CmapSubtableFormat0 format0; @@ -480,8 +473,8 @@ struct EncodingRecord inline bool sanitize (hb_sanitize_context_t *c, const void *base) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && - subtable.sanitize (c, base)); + return TRACE_RETURN (c->check_struct (this) && + subtable.sanitize (c, base)); } USHORT platformID; /* Platform ID. */ @@ -516,9 +509,9 @@ struct cmap inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && - likely (version == 0) && - encodingRecord.sanitize (c, this)); + return TRACE_RETURN (c->check_struct (this) && + likely (version == 0) && + encodingRecord.sanitize (c, this)); } USHORT version; /* Table version number (0). */ diff --git a/src/hb-ot-font.cc b/src/hb-ot-font.cc index 39fc849..2af2f54 100644 --- a/src/hb-ot-font.cc +++ b/src/hb-ot-font.cc @@ -31,12 +31,8 @@ #include "hb-font-private.hh" #include "hb-ot-cmap-table.hh" -#include "hb-ot-glyf-table.hh" -#include "hb-ot-head-table.hh" #include "hb-ot-hhea-table.hh" #include "hb-ot-hmtx-table.hh" -#include "hb-ot-os2-table.hh" -//#include "hb-ot-post-table.hh" struct hb_ot_face_metrics_accelerator_t @@ -44,58 +40,24 @@ struct hb_ot_face_metrics_accelerator_t unsigned int num_metrics; unsigned int num_advances; unsigned int default_advance; - unsigned short ascender; - unsigned short descender; - unsigned short line_gap; - const OT::_mtx *table; hb_blob_t *blob; inline void init (hb_face_t *face, - hb_tag_t _hea_tag, - hb_tag_t _mtx_tag, - hb_tag_t os2_tag) + hb_tag_t _hea_tag, hb_tag_t _mtx_tag, + unsigned int default_advance) { - this->default_advance = face->get_upem (); - - bool got_font_extents = false; - if (os2_tag) - { - hb_blob_t *os2_blob = OT::Sanitizer::sanitize (face->reference_table (os2_tag)); - const OT::os2 *os2 = OT::Sanitizer::lock_instance (os2_blob); -#define USE_TYPO_METRICS (1u<<7) - if (0 != (os2->fsSelection & USE_TYPO_METRICS)) - { - this->ascender = os2->sTypoAscender; - this->descender = os2->sTypoDescender; - this->line_gap = os2->sTypoLineGap; - got_font_extents = (this->ascender | this->descender) != 0; - } - hb_blob_destroy (os2_blob); - } + this->default_advance = default_advance; + this->num_metrics = face->get_num_glyphs (); hb_blob_t *_hea_blob = OT::Sanitizer::sanitize (face->reference_table (_hea_tag)); const OT::_hea *_hea = OT::Sanitizer::lock_instance (_hea_blob); this->num_advances = _hea->numberOfLongMetrics; - if (!got_font_extents) - { - this->ascender = _hea->ascender; - this->descender = _hea->descender; - this->line_gap = _hea->lineGap; - } hb_blob_destroy (_hea_blob); this->blob = OT::Sanitizer::sanitize (face->reference_table (_mtx_tag)); - - /* Cap num_metrics() and num_advances() based on table length. */ - unsigned int len = hb_blob_get_length (this->blob); - if (unlikely (this->num_advances * 4 > len)) - this->num_advances = len / 4; - this->num_metrics = this->num_advances + (len - 4 * this->num_advances) / 2; - - /* We MUST set num_metrics to zero if num_advances is zero. - * Our get_advance() depends on that. */ - if (unlikely (!this->num_advances)) + if (unlikely (!this->num_advances || + 2 * (this->num_advances + this->num_metrics) < hb_blob_get_length (this->blob))) { this->num_metrics = this->num_advances = 0; hb_blob_destroy (this->blob); @@ -114,8 +76,8 @@ struct hb_ot_face_metrics_accelerator_t if (unlikely (glyph >= this->num_metrics)) { /* If this->num_metrics is zero, it means we don't have the metrics table - * for this direction: return default advance. Otherwise, it means that the - * glyph index is out of bound: return zero. */ + * for this direction: return one EM. Otherwise, it means that the glyph + * index is out of bound: return zero. */ if (this->num_metrics) return 0; else @@ -129,99 +91,10 @@ struct hb_ot_face_metrics_accelerator_t } }; -struct hb_ot_face_glyf_accelerator_t -{ - bool short_offset; - unsigned int num_glyphs; - const OT::loca *loca; - const OT::glyf *glyf; - hb_blob_t *loca_blob; - hb_blob_t *glyf_blob; - unsigned int glyf_len; - - inline void init (hb_face_t *face) - { - hb_blob_t *head_blob = OT::Sanitizer::sanitize (face->reference_table (HB_OT_TAG_head)); - const OT::head *head = OT::Sanitizer::lock_instance (head_blob); - if ((unsigned int) head->indexToLocFormat > 1 || head->glyphDataFormat != 0) - { - /* Unknown format. Leave num_glyphs=0, that takes care of disabling us. */ - hb_blob_destroy (head_blob); - return; - } - this->short_offset = 0 == head->indexToLocFormat; - hb_blob_destroy (head_blob); - - this->loca_blob = OT::Sanitizer::sanitize (face->reference_table (HB_OT_TAG_loca)); - this->loca = OT::Sanitizer::lock_instance (this->loca_blob); - this->glyf_blob = OT::Sanitizer::sanitize (face->reference_table (HB_OT_TAG_glyf)); - this->glyf = OT::Sanitizer::lock_instance (this->glyf_blob); - - this->num_glyphs = MAX (1u, hb_blob_get_length (this->loca_blob) / (this->short_offset ? 2 : 4)) - 1; - this->glyf_len = hb_blob_get_length (this->glyf_blob); - } - - inline void fini (void) - { - hb_blob_destroy (this->loca_blob); - hb_blob_destroy (this->glyf_blob); - } - - inline bool get_extents (hb_codepoint_t glyph, - hb_glyph_extents_t *extents) const - { - if (unlikely (glyph >= this->num_glyphs)) - return false; - - unsigned int start_offset, end_offset; - if (this->short_offset) - { - start_offset = 2 * this->loca->u.shortsZ[glyph]; - end_offset = 2 * this->loca->u.shortsZ[glyph + 1]; - } - else - { - start_offset = this->loca->u.longsZ[glyph]; - end_offset = this->loca->u.longsZ[glyph + 1]; - } - - if (start_offset > end_offset || end_offset > this->glyf_len) - return false; - - if (end_offset - start_offset < OT::glyfGlyphHeader::static_size) - return true; /* Empty glyph; zero extents. */ - - const OT::glyfGlyphHeader &glyph_header = OT::StructAtOffset (this->glyf, start_offset); - - extents->x_bearing = MIN (glyph_header.xMin, glyph_header.xMax); - extents->y_bearing = MAX (glyph_header.yMin, glyph_header.yMax); - extents->width = MAX (glyph_header.xMin, glyph_header.xMax) - extents->x_bearing; - extents->height = MIN (glyph_header.yMin, glyph_header.yMax) - extents->y_bearing; - - return true; - } -}; - -typedef bool (*hb_cmap_get_glyph_func_t) (const void *obj, - hb_codepoint_t codepoint, - hb_codepoint_t *glyph); - -template -static inline bool get_glyph_from (const void *obj, - hb_codepoint_t codepoint, - hb_codepoint_t *glyph) -{ - const Type *typed_obj = (const Type *) obj; - return typed_obj->get_glyph (codepoint, glyph); -} - struct hb_ot_face_cmap_accelerator_t { - hb_cmap_get_glyph_func_t get_glyph_func; - const void *get_glyph_data; - OT::CmapSubtableFormat4::accelerator_t format4_accel; - - const OT::CmapSubtableFormat14 *uvs_table; + const OT::CmapSubtable *table; + const OT::CmapSubtable *uvs_table; hb_blob_t *blob; inline void init (hb_face_t *face) @@ -229,7 +102,7 @@ struct hb_ot_face_cmap_accelerator_t this->blob = OT::Sanitizer::sanitize (face->reference_table (HB_OT_TAG_cmap)); const OT::cmap *cmap = OT::Sanitizer::lock_instance (this->blob); const OT::CmapSubtable *subtable = NULL; - const OT::CmapSubtableFormat14 *subtable_uvs = NULL; + const OT::CmapSubtable *subtable_uvs = NULL; /* 32-bit subtables. */ if (!subtable) subtable = cmap->find_subtable (3, 10); @@ -241,35 +114,16 @@ struct hb_ot_face_cmap_accelerator_t if (!subtable) subtable = cmap->find_subtable (0, 2); if (!subtable) subtable = cmap->find_subtable (0, 1); if (!subtable) subtable = cmap->find_subtable (0, 0); - if (!subtable) subtable = cmap->find_subtable (3, 0); /* Meh. */ if (!subtable) subtable = &OT::Null(OT::CmapSubtable); /* UVS subtable. */ - if (!subtable_uvs) - { - const OT::CmapSubtable *st = cmap->find_subtable (0, 5); - if (st && st->u.format == 14) - subtable_uvs = &st->u.format14; - } + if (!subtable_uvs) subtable_uvs = cmap->find_subtable (0, 5); /* Meh. */ - if (!subtable_uvs) subtable_uvs = &OT::Null(OT::CmapSubtableFormat14); + if (!subtable_uvs) subtable_uvs = &OT::Null(OT::CmapSubtable); + this->table = subtable; this->uvs_table = subtable_uvs; - - this->get_glyph_data = subtable; - switch (subtable->u.format) { - /* Accelerate format 4 and format 12. */ - default: this->get_glyph_func = get_glyph_from; break; - case 12: this->get_glyph_func = get_glyph_from; break; - case 4: - { - this->format4_accel.init (&subtable->u.format4); - this->get_glyph_data = &this->format4_accel; - this->get_glyph_func = this->format4_accel.get_glyph_func; - } - break; - } } inline void fini (void) @@ -277,92 +131,49 @@ struct hb_ot_face_cmap_accelerator_t hb_blob_destroy (this->blob); } - inline bool get_nominal_glyph (hb_codepoint_t unicode, - hb_codepoint_t *glyph) const - { - return this->get_glyph_func (this->get_glyph_data, unicode, glyph); - } - - inline bool get_variation_glyph (hb_codepoint_t unicode, - hb_codepoint_t variation_selector, - hb_codepoint_t *glyph) const - { - switch (this->uvs_table->get_glyph_variant (unicode, - variation_selector, - glyph)) - { - case OT::GLYPH_VARIANT_NOT_FOUND: return false; - case OT::GLYPH_VARIANT_FOUND: return true; - case OT::GLYPH_VARIANT_USE_DEFAULT: break; - } - - return get_nominal_glyph (unicode, glyph); - } -}; - -template -struct hb_lazy_loader_t -{ - inline void init (hb_face_t *face_) - { - face = face_; - instance = NULL; - } - - inline void fini (void) - { - if (instance && instance != &OT::Null(T)) - { - instance->fini(); - free (instance); - } - } - - inline const T* operator-> (void) const + inline bool get_glyph (hb_codepoint_t unicode, + hb_codepoint_t variation_selector, + hb_codepoint_t *glyph) const { - retry: - T *p = (T *) hb_atomic_ptr_get (&instance); - if (unlikely (!p)) + if (unlikely (variation_selector)) { - p = (T *) calloc (1, sizeof (T)); - if (unlikely (!p)) - return &OT::Null(T); - p->init (face); - if (unlikely (!hb_atomic_ptr_cmpexch (const_cast(&instance), NULL, p))) + switch (this->uvs_table->get_glyph_variant (unicode, + variation_selector, + glyph)) { - p->fini (); - goto retry; + case OT::GLYPH_VARIANT_NOT_FOUND: return false; + case OT::GLYPH_VARIANT_FOUND: return true; + case OT::GLYPH_VARIANT_USE_DEFAULT: break; } } - return p; - } - private: - hb_face_t *face; - T *instance; + return this->table->get_glyph (unicode, glyph); + } }; + struct hb_ot_font_t { hb_ot_face_cmap_accelerator_t cmap; hb_ot_face_metrics_accelerator_t h_metrics; hb_ot_face_metrics_accelerator_t v_metrics; - hb_lazy_loader_t glyf; }; static hb_ot_font_t * -_hb_ot_font_create (hb_face_t *face) +_hb_ot_font_create (hb_font_t *font) { hb_ot_font_t *ot_font = (hb_ot_font_t *) calloc (1, sizeof (hb_ot_font_t)); + hb_face_t *face = font->face; if (unlikely (!ot_font)) return NULL; + unsigned int upem = face->get_upem (); + ot_font->cmap.init (face); - ot_font->h_metrics.init (face, HB_OT_TAG_hhea, HB_OT_TAG_hmtx, HB_OT_TAG_os2); - ot_font->v_metrics.init (face, HB_OT_TAG_vhea, HB_OT_TAG_vmtx, HB_TAG_NONE); /* TODO Can we do this lazily? */ - ot_font->glyf.init (face); + ot_font->h_metrics.init (face, HB_OT_TAG_hhea, HB_OT_TAG_hmtx, upem>>1); + ot_font->v_metrics.init (face, HB_OT_TAG_vhea, HB_OT_TAG_vmtx, upem); /* TODO Can we do this lazily? */ return ot_font; } @@ -373,54 +184,88 @@ _hb_ot_font_destroy (hb_ot_font_t *ot_font) ot_font->cmap.fini (); ot_font->h_metrics.fini (); ot_font->v_metrics.fini (); - ot_font->glyf.fini (); free (ot_font); } static hb_bool_t -hb_ot_get_nominal_glyph (hb_font_t *font HB_UNUSED, - void *font_data, - hb_codepoint_t unicode, - hb_codepoint_t *glyph, - void *user_data HB_UNUSED) +hb_ot_get_glyph (hb_font_t *font HB_UNUSED, + void *font_data, + hb_codepoint_t unicode, + hb_codepoint_t variation_selector, + hb_codepoint_t *glyph, + void *user_data HB_UNUSED) { const hb_ot_font_t *ot_font = (const hb_ot_font_t *) font_data; - return ot_font->cmap.get_nominal_glyph (unicode, glyph); + return ot_font->cmap.get_glyph (unicode, variation_selector, glyph); } -static hb_bool_t -hb_ot_get_variation_glyph (hb_font_t *font HB_UNUSED, +static hb_position_t +hb_ot_get_glyph_h_advance (hb_font_t *font HB_UNUSED, void *font_data, - hb_codepoint_t unicode, - hb_codepoint_t variation_selector, - hb_codepoint_t *glyph, + hb_codepoint_t glyph, void *user_data HB_UNUSED) { const hb_ot_font_t *ot_font = (const hb_ot_font_t *) font_data; - return ot_font->cmap.get_variation_glyph (unicode, variation_selector, glyph); + return font->em_scale_x (ot_font->h_metrics.get_advance (glyph)); } static hb_position_t -hb_ot_get_glyph_h_advance (hb_font_t *font HB_UNUSED, +hb_ot_get_glyph_v_advance (hb_font_t *font HB_UNUSED, void *font_data, hb_codepoint_t glyph, void *user_data HB_UNUSED) { const hb_ot_font_t *ot_font = (const hb_ot_font_t *) font_data; - return font->em_scale_x (ot_font->h_metrics.get_advance (glyph)); + return font->em_scale_y (-ot_font->v_metrics.get_advance (glyph)); +} + +static hb_bool_t +hb_ot_get_glyph_h_origin (hb_font_t *font HB_UNUSED, + void *font_data HB_UNUSED, + hb_codepoint_t glyph HB_UNUSED, + hb_position_t *x HB_UNUSED, + hb_position_t *y HB_UNUSED, + void *user_data HB_UNUSED) +{ + /* We always work in the horizontal coordinates. */ + return true; +} + +static hb_bool_t +hb_ot_get_glyph_v_origin (hb_font_t *font HB_UNUSED, + void *font_data, + hb_codepoint_t glyph, + hb_position_t *x, + hb_position_t *y, + void *user_data HB_UNUSED) +{ + /* TODO */ + return false; } static hb_position_t -hb_ot_get_glyph_v_advance (hb_font_t *font HB_UNUSED, +hb_ot_get_glyph_h_kerning (hb_font_t *font, void *font_data, - hb_codepoint_t glyph, + hb_codepoint_t left_glyph, + hb_codepoint_t right_glyph, void *user_data HB_UNUSED) { - const hb_ot_font_t *ot_font = (const hb_ot_font_t *) font_data; - return font->em_scale_y (-(int) ot_font->v_metrics.get_advance (glyph)); + /* TODO */ + return 0; +} + +static hb_position_t +hb_ot_get_glyph_v_kerning (hb_font_t *font HB_UNUSED, + void *font_data HB_UNUSED, + hb_codepoint_t top_glyph HB_UNUSED, + hb_codepoint_t bottom_glyph HB_UNUSED, + void *user_data HB_UNUSED) +{ + /* OpenType doesn't have vertical-kerning other than GPOS. */ + return 0; } static hb_bool_t @@ -430,101 +275,69 @@ hb_ot_get_glyph_extents (hb_font_t *font HB_UNUSED, hb_glyph_extents_t *extents, void *user_data HB_UNUSED) { - const hb_ot_font_t *ot_font = (const hb_ot_font_t *) font_data; - bool ret = ot_font->glyf->get_extents (glyph, extents); - extents->x_bearing = font->em_scale_x (extents->x_bearing); - extents->y_bearing = font->em_scale_y (extents->y_bearing); - extents->width = font->em_scale_x (extents->width); - extents->height = font->em_scale_y (extents->height); - return ret; + /* TODO */ + return false; } static hb_bool_t -hb_ot_get_font_h_extents (hb_font_t *font HB_UNUSED, - void *font_data, - hb_font_extents_t *metrics, - void *user_data HB_UNUSED) +hb_ot_get_glyph_contour_point (hb_font_t *font HB_UNUSED, + void *font_data, + hb_codepoint_t glyph, + unsigned int point_index, + hb_position_t *x, + hb_position_t *y, + void *user_data HB_UNUSED) { - const hb_ot_font_t *ot_font = (const hb_ot_font_t *) font_data; - metrics->ascender = font->em_scale_y (ot_font->h_metrics.ascender); - metrics->descender = font->em_scale_y (ot_font->h_metrics.descender); - metrics->line_gap = font->em_scale_y (ot_font->h_metrics.line_gap); - return true; + /* TODO */ + return false; } static hb_bool_t -hb_ot_get_font_v_extents (hb_font_t *font HB_UNUSED, - void *font_data, - hb_font_extents_t *metrics, - void *user_data HB_UNUSED) +hb_ot_get_glyph_name (hb_font_t *font HB_UNUSED, + void *font_data, + hb_codepoint_t glyph, + char *name, unsigned int size, + void *user_data HB_UNUSED) { - const hb_ot_font_t *ot_font = (const hb_ot_font_t *) font_data; - metrics->ascender = font->em_scale_x (ot_font->v_metrics.ascender); - metrics->descender = font->em_scale_x (ot_font->v_metrics.descender); - metrics->line_gap = font->em_scale_x (ot_font->v_metrics.line_gap); - return true; + /* TODO */ + return false; } -static hb_font_funcs_t *static_ot_funcs = NULL; - -#ifdef HB_USE_ATEXIT -static -void free_static_ot_funcs (void) +static hb_bool_t +hb_ot_get_glyph_from_name (hb_font_t *font HB_UNUSED, + void *font_data, + const char *name, int len, /* -1 means nul-terminated */ + hb_codepoint_t *glyph, + void *user_data HB_UNUSED) { - hb_font_funcs_destroy (static_ot_funcs); + /* TODO */ + return false; } -#endif + static hb_font_funcs_t * _hb_ot_get_font_funcs (void) { -retry: - hb_font_funcs_t *funcs = (hb_font_funcs_t *) hb_atomic_ptr_get (&static_ot_funcs); + static const hb_font_funcs_t ot_ffuncs = { + HB_OBJECT_HEADER_STATIC, - if (unlikely (!funcs)) - { - funcs = hb_font_funcs_create (); - - hb_font_funcs_set_font_h_extents_func (funcs, hb_ot_get_font_h_extents, NULL, NULL); - hb_font_funcs_set_font_v_extents_func (funcs, hb_ot_get_font_v_extents, NULL, NULL); - hb_font_funcs_set_nominal_glyph_func (funcs, hb_ot_get_nominal_glyph, NULL, NULL); - hb_font_funcs_set_variation_glyph_func (funcs, hb_ot_get_variation_glyph, NULL, NULL); - hb_font_funcs_set_glyph_h_advance_func (funcs, hb_ot_get_glyph_h_advance, NULL, NULL); - hb_font_funcs_set_glyph_v_advance_func (funcs, hb_ot_get_glyph_v_advance, NULL, NULL); - //hb_font_funcs_set_glyph_h_origin_func (funcs, hb_ot_get_glyph_h_origin, NULL, NULL); - //hb_font_funcs_set_glyph_v_origin_func (funcs, hb_ot_get_glyph_v_origin, NULL, NULL); - //hb_font_funcs_set_glyph_h_kerning_func (funcs, hb_ot_get_glyph_h_kerning, NULL, NULL); TODO - //hb_font_funcs_set_glyph_v_kerning_func (funcs, hb_ot_get_glyph_v_kerning, NULL, NULL); - hb_font_funcs_set_glyph_extents_func (funcs, hb_ot_get_glyph_extents, NULL, NULL); - //hb_font_funcs_set_glyph_contour_point_func (funcs, hb_ot_get_glyph_contour_point, NULL, NULL); TODO - //hb_font_funcs_set_glyph_name_func (funcs, hb_ot_get_glyph_name, NULL, NULL); TODO - //hb_font_funcs_set_glyph_from_name_func (funcs, hb_ot_get_glyph_from_name, NULL, NULL); TODO - - hb_font_funcs_make_immutable (funcs); - - if (!hb_atomic_ptr_cmpexch (&static_ot_funcs, NULL, funcs)) { - hb_font_funcs_destroy (funcs); - goto retry; - } + true, /* immutable */ -#ifdef HB_USE_ATEXIT - atexit (free_static_ot_funcs); /* First person registers atexit() callback. */ -#endif + { +#define HB_FONT_FUNC_IMPLEMENT(name) hb_ot_get_##name, + HB_FONT_FUNCS_IMPLEMENT_CALLBACKS +#undef HB_FONT_FUNC_IMPLEMENT + } }; - return funcs; + return const_cast (&ot_ffuncs); } -/** - * hb_ot_font_set_funcs: - * - * Since: 0.9.28 - **/ void hb_ot_font_set_funcs (hb_font_t *font) { - hb_ot_font_t *ot_font = _hb_ot_font_create (font->face); + hb_ot_font_t *ot_font = _hb_ot_font_create (font); if (unlikely (!ot_font)) return; diff --git a/src/hb-ot-font.h b/src/hb-ot-font.h index 80eaa54..7a8c04a 100644 --- a/src/hb-ot-font.h +++ b/src/hb-ot-font.h @@ -24,10 +24,6 @@ * Google Author(s): Behdad Esfahbod, Roozbeh Pournader */ -#ifndef HB_OT_H_IN -#error "Include instead." -#endif - #ifndef HB_OT_FONT_H #define HB_OT_FONT_H @@ -36,7 +32,7 @@ HB_BEGIN_DECLS -HB_EXTERN void +void hb_ot_font_set_funcs (hb_font_t *font); diff --git a/src/hb-ot-glyf-table.hh b/src/hb-ot-glyf-table.hh deleted file mode 100644 index dc7aa84..0000000 --- a/src/hb-ot-glyf-table.hh +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright © 2015 Google, Inc. - * - * This is part of HarfBuzz, a text shaping library. - * - * Permission is hereby granted, without written agreement and without - * license or royalty fees, to use, copy, modify, and distribute this - * software and its documentation for any purpose, provided that the - * above copyright notice and the following two paragraphs appear in - * all copies of this software. - * - * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR - * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES - * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN - * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS - * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO - * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * Google Author(s): Behdad Esfahbod - */ - -#ifndef HB_OT_GLYF_TABLE_HH -#define HB_OT_GLYF_TABLE_HH - -#include "hb-open-type-private.hh" - - -namespace OT { - - -/* - * loca -- Index to Location - */ - -#define HB_OT_TAG_loca HB_TAG('l','o','c','a') - - -struct loca -{ - static const hb_tag_t tableTag = HB_OT_TAG_loca; - - inline bool sanitize (hb_sanitize_context_t *c) const - { - TRACE_SANITIZE (this); - return_trace (true); - } - - public: - union { - USHORT shortsZ[VAR]; /* Location offset divided by 2. */ - ULONG longsZ[VAR]; /* Location offset. */ - } u; - DEFINE_SIZE_ARRAY (0, u.longsZ); -}; - - -/* - * glyf -- TrueType Glyph Data - */ - -#define HB_OT_TAG_glyf HB_TAG('g','l','y','f') - - -struct glyf -{ - static const hb_tag_t tableTag = HB_OT_TAG_glyf; - - inline bool sanitize (hb_sanitize_context_t *c) const - { - TRACE_SANITIZE (this); - /* We don't check for anything specific here. The users of the - * struct do all the hard work... */ - return_trace (true); - } - - public: - BYTE dataX[VAR]; /* Glyphs data. */ - - DEFINE_SIZE_ARRAY (0, dataX); -}; - -struct glyfGlyphHeader -{ - SHORT numberOfContours; /* If the number of contours is - * greater than or equal to zero, - * this is a simple glyph; if negative, - * this is a composite glyph. */ - FWORD xMin; /* Minimum x for coordinate data. */ - FWORD yMin; /* Minimum y for coordinate data. */ - FWORD xMax; /* Maximum x for coordinate data. */ - FWORD yMax; /* Maximum y for coordinate data. */ - - DEFINE_SIZE_STATIC (10); -}; - -} /* namespace OT */ - - -#endif /* HB_OT_GLYF_TABLE_HH */ diff --git a/src/hb-ot-head-table.hh b/src/hb-ot-head-table.hh index 9c3e51e..268f133 100644 --- a/src/hb-ot-head-table.hh +++ b/src/hb-ot-head-table.hh @@ -55,15 +55,13 @@ struct head inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && - version.major == 1 && - magicNumber == 0x5F0F3CF5u); + return TRACE_RETURN (c->check_struct (this) && likely (version.major == 1)); } protected: - FixedVersion<>version; /* Version of the head table--currently + FixedVersion version; /* Version of the head table--currently * 0x00010000u for version 1.0. */ - FixedVersion<>fontRevision; /* Set by font manufacturer. */ + FixedVersion fontRevision; /* Set by font manufacturer. */ ULONG checkSumAdjustment; /* To compute: set it to 0, sum the * entire font as ULONG, then store * 0xB1B0AFBAu - sum. */ @@ -140,10 +138,9 @@ struct head * 2: Like 1 but also contains neutrals; * -1: Only strongly right to left; * -2: Like -1 but also contains neutrals. */ - public: SHORT indexToLocFormat; /* 0 for short offsets, 1 for long. */ SHORT glyphDataFormat; /* 0 for current format. */ - + public: DEFINE_SIZE_STATIC (54); }; diff --git a/src/hb-ot-hhea-table.hh b/src/hb-ot-hhea-table.hh index c8e9536..992fe55 100644 --- a/src/hb-ot-hhea-table.hh +++ b/src/hb-ot-hhea-table.hh @@ -52,11 +52,11 @@ struct _hea inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && likely (version.major == 1)); + return TRACE_RETURN (c->check_struct (this) && likely (version.major == 1)); } public: - FixedVersion<>version; /* 0x00010000u for version 1.0. */ + FixedVersion version; /* 0x00010000u for version 1.0. */ FWORD ascender; /* Typographic ascent. */ FWORD descender; /* Typographic descent. */ FWORD lineGap; /* Typographic line gap. */ diff --git a/src/hb-ot-hmtx-table.hh b/src/hb-ot-hmtx-table.hh index a9606b3..a0e3855 100644 --- a/src/hb-ot-hmtx-table.hh +++ b/src/hb-ot-hmtx-table.hh @@ -44,8 +44,8 @@ namespace OT { struct LongMetric { - UFWORD advance; /* Advance width/height. */ - FWORD lsb; /* Leading (left/top) side bearing. */ + USHORT advance; /* Advance width/height. */ + SHORT lsb; /* Leading (left/top) side bearing. */ public: DEFINE_SIZE_STATIC (4); }; @@ -62,7 +62,7 @@ struct _mtx TRACE_SANITIZE (this); /* We don't check for anything specific here. The users of the * struct do all the hard work... */ - return_trace (true); + return TRACE_RETURN (true); } public: @@ -74,7 +74,7 @@ struct _mtx * be in the array, but that entry is * required. The last entry applies to * all subsequent glyphs. */ - FWORD leadingBearingX[VAR]; /* Here the advance is assumed + SHORT leadingBearingX[VAR]; /* Here the advance is assumed * to be the same as the advance * for the last entry above. The * number of entries in this array is diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index 34fa1b7..3db7f57 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh @@ -34,14 +34,6 @@ #include "hb-set-private.hh" -#ifndef HB_MAX_NESTING_LEVEL -#define HB_MAX_NESTING_LEVEL 6 -#endif -#ifndef HB_MAX_CONTEXT_LENGTH -#define HB_MAX_CONTEXT_LENGTH 64 -#endif - - namespace OT { @@ -52,6 +44,8 @@ namespace OT { #define NOT_COVERED ((unsigned int) -1) +#define MAX_NESTING_LEVEL 8 +#define MAX_CONTEXT_LENGTH 64 @@ -81,7 +75,7 @@ struct Record { TRACE_SANITIZE (this); const sanitize_closure_t closure = {tag, base}; - return_trace (c->check_struct (this) && offset.sanitize (c, base, &closure)); + return TRACE_RETURN (c->check_struct (this) && offset.sanitize (c, base, &closure)); } Tag tag; /* 4-byte Tag identifier */ @@ -137,7 +131,7 @@ struct RecordListOf : RecordArrayOf inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (RecordArrayOf::sanitize (c, this)); + return TRACE_RETURN (RecordArrayOf::sanitize (c, this)); } }; @@ -151,7 +145,7 @@ struct RangeRecord inline bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this)); + return TRACE_RETURN (c->check_struct (this)); } inline bool intersects (const hb_set_t *glyphs) const { @@ -217,7 +211,7 @@ struct LangSys const Record::sanitize_closure_t * = NULL) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && featureIndex.sanitize (c)); + return TRACE_RETURN (c->check_struct (this) && featureIndex.sanitize (c)); } Offset<> lookupOrderZ; /* = Null (reserved for an offset to a @@ -257,7 +251,7 @@ struct Script const Record