From df88f72dae564eab44d6a09effdb56412db95951 Mon Sep 17 00:00:00 2001 From: Youngbok Shin Date: Mon, 22 Aug 2016 15:14:42 +0900 Subject: [PATCH] Imported Upstream version 2.12.1 --- ChangeLog | 3397 +++++++++++++- INSTALL | 2 +- Makefile.in | 51 +- README | 108 +- aclocal.m4 | 67 +- compile | 2 +- conf.d/10-hinting-full.conf | 13 + conf.d/10-hinting-medium.conf | 13 + conf.d/10-hinting-none.conf | 13 + conf.d/10-hinting-slight.conf | 13 + conf.d/10-scale-bitmap-fonts.conf | 32 +- conf.d/45-latin.conf | 132 +- conf.d/Makefile.am | 5 + conf.d/Makefile.in | 29 +- config.guess | 15 +- config.h.in | 6 +- config.sub | 19 +- configure | 2167 +++++---- configure.ac | 29 +- depcomp | 2 +- doc/FcAtomicCreate.3 | 2 +- doc/FcAtomicDeleteNew.3 | 2 +- doc/FcAtomicDestroy.3 | 2 +- doc/FcAtomicLock.3 | 2 +- doc/FcAtomicNewFile.3 | 2 +- doc/FcAtomicOrigFile.3 | 2 +- doc/FcAtomicReplaceOrig.3 | 2 +- doc/FcAtomicUnlock.3 | 2 +- doc/FcBlanksAdd.3 | 2 +- doc/FcBlanksCreate.3 | 2 +- doc/FcBlanksDestroy.3 | 2 +- doc/FcBlanksIsMember.3 | 2 +- doc/FcCacheCopySet.3 | 2 +- doc/FcCacheCreateTagFile.3 | 2 +- doc/FcCacheDir.3 | 2 +- doc/FcCacheNumFont.3 | 2 +- doc/FcCacheNumSubdir.3 | 2 +- doc/FcCacheSubdir.3 | 2 +- doc/FcCharSetAddChar.3 | 2 +- doc/FcCharSetCopy.3 | 2 +- doc/FcCharSetCount.3 | 2 +- doc/FcCharSetCoverage.3 | 2 +- doc/FcCharSetCreate.3 | 2 +- doc/FcCharSetDelChar.3 | 2 +- doc/FcCharSetDestroy.3 | 2 +- doc/FcCharSetEqual.3 | 2 +- doc/FcCharSetFirstPage.3 | 2 +- doc/FcCharSetHasChar.3 | 2 +- doc/FcCharSetIntersect.3 | 2 +- doc/FcCharSetIntersectCount.3 | 2 +- doc/FcCharSetIsSubset.3 | 2 +- doc/FcCharSetMerge.3 | 2 +- doc/FcCharSetNew.3 | 2 +- doc/FcCharSetNextPage.3 | 2 +- doc/FcCharSetSubtract.3 | 2 +- doc/FcCharSetSubtractCount.3 | 2 +- doc/FcCharSetUnion.3 | 2 +- doc/FcConfigAppFontAddDir.3 | 4 +- doc/FcConfigAppFontAddFile.3 | 2 +- doc/FcConfigAppFontClear.3 | 2 +- doc/FcConfigBuildFonts.3 | 2 +- doc/FcConfigCreate.3 | 2 +- doc/FcConfigDestroy.3 | 2 +- doc/FcConfigEnableHome.3 | 2 +- doc/FcConfigFilename.3 | 2 +- doc/FcConfigGetBlanks.3 | 2 +- doc/FcConfigGetCache.3 | 2 +- doc/FcConfigGetCacheDirs.3 | 2 +- doc/FcConfigGetConfigDirs.3 | 2 +- doc/FcConfigGetConfigFiles.3 | 2 +- doc/FcConfigGetCurrent.3 | 2 +- doc/FcConfigGetFontDirs.3 | 2 +- doc/FcConfigGetFonts.3 | 2 +- doc/FcConfigGetRescanInterval.3 | 2 +- doc/FcConfigGetSysRoot.3 | 2 +- doc/FcConfigHome.3 | 2 +- doc/FcConfigParseAndLoad.3 | 2 +- doc/FcConfigReference.3 | 2 +- doc/FcConfigSetCurrent.3 | 2 +- doc/FcConfigSetRescanInterval.3 | 2 +- doc/FcConfigSetSysRoot.3 | 2 +- doc/FcConfigSubstitute.3 | 2 +- doc/FcConfigSubstituteWithPat.3 | 2 +- doc/FcConfigUptoDate.3 | 2 +- doc/FcDefaultSubstitute.3 | 2 +- doc/FcDirCacheClean.3 | 2 +- doc/FcDirCacheLoad.3 | 2 +- doc/FcDirCacheLoadFile.3 | 2 +- doc/FcDirCacheRead.3 | 2 +- doc/FcDirCacheRescan.3 | 2 +- doc/FcDirCacheUnlink.3 | 2 +- doc/FcDirCacheUnload.3 | 2 +- doc/FcDirCacheValid.3 | 2 +- doc/FcDirSave.3 | 2 +- doc/FcDirScan.3 | 2 +- doc/FcFileIsDir.3 | 2 +- doc/FcFileScan.3 | 2 +- doc/FcFini.3 | 2 +- doc/FcFontList.3 | 2 +- doc/FcFontMatch.3 | 2 +- doc/FcFontRenderPrepare.3 | 2 +- doc/FcFontSetAdd.3 | 2 +- doc/FcFontSetCreate.3 | 2 +- doc/FcFontSetDestroy.3 | 2 +- doc/FcFontSetList.3 | 2 +- doc/FcFontSetMatch.3 | 2 +- doc/FcFontSetPrint.3 | 2 +- doc/FcFontSetSort.3 | 2 +- doc/FcFontSetSortDestroy.3 | 2 +- doc/FcFontSort.3 | 2 +- doc/FcFreeTypeCharIndex.3 | 2 +- doc/FcFreeTypeCharSet.3 | 2 +- doc/FcFreeTypeCharSetAndSpacing.3 | 2 +- doc/FcFreeTypeQuery.3 | 2 +- doc/FcFreeTypeQueryFace.3 | 2 +- doc/FcGetDefaultLangs.3 | 2 +- doc/FcGetLangs.3 | 2 +- doc/FcGetVersion.3 | 2 +- doc/FcInit.3 | 2 +- doc/FcInitBringUptoDate.3 | 2 +- doc/FcInitLoadConfig.3 | 2 +- doc/FcInitLoadConfigAndFonts.3 | 2 +- doc/FcInitReinitialize.3 | 2 +- doc/FcIsLower.3 | 2 +- doc/FcIsUpper.3 | 2 +- doc/FcLangGetCharSet.3 | 2 +- doc/FcLangNormalize.3 | 2 +- doc/FcLangSetAdd.3 | 2 +- doc/FcLangSetCompare.3 | 2 +- doc/FcLangSetContains.3 | 2 +- doc/FcLangSetCopy.3 | 2 +- doc/FcLangSetCreate.3 | 2 +- doc/FcLangSetDel.3 | 2 +- doc/FcLangSetDestroy.3 | 2 +- doc/FcLangSetEqual.3 | 2 +- doc/FcLangSetGetLangs.3 | 2 +- doc/FcLangSetHasLang.3 | 2 +- doc/FcLangSetHash.3 | 2 +- doc/FcLangSetSubtract.3 | 2 +- doc/FcLangSetUnion.3 | 2 +- doc/FcMatrixCopy.3 | 2 +- doc/FcMatrixEqual.3 | 2 +- doc/FcMatrixInit.3 | 2 +- doc/FcMatrixMultiply.3 | 2 +- doc/FcMatrixRotate.3 | 2 +- doc/FcMatrixScale.3 | 2 +- doc/FcMatrixShear.3 | 2 +- doc/FcNameConstant.3 | 2 +- doc/FcNameGetConstant.3 | 2 +- doc/FcNameGetObjectType.3 | 2 +- doc/FcNameParse.3 | 2 +- doc/FcNameRegisterConstants.3 | 2 +- doc/FcNameRegisterObjectTypes.3 | 2 +- doc/FcNameUnparse.3 | 2 +- doc/FcNameUnregisterConstants.3 | 2 +- doc/FcNameUnregisterObjectTypes.3 | 2 +- doc/FcObjectSetAdd.3 | 2 +- doc/FcObjectSetBuild.3 | 2 +- doc/FcObjectSetCreate.3 | 2 +- doc/FcObjectSetDestroy.3 | 2 +- doc/FcPatternAdd-Type.3 | 2 +- doc/FcPatternAdd.3 | 2 +- doc/FcPatternAddWeak.3 | 2 +- doc/FcPatternBuild.3 | 2 +- doc/FcPatternCreate.3 | 2 +- doc/FcPatternDel.3 | 2 +- doc/FcPatternDestroy.3 | 2 +- doc/FcPatternDuplicate.3 | 2 +- doc/FcPatternEqual.3 | 2 +- doc/FcPatternEqualSubset.3 | 2 +- doc/FcPatternFilter.3 | 2 +- doc/FcPatternFormat.3 | 2 +- doc/FcPatternGet-Type.3 | 2 +- doc/FcPatternGet.3 | 2 +- doc/FcPatternHash.3 | 2 +- doc/FcPatternPrint.3 | 2 +- doc/FcPatternReference.3 | 2 +- doc/FcPatternRemove.3 | 2 +- doc/FcRangeCopy.3 | 2 +- doc/FcRangeCreateDouble.3 | 2 +- doc/FcRangeCreateInteger.3 | 2 +- doc/FcRangeDestroy.3 | 2 +- doc/FcRangeGetDouble.3 | 2 +- doc/FcStrBasename.3 | 2 +- doc/FcStrCmp.3 | 2 +- doc/FcStrCmpIgnoreCase.3 | 2 +- doc/FcStrCopy.3 | 2 +- doc/FcStrCopyFilename.3 | 2 +- doc/FcStrDirname.3 | 2 +- doc/FcStrDowncase.3 | 2 +- doc/FcStrFree.3 | 2 +- doc/FcStrListCreate.3 | 2 +- doc/FcStrListDone.3 | 2 +- doc/FcStrListFirst.3 | 2 +- doc/FcStrListNext.3 | 2 +- doc/FcStrPlus.3 | 2 +- doc/FcStrSetAdd.3 | 2 +- doc/FcStrSetAddFilename.3 | 2 +- doc/FcStrSetCreate.3 | 2 +- doc/FcStrSetDel.3 | 2 +- doc/FcStrSetDestroy.3 | 2 +- doc/FcStrSetEqual.3 | 2 +- doc/FcStrSetMember.3 | 2 +- doc/FcStrStr.3 | 2 +- doc/FcStrStrIgnoreCase.3 | 2 +- doc/FcToLower.3 | 2 +- doc/FcUcs4ToUtf8.3 | 2 +- doc/FcUtf16Len.3 | 2 +- doc/FcUtf16ToUcs4.3 | 2 +- doc/FcUtf8Len.3 | 2 +- doc/FcUtf8ToUcs4.3 | 2 +- doc/FcValueDestroy.3 | 2 +- doc/FcValueEqual.3 | 2 +- doc/FcValuePrint.3 | 2 +- doc/FcValueSave.3 | 2 +- doc/FcWeightFromOpenType.3 | 2 +- doc/FcWeightToOpenType.3 | 2 +- doc/Makefile.in | 29 +- doc/fcconfig.fncs | 2 +- doc/fcconfig.sgml | 2 +- doc/fontconfig-devel.pdf | Bin 393149 -> 392765 bytes doc/fontconfig-devel.sgml | 3 +- doc/fontconfig-devel.txt | 13 +- doc/fontconfig-devel/fcconfigappfontadddir.html | 2 +- doc/fontconfig-devel/t1.html | 4 +- doc/fontconfig-devel/x19.html | 3 +- doc/fontconfig-user.html | 24 +- doc/fontconfig-user.pdf | Bin 130838 -> 131375 bytes doc/fontconfig-user.sgml | 12 +- doc/fontconfig-user.txt | 16 +- doc/fonts-conf.5 | 15 +- fc-blanks/Makefile.am | 5 + fc-blanks/Makefile.in | 32 +- fc-blanks/fc-blanks.py | 56 +- fc-cache/Makefile.in | 25 +- fc-cache/fc-cache.c | 75 +- fc-case/CaseFolding.txt | 232 +- fc-case/Makefile.am | 3 + fc-case/Makefile.in | 31 +- fc-case/fccase.h | 21 +- fc-cat/Makefile.in | 25 +- fc-glyphname/Makefile.in | 28 +- fc-lang/Makefile.in | 28 +- fc-list/Makefile.in | 25 +- fc-match/Makefile.in | 25 +- fc-pattern/Makefile.in | 25 +- fc-query/Makefile.in | 25 +- fc-query/fc-query.1 | 5 +- fc-query/fc-query.c | 28 +- fc-query/fc-query.sgml | 12 + fc-scan/Makefile.in | 25 +- fc-scan/fc-scan.1 | 7 +- fc-scan/fc-scan.c | 28 +- fc-scan/fc-scan.sgml | 14 +- fc-validate/Makefile.in | 25 +- fontconfig.spec | 2 +- fontconfig/Makefile.in | 26 +- fontconfig/fontconfig.h | 14 +- install-sh | 366 +- ltmain.sh | 5528 ++++++++++++++--------- m4/libtool.m4 | 2550 ++++++----- m4/ltoptions.m4 | 127 +- m4/ltsugar.m4 | 7 +- m4/ltversion.m4 | 12 +- m4/lt~obsolete.m4 | 7 +- missing | 2 +- src/Makefile.in | 28 +- src/fcarch.c | 2 +- src/fcatomic.c | 2 +- src/fccache.c | 219 +- src/fccfg.c | 29 +- src/fccharset.c | 24 +- src/fcdbg.c | 88 +- src/fcdefault.c | 2 +- src/fcdir.c | 87 +- src/fcfreetype.c | 253 +- src/fcinit.c | 28 +- src/fcint.h | 68 +- src/fcmatch.c | 44 +- src/fcname.c | 20 +- src/fcobjs.c | 31 +- src/fcobjs.h | 1 + src/fcobjshash.gperf | 1 + src/fcobjshash.h | 300 +- src/fcpat.c | 6 + src/fcrange.c | 109 +- src/fcstdint.h | 4 +- src/fcstr.c | 47 +- src/fcweight.c | 26 +- src/fcxml.c | 116 +- test-driver | 15 +- test/Makefile.am | 11 + test/Makefile.in | 114 +- test/run-test.sh | 13 +- test/test-bz89617.c | 40 + test/test-bz96676.c | 32 + 296 files changed, 12423 insertions(+), 5419 deletions(-) create mode 100644 conf.d/10-hinting-full.conf create mode 100644 conf.d/10-hinting-medium.conf create mode 100644 conf.d/10-hinting-none.conf create mode 100644 conf.d/10-hinting-slight.conf create mode 100644 test/test-bz89617.c create mode 100644 test/test-bz96676.c diff --git a/ChangeLog b/ChangeLog index 9a05f9b..5876cf5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,3205 @@ +commit 13087e38ace4f092667ab08617ced1d559f3d2e2 +Author: Akira TAGOH +Date: Wed Apr 6 21:05:36 2016 +0900 + + Bump version to 2.11.95 + + README | 41 +++++++++++++++++++++++++++++++++++++++-- + configure.ac | 2 +- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 41 insertions(+), 4 deletions(-) + +commit 0cfa146e6b41bc6b819fe0f37d0e2ff0a947eb3b +Author: Akira TAGOH +Date: Wed Apr 6 21:04:42 2016 +0900 + + Update libtool revision + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit d179cbc2536af16cf0f4992e0a4b2d751437ee6c +Author: Akira TAGOH +Date: Wed Apr 6 14:39:15 2016 +0900 + + Revert "Workaround another race condition issue" + + This reverts commit f44bfad235e63bb792c38e16ae1fbd281ec1453b. + + src/fccache.c | 31 +------------------------------ + src/fcdir.c | 31 ++++++------------------------- + src/fcint.h | 8 +------- + 3 files changed, 8 insertions(+), 62 deletions(-) + +commit d05d083e9f87eb378b92e477d34a88061a572d86 +Author: Behdad Esfahbod +Date: Tue Mar 8 17:20:41 2016 -0800 + + [GX] Improve weight mapping + + Align the 'wght' axis default value to OS/2 weight value and + adjust accordingly. This makes both default=1.0 and default=400 + models to work. + + src/fcfreetype.c | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +commit d709220d74c4ff6e609f35761b71d4d7136d02c1 +Author: Behdad Esfahbod +Date: Tue Mar 8 17:20:28 2016 -0800 + + Improve OpenType to Fontconfig weight mapping + + src/fcweight.c | 25 +++++++++++++++++++------ + 1 file changed, 19 insertions(+), 6 deletions(-) + +commit 27d61f1ddcda5543e9c6440a0f8794caa0b1eac7 +Author: Behdad Esfahbod +Date: Sun Aug 9 00:59:31 2015 +0200 + + [GX] Enumerate all named-instances in TrueType GX fonts + + src/fcdir.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +commit 00c8408c6a82a79388f8119c4afce6e721b693f7 +Author: Behdad Esfahbod +Date: Sun Aug 9 09:06:37 2015 +0200 + + [GX] Support instance weight, width, and style name + + src/fcfreetype.c | 74 + +++++++++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 68 insertions(+), 6 deletions(-) + +commit 28f62d1bb892e1c86eb0d5afaf125bfe0e34cbe9 +Author: Behdad Esfahbod +Date: Sun Aug 9 00:45:01 2015 +0200 + + Call FcFreeTypeQueryFace() from fcdir.c, instead of FcFreeTypeQuery() + + Need for upcoming work. No functional change expected. + + src/fcdir.c | 25 +++++++++++++++++++++---- + 1 file changed, 21 insertions(+), 4 deletions(-) + +commit d570a841a2aa9d770578aa149e43bb2e5bd0f2df +Author: Patrick Haller +Date: Sat Jan 9 03:06:31 2016 +0100 + + Optimizations in FcStrSet + + Applied optimizations: + - skip duplicate check in FcStrSetAppend for values originating + from readdir() + - grow FcStrSet in 64-element bulks for local FcStrSets (FcConfig + layout unaltered) + + Starting gedit is measured to + + Unoptimized Optimized + user[s] 0,806 0,579 + sys[s] 0,062 0,062 + Total Instr Fetch Cost: 1.658.683.750 895.069.820 + Cachegrind D Refs: 513.917.619 312.000.436 + Cachegrind Dl Misses: 8.605.632 4.954.639 + + src/fccache.c | 2 +- + src/fccfg.c | 4 ++-- + src/fcdir.c | 6 +++--- + src/fcint.h | 11 +++++++++++ + src/fcstr.c | 47 +++++++++++++++++++++++++++++++++-------------- + src/fcxml.c | 2 +- + 6 files changed, 51 insertions(+), 21 deletions(-) + +commit 98434b3392172233094cac25ade7225c93da9f1c +Author: Akira TAGOH +Date: Wed Dec 2 11:31:50 2015 +0900 + + Add hintstyle templates and make hintslight default + + conf.d/10-hinting-full.conf | 13 +++++++++++++ + conf.d/10-hinting-medium.conf | 13 +++++++++++++ + conf.d/10-hinting-none.conf | 13 +++++++++++++ + conf.d/10-hinting-slight.conf | 13 +++++++++++++ + conf.d/Makefile.am | 5 +++++ + 5 files changed, 57 insertions(+) + +commit 04763135d47ae24a808fc15c4482e2bb6f847ab9 +Author: Akira TAGOH +Date: Wed Nov 25 11:58:14 2015 +0900 + + Avoid an error message on testing when no fonts.conf installed + + This test case doesn't require any config files so no need to ensure + loading them. + + test/test-bz89617.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5886d98c368cdb76ddedc48aedbab45a5c7e96f6 +Author: Akira TAGOH +Date: Tue Nov 24 10:46:34 2015 +0900 + + Bug 93075 - Possible fix for make check failure on msys/MinGW... + + Patch from Christian Fafard + + test/run-test.sh | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +commit 1d87fab8b18bf5a497646d98a1c6279372aac4ea +Author: Akira TAGOH +Date: Wed Nov 18 14:44:17 2015 +0900 + + remomve unnecessary code + + src/fcdefault.c | 1 - + 1 file changed, 1 deletion(-) + +commit d162a4a83d6bf2182e288e0bc0b4d3ae2f78f040 +Author: Akira TAGOH +Date: Fri Oct 16 17:24:22 2015 +0900 + + Fix assertion on 32bit arch + + src/fcarch.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 6d6ce028eedc6775b61fe768eca4d791ba9db21d +Author: Akira TAGOH +Date: Thu Oct 15 15:53:27 2015 +0900 + + Fix compiler warnings on MinGW + + test/test-bz89617.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit bd96984e4b1da2e4b422050b773f3ded978d976c +Author: Akira TAGOH +Date: Thu Oct 15 15:48:23 2015 +0900 + + Use int64_t instead of long long + + src/fccache.c | 4 ++-- + src/fcint.h | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 7ccde89758f23a7eb90549667cffb084e684ed48 +Author: Akira TAGOH +Date: Tue Oct 13 13:06:54 2015 +0900 + + Fix build issue on MinGW + + src/fccache.c | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +commit a44cc450b5f3d67c0298a912e12ed5ff234490f9 +Author: Akira TAGOH +Date: Tue Oct 13 13:04:18 2015 +0900 + + Use long long to see the same size between LP64 and LLP64 + + src/fccache.c | 2 +- + src/fcint.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit c88d9b62421e8ba35a71319c7b0d555d512510c7 +Author: Akira TAGOH +Date: Mon Aug 17 16:37:08 2015 +0900 + + Fail on make runtime as needed instead of configure if no python + installed + + python isn't necessarily required to build fontconfig from tarball + so that + generated fcblanks.h is available in tarball. + + https://bugs.freedesktop.org/show_bug.cgi?id=91663 + + configure.ac | 3 ++- + fc-blanks/Makefile.am | 5 +++++ + 2 files changed, 7 insertions(+), 1 deletion(-) + +commit ad9f5880502c9a3f8e7f8919336888ee056f17ba +Author: Akira TAGOH +Date: Fri Aug 14 17:17:34 2015 +0900 + + Fix the broken cache more. + + Take a look at the nano second in the mtime to figure out + if the cache needs to be updated if available. + and do the mutex lock between scanning and writing a cache + to avoid the conflict. + + Also we don't need to scan directories again after writing + caches. so getting rid of the related code as well. + + https://bugs.freedesktop.org/show_bug.cgi?id=69845 + + and for reference: + + https://bugzilla.redhat.com/show_bug.cgi?id=1236034 + + configure.ac | 3 ++ + fc-cache/fc-cache.c | 75 +++++++++++++------------------------ + fontconfig/fontconfig.h | 2 +- + src/fcarch.c | 2 +- + src/fccache.c | 98 + ++++++++++++++++++++++++++++++++++++++++++++++++- + src/fcdir.c | 6 +++ + src/fcint.h | 8 ++++ + 7 files changed, 142 insertions(+), 52 deletions(-) + +commit 46ec6a52d4cc447cc3ff4a13b2067ecb76c9db2e +Author: Behdad Esfahbod +Date: Fri Jun 26 17:02:13 2015 -0700 + + Revert changes made to FcConfigAppFontAddDir() recently + + In 32ac7c75e8db0135ef37cf86f92d8b9be000c8bb the behavior of + FcConfigAppFontAddFile/Dir() were changed to return false + if not fonts were found. While this is welldefined and useful + for AddFile(), it's quite problematic for AddDir(). For example, + if the directory is empty, is that a failure or success? Worse, + the false value from AddDir() was being propagated all the way + to FcInit() returning false now. This only happened upon memory + allocation failure before, and some clients assert that FcInit() + is successful. + + With this change, AddDir() is reverted back to what it was. + AddFont() change (which was actually in fcdir.c) from the original + commit is left in. + + doc/fcconfig.fncs | 2 +- + src/fccfg.c | 29 +++++++++++------------------ + src/fcint.h | 3 --- + src/fcstr.c | 8 -------- + 4 files changed, 12 insertions(+), 30 deletions(-) + +commit a8096dfa5965bfb1953fe829ff13eea23b4233c7 +Author: Akira TAGOH +Date: Wed Jun 24 15:46:45 2015 +0900 + + Bug 90867 - Memory Leak during error case in fccharset + + https://bugs.freedesktop.org/show_bug.cgi?id=90867 + + src/fccharset.c | 24 ++++++++++++++++++++---- + 1 file changed, 20 insertions(+), 4 deletions(-) + +commit 0551e1b344bd2f57015a378dae4a0771031c3042 +Author: Akira TAGOH +Date: Thu Jun 18 17:25:02 2015 +0900 + + Update CaseFolding.txt to Unicode 8.0 + + fc-case/CaseFolding.txt | 147 + +++++++++++++++++++++++++++++++++++++++++++++++- + fc-case/Makefile.am | 3 + + 2 files changed, 147 insertions(+), 3 deletions(-) + +commit 6f929ff37ce277a12256b918751e2f3fca2fcb8a +Author: Akira TAGOH +Date: Wed Jun 17 16:34:29 2015 +0900 + + Fix a memory leak in FcFreeTypeQueryFace + + src/fcfreetype.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 46b2c62faa64250eec3981ee816e91a9a3dee857 +Author: Akira TAGOH +Date: Wed Jun 17 16:29:08 2015 +0900 + + Add a warning for blank in fonts.conf + + and remove the unnecessary code for parsing blanks + + src/fcxml.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +commit 33fd436a3ec63ca58f3cb51bd4ab7b33e90d89c8 +Author: Akira TAGOH +Date: Wed Jun 17 16:15:35 2015 +0900 + + Don't return FcFalse even when no fonts dirs is configured + + src/fccfg.c | 2 ++ + src/fcint.h | 3 +++ + src/fcstr.c | 8 ++++++++ + 3 files changed, 13 insertions(+) + +commit f6d61c9beed856a925bd60c025b55284b2d88161 +Author: Akira TAGOH +Date: Fri Jun 12 11:30:01 2015 +0900 + + mark as private at this moment + + fontconfig/fontconfig.h | 3 --- + src/fcint.h | 3 +++ + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit dbda1171427071ff31429ea6d36330bb8f193138 +Author: Akira TAGOH +Date: Tue Jun 9 11:15:25 2015 +0900 + + No need to be public + + fontconfig/fontconfig.h | 3 --- + src/fcint.h | 3 +++ + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 359ada2b4c12b6b6c3b4c017f95a35f18a3c6dd7 +Author: Akira TAGOH +Date: Tue Jun 9 11:15:06 2015 +0900 + + Fix a crash when no objects are available after filtering + + src/fcdbg.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 10a57edd07f8dc64b60c71d51c225436f4fbb3bc +Author: Akira TAGOH +Date: Mon Jun 8 17:38:02 2015 +0900 + + Add one more debugging option to see transformation on font-matching + + just setting FC_MATCH=3 shows a lot of information and hard to keep + on track for informamtion + which is really necessary to see. to use this more effectively, + added FC_DBG_MATCH_FILTER to + see for what one really want to see. it takes a comma-separated-list + of object names. + If you want to see family name only, try like this: + + FC_DBG_MATCH_FILTER=family FC_DEBUG=4096 fc-match + + debugging output will be filtered out and see family only in the + result. + + doc/fontconfig-user.sgml | 6 +++- + fontconfig/fontconfig.h | 6 ++++ + src/fcdbg.c | 78 + ++++++++++++++++++++++++++++++++++++++++++++++++ + src/fcint.h | 1 + + src/fcmatch.c | 41 +++++++++++++++++++++++++ + src/fcpat.c | 6 ++++ + 6 files changed, 137 insertions(+), 1 deletion(-) + +commit 1827ef7b1e0a1fba27fcdb8a021abaa8ee7782eb +Author: Akira TAGOH +Date: Tue Jun 2 17:33:03 2015 +0900 + + Bump version to 2.11.94 + + README | 40 ++++++++++++++++++++++++++++++++++++++-- + configure.ac | 2 +- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 40 insertions(+), 4 deletions(-) + +commit 481a9f03a020ee53500585332786826e8c3ebd8e +Author: Behdad Esfahbod +Date: Wed May 27 14:40:15 2015 -0700 + + Bump cache version number to 6, because of recent FcRange changes + + fontconfig/fontconfig.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ee2d1da2d21bc14127f4cf12312e1f007935e8b0 +Author: Behdad Esfahbod +Date: Wed May 27 14:36:35 2015 -0700 + + Reduce number of places that cache version is specified to 1 + + fontconfig/fontconfig.h | 5 ++++- + src/fccache.c | 6 +++--- + src/fcint.h | 3 +-- + 3 files changed, 8 insertions(+), 6 deletions(-) + +commit 5bad26ccb6686f1b9c8df6c1e9b49a72d42ad661 +Author: Behdad Esfahbod +Date: Wed Aug 20 16:07:26 2014 -0400 + + Simplify FcRange + + src/fcdbg.c | 10 ++---- + src/fcint.h | 25 +------------- + src/fcmatch.c | 2 +- + src/fcname.c | 14 ++------ + src/fcrange.c | 109 + ++++++++++------------------------------------------------ + src/fcxml.c | 12 +++---- + 6 files changed, 28 insertions(+), 144 deletions(-) + +commit 13a5ae9fb953c8a8eb3ec801781a499521c211f3 +Author: Behdad Esfahbod +Date: Wed Aug 20 16:03:02 2014 -0400 + + Fix compiler warnings + + src/fcxml.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit 346073d9dc17fc07758f7ef86c4ed05213ed0dab +Author: Behdad Esfahbod +Date: Sun Jul 6 20:36:18 2014 -0400 + + Don't set FC_SIZE for bitmap fonts + + They get FC_PIXELSIZE set, which is later converted to FC_SIZE using + FC_DPI. + + src/fcfreetype.c | 36 ++++++++++++------------------------ + 1 file changed, 12 insertions(+), 24 deletions(-) + +commit eba6f109de475215c2d4b42612f6baf57041536d +Author: Behdad Esfahbod +Date: Fri Jul 4 17:15:11 2014 -0400 + + Accept Integer for FC_SIZE + + There are more places to fix I'm sure... + + https://bugs.freedesktop.org/show_bug.cgi?id=80873 + + src/fcname.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit cb2f096e15cb868cbf29428b6dd339b8ba344e50 +Author: Behdad Esfahbod +Date: Fri Jul 4 16:18:52 2014 -0400 + + Add bitmap-only font size as Double, not Range + + The whole size setting part still smells to me. + + src/fcfreetype.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +commit 51756aab180c9f7a6632743885695add2f511100 +Author: Behdad Esfahbod +Date: Fri Jul 4 16:13:45 2014 -0400 + + Only set FC_SIZE for scalable fonts if OS/2 version 5 is present + + Part of https://bugs.freedesktop.org/show_bug.cgi?id=80873 + + src/fcfreetype.c | 28 +++++++++++++++------------- + 1 file changed, 15 insertions(+), 13 deletions(-) + +commit d09ba385892862e18c409f49405f51f066dea552 +Author: Behdad Esfahbod +Date: Fri Jul 4 16:09:23 2014 -0400 + + Write ranges using a [start finish) format + + To show closed and open ends. + + src/fcdbg.c | 2 +- + src/fcname.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 4c9101f7044b68aa121557c796384e4bdf08f73f +Author: Akira TAGOH +Date: Mon May 25 21:41:05 2015 +0900 + + Revert the previous change + + and just abort if the object id is overflowed. + + src/fcobjs.c | 16 +--------------- + 1 file changed, 1 insertion(+), 15 deletions(-) + +commit 09edd84cf8e8bd1f6062c8803316327e662fdbda +Author: Akira TAGOH +Date: Fri May 22 20:51:21 2015 +0900 + + Detect the overflow for the object ID + + Continue to increase the object id even after FcFini() + and detect the overflow. that would be rather easier than + reset the object id with the complicated mutex and atomic + functions. + + This situation would be quite unlikely to happen though + + src/fcobjs.c | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) + +commit f053231186fc340b5365a59eea30db5af787877a +Author: Akira TAGOH +Date: Fri May 22 20:46:54 2015 +0900 + + Fix a crash + + segfault happens when the config needs to be migrated to XDG's + and no definition for include with prefix="xdg" + + src/fcxml.c | 1 + + 1 file changed, 1 insertion(+) + +commit 249306fbd782570cf958675672d21cf12aa1f14e +Author: Akira TAGOH +Date: Fri May 22 20:45:05 2015 +0900 + + Fix a typo + + src/fcxml.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit fa6c6b53c5a42ae6a9f8254ca9603dbe0aec63ad +Author: Akira TAGOH +Date: Fri May 22 16:53:34 2015 +0900 + + Fix memory leaks after FcFini() + + Reported by Jia Wang + + https://bugs.freedesktop.org/show_bug.cgi?id=83770 + + fontconfig/fontconfig.h | 2 +- + src/fcinit.c | 2 ++ + src/fcint.h | 6 ++++++ + src/fcobjs.c | 25 ++++++++++++++++++++++++- + src/fcxml.c | 47 + +++++++++++++++++++++++++++++++++++++++++++---- + 5 files changed, 76 insertions(+), 6 deletions(-) + +commit bcfe167e3d60402c1f999359ca8531c6fae01a2b +Author: Behdad Esfahbod +Date: Mon May 18 15:26:03 2015 -0700 + + Add su[pport for symbol fonts + + Adds FC_SYMBOL. + + This affects fonts having a cmap with platform 3 encoding 0. + We now map their glyphs from the PUA area to the Latin1 area. + + See thread "Webdings and other MS symbol fonts don't display" + on the mailing list. + + Test before/after with: + $ pango-view --markup --text='×' --font=Wingdings + + doc/fontconfig-devel.sgml | 1 + + fontconfig/fontconfig.h | 1 + + src/fcdefault.c | 1 + + src/fcfreetype.c | 57 + ++++++++++++++++++++++++++++++++++++++++++++--- + src/fcmatch.c | 1 + + src/fcobjs.h | 1 + + 6 files changed, 59 insertions(+), 3 deletions(-) + +commit ead7275e05966eca19f530712f8e5c738a61cf4f +Author: Akira TAGOH +Date: Mon May 18 14:03:50 2015 +0900 + + Bug 90148 - Don't warn if cachedir isn't specified + + only warn when FONTCONFIG_FILE or FONTCONFIG_PATH is set. + + Bug 90148 - Don't warn if cachedir isn't specified + + src/fcinit.c | 26 +++++++++++++++++++------- + 1 file changed, 19 insertions(+), 7 deletions(-) + +commit 55ff8419274fd5ce59675f220b85035a3986d6cf +Author: Akira TAGOH +Date: Tue May 12 14:47:38 2015 +0900 + + Make FC_SCALE deprecated + + Use FC_MATRIX instead. + + https://bugs.freedesktop.org/show_bug.cgi?id=90257 + + doc/fontconfig-devel.sgml | 2 +- + doc/fontconfig-user.sgml | 2 +- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +commit a10cb2e4d7fb7d790fe913058f0821ccf2185a86 +Author: Akira TAGOH +Date: Tue May 12 14:28:45 2015 +0900 + + Add missing description for usage + + fc-query/fc-query.c | 9 +++++---- + fc-scan/fc-scan.c | 7 ++++--- + 2 files changed, 9 insertions(+), 7 deletions(-) + +commit 4c040d393dfb47b8a2f75fb639f6b5e92fced6f3 +Author: Akira TAGOH +Date: Wed Apr 22 19:37:46 2015 +0900 + + Observe blanks to compute correct languages in fc-query/fc-scan + + Added --ignore-blanks option to get back the behavior. + + https://bugs.freedesktop.org/show_bug.cgi?id=79955 + + fc-query/fc-query.c | 19 ++++++++++++++----- + fc-query/fc-query.sgml | 12 ++++++++++++ + fc-scan/fc-scan.c | 21 +++++++++++++++------ + fc-scan/fc-scan.sgml | 14 +++++++++++++- + 4 files changed, 54 insertions(+), 12 deletions(-) + +commit 4a6f5efd5f6a468e1872d58e589bcf30ba88e2fd +Author: Behdad Esfahbod +Date: Thu Apr 30 11:25:59 2015 -0400 + + Fix bitmap scaling + + Was broken by 66db69a6d991945f96feb1da683a2e04ea396842. Ouch! + + conf.d/10-scale-bitmap-fonts.conf | 32 +++++++++++++++++--------------- + 1 file changed, 17 insertions(+), 15 deletions(-) + +commit 3a4136778cc5a4ff1dc979cbd50fcdf73cab4d70 +Author: Akira TAGOH +Date: Wed Apr 22 14:36:29 2015 +0900 + + Drop unmaintained code + Use four-byte code for foundry as is instead. + + https://bugs.freedesktop.org/show_bug.cgi?id=88679 + + src/fcfreetype.c | 84 + ++++++++------------------------------------------------ + 1 file changed, 12 insertions(+), 72 deletions(-) + +commit b3fc08bc952505e322160a4a7eb146754ae4f24a +Author: Akira TAGOH +Date: Wed Apr 22 11:17:04 2015 +0900 + + Fix a typo in fontconfig-user.sgml + + https://bugs.freedesktop.org/show_bug.cgi?id=90105 + + doc/fontconfig-user.sgml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 07be485a0a84995ce69bf60e3b1bb22cb35f6b0e +Author: Akira TAGOH +Date: Mon Apr 20 10:49:21 2015 +0900 + + Fix a typo for the latest cache version + + doc/fontconfig-user.sgml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f6e6a8a22b9d775fff117d65016b5e85233a7293 +Author: Руслан Ижбулатов +Date: Wed Apr 8 08:41:25 2015 +0000 + + W32: Support cache paths relative to the root directory + + Paths starting with '/' don't make sense on W32 as-is, + prepend the installation root directory to them. + + This allows the cache to be contained within a particular + fontconfig installation (as long as the default + --with-cache-dir= is overriden at configure time). + + src/fccfg.c | 2 ++ + src/fcxml.c | 21 ++++++++++++++++++++- + 2 files changed, 22 insertions(+), 1 deletion(-) + +commit 7bc07cf6c2a5685ab95f146f5af2b3bcd5f5864d +Author: Akira TAGOH +Date: Mon Mar 30 15:18:44 2015 +0900 + + Fix SIGFPE + + src/fcrange.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit e92c92ff22c13e96afd6dfa0f75e7b37b9cfa06d +Author: Akira TAGOH +Date: Wed Mar 25 12:10:48 2015 +0900 + + Fix unknown attribute in Win32 + + src/fcxml.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c965c9f67759585909fa03236bad826de85bd39c +Author: Akira TAGOH +Date: Mon Mar 23 13:30:59 2015 +0900 + + Bug 89617 - FcConfigAppFontAddFile() returns false on any font file + + Prior to the change of 32ac7c75e8db0135ef37cf86f92d8b9be000c8bb + FcConfigAppFontAddFile() always returned FcTrue no matter what + fonts was added. after that, it always returned FcFalse because + adding a font doesn't add any subdirs with FcFileScanConfig(). + so changing that to simply ignore it. + + Also fixing it to return FcFalse if non-fonts was added, i.e. + FcFreeTypeQuery() fails. + + https://bugs.freedesktop.org/show_bug.cgi?id=89617 + + src/fccfg.c | 4 +++- + src/fcdir.c | 2 ++ + test/Makefile.am | 7 +++++++ + test/test-bz89617.c | 38 ++++++++++++++++++++++++++++++++++++++ + 4 files changed, 50 insertions(+), 1 deletion(-) + +commit 7301f2f02816c5d44ee75dd0689c806c5aabdbda +Author: Akira TAGOH +Date: Mon Mar 23 13:18:49 2015 +0900 + + Remove the dead code + + src/fcdir.c | 2 -- + 1 file changed, 2 deletions(-) + +commit 69ff6b6e260584e383c38b1b7034ddcbb23d214f +Author: Akira TAGOH +Date: Mon Mar 9 12:22:40 2015 +0900 + + Bump version to 2.11.93 + + README | 37 +++++++++++++++++++++++++++++++++++-- + configure.ac | 6 +++--- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 39 insertions(+), 6 deletions(-) + +commit b75d809d1298b791f39596170950597bcfe98dd6 +Author: Akira TAGOH +Date: Mon Mar 9 12:22:30 2015 +0900 + + Fix a trivial bug for dist + + fc-blanks/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +commit f5b1e0ab97daa0e08af8d667cabb700bb73da568 +Author: Akira TAGOH +Date: Mon Mar 9 12:18:03 2015 +0900 + + Fix an infinite loop in FcBlanksIsMember() + + src/fcblanks.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 484834c186dee281bcd13067d7b7bce1322b4e0b +Author: Akira TAGOH +Date: Fri Mar 6 11:15:26 2015 +0900 + + Fix a bug in the previous change forFcBlanksIsMember() + + src/fcblanks.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit ed74a58ccc245bacd907cd91e0f3df64e427c163 +Author: Akira TAGOH +Date: Fri Mar 6 11:05:23 2015 +0900 + + Fix a segfault when OOM happened. + + Reported by Matt Breedlove + + src/fcinit.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 96a3f6879c13577cc9edd867b3f89b0cba469073 +Author: Akira TAGOH +Date: Thu Mar 5 17:52:04 2015 +0900 + + Improve the performance on searching blanks + + After the change of d6a5cc665a1d7e91332944353e92c83ad114368c + we have a lot of code points in FcBlanks. doing the linear search + on the array isn't comfortable anymore. + So re-implementing FcBlanksIsMember() to use the binary search. + + Figuring out how much improved after this change depends on + how many fonts proceed with fc-cache say though, it's about 20 times + faster here on testing. which sounds good enough for + improvement. + + src/fcblanks.c | 21 ++++++++++++++++++--- + 1 file changed, 18 insertions(+), 3 deletions(-) + +commit d997d7c770cd6a36159090fd0b8720a3dc426707 +Author: Behdad Esfahbod +Date: Wed Jan 21 14:35:03 2015 -0800 + + Simplify some more + + src/fcfreetype.c | 20 ++++++++------------ + 1 file changed, 8 insertions(+), 12 deletions(-) + +commit 9c99baba66d335738318dc7cacef64fafb699ebf +Author: Behdad Esfahbod +Date: Wed Jan 21 14:32:51 2015 -0800 + + Remove dead code after previous commit + + src/fcfreetype.c | 339 + +------------------------------------------------------ + 1 file changed, 3 insertions(+), 336 deletions(-) + +commit 2f311c562d87c0bf95d27709e82afd196c2bff28 +Author: Akira TAGOH +Date: Tue Mar 3 11:30:12 2015 +0900 + + Fix the array allocation + + src/fcstat.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f18f2f88f287a2438d2bf9b27773cb14606cbb11 +Author: Akira TAGOH +Date: Mon Feb 9 16:45:43 2015 +0900 + + Don't add FC_LANG when it has "und" + + to avoid the situation to find the better fallback font. + + https://code.google.com/p/chromium/issues/detail?id=392724 has + more words to explain the details. + + https://bugs.freedesktop.org/show_bug.cgi?id=81185 + + src/fccfg.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +commit 724664e3fd056b864576f8e100a8de5c0e93a725 +Author: Akira TAGOH +Date: Mon Mar 2 11:34:53 2015 +0900 + + Fix a build issue when $(srcdir) != $(builddir) + + fc-blanks/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit a9d4dba7492e060f9d225307c58d79bc50b16cd3 +Author: Akira TAGOH +Date: Fri Feb 27 15:48:54 2015 +0900 + + Update the script to recognize the escaped space + + fc-blanks/fc-blanks.py | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +commit d6a5cc665a1d7e91332944353e92c83ad114368c +Author: Akira TAGOH +Date: Fri Feb 27 14:17:26 2015 +0900 + + Hardcode the blanks in the library + + https://bugs.freedesktop.org/show_bug.cgi?id=79956 + + Makefile.am | 2 +- + configure.ac | 2 + + fc-blanks/Makefile.am | 40 +++++++++++++++ + fc-blanks/fc-blanks.py | 125 + ++++++++++++++++++++++++++++++++++++++++++++++ + fc-blanks/fcblanks.tmpl.h | 25 ++++++++++ + fonts.conf.in | 68 ------------------------- + src/fcblanks.c | 7 +++ + src/fccfg.c | 3 +- + 8 files changed, 202 insertions(+), 70 deletions(-) + +commit 97cf7ec4d740c9b3ac7c29388224f5e0c226a120 +Author: Akira TAGOH +Date: Fri Feb 27 12:04:44 2015 +0900 + + Rework again to copy the struct dirent + + Assuming that d_name is the last member of struct dirent. + In POSIX, the maximum length of d_name is defined as NAME_MAX + or FILENAME_MAX though, that assumption may be wrong on some + platforms where defines d_name as the flexible array member + and allocate the minimum memory to store d_name. + + Patch from Raimund Steger + + src/fcstat.c | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) + +commit 1add10bfbc6f0667284f58cb388ae02f695b4a57 +Author: Michael Haubenwallner +Date: Thu Feb 26 12:23:27 2015 +0100 + + Ensure config.h is included first, bug#89336. + + config.h may define ABI-specific macros, especially for AIX, + so has to be included before any system header - via fcint.h. + + https://bugs.freedesktop.org/show_bug.cgi?id=89336 + + src/fcarch.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit 8809d1b73b9c162ee0fecd314e2a80b287309954 +Author: Akira TAGOH +Date: Thu Feb 26 14:08:20 2015 +0900 + + Copy the real size of struct dirent + + In some platforms, d_name is defined as the flexible array member. + We may need to compute the real size for that case. + + configure.ac | 1 + + src/fcstat.c | 11 +++++++++-- + 2 files changed, 10 insertions(+), 2 deletions(-) + +commit dd427253cc73d8786bbf436ec4d026f370ab0812 +Author: Akira TAGOH +Date: Wed Feb 25 17:36:50 2015 +0900 + + filter can be null + + src/fcstat.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 45018e6979198b92b732b4b5e29671b2fe499bd8 +Author: Akira TAGOH +Date: Tue Feb 24 15:25:16 2015 +0900 + + Fix pointer cast warning on win32 + + src/fclist.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f43c58189bb667e65630c37f33a58d39d7c550f6 +Author: Akira TAGOH +Date: Tue Feb 24 15:01:14 2015 +0900 + + ifdef'd the unnecessary code for win32 + + src/fcxml.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit ed0d705e2221adbfb21de357c1a82b7a2a5c3641 +Author: Akira TAGOH +Date: Tue Feb 10 19:32:13 2015 +0900 + + Fix a build fail on some non-POSIX platforms + + Use own scandir function. according to this change, + we don't need -Werror things in configure anymore. + + configure.ac | 35 -------------------------- + src/fcstat.c | 80 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++------ + 2 files changed, 72 insertions(+), 43 deletions(-) + +commit d6d5adeb7940c0d0beb86489c2a1c2ce59e5c044 +Author: Behdad Esfahbod +Date: Wed Jan 21 14:13:36 2015 -0800 + + Fix symbol cmap handling + + A while back we removed Apple Roman encoding support. This broke + symbol fonts (Wingdings, etc) because those fonts come with two + cmaps: + + 1) platform=1,encoding=0, aka Apple Roman, which maps identity, + 2) platform=3,encoding=0, aka MS Symbol font + + Now, the reason the Apple Roman removal "broke" these fonts is + obvious, and for the better: these fonts were mapping ASCII and + other Latin chars to symbols. + + The reason the fonts didn't work anymore, however, is that we were + mishandling the MS symbol-font cmaps. In their modern incarnation + they are like regular non-symbol-font cmap that map PUA codepoints + to symbols. We want to expose those as such. Hence, this change + just removes the special-handling for that. + + Now, the reason this confusion happened, if I was to guess, is either + that FreeType docs are wrong saying that FT_ENCODING_MS_SYMBOL is + the "Microsoft Symbol encoding, used to encode mathematical symbols": + + http://www.kostis.net/charsets/symbol.htm + + or maybe it started that way, but turned into also mapping MS symbol- + font cmaps, which is a completely different thing. At any rate, I + don't know if there are any fonts that use this thing these days, but + the code here didn't seem to produce charset for any font. By now I'm + convinced that this change is the Right Thing to do. The MS Symbol + thing was called AdobeSymbol in our code by the way. + + This fixes the much-reported bug that windings, etc are not usable + with recent fontconfig: + https://bugs.freedesktop.org/show_bug.cgi?id=58641 + + Now I see PUA mappings reported for Wingdings. + + This also fixes: + Bug 48947 - Drop the non-Unicode cmap support gradually + https://bugs.freedesktop.org/show_bug.cgi?id=48947 + since the AdobeSymbol was the last non-Unicode cmap we were + trying to parse (very incorrectly). + + Lots of code around this change can be simplified. I'll push those + out (including removing the table itself) in subsequent changes. + + src/fcfreetype.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit eb5e89f817a78e8f6fbb0d8a1b48c510f1b898b1 +Author: Akira TAGOH +Date: Tue Jan 20 20:34:47 2015 +0900 + + Add pkg.m4 to git + + m4/pkg.m4 | 214 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 214 insertions(+) + +commit 78ed920e2be4dca04ff64ba98cf6935fc40cc758 +Author: Akira TAGOH +Date: Mon Jan 19 19:48:50 2015 +0900 + + Fix a typo in docs + + doc/fontconfig-user.sgml | 2 +- + fc-cache/fc-cache.sgml | 2 +- + fc-cat/fc-cat.sgml | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +commit 694368667a15341ea30b37a36e9540e6b1492680 +Author: Alan Coopersmith +Date: Fri Jan 16 09:35:22 2015 -0800 + + Fix configure to work with Solaris Studio compilers + + Passing -Werror in the scandir() checks caused Studio cc to report + "Unrecognized option errors", confusing configure into thinking that + scandir() was not available. Use Studio equivalent flags instead. + + Leaves -Werror as the default for all other compilers, including + unknown ones, to flag to them that they need to update their flags + as well if -Werror is not correct for them. + + Signed-off-by: Alan Coopersmith + + configure.ac | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +commit 4d739d13f4f58e11c62006e4f70776a945094ea4 +Author: Akira TAGOH +Date: Tue Jan 13 12:40:40 2015 +0900 + + Bump version to 2.11.92 + + README | 9 +++++++-- + configure.ac | 2 +- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 9 insertions(+), 4 deletions(-) + +commit 4c60fabf6617a8954e46bdaeccc95667375fa159 +Author: Akira TAGOH +Date: Tue Jan 6 16:37:18 2015 +0900 + + Add missing docs + + doc/fontconfig-devel.sgml | 5 +++++ + doc/fontconfig-user.sgml | 7 +++++++ + 2 files changed, 12 insertions(+) + +commit fff4086e1587f94c267055ff5c3b48df1f1055f7 +Author: Akira TAGOH +Date: Thu Dec 25 13:49:25 2014 +0900 + + Bump version to 2.11.91 + + README | 80 + +++++++++++++++++++++++++++++++++++++++++++++++-- + configure.ac | 2 +- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 80 insertions(+), 4 deletions(-) + +commit 4420b27c074821a1d1f9d6ebe822a610176a417d +Author: Akira TAGOH +Date: Thu Dec 25 13:48:57 2014 +0900 + + Fix a typo + + missing a terminator caused a document generation fail. + + doc/fcrange.fncs | 1 + + 1 file changed, 1 insertion(+) + +commit 365809938e901e603d2fe93363545e1c1afc1816 +Author: Akira TAGOH +Date: Thu Dec 25 13:11:21 2014 +0900 + + Bump the cache version to 5 + + FcPattern isn't compatible to the older. + + fontconfig/fontconfig.h | 2 +- + src/fcint.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 456937cd15568c7f1a633445dee44ae8e2ed395f +Author: Akira TAGOH +Date: Wed Dec 24 18:53:41 2014 +0900 + + fc-cache: Add an option to raise an error if no fonts found + + and get back the behavior. + + fc-cache/fc-cache.c | 26 +++++++++++++++++--------- + fc-cache/fc-cache.sgml | 31 ++++++++++++++++++++++++++++++- + 2 files changed, 47 insertions(+), 10 deletions(-) + +commit db64c71408636e2d0ac3c39682ac1b6c8f317ac4 +Author: Akira TAGOH +Date: Tue Dec 16 20:43:02 2014 +0900 + + fc-cache: make a fail if no fonts processed on a given path + + fc-cache/fc-cache.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit af5864419441e12f1951c7cfd0a742b6316934cc +Author: Nick Alcock +Date: Sat Dec 13 18:21:16 2014 +0000 + + Generate documentation for FcWeight* functions. + + The SGML for these functions exists, and they are named as manpages, + but because they are not mentioned in fontconfig-devel.sgml, no + documentation is ever generated, and installation under --enable-docs + fails. + + (The documentation I have written in fontconfig-devel.sgml is + boilerplate + so I can get the manpages generated. It's probably wrong.) + + doc/fontconfig-devel.sgml | 7 +++++++ + 1 file changed, 7 insertions(+) + +commit 66db69a6d991945f96feb1da683a2e04ea396842 +Author: Behdad Esfahbod +Date: Sun Dec 14 13:55:53 2014 -0800 + + Treat color fonts as scalable + + All color fonts are designed to be scaled, even if they only have + bitmap strikes. Client is responsible to scale the bitmaps. This + is in constrast to non-color strikes... + + Clients can still use FC_OUTLINE to distinguish bitmap vs outline + fonts. Previously FC_OUTLINE and FC_SCALABLE always had the same + value. Now FC_SCALABLE is set to (FC_OUTLINE || FC_COLOR). + + Fixes: + https://bugs.freedesktop.org/show_bug.cgi?id=87122 + + src/fcfreetype.c | 27 ++++++++++++++++++--------- + 1 file changed, 18 insertions(+), 9 deletions(-) + +commit dbc7c4a2cfe1ba6c537957b3b68b625403ca99fd +Author: Behdad Esfahbod +Date: Sun Dec 14 13:39:41 2014 -0800 + + Add FC_COLOR + + Only adds "color" to pattern if FreeType version supports color. + + Based on patch from Jungshik Shin. + + doc/fontconfig-devel.sgml | 1 + + fontconfig/fontconfig.h | 1 + + src/fcfreetype.c | 6 ++++++ + src/fcmatch.c | 1 + + src/fcobjs.h | 1 + + 5 files changed, 10 insertions(+) + +commit fc7e1a9497919c88d790d9395eb01cd7d5121507 +Author: Behdad Esfahbod +Date: Fri Dec 12 21:42:35 2014 -0800 + + Fix buffer overflow in copying PS name + + As reported on the mailing list by Tanel Liiv. Found using American + Fuzzy Lop. + + src/fcfreetype.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 32ac7c75e8db0135ef37cf86f92d8b9be000c8bb +Author: Akira TAGOH +Date: Tue Dec 9 19:06:46 2014 +0900 + + Returns False if no fonts found + + https://bugs.freedesktop.org/show_bug.cgi?id=86950 + + doc/fcconfig.fncs | 10 ++++++---- + src/fccfg.c | 23 +++++++++++++---------- + 2 files changed, 19 insertions(+), 14 deletions(-) + +commit b732bf057f4b3ec3bac539803005e9c42d056b2a +Author: Akira TAGOH +Date: Thu Nov 6 13:15:09 2014 +0900 + + Update aliases for new URW fonts + + Patch from Tom Yan + + https://bugs.freedesktop.org/show_bug.cgi?id=85225 + + conf.d/30-metric-aliases.conf | 94 + ++++++++++++++++++++++++++++++++++++++----- + conf.d/45-latin.conf | 12 ++++++ + conf.d/60-latin.conf | 3 ++ + 3 files changed, 98 insertions(+), 11 deletions(-) + +commit e7121de237a1873c3241a5b8451e7d00a3d41524 +Author: Akira TAGOH +Date: Fri Oct 3 12:26:42 2014 +0900 + + Revert "Bug 73291 - poppler does not show fl ligature" + + This reverts commit c6aa4d4bfcbed14f39d070fe7ef90a4b74642ee7. + + This issue has been fixed in poppler and we no longer need to patch + it out in fontconfig. + + conf.d/30-metric-aliases.conf | 6 ------ + 1 file changed, 6 deletions(-) + +commit 1082161ea303cf2bbc13b62a191662984131e820 +Author: Akira TAGOH +Date: Thu Sep 25 17:03:27 2014 +0900 + + Add FcRangeGetDouble() + + https://bugs.freedesktop.org/show_bug.cgi?id=82876 + + doc/fcrange.fncs | 10 ++++++++++ + fontconfig/fontconfig.h | 3 +++ + src/fcrange.c | 23 +++++++++++++++++++++++ + 3 files changed, 36 insertions(+) + +commit 286cdc9c10b0453c25950103b6a1f7170d15bfdc +Author: Behdad Esfahbod +Date: Wed Aug 20 15:23:04 2014 -0400 + + Revert "[fcmatch] When matching, reserve score 0 for when elements + don't exist" + + This reverts commit a5a384c5ffb479e095092c2aaedd406f8785280a. + + I don't remember what I had in mind for "We will use this property + later.", but + the change was wrong. If a font pattern doesn't have any value + for element, + it must be interpretted as "it matches any value perfectly. + And "perfectly" + must have a score of 0 for that to happen. + + This was actually affecting bitmap fonts (in a bad way), as the + change made + an outline font to always be preferred over a (otherwise equal) + bitmap font, + even for the exact size of the bitmap font. That probably was + never noticed + by anyone, but with the font range support this has become clear + (and worked + around by Akira). To clean that up, I'm reverting this so I can + land the + rest of patches for bug 80873. + + https://bugs.freedesktop.org/show_bug.cgi?id=80873#c10 + + src/fcmatch.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f0945396875ec4ff60add56935b02c3f66b3fc40 +Author: Akira TAGOH +Date: Wed Aug 13 11:39:29 2014 +0900 + + Note FcConfigSetCurrent() increases the refcount in document + + doc/fcconfig.fncs | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit eb2689c67ba2da969d33be43a05af1e8975e9837 +Author: Akira TAGOH +Date: Tue Aug 12 18:53:04 2014 +0900 + + Fix the memory leak in fc-cat + + fc-cat/fc-cat.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +commit 23e88d8c6a5d3d0a9526a3f3217bd33a7607cbab +Author: Akira TAGOH +Date: Tue Aug 12 18:48:00 2014 +0900 + + Increase the refcount in FcConfigSetCurrent() + + https://bugs.freedesktop.org/show_bug.cgi?id=82432 + + fc-cat/fc-cat.c | 1 + + src/fccfg.c | 5 +++++ + src/fcinit.c | 9 ++++++++- + 3 files changed, 14 insertions(+), 1 deletion(-) + +commit 841753a93f0e5698663b7931b8456e7b96259f54 +Author: Akira TAGOH +Date: Mon Aug 11 12:14:54 2014 +0900 + + fallback to the another method to lock when link() failed + + Bug 82358 - FcAtomicLock fails on OS X on network mounts + https://bugs.freedesktop.org/show_bug.cgi?id=82358 + + src/fcatomic.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 748a2ce9d4bd6aae90b974724b795056e2bcb4d7 +Author: Behdad Esfahbod +Date: Wed Aug 6 14:45:02 2014 -0400 + + Fix previous commit + + Ouch! + + conf.d/45-latin.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3d2627bba6ce9f743273c6031a34fb2750c04a41 +Author: Behdad Esfahbod +Date: Wed Aug 6 14:28:18 2014 -0400 + + Trebuchet MS is a sans-serif font, not serif + + https://bugs.freedesktop.org/show_bug.cgi?id=82099 + + conf.d/45-latin.conf | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 80edaccc3cbd77434718e8f4731a20b410f9d10a +Author: Behdad Esfahbod +Date: Wed Aug 6 12:29:35 2014 -0400 + + If OS/2 table says weight is 1 to 9, multiply by 100 + + https://bugs.freedesktop.org/show_bug.cgi?id=82228 + + src/fcweight.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit 01bb6978b6389852c5259b135af45ecdfe9f42f8 +Author: Behdad Esfahbod +Date: Wed Aug 6 12:23:24 2014 -0400 + + Fix assertion failure + + https://bugs.freedesktop.org/show_bug.cgi?id=82220 + https://bugs.freedesktop.org/show_bug.cgi?id=82228 + + src/fcweight.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 37e501ed0af9b1f68f64600e00e90809e19f9302 +Author: Behdad Esfahbod +Date: Sun Jul 27 16:53:28 2014 -0400 + + Remove unneeded FcPublic + + src/fcweight.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit a9e7b0494e04b3925d1bccc140ff2500cfff9618 +Author: Behdad Esfahbod +Date: Sat Jul 26 16:17:02 2014 -0400 + + Export recently added API + + We should remove this alias mess. + + src/fccompat.c | 4 ++++ + src/fcrange.c | 4 ++++ + src/fcstat.c | 4 ++++ + src/fcweight.c | 4 ++++ + 4 files changed, 16 insertions(+) + +commit ffda7c0e8130eb107ecbb3bdc48043093b12dff9 +Author: Behdad Esfahbod +Date: Fri Jul 25 17:59:26 2014 -0400 + + Linearly interpolate weight values + + Rest of Part of https://bugs.freedesktop.org/show_bug.cgi?id=81453 + + Adds new API: + + FcWeightFromOpenType() + FcWeightToOpenType() + + doc/Makefile.am | 1 + + doc/fcweight.fncs | 47 +++++++++++++++++++++++++++ + fontconfig/fontconfig.h | 7 +++++ + src/Makefile.am | 1 + + src/fcfreetype.c | 27 +--------------- + src/fcweight.c | 84 + +++++++++++++++++++++++++++++++++++++++++++++++++ + 6 files changed, 141 insertions(+), 26 deletions(-) + +commit bf9df5ada77469f57101851f6b4e279a4a5ea087 +Author: Behdad Esfahbod +Date: Fri Jul 25 18:07:10 2014 -0400 + + Change DemiLight from 65 to 55 + + Such that Regular is closer to Medium than to DemiLight + + doc/fontconfig-user.sgml | 4 ++-- + fontconfig/fontconfig.h | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit be6506ca04ccce10868a8cd51d89e586284d149b +Author: Behdad Esfahbod +Date: Fri Jul 25 16:24:26 2014 -0400 + + Add FC_WEIGHT_DEMILIGHT + + Part of https://bugs.freedesktop.org/show_bug.cgi?id=81453 + Also hooks up FC_WEIGHT_BOOK to fcfreetype.c. + + doc/fontconfig-user.sgml | 2 ++ + fontconfig/fontconfig.h | 2 ++ + src/fcfreetype.c | 8 +++++++- + src/fcname.c | 2 ++ + 4 files changed, 13 insertions(+), 1 deletion(-) + +commit 9839d0112c6d61ae22bb3f215bffbe88df6781a1 +Author: Behdad Esfahbod +Date: Thu Jul 24 16:07:13 2014 -0400 + + Improve / cleanup namelang matching + + Previously, if the patten didn't request, eg, style, then the style + and stylelang were fully copied from the font, even though the pattern + had a stylelang. Eg: + + $ fc-match 'Apple Color Emoji:stylelang=en' + Apple Color Emoji.ttf: "Apple Color Emoji" "標準體" + + This change both fixes that and makes the code much more readable. + Now: + + $ fc-match 'Apple Color Emoji:stylelang=en' + Apple Color Emoji.ttf: "Apple Color Emoji" "Regular" + + src/fcmatch.c | 45 +++++++++++++++++++++++---------------------- + 1 file changed, 23 insertions(+), 22 deletions(-) + +commit 874a5491641642f669396c514c3672f6794fdfa7 +Author: Behdad Esfahbod +Date: Thu Jul 24 15:42:54 2014 -0400 + + Remove unused regex code + + Regex matching was disabled in + f6244d2cf231e1dc756f3e941e61b9bf124879bb + + configure.ac | 10 ++-------- + src/fcint.h | 6 ------ + src/fcstr.c | 52 ---------------------------------------------------- + 3 files changed, 2 insertions(+), 66 deletions(-) + +commit 9a8e812477bd65d2ecfa721819d0555289520401 +Author: Behdad Esfahbod +Date: Thu Jul 24 15:37:51 2014 -0400 + + Use lang=und instead of lang=xx for "undetermined" + + That's the correct BCP 47 code. + + src/fcfreetype.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 76151ceaf3417a987ae2c36b247ca82f50d857f6 +Author: Behdad Esfahbod +Date: Thu Jul 24 15:34:20 2014 -0400 + + Ouch, fix buffer + + src/fcfreetype.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit aeba5bf4b69f8b559cb909df12d0a636e6054325 +Author: Behdad Esfahbod +Date: Thu Jul 24 15:28:09 2014 -0400 + + Decode MacRoman encoding in name table without iconv + + iconv support was turned off by default in f30a5d76. + Some fonts, like Apple Color Emoji, only have their English + name in a MacRoman entry. As such, decode MacRoman ourselves. + + src/fcfreetype.c | 162 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 162 insertions(+) + +commit 07a0f511b13a872824c2c57251b7e47ee7df1354 +Author: Behdad Esfahbod +Date: Thu Jul 24 15:01:57 2014 -0400 + + Call FcInitDebug from FcFreeTypeQueryFace + + src/fcfreetype.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit a5641cfb2472a92a64858d00525ae3b0fc0ae2a4 +Author: Behdad Esfahbod +Date: Wed Jul 23 13:21:05 2014 -0400 + + Revert "Symlinks fix for DESTDIR" + + This reverts commit fd5667b42c253da9c4c5502f53b5c0fb7e0f589e. + + This was wrong, as pointed out by Akira on the list. + We want symlinks to final destination. + + conf.d/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit fd5667b42c253da9c4c5502f53b5c0fb7e0f589e +Author: Behdad Esfahbod +Date: Wed Jul 23 11:57:31 2014 -0400 + + Symlinks fix for DESTDIR + + From: + https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-fontconfig/fontconfig-2.11.0-symlinks-fix.patch + + conf.d/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 107b44f50b6818288ad70608fbe4ec3fd1a7119f +Author: Akira TAGOH +Date: Wed Jul 23 19:17:26 2014 +0900 + + Don't add duplicate lang + + Don't add duplicate lang from FC_LANG if the pattern already has. + + https://bugs.freedesktop.org/show_bug.cgi?id=81186 + + src/fccfg.c | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +commit 342b908b9696a3f1cf1a45ddd779f3a17d6f9142 +Author: Behdad Esfahbod +Date: Sat Jul 19 16:33:49 2014 -0400 + + More mingw32 MemoryBarrier() fixup + + src/fcwindows.h | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +commit 6781c6baef062eeea5b5b68e4a9c31ea6cd7539b +Author: Behdad Esfahbod +Date: Fri Jul 11 12:19:39 2014 -0400 + + Update mingw32 MemoryBarrier from HarfBuzz + + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=81228 + + src/fcatomic.h | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +commit dca5d0feee5eb6428bec48b1aff4396cf92c76c0 +Author: Akira TAGOH +Date: Tue Jul 8 14:55:15 2014 +0900 + + Fix a gcc warning + + test-migration.c:17:5: warning: pointer targets in passing argument + 1 of 'FcStrDirname' differ in signedness + + test/test-migration.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit da8233b0f244676ea372ffa485b6cb329700c8ca +Author: Behdad Esfahbod +Date: Sun Jul 6 18:26:03 2014 -0400 + + Fixup previous commit + + src/fcmatch.c | 12 ------------ + src/fcobjs.h | 2 +- + 2 files changed, 1 insertion(+), 13 deletions(-) + +commit bb27d6969ce0ef1244e73f9c6232f91bce60dad7 +Author: Behdad Esfahbod +Date: Sun Jul 6 18:10:44 2014 -0400 + + Remove HASH from matching priorities + + We deprecated FC_HASH, so doesn't make sense to sort on it. + + src/fcmatch.c | 1 - + 1 file changed, 1 deletion(-) + +commit 5674b8a66354d657559c37e9d168bfbf48b931a8 +Author: Behdad Esfahbod +Date: Sun Jul 6 17:41:19 2014 -0400 + + Comments + + src/fcmatch.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 5b22776999b6052afe0e829b1a0c0935bbe1e9f7 +Author: Akira TAGOH +Date: Fri Jul 4 18:04:52 2014 +0900 + + Fix a crash when no sysroot is given and failed to load the default + fonts.conf + + src/fccfg.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +commit f5b4b2c1ed7ff92e2fb9339750f0288e2e794c4b +Author: Behdad Esfahbod +Date: Fri Jul 4 01:43:47 2014 -0400 + + Fix charset unparse after recent changes + + src/fccharset.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 940d27a197bfb0cfd93d3bb7dba33d5e23ac46b0 +Author: Behdad Esfahbod +Date: Thu Jul 3 21:15:25 2014 -0400 + + Minor + + src/fccharset.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit e708e97c351d3bc9f7030ef22ac2f007d5114730 +Author: Behdad Esfahbod +Date: Thu Jul 3 17:52:54 2014 -0400 + + Change charset parse/unparse format to be human readable + + Previous format was unusable. New format is ranges of hex values. + To choose space character and Latin capital letters for example: + + $ fc-pattern ':charset=20 41-5a' + Pattern has 1 elts (size 16) + charset: + 0000: 00000000 00000001 07fffffe 00000000 00000000 00000000 + 00000000 00000000 + (s) + + src/fccharset.c | 223 + ++++++++++++++++++++------------------------------------ + 1 file changed, 79 insertions(+), 144 deletions(-) + +commit dab60e4476ada4ad4639599ea24dd012d4a79584 +Author: Akira TAGOH +Date: Mon Jun 30 15:12:32 2014 +0900 + + Rework for 5004e8e01f5de30ad01904e57ea0eda006ab3a0c + + Don't read/write from/to the XDG dirs even if XDG_*_HOME is set + and the home directory is disabled. + + src/fccfg.c | 24 +++++++++--------------- + 1 file changed, 9 insertions(+), 15 deletions(-) + +commit 5004e8e01f5de30ad01904e57ea0eda006ab3a0c +Author: Akira TAGOH +Date: Mon Jun 30 12:37:36 2014 +0900 + + Don't read/write from/to the XDG dirs if the home directory is + disabled + + src/fccfg.c | 18 +++++++++++++++--- + src/fcxml.c | 23 ++++++++++++++++++++++- + 2 files changed, 37 insertions(+), 4 deletions(-) + +commit 274f2181f294af2eff3e8db106ec8d7bab2d3ff1 +Author: Behdad Esfahbod +Date: Wed Jun 18 12:20:57 2014 -0400 + + Update blanks to Unicode 7.0 + + fonts.conf.in | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 2f96482a9f5bc185b244a8bdaa7563a829965f1a +Author: Akira TAGOH +Date: Wed Jun 18 19:13:53 2014 +0900 + + Update CaseFolding.txt to Unicode 7.0 + + fc-case/CaseFolding.txt | 59 + ++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 53 insertions(+), 6 deletions(-) + +commit 6c3c2603b9f68a7460e9642d0421b5cc5a848452 +Author: Akira TAGOH +Date: Wed Jun 18 11:49:10 2014 +0900 + + Fix a segfault + + introduced by the previous commit + d17f556153fbaf8fe57fdb4fc1f0efa4313f0ecf + + src/fcdir.c | 22 ++++++++++++---------- + 1 file changed, 12 insertions(+), 10 deletions(-) + +commit 8915c15b9ee394ef19042f1acf75eb8b0592e5a7 +Author: Behdad Esfahbod +Date: Thu Jun 12 17:56:04 2014 -0400 + + Update list of blanks to Unicode 6.3.0 + + Some were bogus, some were missing. See: + + https://bugs.freedesktop.org/show_bug.cgi?id=79956 + + fonts.conf.in | 20 +++++++++----------- + 1 file changed, 9 insertions(+), 11 deletions(-) + +commit d17f556153fbaf8fe57fdb4fc1f0efa4313f0ecf +Author: Akira TAGOH +Date: Tue Jun 17 20:08:24 2014 +0900 + + Read the config files and fonts on the sysroot when --sysroot is + given to fc-cache + + Fix for e96d7760886a3781a46b3271c76af99e15cb0146 + + https://bugs.freedesktop.org/show_bug.cgi?id=59456 + + fc-cache/fc-cache.c | 10 ++++--- + src/fccache.c | 76 + +++++++++++++++++++++++++++++++++++-------------- + src/fccfg.c | 2 +- + src/fcdir.c | 82 + ++++++++++++++++++++++++++++++++++++++++++++++------- + src/fcinit.c | 17 +++++++++-- + src/fcint.h | 3 +- + src/fcxml.c | 12 ++++++-- + 7 files changed, 158 insertions(+), 44 deletions(-) + +commit 8f62ccaa962b13781d7916d4d1c061993b991e69 +Author: Behdad Esfahbod +Date: Mon Jun 9 22:00:25 2014 -0400 + + Remove unused FcHash code now that FC_HASH is deprecated + + src/Makefile.am | 1 - + src/fcfreetype.c | 51 --------------- + src/fchash.c | 189 + ------------------------------------------------------- + src/fcint.h | 19 ------ + 4 files changed, 260 deletions(-) + +commit 75abdaf5c8e8b14c3e9e94ff5c563091594a32cf +Author: Behdad Esfahbod +Date: Mon Jun 9 21:53:01 2014 -0400 + + Deprecate FC_HASH and don't compute it + + It was added without proper measurement and a fuzzy possible + use-case (font servers) in mind, but reality check shows that + this significantly slows down caching. As such, deprecate it + and do NOT compute hash during caching. + + Makes caching two to three times faster (ignoring the 2 second + delay in fc-cache). + + doc/fontconfig-devel.sgml | 2 +- + fontconfig/fontconfig.h | 2 +- + src/fcfreetype.c | 2 ++ + src/fcobjs.h | 4 ++-- + 4 files changed, 6 insertions(+), 4 deletions(-) + +commit cd9631d83e51bab95413a8aa0e8ecc68f3e3a0fc +Author: Behdad Esfahbod +Date: Thu Jun 12 17:01:07 2014 -0400 + + [ko.orth] Remove U+3164 HANGUL FILLER + + Better not to reject a font just over that. Note that we do NOT + list U+115F and U+1160 either. + + fc-lang/ko.orth | 1 - + 1 file changed, 1 deletion(-) + +commit f44bfad235e63bb792c38e16ae1fbd281ec1453b +Author: Akira TAGOH +Date: Thu Jun 5 19:06:02 2014 +0900 + + Workaround another race condition issue + + See https://bugzilla.redhat.com/show_bug.cgi?id=921706 + + src/fccache.c | 24 +++++++++++++++++++++++- + src/fcdir.c | 30 ++++++++++++++++++++++++------ + src/fcint.h | 7 ++++++- + 3 files changed, 53 insertions(+), 8 deletions(-) + +commit 58acd993cb13b58c61633174071ef42da3dcac85 +Author: Behdad Esfahbod +Date: Fri May 16 15:08:52 2014 -0600 + + Allow passing NULL for file to FcFreeTypeQueryFace() + + src/fcfreetype.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 3f992254f2a3b7f88df989067785141cbf265037 +Author: Behdad Esfahbod +Date: Fri May 16 15:02:58 2014 -0600 + + Rewrite hashing to use FT_Stream directly + + This is more robust but introduces a small change in behavior: + For .pcf.gz fonts, the new code calculates the hash of the + uncompressed + font data whereas the original code was calculating the hash of the + compressed data. + + No big deal IMO. + + src/fcfreetype.c | 78 + ++++++++++++++++++++++++++++++-------------------------- + src/fchash.c | 75 + +++-------------------------------------------------- + src/fcint.h | 19 +++++++++++--- + 3 files changed, 61 insertions(+), 111 deletions(-) + +commit 8284df49ef45678781fc6e05d18cc04acf04cf3c +Author: Behdad Esfahbod +Date: Fri May 16 14:17:45 2014 -0600 + + Further simplify hash code + + src/fchash.c | 88 + ++++++++++++++++++++++++++---------------------------------- + 1 file changed, 38 insertions(+), 50 deletions(-) + +commit 748e77e89f8f6ba297ce9d206ac3834ae087201d +Author: Behdad Esfahbod +Date: Fri May 16 14:03:19 2014 -0600 + + Simplify hash code + + src/fcfreetype.c | 4 +-- + src/fchash.c | 94 + ++++++++++++++++++++++++++------------------------------ + src/fcint.h | 6 ++-- + 3 files changed, 48 insertions(+), 56 deletions(-) + +commit e4d8847eee14ddfa9632057bca36cb60dfa1b35f +Author: Behdad Esfahbod +Date: Fri May 16 13:45:44 2014 -0600 + + Remove unused code + + src/fchash.c | 41 ----------------------------------------- + src/fcint.h | 4 ---- + 2 files changed, 45 deletions(-) + +commit 48c8b7938a0f1412d31dbe2f4e332e460f624068 +Author: Akira TAGOH +Date: Tue May 13 21:21:43 2014 +0900 + + Allow the modification on FcTypeVoid with FcTypeLangSet and + FcTypeCharSet + + FcTypeVoid is likely to happen when 'lang' and 'charset' + is deleted by 'delete' or 'delete_all' mode in edit. + Without this change, any modification on them are simply + ignored. + + This is useful to make a lot of changes, particularly + when one wants to add a few and delete a lot say. + + src/fccfg.c | 10 ++++++++++ + src/fccharset.c | 15 +++++++++++++++ + src/fcint.h | 3 +++ + src/fclang.c | 27 +++++++++++++++------------ + 4 files changed, 43 insertions(+), 12 deletions(-) + +commit 81664fe54f117e4781fda5a30429b51858302e91 +Author: Akira TAGOH +Date: Tue Apr 22 12:39:12 2014 +0900 + + Rebase ja.orth against Joyo kanji characters + + Patch from Akihiro TSUKADA + + fc-lang/ja.orth | 4234 + +------------------------------------------------------ + 1 file changed, 7 insertions(+), 4227 deletions(-) + +commit f44157c809d280e2a0ce87fb078fc4b278d24a67 +Author: Akira TAGOH +Date: Thu Apr 10 19:27:55 2014 +0900 + + Fix fc-cache fail with -r + + Do not unlink the cache even if --really-force is given. + because re-scanning process expects the cache exists. + + https://bugs.freedesktop.org/show_bug.cgi?id=77252 + + fc-cache/fc-cache.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 91784eb7d0c9f9f357210f4c82555469da37334a +Author: Akira TAGOH +Date: Fri Apr 4 12:18:28 2014 +0900 + + Fix a typo + + https://bugs.freedesktop.org/show_bug.cgi?id=77033 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit fcba9ef01c978323fc71c17e455d3cd6ae35edcc +Author: Akira TAGOH +Date: Wed Mar 26 16:01:49 2014 +0900 + + Fix missing docs + + doc/Makefile.am | 1 + + doc/fcpattern.fncs | 27 +++++++++++++++++--- + doc/fcrange.fncs | 64 + +++++++++++++++++++++++++++++++++++++++++++++++ + doc/fontconfig-devel.sgml | 7 ++++++ + 4 files changed, 95 insertions(+), 4 deletions(-) + +commit fff91eee7df5a71ed9a63a4b6e3b02c14eaf9cb3 +Author: Akira TAGOH +Date: Wed Mar 26 12:22:02 2014 +0900 + + Fix a build issue with freetype <2.5.1 + + src/fcfreetype.c | 3 --- + 1 file changed, 3 deletions(-) + +commit 3cd573fc1fb67db75cd356cad3e901d24af1ce8a +Author: Akira TAGOH +Date: Wed Nov 20 18:44:59 2013 +0900 + + Bug 71287 - size specific design selection support in OS/2 table + version 5 + + This feature requires the FreeType 2.5.1 or later at the build time. + + Besides element allows elements with this changes. + + This may breaks the cache but not bumping in this change sets at + this moment. + please be aware if you want to try it and run fc-cache before/after to + avoid the weird thing against it. + + configure.ac | 4 + + fontconfig/fcprivate.h | 3 + + fontconfig/fontconfig.h | 28 ++++++- + src/Makefile.am | 1 + + src/fccfg.c | 48 +++++++---- + src/fcdbg.c | 13 ++- + src/fcdefault.c | 47 ++++++----- + src/fcfreetype.c | 38 +++++++++ + src/fcint.h | 85 ++++++++++++++++---- + src/fclist.c | 2 + + src/fcmatch.c | 45 +++++++++++ + src/fcname.c | 49 +++++++++++- + src/fcobjs.h | 2 +- + src/fcpat.c | 73 +++++++++++++++++ + src/fcrange.c | 207 + ++++++++++++++++++++++++++++++++++++++++++++++++ + src/fcxml.c | 108 +++++++++++++++++++------ + 16 files changed, 663 insertions(+), 90 deletions(-) + +commit 9260b7ec39c34ce68d74e16d47917290a8c3f35a +Author: Akira TAGOH +Date: Mon Mar 24 15:03:12 2014 +0900 + + Bump version to 2.11.1 + + README | 57 + +++++++++++++++++++++++++++++++++++++++++++++++-- + configure.ac | 2 +- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 57 insertions(+), 4 deletions(-) + +commit 812143c34d904fb26de471a579a7e381b7f7f33b +Author: Akira TAGOH +Date: Mon Mar 24 15:02:26 2014 +0900 + + Fix autoconf warning, warning: AC_COMPILE_IFELSE was called before + AC_USE_SYSTEM_EXTENSIONS + + Call AC_USE_SYSTEM_EXTENSIONS before LT_INIT + + configure.ac | 48 ++++++++++++++++++++++++------------------------ + 1 file changed, 24 insertions(+), 24 deletions(-) + +commit 5478192f379d784b421329e4bf72cc780818e467 +Author: Akira TAGOH +Date: Tue Mar 18 12:14:03 2014 +0900 + + Add README describes the criteria to add/modify the orthography files + + https://bugs.freedesktop.org/show_bug.cgi?id=73461 + + fc-lang/README | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +commit c6aa4d4bfcbed14f39d070fe7ef90a4b74642ee7 +Author: Akira TAGOH +Date: Tue Mar 18 11:51:37 2014 +0900 + + Bug 73291 - poppler does not show fl ligature + + commented out substitutions for TeX Gyre Termes font + until the broken font are fixed. + + https://bugs.freedesktop.org/show_bug.cgi?id=73291 + + conf.d/30-metric-aliases.conf | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit f8ccf379eb1092592ae0b65deb563c5491f69de9 +Author: Akira TAGOH +Date: Fri Mar 7 19:42:21 2014 +0900 + + Update doc to include the version info of `since when' + + Version section was getting confused to the API's availability, + even though it was the version the doc was genereated. + So moving it into the footer and added @SINCE@ field in the data. + + doc/fccache.fncs | 2 ++ + doc/fccharset.fncs | 1 + + doc/fcconfig.fncs | 2 ++ + doc/fcdircache.fncs | 1 + + doc/fcformat.fncs | 1 + + doc/fclangset.fncs | 6 ++++++ + doc/fcstrset.fncs | 1 + + doc/func.sgml | 9 +++++---- + 8 files changed, 19 insertions(+), 4 deletions(-) + +commit 39a2f1e8f98d27b929d56a55a68b3a20d2f8dd32 +Author: Akira TAGOH +Date: Wed Mar 5 18:29:29 2014 +0900 + + Fallback to lstat() in case the filesystem doesn't support d_type + in struct dirent + + src/fcstat.c | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +commit e310d2fac2d874d5aa76c609df70cc7b871c0b6d +Author: Akira TAGOH +Date: Thu Feb 6 19:40:01 2014 +0900 + + Fix incompatible API on AIX with random_r and initstate_r + + https://bugs.freedesktop.org/show_bug.cgi?id=74603 + + src/fccompat.c | 35 ++++++++++++++++++++++++----------- + 1 file changed, 24 insertions(+), 11 deletions(-) + +commit 7d75653285a3cd67b5f066fe899821462d7f324f +Author: Akira TAGOH +Date: Thu Feb 6 17:29:19 2014 +0900 + + Add missing #include in fcstat.c + + https://bugs.freedesktop.org/show_bug.cgi?id=74602 + + configure.ac | 2 +- + src/fcstat.c | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +commit 787619b2c7bfbdc91ed170381f28003e86679c99 +Author: Akira TAGOH +Date: Thu Feb 6 17:15:26 2014 +0900 + + Add a doc for FcDirCacheRescan + + doc/fcdircache.fncs | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit 80081555fdffea927a53fce2773cfbe9db4c51f0 +Author: Akira TAGOH +Date: Fri Jan 31 11:10:02 2014 +0900 + + Fix a crash issue when empty strings are set to the BDF properties + + src/fcfreetype.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit e2b406053c2937799da8636c56b72a77998bcab0 +Author: Akira TAGOH +Date: Wed Jan 22 19:35:07 2014 +0900 + + Update the use of autotools' macro + + configure.ac | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 5918d5bea5416cf27061db4263aefeb8fd310f0e +Author: Akira TAGOH +Date: Fri Jan 17 13:05:25 2014 +0900 + + Add missing license headers + + https://bugs.freedesktop.org/show_bug.cgi?id=73401 + + autogen.sh | 22 ++++++++++++++++++++++ + new-version.sh | 21 +++++++++++++++++++++ + src/fcobjs.h | 23 +++++++++++++++++++++++ + src/fcobjshash.gperf.h | 23 +++++++++++++++++++++++ + test/run-test.sh | 21 +++++++++++++++++++++ + test/test-migration.c | 24 ++++++++++++++++++++++++ + test/test-pthread.c | 26 ++++++++++++++++++++++++-- + 7 files changed, 158 insertions(+), 2 deletions(-) + +commit bfdd40efd1c82dec5c818c8ce5f78d96fe0ebede +Author: Akira TAGOH +Date: Fri Jan 17 12:57:56 2014 +0900 + + clean up the unused files + + config/Makedefs.in | 76 --- + config/config-subst | 10 - + config/config.guess | 1497 + ----------------------------------------------- + config/config.sub | 1608 + --------------------------------------------------- + config/install.sh | 240 -------- + 5 files changed, 3431 deletions(-) + +commit f35b44c35bf8468ea4c28c7efa77b47b1e2a1930 +Author: Akira TAGOH +Date: Fri Jan 17 12:24:02 2014 +0900 + + Update zh_hk.orth + + Patch from Abel Cheung + + https://bugs.freedesktop.org/show_bug.cgi?id=73461 + + fc-lang/zh_hk.orth | 2249 + +++++++++++++--------------------------------------- + 1 file changed, 564 insertions(+), 1685 deletions(-) + +commit 320283cd70ae31ce46b03e0c5da55412089ce953 +Author: Akira TAGOH +Date: Thu Jan 16 19:30:35 2014 +0900 + + Bug 73686 - confdir is not set correctly in fontconfig.pc + + fontconfig.pc.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 7a6622f25cdfab5ab775324bef1833b67109801b +Author: Akira TAGOH +Date: Thu Dec 5 19:15:47 2013 +0900 + + Improve the performance issue on rescanning directories + +Notes: + Tested-by: Jeremy Huddleston Sequoia + + fc-cache/fc-cache.c | 10 ++++++++-- + fontconfig/fontconfig.h | 3 +++ + src/fccache.c | 13 +++++++++++++ + src/fcdir.c | 46 + +++++++++++++++++++++++++++++++++++++++++++++- + src/fcfs.c | 22 ++++++++++++++++++++++ + src/fcint.h | 6 ++++++ + src/fcpat.c | 2 ++ + 7 files changed, 99 insertions(+), 3 deletions(-) + +commit 5c725f2f5829238d16116f782d00d8bb0defaf08 +Author: Akira TAGOH +Date: Mon Dec 16 17:44:37 2013 +0900 + + Fix a build issue on platforms where doesn't support readlink() + + configure.ac | 2 +- + src/fcdefault.c | 4 +++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +commit 1132c98b7b760be24a301c9dbd24e348f6601fed +Author: Akira TAGOH +Date: Mon Dec 16 16:00:12 2013 +0900 + + Fix a typo + + conf.d/10-no-sub-pixel.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit fee834a9c9e1089a9ae29b1d8e8b6a4cc710204b +Author: Behdad Esfahbod +Date: Mon Dec 9 21:21:57 2013 -0500 + + Bug 72380 - Never drop first font when trimming + + Let me show it with an example. + + Currently: + + $ fc-match symbol + symbol.ttf: "Symbol" "Regular" + + $ fc-match symbol --sort | head -n 1 + Symbol.pfb: "Symbol" "Regular" + + $ fc-match symbol --sort --all | head -n 1 + symbol.ttf: "Symbol" "Regular" + + I want to make sure the above three commands all return the same font. + Ie. I want to make sure FcFontMatch() always returns the first font + from FcFontSort(). As such, never trim first font. + + src/fcmatch.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit c9e24f9ef41e2c3e552ddd35d8c70daae5b505cd +Author: Jehan +Date: Sun Nov 17 22:38:28 2013 +1300 + + Defaulting to LOCAL_APPDATA_FONTCONFIG_CACHE for Win32 + build + + https://bugs.freedesktop.org/show_bug.cgi?id=71691 + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2e933bd8bcad936717b6b9d8a22b86b7ddb5457e +Author: Frederic Crozat +Date: Fri Dec 6 14:23:52 2013 +0100 + + Add metric aliases for additional Google ChromeOS fonts + + MS fonts Cambria, Symbol and Calibri have compat metrics fonts + from ChromeOS. + + https://bugs.freedesktop.org/show_bug.cgi?id=72395 + + conf.d/30-metric-aliases.conf | 43 + +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 43 insertions(+) + +commit 6a06e29491ffdb5be6342164b96de59c6fa07b32 +Author: Frederic Crozat +Date: Fri Dec 6 14:08:08 2013 +0100 + + Fix inversion between Tinos and Cousine in the comment + + conf.d/30-metric-aliases.conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit d97fbbe9f59965167fbc0bdc49f983c2bc96d521 +Author: Akira TAGOH +Date: Mon Dec 2 19:18:25 2013 +0900 + + Simplify to validate the availability of scandir + + configure.ac | 48 +++++++++++++++++++++++------------------------- + 1 file changed, 23 insertions(+), 25 deletions(-) + +commit 51521153490ab0b01959c10c57e476de3ad27acb +Author: Akira TAGOH +Date: Mon Dec 2 18:43:10 2013 +0900 + + Simplify to validate the availability of posix_fadvise + + configure.ac | 12 ++---------- + m4/ac_check_symbol.m4 | 48 + ++++++++++++++++++++++++++++++++++++++++++++++++ + src/fccache.c | 2 +- + 3 files changed, 51 insertions(+), 11 deletions(-) + +commit 59fd9960bbb58fd6257adb13ec0f918882149332 +Author: Akira TAGOH +Date: Mon Dec 2 15:53:57 2013 +0900 + + Bug 72086 - Check for gperf in autogen.sh + + autogen.sh | 9 +++++++++ + 1 file changed, 9 insertions(+) + +commit a5fd7912ff8c7bc72d2cdbd0038c7ff0c968831f +Author: Ross Burton +Date: Tue Nov 26 17:18:25 2013 +0000 + + fc-cache: --sysroot option takes an argument + + The getopt_long option definitions say that sysroot doesn't take + an argument, + when it in fact does. + + Signed-off-by: Ross Burton + + fc-cache/fc-cache.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 38acb08d9778ebad2bfc3407532adf8f2e8e667e +Author: Akira TAGOH +Date: Mon Nov 11 11:53:09 2013 +0900 + + Fix typo + + Use FcTypeUnknown instead of -1 with type casting. + This seems missed when it was changed. + + Patch from brian porter + + src/fcxml.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit a4443e64c89256087d40462cfbb482950873e366 +Author: Akira TAGOH +Date: Tue Nov 5 20:30:35 2013 +0900 + + Re-scan font directories only when it contains subdirs + + Somewhat improves the performance but still need to think about for + the situation + where both directories and fonts are in. + + fc-cache/fc-cache.c | 26 ++++++++++++++++++-------- + 1 file changed, 18 insertions(+), 8 deletions(-) + +commit 0b7f42f777a14ee61783fd95dd04e870f02d201e +Author: Alan Coopersmith +Date: Sat Nov 2 10:23:57 2013 -0700 + + Avoid null pointer dereference in FcNameParse if malloc fails + + Reported by parfait 1.3: + Error: Null pointer dereference (CWE 476) + Read from null pointer t + at line 423 of src/fcname.c in function 'FcNameParse'. + Function _FcObjectLookupOtherTypeByName may return constant + 'NULL' + at line 63, called at line 122 of src/fcobjs.c in function + 'FcObjectLookupOtherTypeByName'. + Function FcObjectLookupOtherTypeByName may return constant + 'NULL' + at line 122, called at line 67 of src/fcname.c in function + 'FcNameGetObjectType'. + Function FcNameGetObjectType may return constant 'NULL' + at line 67, + called at line 422 in function 'FcNameParse'. + Null pointer introduced at line 63 of src/fcobjs.c in + function + '_FcObjectLookupOtherTypeByName'. + + Signed-off-by: Alan Coopersmith + + src/fcname.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 5b8380d52eae55cba0adcc47d78a53c320d294ec +Author: Alan Coopersmith +Date: Sat Nov 2 10:23:56 2013 -0700 + + Avoid memory leak when NULL path passed to FcStrBuildFilename + + Reported by parfait 1.3: + Memory leak of pointer sset allocated with FcStrSetCreate() + at line 933 of src/fcstr.c in function 'FcStrBuildFilename'. + sset allocated at line 927 with FcStrSetCreate(). + sset leaks when sset != NULL at line 932. + + Signed-off-by: Alan Coopersmith + + src/fcstr.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit cb72901d0b7dff73ea2596491c5db602e4750853 +Author: Alan Coopersmith +Date: Sat Nov 2 10:23:55 2013 -0700 + + Leave room for null terminators in arrays + + Code currently returns a fatal error if it tries to add more entries + than the array has room for, but it wasn't checking to make sure + the final null terminator entry would fit. + + Reported by parfait 1.3: + Error: Buffer overrun + Buffer overflow (CWE 120): In array dereference of files[i] + with index i + Array size is 256 elements (of 4 bytes each), index >= 0 and + index <= 256 + at line 250 of fc-glyphname/fc-glyphname.c in function 'main'. + Error: Buffer overrun + Buffer overflow (CWE 120): In array dereference of entries[i] + with index i + Array size is 1024 elements (of 8 bytes each), index >= 0 and + index <= 1024 + at line 298 of fc-lang/fc-lang.c in function 'main'. + + Signed-off-by: Alan Coopersmith + + fc-glyphname/fc-glyphname.c | 2 +- + fc-lang/fc-lang.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 767108aa1327cf0156dfc6f024dbc8fb783ae067 +Author: Akira TAGOH +Date: Thu Oct 31 22:12:26 2013 +0900 + + Correct DTD + + fonts.dtd | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit aa22e6e63933e8b31a032835b712b7ed596534cc +Author: Akira TAGOH +Date: Thu Jan 24 19:48:48 2013 +0900 + + Warn if no nor elements in + + This corrects an error message being reported at + https://bugs.freedesktop.org/show_bug.cgi?id=71085 + Bug 71085 - "out of memory" errors on empty match element in + fonts.conf + + and somewhat works as a workaround for + https://bugs.freedesktop.org/show_bug.cgi?id=59438 + Bug 59438 - Fix inside + + src/fcxml.c | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 525a135ccf53e4bf3363c3143d9cfdf15fba55ab +Author: Akira TAGOH +Date: Mon Oct 28 11:54:04 2013 +0900 + + Change the default weight on match to FC_WEIGHT_NORMAL + + src/fcdefault.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 65872e9e46d17e4461c3a891ef23abe156005e04 +Author: Akira TAGOH +Date: Thu Oct 24 19:35:26 2013 +0900 + + Fix a build issue on Solaris 10 + + Use own mkdtemp implementation if not available. + + Reported by Thomas Klausner and Jörn Clausen + + configure.ac | 2 +- + test/test-migration.c | 15 ++++++++++++++- + 2 files changed, 15 insertions(+), 2 deletions(-) + +commit 76ea9af816a50c6bb0b3dc2960460a90fadd9cdb +Author: Akira TAGOH +Date: Tue Oct 22 15:00:29 2013 +0900 + + Use stat() if there are no d_type in struct dirent + + Reported by Thomas Klausner + + test/test-migration.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +commit 5e029db4971e37437cfe6147d52d00136dfb8cb5 +Author: Akira TAGOH +Date: Mon Oct 21 12:16:46 2013 +0900 + + Fix the dynamic loading issue on NetBSD + + On NetBSD, it is not supported to load a library linked against + libpthread into a program that wasn't (since the C library provides + stubs for some pthread-functions, which might have already been called + before libpthread is loaded, leading to problems). + + Patch from Matthias Drochner + + m4/ax_pthread.m4 | 5 +++++ + 1 file changed, 5 insertions(+) + +commit ff0e0d17b254f71592dfa29a988a82efefff8913 +Author: Akira TAGOH +Date: Mon Oct 21 12:13:31 2013 +0900 + + Update ax_pthread.m4 to the latest version + + m4/ax_pthread.m4 | 71 + +++++++++++++++++++++++++++++++++++++------------------- + 1 file changed, 47 insertions(+), 24 deletions(-) + +commit 06b388523d747db16708c1662f3c6d64a36d5daf +Author: Akira TAGOH +Date: Mon Oct 21 11:50:55 2013 +0900 + + Fix build issue on Debian/kFreeBSD 7.0 + + There are posix_fadvise(2) but not POSIX_FADV_WILLNEED. + Patch from Ryo ONODERA. + + src/fccache.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 5406919c5e186f74ccdade1a65344ce7b5c56a64 +Author: Akira TAGOH +Date: Fri Oct 11 19:31:22 2013 +0900 + + do not build test-migration for Win32 + + This testing code is for XDG base directory spec which may be not + interesting for them + + test/Makefile.am | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit f16c3118e25546c1b749f9823c51827a60aeb5c1 +Author: Akira TAGOH +Date: Fri Oct 11 13:27:33 2013 +0900 + + Bump version to 2.11.0 + + README | 29 +++++++++++++++++++++++++++-- + configure.ac | 2 +- + fontconfig/fontconfig.h | 4 ++-- + 3 files changed, 30 insertions(+), 5 deletions(-) + +commit f82a032f417445abbb4399344766102aff255b6c +Author: Akira TAGOH +Date: Fri Oct 11 13:27:24 2013 +0900 + + Update CaseFolding.txt to Unicode 6.3 + + No real updates between 6.2 and 6.3. + + fc-case/CaseFolding.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit c4c90ffc7a7eec42fc0b84f1a7af464a4c9fcfd8 +Author: Akira TAGOH +Date: Fri Oct 11 12:40:23 2013 +0900 + + Bump libtool revision + + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 9a4310176bb11e1e826d238eb0761b7895b48883 +Author: Akira TAGOH +Date: Wed Oct 9 12:19:35 2013 +0900 + + Add missing doc for FcStrListFirst and fix a typo + + doc/fcstrset.fncs | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +commit 604c2a683f1357fc65bad372b5d25a90099f827f +Author: Akira TAGOH +Date: Thu Oct 3 19:59:30 2013 +0900 + + exit with the error code when FcNameParse() failed + + fc-list/fc-list.c | 5 +++++ + fc-match/fc-match.c | 5 +++++ + fc-pattern/fc-pattern.c | 5 +++++ + 3 files changed, 15 insertions(+) + +commit 0203055520206028eecee5d261887cdc91500e15 +Author: Akira TAGOH +Date: Wed Oct 2 16:34:34 2013 +0900 + + Workaround the race condition issue on updating cache + + fc-cache/fc-cache.c | 62 + ++++++++++++++++++++++++++++--------------------- + fontconfig/fontconfig.h | 3 +++ + src/fcstr.c | 6 +++++ + 3 files changed, 45 insertions(+), 26 deletions(-) + +commit 9161ed1e4a3f4afaee6dbcfc0b84a279ad99b397 +Author: Akira TAGOH +Date: Mon Sep 30 11:30:00 2013 +0900 + + Add the relative path for to fonts.conf if the parent path + is same to fonts.conf + + Bug 69836 - fonts.conf.in update for Windows cross-compiling + + Makefile.am | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit 96c5f3cf0ff57e7bbb08cc1e0e78ed0542096484 +Author: Akira TAGOH +Date: Thu Sep 26 18:44:10 2013 +0900 + + clean up + + conf.d/Makefile.am | 2 +- + configure.ac | 6 +----- + 2 files changed, 2 insertions(+), 6 deletions(-) + +commit 43f768b53f554cf0f927ccac5daf96877f9fc69c +Author: Akira TAGOH +Date: Thu Sep 26 17:46:26 2013 +0900 + + avoid reading config.h twice + + config.h is read from fcint.h now so having a line of the sort of + #include "config.h" + is duplicate. + + Bug 69833 - Incorrect SIZEOF_VOID_P and ALIGNOF_DOUBLE definitions + causes nasty warnings on MacOSX when building fat libraries + + src/fcarch.c | 4 ---- + src/fccache.c | 3 --- + src/fccompat.c | 4 ---- + src/fchash.c | 3 --- + src/fcstat.c | 3 --- + 5 files changed, 17 deletions(-) + +commit 102864d0dba46c99b22c912454c1f58731287405 +Author: Akira TAGOH +Date: Wed Sep 25 11:41:23 2013 +0900 + + Add the description of -q option to the man page + + fc-list/fc-list.sgml | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +commit 2b0fca14ad202d4dbd32478dc367e648833866c0 +Author: W. Trevor King +Date: Sat Sep 21 17:06:50 2013 -0700 + + doc/fccharset.fncs: Describe the map format in more detail + + The previous documentation for FcCharSetFirstPage and + FcCharSetNextPage was technically accurate, but a bit terse. I've + added an example using the returned page (root code point) and map to + give folks something concrete to work with. I've also documented + FC_CHARSET_DONE, which wasn't mentioned at all before. + + doc/fccharset.fncs | 36 ++++++++++++++++++++++++++++++------ + 1 file changed, 30 insertions(+), 6 deletions(-) + +commit 8a174b6c51581df6ffd6a5da056949c6c79337cf +Author: Akira TAGOH +Date: Tue Sep 24 11:14:57 2013 +0900 + + Fix a crash when FcPattern is set to null on FcFontSetList() + and FcFontList() + + src/fclist.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 643f8088f0d51107e58d142df47124efec6afab1 +Author: Jan Alexander Steffens (heftig) +Date: Sat Sep 14 02:25:26 2013 +0200 + + Further changes to 30-metric-aliases.conf + + Big changes: + * Handle more PostScript fonts (further reduce 30-urw-aliases.conf) + * Update the big comment + + Specific->Generic: + * Add missing maps, for symmetry + + Generic<->Generic: + * Add "Helvetica Condensed" <-> "Arial Narrow" map + + Generic->Specific: + * Add missing Courier -> Cursor alias + * Add "Helvetica Condensed" -> "Heros Cn" alias + * Remove Arial -> Heros and "Times New Roman" -> Termes maps + + conf.d/30-metric-aliases.conf | 319 + ++++++++++++++++++++++++++++++++++-------- + conf.d/30-urw-aliases.conf | 24 +--- + 2 files changed, 261 insertions(+), 82 deletions(-) + +commit 5e6b8894ea9d03caabdfc3a6bcd0c402edf840a8 +Author: Akira TAGOH +Date: Wed Sep 18 17:31:10 2013 +0900 + + Copy all values from the font to the pattern if the pattern doesn't + have the element + + src/fcmatch.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 7e44a0b5a88e597b33ba9e2cc3a6d4555736db0a +Author: Akira TAGOH +Date: Tue Sep 10 17:45:11 2013 +0900 + + Bug 68955 - Deprecate / remove FC_RASTERIZER + + doc/fontconfig-devel.sgml | 2 +- + doc/fontconfig-user.sgml | 2 +- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +commit a61e145304da86c8c35b137493bbd8fd5dd1e7f5 +Author: Akira TAGOH +Date: Mon Sep 9 19:59:31 2013 +0900 + + Fix memory leaks in FcFreeTypeQueryFace + + src/fcfreetype.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +commit 6720892e97f11fbe8d69ae5b3875d928c68ff90e +Author: Akira TAGOH +Date: Mon Sep 2 20:52:20 2013 +0900 + + Add a test case of the migration for config place + + test/Makefile.am | 7 +- + test/test-migration.c | 172 + ++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 177 insertions(+), 2 deletions(-) + +commit 3e5f70a16ac6d54f1e01c92ddaa5985deec1b7f9 +Author: Akira TAGOH +Date: Mon Sep 2 20:51:46 2013 +0900 + + Do not create a config dir for migration when no config files nor dirs + + src/fcxml.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +commit d2bb1a8381ba50dce79a487cd82087ca57fdcb68 +Author: Akira TAGOH +Date: Sat Aug 31 10:50:07 2013 +0900 + + Bump version to 2.10.95 + + README | 10 ++++++++-- + configure.ac | 2 +- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 10 insertions(+), 4 deletions(-) + +commit 272a99217b15e9cf1e4d2a1dcf92b540576c29a6 +Author: Akira TAGOH +Date: Sat Aug 31 10:43:13 2013 +0900 + + Fix a crash + + src/fccfg.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +commit 071ce44c35733e54cb477cc75810cbe55025b619 +Author: Akira TAGOH +Date: Thu Aug 29 20:53:58 2013 +0900 + + Fix a typo + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 06dd98b2a3271e5f02787f208f73f13f794cb1bf +Author: Akira TAGOH +Date: Thu Aug 29 17:38:29 2013 +0900 + + Bump version to 2.10.94 + + README | 37 +++++++++++++++++++++++++++++++++++-- + configure.ac | 2 +- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 37 insertions(+), 4 deletions(-) + +commit 53ad60deabb787671a862b8d1fab52f8b71bf765 +Author: Akira TAGOH +Date: Thu Aug 29 17:12:45 2013 +0900 + + Add quz.orth to Makefile.am + + fc-lang/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +commit c6228f8091ab91b67ea006ad5a1b1da97b3d4a5a +Author: Akira TAGOH +Date: Tue Aug 27 12:28:52 2013 +0900 + + Bug 68587 - copy qu.orth to quz.orth + + fc-lang/quz.orth | 36 ++++++++++++++++++++++++++++++++++++ + 1 file changed, 36 insertions(+) + +commit fba9efecd2ef3aca84e0a4806899c09ba95f4c19 +Author: Akira TAGOH +Date: Mon Aug 26 12:47:07 2013 +0900 + + Fix a wrong edit position when 'kind' is different + + src/fccfg.c | 24 ++++++++++++++++-------- + 1 file changed, 16 insertions(+), 8 deletions(-) + +commit 223c1384c98caaf9ba5d2cddf7465b7b3a82316b +Author: Akira TAGOH +Date: Fri Aug 23 20:42:37 2013 +0900 + + Fix a crash when non-builtin objects are edited + + src/fccfg.c | 28 +++++++++++----------------- + src/fcint.h | 5 +++-- + 2 files changed, 14 insertions(+), 19 deletions(-) + +commit 6c664d533d242112c30e0d3b585e90a361a1b959 +Author: Akira TAGOH +Date: Fri Aug 23 19:58:43 2013 +0900 + + Fix a typo + + src/fcxml.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit f3bb3f19c917e3fd0a0cdd9a2adf8f827e7a5838 +Author: Behdad Esfahbod +Date: Wed Aug 21 14:31:55 2013 -0400 + + Fix assertion + + Apparently some AIX versions have 64bit pointers yet 32bit double + alignment. Fix assertion. + + src/fcarch.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ec3f0af6f09292126a54b7abe2313e5124ef9a4c +Author: Behdad Esfahbod +Date: Wed Aug 21 14:27:16 2013 -0400 + + Minor + + src/fcarch.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 104a2af0dd60f68a1e3f9e5f99e6180336ce28c2 +Author: Akira TAGOH +Date: Wed Aug 21 13:12:41 2013 +0900 + + Bug 63399 - Add default aliases for Georgia, Garamond, Palatino + Linotype, Trebuchet MS + + conf.d/45-latin.conf | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +commit 010c973df5544996f5d8774e361d45daa5b61b52 +Author: Akira TAGOH +Date: Wed Aug 21 13:12:22 2013 +0900 + + Bug 68340 - More metric compat fonts + + conf.d/30-metric-aliases.conf | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit 084cf7c44e985dd48c088d921ad0d9a43b0b00b4 +Author: Akira TAGOH +Date: Wed Aug 14 12:51:26 2013 +0900 + + Bug 16818 - fontformat in match pattern is not respected? + + src/fcmatch.c | 1 + + src/fcobjs.h | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +commit 45221ab12fa7001b9659293d4833f828801d2518 +Author: Akira TAGOH +Date: Wed Aug 7 12:19:33 2013 +0900 + + Bug 67845 - Match on FC_SCALABLE + + src/fcmatch.c | 1 + + src/fcobjs.h | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +commit 041deb0cc541692e260b93232b9957c2538e3bb9 +Author: Akira TAGOH +Date: Wed Aug 7 11:57:19 2013 +0900 + + warn deprecated only when migration failed + + src/fccache.c | 28 ---------------------------- + src/fccompat.c | 27 +++++++++++++++++++++++++++ + src/fcdir.c | 10 ++++++++++ + src/fcint.h | 6 ++++++ + src/fcxml.c | 59 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- + 5 files changed, 101 insertions(+), 29 deletions(-) + +commit d52daa0024a6c0bb160c3b3c7f85d0b031f88c85 +Author: Akira TAGOH +Date: Tue Aug 6 15:09:23 2013 +0900 + + Bug 67809 - Invalid read/write with valgrind when assigning something + twice + + src/fccfg.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a51d2767ce4d88017bd7d34ccb9e352d1687a3c0 +Author: Akira TAGOH +Date: Mon Aug 5 20:04:13 2013 +0900 + + Fix wrong edit position + + src/fccfg.c | 100 + +++++++++++++++++++++++++++++++++++++++-------------------- + src/fcint.h | 5 +++ + src/fcobjs.c | 2 +- + 3 files changed, 72 insertions(+), 35 deletions(-) + +commit 338ffe6b886ad4ba86ff471cb59c4a5e5ffbe408 +Author: Akira TAGOH +Date: Fri Jul 12 14:52:01 2013 +0900 + + Correct fontconfig.pc to add certain dependencies for static build + + configure.ac | 14 ++++---------- + fontconfig.pc.in | 7 ++++--- + 2 files changed, 8 insertions(+), 13 deletions(-) + +commit 7274f6e37a4d1a062b4eee3a625bd393a283a9d0 +Author: Akira TAGOH +Date: Fri Jul 12 12:39:36 2013 +0900 + + Correct fontconfig.pc to add certain dependencies for build + + configure.ac | 26 +++++++++++++++++++++++--- + fontconfig.pc.in | 7 ++++--- + 2 files changed, 27 insertions(+), 6 deletions(-) + +commit 04bd904632b22682c888f658650cdcd322544273 +Author: Akira TAGOH +Date: Tue Jul 9 16:43:26 2013 +0900 + + trivial code optimization + + src/fcxml.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit d420e1df983871ab18b0f07976596fdf0ce78847 +Author: Akira TAGOH +Date: Thu Jul 4 19:51:03 2013 +0900 + + Rework to apply the intermixed test and edit elements in one-pass + + src/fccfg.c | 349 + +++++++++++++++++++++++++++--------------------------------- + src/fcdbg.c | 39 +++++-- + src/fcint.h | 29 +++-- + src/fcxml.c | 245 ++++++++++++++++++++---------------------- + 4 files changed, 321 insertions(+), 341 deletions(-) + +commit 1162515a9819c7355890aad919e5b9daa448a3a4 +Author: Akira TAGOH +Date: Wed Jul 3 11:56:58 2013 +0900 + + Add FC_UNUSED to FC_ASSERT_STATIC macro to avoid compiler warning + + src/fcint.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit cbf06d7d3c797b97d720909fd4554d1771d41c20 +Author: Akira TAGOH +Date: Tue Jul 2 19:04:36 2013 +0900 + + Use INT_MAX instead of unreliable hardcoding value + + src/fcint.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit ab5b535704fbcab43040d80100cb19cb33f6219d +Author: Akira TAGOH +Date: Tue Jul 2 18:54:29 2013 +0900 + + Ignore scandir() check on mingw + + configure.ac | 50 ++++++++++++++++++++++++++------------------------ + 1 file changed, 26 insertions(+), 24 deletions(-) + +commit 0907589a79d05aeed9bc6bff783838b0eb25736b +Author: Akira TAGOH +Date: Fri Jun 28 15:54:38 2013 +0900 + + Fix the behavior of intermixed tests end edits in match + + to get the following recipe working: + + + + + + + + + as: + + + + + + + + + + + + src/fccfg.c | 27 ++++++++++++++++----------- + src/fcint.h | 1 + + src/fcxml.c | 37 ++++++++++++++++++++++++++++++++++++- + 3 files changed, 53 insertions(+), 12 deletions(-) + +commit 197d06c49b01413303f2c92130594daa4fcaa6ad +Author: Akira TAGOH +Date: Fri Jun 28 15:04:11 2013 +0900 + + Add FcTypeUnknown to FcType to avoid comparison of constant -1 + + This change reverts 9acc14c34a372b54f9075ec3611588298fb2a501 + because it doesn't work as expected when building + with -fshort-enums which is default for older arms ABIs + + Thanks for pointing this out, Thomas Klausner, Valery Ushakov, + and Martin Husemann + + fontconfig/fcprivate.h | 3 ++- + fontconfig/fontconfig.h | 1 + + src/fccfg.c | 4 +++- + src/fcdbg.c | 7 +++++++ + src/fcint.h | 6 ++++-- + src/fclist.c | 1 + + src/fcname.c | 5 ++++- + src/fcobjs.c | 2 +- + src/fcpat.c | 5 ++++- + src/fcxml.c | 2 +- + 10 files changed, 28 insertions(+), 8 deletions(-) + +commit 38ab7ab2fbd83c0c62e4b78302b5fe89da0cb79e +Author: Akira TAGOH +Date: Thu Jun 27 13:10:27 2013 +0900 + + Fix a incompatible pointer warning on NetBSD + + configure.ac | 29 +++++++++++++++++++++++++++++ + src/fcstat.c | 10 ++++++++++ + 2 files changed, 39 insertions(+) + +commit 8603e5869505ff06d443b8b22d5357d4caaaac24 +Author: Akira TAGOH +Date: Thu Jun 27 12:30:56 2013 +0900 + + Fix a shift count overflow on 32bit box + + src/fchash.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +commit 9acc14c34a372b54f9075ec3611588298fb2a501 +Author: Akira TAGOH +Date: Wed Jun 26 12:03:38 2013 +0900 + + Fix a comparison of constant warning with clang + + src/fcname.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit cd9b1033a68816a7acfbba1718ba0aa5888f6ec7 +Author: Akira TAGOH +Date: Fri May 24 13:55:07 2013 +0900 + + Bug 64906 - FcNameParse() should ignore leading whitespace in + parameters + + After this change, the following works as expected: + $ FC_DEBUG=4 fc-match ":family=foo bar, sans-serif" + ... + FcConfigSubstitute Pattern has 3 elts (size 16) + family: "foo bar"(s) "sans-serif"(s) + ... + + src/fcname.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 8d54091513c00905457e0ee49ba6ea2c4aacddd7 +Author: Akira TAGOH +Date: Mon May 20 17:42:34 2013 +0900 + + Bump version to 2.10.93 + + README | 21 +++++++++++++++++++-- + configure.ac | 2 +- + fontconfig/fontconfig.h | 2 +- + 3 files changed, 21 insertions(+), 4 deletions(-) + +commit 1cad82cde29ea488ea22541b46ed347d10952557 +Author: Akira TAGOH +Date: Fri May 10 20:26:11 2013 +0900 + + Bug 63922 - FcFreeTypeQueryFace fails on postscripts fonts loaded + from memory + + Workaround to not failing even when the hash is unable to generate + from fonts. + This change also contains to ignore the case if the hash isn't in + either both + patterns. + + src/fcfreetype.c | 16 +++++++++------- + src/fcmatch.c | 30 +++++++++++++++++++++--------- + src/fcobjs.h | 2 +- + 3 files changed, 31 insertions(+), 17 deletions(-) + +commit 0f9aa8759df563332db60055ae33dd9424ebf802 +Author: Akira TAGOH +Date: Thu May 16 13:41:32 2013 +0900 + + Fix missing OSAtomicCompareAndSwapPtrBarrier() on Mac OS X 10.4 + + based on hb-atomic-private.hh in harfbuzz + + src/fcatomic.h | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +commit 93137252cfab1c38e1c9137d831c177665e0592a +Author: Akira TAGOH +Date: Mon May 13 12:14:29 2013 +0900 + + Bug 63452 - conf.d/README outdated + + reflect correct path where is configured at the build time. + + conf.d/Makefile.am | 11 ++++++++--- + conf.d/README | 23 ----------------------- + conf.d/README.in | 23 +++++++++++++++++++++++ + 3 files changed, 31 insertions(+), 26 deletions(-) + commit f6244d2cf231e1dc756f3e941e61b9bf124879bb Author: Akira TAGOH -Date: Wed May 8 11:57:49 2013 +0900 +Date: Wed May 8 11:57:49 2013 +0900 Use the glob matching for filename @@ -19,7 +3218,7 @@ Date: Wed May 8 11:57:49 2013 +0900 commit 03216ccf4ca0808f9c7b9513efcaeb7f4058b575 Author: Akira TAGOH -Date: Wed Apr 10 18:41:22 2013 +0900 +Date: Wed Apr 10 18:41:22 2013 +0900 Bug 63329 - make check fails: .. contents:: :depth: 2 @@ -28,14 +3227,14 @@ Date: Wed Apr 10 18:41:22 2013 +0900 fails with FT_Err_Invalid_Face_Handle. src/fcfreetype.c | 32 ++++++++++++++++++++--------- - src/fchash.c | 62 + src/fchash.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - src/fcint.h | 4 ++++ + src/fcint.h | 4 ++++ 3 files changed, 88 insertions(+), 10 deletions(-) commit 77419a4dfdf41ed34dd03e74d0e4e6f89dbc65e1 Author: Akira TAGOH -Date: Wed Apr 10 11:14:39 2013 +0900 +Date: Wed Apr 10 11:14:39 2013 +0900 documented FC_HASH and FC_POSTSCRIPT_NAME @@ -44,30 +3243,30 @@ Date: Wed Apr 10 11:14:39 2013 +0900 commit fc5a589abad0e8285f7d95007ebda76536e8fa7d Author: Akira TAGOH -Date: Tue Apr 9 17:18:43 2013 +0900 +Date: Tue Apr 9 17:18:43 2013 +0900 Revert the previous change and rework to not export freetype API outside fcfreetype.c src/fcfreetype.c | 23 ++++++++++++++++++++--- - src/fchash.c | 47 ++++++++++++----------------------------------- - src/fcint.h | 5 ++--- + src/fchash.c | 47 ++++++++++++----------------------------------- + src/fcint.h | 5 ++--- 3 files changed, 34 insertions(+), 41 deletions(-) commit c93a8b8b54afe33e5ecf9870723543cb4058fa94 Author: Akira TAGOH -Date: Tue Apr 9 12:46:30 2013 +0900 +Date: Tue Apr 9 12:46:30 2013 +0900 Obtain fonts data via FT_Face instead of opening a file directly src/fcfreetype.c | 2 +- - src/fchash.c | 50 +++++++++++++++++++++++++++++++++----------------- - src/fcint.h | 4 +++- + src/fchash.c | 50 +++++++++++++++++++++++++++++++++----------------- + src/fcint.h | 4 +++- 3 files changed, 37 insertions(+), 19 deletions(-) commit 9299155b5247255d6b6687448173056c3ca8d09b Author: Akira TAGOH -Date: Tue Apr 9 11:34:35 2013 +0900 +Date: Tue Apr 9 11:34:35 2013 +0900 Ensure closing fp on error @@ -76,7 +3275,7 @@ Date: Tue Apr 9 11:34:35 2013 +0900 commit 18bf57c70aafcad031c0b43756b754dcaf6a756a Author: Sebastian Freundt -Date: Sun Apr 7 00:02:58 2013 +0000 +Date: Sun Apr 7 00:02:58 2013 +0000 build-chain, replace INCLUDES directive by AM_CPPFLAGS @@ -86,21 +3285,21 @@ Date: Sun Apr 7 00:02:58 2013 +0000 This changeset simply follows automake's advice to replace INCLUDES by AM_CPPFLAGS. - Tools.mk | 4 ++-- - fc-cache/Makefile.am | 2 +- - fc-cat/Makefile.am | 2 +- - fc-list/Makefile.am | 2 +- - fc-match/Makefile.am | 2 +- + Tools.mk | 4 ++-- + fc-cache/Makefile.am | 2 +- + fc-cat/Makefile.am | 2 +- + fc-list/Makefile.am | 2 +- + fc-match/Makefile.am | 2 +- fc-pattern/Makefile.am | 2 +- - fc-query/Makefile.am | 2 +- - fc-scan/Makefile.am | 2 +- + fc-query/Makefile.am | 2 +- + fc-scan/Makefile.am | 2 +- fc-validate/Makefile.am | 2 +- - src/Makefile.am | 2 +- + src/Makefile.am | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) commit 8fd0ed60a62cb7f36b2ade1bd16a66671eaf79da Author: Akira TAGOH -Date: Mon Apr 1 18:16:28 2013 +0900 +Date: Mon Apr 1 18:16:28 2013 +0900 Bug 62980 - matching native fonts with even :lang=en @@ -113,19 +3312,19 @@ Date: Mon Apr 1 18:16:28 2013 +0900 commit 73fa326d1e791b587da93b795f962c3405b7a96d Author: Akira TAGOH -Date: Fri Mar 29 16:10:15 2013 +0900 +Date: Fri Mar 29 16:10:15 2013 +0900 Bump version to 2.10.92 - README | 65 + README | 65 +++++++++++++++++++++++++++++++++++++++++++++++-- - configure.ac | 2 +- + configure.ac | 2 +- fontconfig/fontconfig.h | 2 +- 3 files changed, 65 insertions(+), 4 deletions(-) commit c842412c079e781d53f023616d9758223fb68323 Author: Akira TAGOH -Date: Fri Mar 29 16:07:30 2013 +0900 +Date: Fri Mar 29 16:07:30 2013 +0900 Minor fix @@ -134,7 +3333,7 @@ Date: Fri Mar 29 16:07:30 2013 +0900 commit b3b435b87f1aec1b2779fd7edbbff5571c3c61a2 Author: Akira TAGOH -Date: Fri Mar 29 16:02:34 2013 +0900 +Date: Fri Mar 29 16:02:34 2013 +0900 Bump libtool revision @@ -143,7 +3342,7 @@ Date: Fri Mar 29 16:02:34 2013 +0900 commit 3fc22cfe756fcb2d6c5a64aa305957c417c6cecd Author: Akira TAGOH -Date: Fri Mar 29 12:46:04 2013 +0900 +Date: Fri Mar 29 12:46:04 2013 +0900 Minor cleanup @@ -152,7 +3351,7 @@ Date: Fri Mar 29 12:46:04 2013 +0900 commit b561ff2016ce84eef3c81f16dfb0481be6a13f9b Author: Akira TAGOH -Date: Fri Jan 18 11:30:10 2013 +0900 +Date: Fri Jan 18 11:30:10 2013 +0900 Bug 38737 - Wishlist: support FC_POSTSCRIPT_NAME @@ -161,17 +3360,17 @@ Date: Fri Jan 18 11:30:10 2013 +0900 the forward-matching. fontconfig/fontconfig.h | 1 + - src/fcfreetype.c | 49 +++++++++++++++++++++++++++- - src/fcint.h | 6 ++++ - src/fcmatch.c | 21 ++++++++++++ - src/fcobjs.h | 1 + - src/fcstr.c | 85 + src/fcfreetype.c | 49 +++++++++++++++++++++++++++- + src/fcint.h | 6 ++++ + src/fcmatch.c | 21 ++++++++++++ + src/fcobjs.h | 1 + + src/fcstr.c | 85 ++++++++++++++++++++++++++++--------------------- 6 files changed, 125 insertions(+), 38 deletions(-) commit c758206e8c0e5b572bd34183b184ef4361745333 Author: Akira TAGOH -Date: Thu Mar 21 11:58:06 2013 +0900 +Date: Thu Mar 21 11:58:06 2013 +0900 Fix a SIGSEGV on FcPatternGet* with NULL pattern @@ -180,7 +3379,7 @@ Date: Thu Mar 21 11:58:06 2013 +0900 commit bdf1581e3de5528f397f19bfd4ca9caaf9e7fe4a Author: Behdad Esfahbod -Date: Fri Mar 8 05:53:27 2013 -0500 +Date: Fri Mar 8 05:53:27 2013 -0500 Fix crash with FcConfigSetCurrent(NULL) @@ -189,7 +3388,7 @@ Date: Fri Mar 8 05:53:27 2013 -0500 commit aad4d6f6c68d06415333f5d0d3e4b4870114f11d Author: Akira TAGOH -Date: Thu Mar 7 13:19:50 2013 +0900 +Date: Thu Mar 7 13:19:50 2013 +0900 Do not copy FC_*LANG_OBJECT even if it's not available on the pattern @@ -202,7 +3401,7 @@ Date: Thu Mar 7 13:19:50 2013 +0900 commit e96d7760886a3781a46b3271c76af99e15cb0146 Author: Akira TAGOH -Date: Wed Feb 6 19:35:30 2013 +0900 +Date: Wed Feb 6 19:35:30 2013 +0900 Bug 59456 - Adding a --sysroot like option to fc-cache @@ -210,20 +3409,20 @@ Date: Wed Feb 6 19:35:30 2013 +0900 In order to do this, new APIs, FcConfigGetSysRoot() and FcConfigSetSysRoot() is available. - doc/fcconfig.fncs | 21 +++++++++++ - fc-cache/fc-cache.c | 38 +++++++++++++------ + doc/fcconfig.fncs | 21 +++++++++++ + fc-cache/fc-cache.c | 38 +++++++++++++------ fontconfig/fontconfig.h | 7 ++++ - src/fccache.c | 99 + src/fccache.c | 99 +++++++++++++++++++++++++++++++++---------------- - src/fccfg.c | 57 ++++++++++++++++++++++++++++ - src/fcinit.c | 30 ++++++++++----- - src/fcint.h | 15 +++++++- - src/fcstr.c | 62 ++++++++++++++++++++++++++++++- + src/fccfg.c | 57 ++++++++++++++++++++++++++++ + src/fcinit.c | 30 ++++++++++----- + src/fcint.h | 15 +++++++- + src/fcstr.c | 62 ++++++++++++++++++++++++++++++- 8 files changed, 275 insertions(+), 54 deletions(-) commit 569657a24ca11aedfd3b588984344d7ab97fe09f Author: Akira TAGOH -Date: Tue Mar 5 12:46:01 2013 +0900 +Date: Tue Mar 5 12:46:01 2013 +0900 Fix a memory leak @@ -232,7 +3431,7 @@ Date: Tue Mar 5 12:46:01 2013 +0900 commit 612ee2a5c91b8929b2cc5abce4af84d8d7e66bd0 Author: Akira TAGOH -Date: Fri Mar 1 22:21:25 2013 +0900 +Date: Fri Mar 1 22:21:25 2013 +0900 Fix broken sort order with FcFontSort() @@ -243,7 +3442,7 @@ Date: Fri Mar 1 22:21:25 2013 +0900 commit ea4ebd59377d3dff3616bd20381f308a92781ae6 Author: Akira TAGOH -Date: Fri Mar 1 19:38:21 2013 +0900 +Date: Fri Mar 1 19:38:21 2013 +0900 Fix a crash when the object is non-builtin object @@ -252,7 +3451,7 @@ Date: Fri Mar 1 19:38:21 2013 +0900 commit 10230497675fa4fcbb427efe8dd2883839ddaec0 Author: Akira TAGOH -Date: Fri Mar 1 18:41:27 2013 +0900 +Date: Fri Mar 1 18:41:27 2013 +0900 Fix a typo @@ -261,7 +3460,7 @@ Date: Fri Mar 1 18:41:27 2013 +0900 commit db69bf6ecd0da4d23bdfe38652bb53d2daa655a2 Author: Akira TAGOH -Date: Fri Mar 1 18:31:01 2013 +0900 +Date: Fri Mar 1 18:31:01 2013 +0900 Bug 60783 - Add Liberation Sans Narrow to 30-metric-aliases.conf @@ -272,7 +3471,7 @@ Date: Fri Mar 1 18:31:01 2013 +0900 commit 2c696255749683e9a084f797eb033d222510a275 Author: Akira TAGOH -Date: Mon Feb 18 13:17:53 2013 +0900 +Date: Mon Feb 18 13:17:53 2013 +0900 Bug 60748 - broken conf.d/10-autohint.conf and conf.d/10-unhinted.conf @@ -281,13 +3480,13 @@ Date: Mon Feb 18 13:17:53 2013 +0900 prior to FcDefaultSubstitute() so that it can adds the default values properly. - conf.d/10-autohint.conf | 2 +- - conf.d/10-no-sub-pixel.conf | 2 +- - conf.d/10-sub-pixel-bgr.conf | 2 +- - conf.d/10-sub-pixel-rgb.conf | 2 +- - conf.d/10-sub-pixel-vbgr.conf | 2 +- - conf.d/10-sub-pixel-vrgb.conf | 2 +- - conf.d/10-unhinted.conf | 2 +- + conf.d/10-autohint.conf | 2 +- + conf.d/10-no-sub-pixel.conf | 2 +- + conf.d/10-sub-pixel-bgr.conf | 2 +- + conf.d/10-sub-pixel-rgb.conf | 2 +- + conf.d/10-sub-pixel-vbgr.conf | 2 +- + conf.d/10-sub-pixel-vrgb.conf | 2 +- + conf.d/10-unhinted.conf | 2 +- conf.d/11-lcdfilter-default.conf | 2 +- conf.d/11-lcdfilter-legacy.conf | 2 +- conf.d/11-lcdfilter-light.conf | 2 +- @@ -295,7 +3494,7 @@ Date: Mon Feb 18 13:17:53 2013 +0900 commit 83f679ce558de736ef1a095a362397da0ac3417f Author: Behdad Esfahbod -Date: Fri Feb 15 09:48:38 2013 -0500 +Date: Fri Feb 15 09:48:38 2013 -0500 Accept digits as part of OpenType script tags @@ -306,7 +3505,7 @@ Date: Fri Feb 15 09:48:38 2013 -0500 commit 72b0480a21958f0f8c115d8e0a5bfbd8d358b5c3 Author: Akira TAGOH -Date: Thu Feb 7 17:56:17 2013 +0900 +Date: Thu Feb 7 17:56:17 2013 +0900 Add Culmus foundry to the vendor list @@ -331,7 +3530,7 @@ Date: Thu Feb 7 17:56:17 2013 +0900 commit 96220a5ed9d1d761b14a7ac516ac6786c132f280 Author: Quentin Glidic -Date: Sat Feb 2 17:01:07 2013 +0100 +Date: Sat Feb 2 17:01:07 2013 +0100 Use LOG_COMPILER and AM_TESTS_ENVIRONMENT @@ -347,42 +3546,42 @@ Date: Sat Feb 2 17:01:07 2013 +0100 Signed-off-by: Quentin Glidic - Makefile.am | 1 - - configure.ac | 2 +- + Makefile.am | 1 - + configure.ac | 2 +- doc/Makefile.am | 5 ++++- test/Makefile.am | 12 +++++++++++- 4 files changed, 16 insertions(+), 4 deletions(-) commit 62b7d764ce994bb32e7614337fdfa0854445c380 Author: Akira TAGOH -Date: Wed Feb 6 19:14:51 2013 +0900 +Date: Wed Feb 6 19:14:51 2013 +0900 Bump the cache version to 4 fontconfig/fontconfig.h | 2 +- - src/fcint.h | 2 +- + src/fcint.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 4eab908c8679a797ac7016b77a93ee41bb11b0fc Author: Akira TAGOH -Date: Wed Feb 6 19:02:07 2013 +0900 +Date: Wed Feb 6 19:02:07 2013 +0900 Update _FcMatchers definition logic to make it easier to maintain. also added FC_HASH_OBJECT to be matched in the pattern, prior to FC_FILE_OBJECT. - src/fcint.h | 2 +- - src/fcmatch.c | 184 + src/fcint.h | 2 +- + src/fcmatch.c | 184 +++++++++++++++++++++++-------------------------- - src/fcname.c | 2 +- - src/fcobjs.h | 90 ++++++++++++------------ + src/fcname.c | 2 +- + src/fcobjs.h | 90 ++++++++++++------------ src/fcobjshash.gperf.h | 2 +- 5 files changed, 134 insertions(+), 146 deletions(-) commit 52b2b5c99268d5ad28dc0972c5f136720d55f21b Author: Akira TAGOH -Date: Tue Feb 5 20:44:18 2013 +0900 +Date: Tue Feb 5 20:44:18 2013 +0900 Bug 60312 - DIST_SUBDIRS should never appear in a conditional @@ -402,7 +3601,7 @@ Date: Tue Feb 5 20:44:18 2013 +0900 commit 95af7447dba7c54ed162b667c0bb2ea6500e8f32 Author: Akira TAGOH -Date: Mon Feb 4 16:03:29 2013 +0900 +Date: Mon Feb 4 16:03:29 2013 +0900 Bug 50733 - Add font-file hash? @@ -410,17 +3609,17 @@ Date: Mon Feb 4 16:03:29 2013 +0900 from the font file. fontconfig/fontconfig.h | 1 + - src/Makefile.am | 1 + - src/fcfreetype.c | 9 ++ - src/fchash.c | 265 + src/Makefile.am | 1 + + src/fcfreetype.c | 9 ++ + src/fchash.c | 265 ++++++++++++++++++++++++++++++++++++++++++++++++ - src/fcint.h | 7 ++ - src/fcobjs.h | 1 + + src/fcint.h | 7 ++ + src/fcobjs.h | 1 + 6 files changed, 284 insertions(+) commit d34643894f2dff7eec35345e8e9b32a9a32fa113 Author: Akira TAGOH -Date: Tue Feb 5 14:17:16 2013 +0900 +Date: Tue Feb 5 14:17:16 2013 +0900 Use AM_MISSING_PROG instead of hardcoding missing @@ -430,7 +3629,7 @@ Date: Tue Feb 5 14:17:16 2013 +0900 commit 241cd53ff62599ecf557c6a4f975fc427dad9700 Author: Akira TAGOH -Date: Tue Feb 5 11:33:47 2013 +0900 +Date: Tue Feb 5 11:33:47 2013 +0900 Revert "test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT" @@ -444,7 +3643,7 @@ Date: Tue Feb 5 11:33:47 2013 +0900 commit 2146b0307a3476892723104481f27f8484451c52 Author: Quentin Glidic -Date: Sat Feb 2 17:01:07 2013 +0100 +Date: Sat Feb 2 17:01:07 2013 +0100 test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT @@ -464,17 +3663,17 @@ Date: Sat Feb 2 17:01:07 2013 +0100 commit da0946721af3ab2dff3cd903065336b93592d067 Author: Akira TAGOH -Date: Mon Feb 4 17:57:00 2013 +0900 +Date: Mon Feb 4 17:57:00 2013 +0900 Use AM_MISSING_PROG instead of hardcoding missing - configure.ac | 2 ++ + configure.ac | 2 ++ src/Makefile.am | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) commit 786ead52015573e7b60a53d79abc26d611f1fe93 Author: Akira TAGOH -Date: Mon Feb 4 17:20:03 2013 +0900 +Date: Mon Feb 4 17:20:03 2013 +0900 Modernize configure.ac @@ -483,7 +3682,7 @@ Date: Mon Feb 4 17:20:03 2013 +0900 commit 20191810d1fea7c2f49b65ffee3e4d5e2bc0bac3 Author: Akira TAGOH -Date: Tue Jan 29 20:19:36 2013 +0900 +Date: Tue Jan 29 20:19:36 2013 +0900 Bug 23757 - Add mode="delete" to @@ -499,34 +3698,34 @@ Date: Tue Jan 29 20:19:36 2013 +0900 Given that the testing is always true here, the following rules: - - bar - - + + bar + + will removes "bar" string from "foo" object. and: - - foo - - + + foo + + will removes all of values in "bar" object. doc/fontconfig-user.sgml | 2 ++ - fonts.dtd | 2 +- - src/fccfg.c | 10 ++++++++++ - src/fcdbg.c | 6 ++++-- - src/fcint.h | 1 + - src/fcxml.c | 11 +++++++++++ + fonts.dtd | 2 +- + src/fccfg.c | 10 ++++++++++ + src/fcdbg.c | 6 ++++-- + src/fcint.h | 1 + + src/fcxml.c | 11 +++++++++++ 6 files changed, 29 insertions(+), 3 deletions(-) commit c1d9588890798e389d0f0ba633b704dee1ea8bf5 Author: Colin Walters -Date: Thu Jan 31 21:32:46 2013 -0500 +Date: Thu Jan 31 21:32:46 2013 -0500 build: Only use PKG_INSTALLDIR if available @@ -538,7 +3737,7 @@ Date: Thu Jan 31 21:32:46 2013 -0500 commit e11f15628cff04c4a742f88abee22f440edcce52 Author: Christoph J. Thompson -Date: Fri Feb 1 02:27:32 2013 +0100 +Date: Fri Feb 1 02:27:32 2013 +0100 Use the PKG_INSTALLDIR macro. diff --git a/INSTALL b/INSTALL index 670add1..aab4cdd 100644 --- a/INSTALL +++ b/INSTALL @@ -28,7 +28,7 @@ important steps: freedesktop.org:/srv/www.freedesktop.org/www/software/fontconfig/release 5. Update the Fontconfig Devel wiki page - http://fontconfig.org/wiki/Devel + https://www.freedesktop.org/wiki/Software/fontconfig/Devel/ 6. Update the fontconfig documentation diff --git a/Makefile.in b/Makefile.in index 6a278f6..a3e69a5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -103,13 +113,6 @@ build_triplet = @build@ host_triplet = @host@ @ENABLE_DOCS_TRUE@am__append_1 = doc subdir = . -DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ - $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/config.h.in $(srcdir)/fontconfig.spec.in \ - $(srcdir)/fontconfig.pc.in $(srcdir)/fontconfig-zip.in COPYING \ - compile config.guess config.sub depcomp install-sh missing \ - ltmain.sh ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -120,6 +123,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d @@ -214,6 +219,11 @@ CSCOPE = cscope DIST_SUBDIRS = fontconfig fc-blanks fc-case fc-lang fc-glyphname src \ fc-cache fc-cat fc-list fc-match fc-pattern fc-query fc-scan \ fc-validate conf.d test doc +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/fontconfig-zip.in $(srcdir)/fontconfig.pc.in \ + $(srcdir)/fontconfig.spec.in AUTHORS COPYING ChangeLog INSTALL \ + NEWS README compile config.guess config.sub depcomp install-sh \ + ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -322,6 +332,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -344,6 +355,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -468,7 +480,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -746,15 +757,15 @@ dist-xz: distdir $(am__post_remove_distdir) dist-tarZ: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -790,17 +801,17 @@ distcheck: dist esac chmod -R a-w $(distdir) chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=.. --prefix="$$dc_install_base" \ + --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -986,6 +997,8 @@ uninstall-am: uninstall-local uninstall-pkgconfigDATA \ ps ps-am tags tags-am uninstall uninstall-am uninstall-local \ uninstall-pkgconfigDATA uninstall-xmlDATA +.PRECIOUS: Makefile + ChangeLog: $(srcdir)/ChangeLog $(srcdir)/ChangeLog: if test -d "$(srcdir)/.git"; then \ diff --git a/README b/README index 4a4dc30..bf840a5 100644 --- a/README +++ b/README @@ -1,12 +1,116 @@ Fontconfig Font configuration and customization library - Version 2.11.93 (2.12 RC3) - 2015-03-09 + Version 2.12.1 + 2016-08-05 Check INSTALL for compilation and installation instructions. Report bugs to https://bugs.freedesktop.org in the fontconfig module. +2.12.1 + +Akira TAGOH (6): + Add --with-default-hinting to configure + Update CaseFolding.txt to Unicode 9.0 + Check python installed in autogen.sh + Fix some errors related to python3 + Bug 96676 - Check range of FcWeightFromOpenType argument + Update libtool revision + +Tobias Stoeckmann (1): + Properly validate offsets in cache files. + +2.12 + +Akira TAGOH (8): + Modernize fc-blanks.py + Update URL + Bug 95477 - FcAtomicLock fails when SELinux denies link() syscall with EACCES + 45-latin.conf: Add some Windows fonts to categorize them properly + Correct one for the previous change + Bug 95481 - Build fails on Android due to broken lconv struct + Add the static raw data to generate fcblanks.h + Remove unused code + +Erik de Castro Lopo (1): + Fix a couple of minor memory leaks + +Petr Filipsky (1): + Fix memory leak in FcDirCacheLock + +2.11.95 (2.12 RC5) + +Akira TAGOH (22): + Add one more debugging option to see transformation on font-matching + Fix a crash when no objects are available after filtering + No need to be public + mark as private at this moment + Don't return FcFalse even when no fonts dirs is configured + Add a warning for blank in fonts.conf + Fix a memory leak in FcFreeTypeQueryFace + Update CaseFolding.txt to Unicode 8.0 + Bug 90867 - Memory Leak during error case in fccharset + Fix the broken cache more. + Fail on make runtime as needed instead of configure if no python installed + Use long long to see the same size between LP64 and LLP64 + Fix build issue on MinGW + Use int64_t instead of long long + Fix compiler warnings on MinGW + Fix assertion on 32bit arch + remomve unnecessary code + Bug 93075 - Possible fix for make check failure on msys/MinGW... + Avoid an error message on testing when no fonts.conf installed + Add hintstyle templates and make hintslight default + Revert "Workaround another race condition issue" + Update libtool revision + +Behdad Esfahbod (6): + Revert changes made to FcConfigAppFontAddDir() recently + Call FcFreeTypeQueryFace() from fcdir.c, instead of FcFreeTypeQuery() + [GX] Support instance weight, width, and style name + [GX] Enumerate all named-instances in TrueType GX fonts + Improve OpenType to Fontconfig weight mapping + [GX] Improve weight mapping + +Patrick Haller (1): + Optimizations in FcStrSet + +2.11.94 (2.12 RC4) + +Akira TAGOH (16): + Remove the dead code + Bug 89617 - FcConfigAppFontAddFile() returns false on any font file + Fix unknown attribute in Win32 + Fix SIGFPE + Fix a typo for the latest cache version + Fix a typo in fontconfig-user.sgml + Drop unmaintained code + Observe blanks to compute correct languages in fc-query/fc-scan + Add missing description for usage + Make FC_SCALE deprecated + Bug 90148 - Don't warn if cachedir isn't specified + Fix memory leaks after FcFini() + Fix a typo + Fix a crash + Detect the overflow for the object ID + Revert the previous change + +Behdad Esfahbod (11): + Fix bitmap scaling + Add su[pport for symbol fonts + Write ranges using a [start finish) format + Only set FC_SIZE for scalable fonts if OS/2 version 5 is present + Add bitmap-only font size as Double, not Range + Accept Integer for FC_SIZE + Don't set FC_SIZE for bitmap fonts + Fix compiler warnings + Simplify FcRange + Reduce number of places that cache version is specified to 1 + Bump cache version number to 6, because of recent FcRange changes + +Руслан Ижбулатов (1): + W32: Support cache paths relative to the root directory + 2.11.93 (2.12 RC3) Akira TAGOH (18): diff --git a/aclocal.m4 b/aclocal.m4 index c0115b2..c6fed20 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.14.1 -*- Autoconf -*- +# generated automatically by aclocal 1.15 -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.]) # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.14' +[am__api_version='1.15' 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.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +51,14 @@ 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.15])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -103,15 +103,14 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -142,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -333,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -409,7 +408,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -499,8 +498,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl @@ -573,7 +572,11 @@ to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi -fi]) +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further @@ -602,7 +605,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -613,7 +616,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -623,7 +626,7 @@ if test x"${install_sh}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# Copyright (C) 2003-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -644,7 +647,7 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -694,7 +697,7 @@ rm -f confinc confmf # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -733,7 +736,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -762,7 +765,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -809,7 +812,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1044,7 +1047,7 @@ for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] sys.exit(sys.hexversion < minverhex)" AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1063,7 +1066,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1144,7 +1147,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# Copyright (C) 2009-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1204,7 +1207,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1232,7 +1235,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# Copyright (C) 2006-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1251,7 +1254,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# Copyright (C) 2004-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/compile b/compile index 531136b..a85b723 100755 --- a/compile +++ b/compile @@ -3,7 +3,7 @@ scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify diff --git a/conf.d/10-hinting-full.conf b/conf.d/10-hinting-full.conf new file mode 100644 index 0000000..27d8229 --- /dev/null +++ b/conf.d/10-hinting-full.conf @@ -0,0 +1,13 @@ + + + + + + hintfull + + diff --git a/conf.d/10-hinting-medium.conf b/conf.d/10-hinting-medium.conf new file mode 100644 index 0000000..e34ab5b --- /dev/null +++ b/conf.d/10-hinting-medium.conf @@ -0,0 +1,13 @@ + + + + + + hintmedium + + diff --git a/conf.d/10-hinting-none.conf b/conf.d/10-hinting-none.conf new file mode 100644 index 0000000..0b3810d --- /dev/null +++ b/conf.d/10-hinting-none.conf @@ -0,0 +1,13 @@ + + + + + + hintnone + + diff --git a/conf.d/10-hinting-slight.conf b/conf.d/10-hinting-slight.conf new file mode 100644 index 0000000..c244ac0 --- /dev/null +++ b/conf.d/10-hinting-slight.conf @@ -0,0 +1,13 @@ + + + + + + hintslight + + diff --git a/conf.d/10-scale-bitmap-fonts.conf b/conf.d/10-scale-bitmap-fonts.conf index e3bcd46..b4e9cb4 100644 --- a/conf.d/10-scale-bitmap-fonts.conf +++ b/conf.d/10-scale-bitmap-fonts.conf @@ -2,8 +2,13 @@ + - + false @@ -13,10 +18,20 @@ + + + false + false + + true + @@ -30,20 +45,7 @@ - - - false - - - 64 - - - true - true @@ -55,7 +57,7 @@ If we *are* going to scale, go ahead and do it. --> - + false diff --git a/conf.d/45-latin.conf b/conf.d/45-latin.conf index 72490f3..5228945 100644 --- a/conf.d/45-latin.conf +++ b/conf.d/45-latin.conf @@ -14,19 +14,39 @@ serif + Cambria + serif + + + Constantia + serif + + DejaVu Serif serif + Elephant + serif + + + Garamond + serif + + + Georgia + serif + + Liberation Serif serif - Times New Roman + Luxi Serif serif - Times + MS Serif serif @@ -38,7 +58,7 @@ serif - Luxi Serif + Palatino Linotype serif @@ -50,30 +70,26 @@ serif - Georgia - serif - - - Garamond + Times New Roman serif - Palatino Linotype + Times serif - Bitstream Vera Sans + Albany AMT sans-serif - DejaVu Sans + Albany sans-serif - Liberation Sans + Arial Unicode MS sans-serif @@ -81,19 +97,47 @@ sans-serif + Bitstream Vera Sans + sans-serif + + + Britannic + sans-serif + + + Calibri + sans-serif + + + Candara + sans-serif + + + Century Gothic + sans-serif + + + Corbel + sans-serif + + + DejaVu Sans + sans-serif + + Helvetica sans-serif - Verdana + Haettenschweiler sans-serif - Albany AMT + Liberation Sans sans-serif - Albany + MS Sans Serif sans-serif @@ -109,50 +153,70 @@ sans-serif + Tahoma + sans-serif + + Trebuchet MS sans-serif + + Twentieth Century + sans-serif + + + Verdana + sans-serif + + + Andale Mono + monospace + Bitstream Vera Sans Mono monospace - DejaVu Sans Mono + Consolas monospace - Liberation Mono + Courier New monospace - Inconsolata + Courier monospace - Courier New + Cumberland AMT monospace - Courier + Cumberland monospace - Andale Mono + DejaVu Sans Mono monospace - Luxi Mono + Fixedsys monospace - Cumberland AMT + Inconsolata monospace - Cumberland + Liberation Mono + monospace + + + Luxi Mono monospace @@ -163,38 +227,42 @@ Nimbus Mono monospace + + Terminal + monospace + - - Impact + + Bauhaus Std fantasy - Copperplate Gothic Std + Cooper Std fantasy - Cooper Std + Copperplate Gothic Std fantasy - Bauhaus Std + Impact fantasy - ITC Zapf Chancery Std + Comic Sans MS cursive - Zapfino + ITC Zapf Chancery Std cursive - Comic Sans MS + Zapfino cursive diff --git a/conf.d/Makefile.am b/conf.d/Makefile.am index d61756b..ac68cd1 100644 --- a/conf.d/Makefile.am +++ b/conf.d/Makefile.am @@ -26,6 +26,7 @@ DOC_SOURCES = README.in DOC_FILES = $(DOC_SOURCES:.in=) CONF_LINKS = \ + 10-hinting-$(PREFERRED_HINTING).conf \ 10-scale-bitmap-fonts.conf \ 20-unhint-small-vera.conf \ 30-urw-aliases.conf \ @@ -51,6 +52,10 @@ config_DATA = $(DOC_FILES) templatedir = $(TEMPLATEDIR) template_DATA = \ 10-autohint.conf \ + 10-hinting-full.conf \ + 10-hinting-medium.conf \ + 10-hinting-none.conf \ + 10-hinting-slight.conf \ 10-no-sub-pixel.conf \ 10-scale-bitmap-fonts.conf \ 10-sub-pixel-bgr.conf \ diff --git a/conf.d/Makefile.in b/conf.d/Makefile.in index 42f12c7..6f9b01f 100644 --- a/conf.d/Makefile.in +++ b/conf.d/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -102,7 +112,6 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = conf.d -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -113,6 +122,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -166,6 +176,7 @@ am__uninstall_files_from_dir = { \ am__installdirs = "$(DESTDIR)$(configdir)" "$(DESTDIR)$(templatedir)" DATA = $(config_DATA) $(template_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -233,6 +244,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -255,6 +267,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -337,6 +350,7 @@ BUILT_SOURCES = README DOC_SOURCES = README.in DOC_FILES = $(DOC_SOURCES:.in=) CONF_LINKS = \ + 10-hinting-$(PREFERRED_HINTING).conf \ 10-scale-bitmap-fonts.conf \ 20-unhint-small-vera.conf \ 30-urw-aliases.conf \ @@ -360,6 +374,10 @@ config_DATA = $(DOC_FILES) templatedir = $(TEMPLATEDIR) template_DATA = \ 10-autohint.conf \ + 10-hinting-full.conf \ + 10-hinting-medium.conf \ + 10-hinting-none.conf \ + 10-hinting-slight.conf \ 10-no-sub-pixel.conf \ 10-scale-bitmap-fonts.conf \ 10-sub-pixel-bgr.conf \ @@ -405,7 +423,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu conf.d/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu conf.d/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -633,6 +650,8 @@ uninstall-am: uninstall-configDATA uninstall-local \ tags-am uninstall uninstall-am uninstall-configDATA \ uninstall-local uninstall-templateDATA +.PRECIOUS: Makefile + README: $(srcdir)/README.in sed "s|\@TEMPLATEDIR\@|$(templatedir)|" $< > $@ diff --git a/config.guess b/config.guess index 1f5c50c..dbfb978 100755 --- a/config.guess +++ b/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2014-03-23' +timestamp='2015-01-01' # 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 @@ -24,12 +24,12 @@ timestamp='2014-03-23' # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2015 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." @@ -579,8 +579,9 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi diff --git a/config.h.in b/config.h.in index f05c09b..ffff4cd 100644 --- a/config.h.in +++ b/config.h.in @@ -178,6 +178,9 @@ /* Define to 1 if `f_fstypename' is a member of `struct statvfs'. */ #undef HAVE_STRUCT_STATVFS_F_FSTYPENAME +/* Define to 1 if `st_mtim' is a member of `struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_MTIM + /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H @@ -231,8 +234,7 @@ /* Define to 1 if you have the `_mktemp_s' function. */ #undef HAVE__MKTEMP_S -/* Define to the sub-directory in which libtool stores uninstalled libraries. - */ +/* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ diff --git a/config.sub b/config.sub index 66c5074..6467c95 100755 --- a/config.sub +++ b/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2015 Free Software Foundation, Inc. -timestamp='2014-07-28' +timestamp='2015-01-01' # 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 @@ -25,7 +25,7 @@ timestamp='2014-07-28' # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -68,7 +68,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2015 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." @@ -260,7 +260,7 @@ case $basic_machine in | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ - | fido | fr30 | frv \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ @@ -302,6 +302,7 @@ case $basic_machine in | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ + | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ @@ -312,6 +313,7 @@ case $basic_machine in | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) @@ -326,6 +328,9 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none @@ -436,6 +441,7 @@ case $basic_machine in | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ + | visium-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ @@ -773,6 +779,9 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; m68knommu) basic_machine=m68k-unknown os=-linux diff --git a/configure b/configure index 775eb80..eed481c 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 fontconfig 2.11.93. +# Generated by GNU Autoconf 2.69 for fontconfig 2.12.1. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='fontconfig' PACKAGE_TARNAME='fontconfig' -PACKAGE_VERSION='2.11.93' -PACKAGE_STRING='fontconfig 2.11.93' +PACKAGE_VERSION='2.12.1' +PACKAGE_STRING='fontconfig 2.12.1' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig' PACKAGE_URL='' @@ -661,6 +661,7 @@ fc_cachedir FC_FONTPATH FC_ADD_FONTS FC_DEFAULT_FONTS +PREFERRED_HINTING LIBXML2_LIBS LIBXML2_CFLAGS HAVE_XMLPARSE_H @@ -686,6 +687,7 @@ LIBT_CURRENT_MINUS_AGE LIBT_VERSION_INFO LIBT_REVISION LIBT_CURRENT +LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO @@ -714,6 +716,8 @@ OBJDUMP DLLTOOL AS RM +HAVE_PYTHON_FALSE +HAVE_PYTHON_TRUE pkgpyexecdir pyexecdir pkgpythondir @@ -826,6 +830,7 @@ enable_static enable_shared with_pic enable_fast_install +with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock @@ -838,6 +843,7 @@ with_expat with_expat_includes with_expat_lib enable_libxml2 +with_default_hinting with_default_fonts with_add_fonts with_cache_dir @@ -860,6 +866,7 @@ PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PYTHON +LT_SYS_LIBRARY_PATH CC_FOR_BUILD FREETYPE_CFLAGS FREETYPE_LIBS @@ -1407,7 +1414,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 fontconfig 2.11.93 to adapt to many kinds of systems. +\`configure' configures fontconfig 2.12.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1477,7 +1484,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of fontconfig 2.11.93:";; + short | recursive ) echo "Configuration of fontconfig 2.12.1:";; esac cat <<\_ACEOF @@ -1508,9 +1515,12 @@ Optional Packages: ['${libdir}/pkgconfig'] --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. --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-arch=ARCH Force architecture to ARCH --with-libiconv=DIR Use libiconv in DIR --with-libiconv-includes=DIR @@ -1520,6 +1530,9 @@ Optional Packages: --with-expat-includes=DIR Use Expat includes in DIR --with-expat-lib=DIR + --with-default-hinting=NAME + Enable your preferred hinting configuration + (none/slight/medium/full) [default=slight] --with-default-fonts=DIR Use fonts from DIR when config is busted --with-add-fonts=DIR1,DIR2,... @@ -1551,6 +1564,8 @@ Some influential environment variables: PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path PYTHON the Python interpreter + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. CC_FOR_BUILD build system C compiler FREETYPE_CFLAGS @@ -1631,7 +1646,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -fontconfig configure 2.11.93 +fontconfig configure 2.12.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2340,7 +2355,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 fontconfig $as_me 2.11.93, which was +It was created by fontconfig $as_me 2.12.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2691,7 +2706,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -am__api_version='1.14' +am__api_version='1.15' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -2892,8 +2907,8 @@ test "$program_suffix" != NONE && ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in @@ -2912,7 +2927,7 @@ else $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -3206,7 +3221,7 @@ fi # Define the identity of the package. PACKAGE='fontconfig' - VERSION='2.11.93' + VERSION='2.12.1' cat >>confdefs.h <<_ACEOF @@ -3240,8 +3255,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # mkdir_p='$(MKDIR_P)' -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' @@ -3298,6 +3313,7 @@ END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi + # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; @@ -5285,7 +5301,7 @@ test -n "$PYTHON" || PYTHON=":" if test "$PYTHON" = :; then - as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5 + : else @@ -5433,6 +5449,14 @@ $as_echo "$am_cv_python_pyexecdir" >&6; } fi + if test "$PYTHON" != :; then + HAVE_PYTHON_TRUE= + HAVE_PYTHON_FALSE='#' +else + HAVE_PYTHON_TRUE='#' + HAVE_PYTHON_FALSE= +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RM macro" >&5 $as_echo_n "checking for RM macro... " >&6; } @@ -5491,8 +5515,8 @@ esac -macro_version='2.4.2' -macro_revision='1.3337' +macro_version='2.4.6' +macro_revision='2.4.6' @@ -5506,7 +5530,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 || @@ -5626,7 +5650,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 @@ -5819,19 +5843,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` ;; @@ -5845,7 +5869,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. @@ -5856,7 +5880,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 @@ -5867,32 +5891,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; } @@ -5935,33 +5959,38 @@ 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'*) + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'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 @@ -5972,15 +6001,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 : @@ -6086,9 +6115,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=: @@ -6096,8 +6125,8 @@ fi esac fi - if test "$DUMPBIN" != ":"; then - NM="$DUMPBIN" + if test : != "$DUMPBIN"; then + NM=$DUMPBIN fi fi test -z "$NM" && NM=nm @@ -6137,7 +6166,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*) @@ -6177,7 +6206,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` @@ -6227,22 +6256,23 @@ else ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then + if test -n "$lt_cv_sys_max_cmd_len" && \ + 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 @@ -6260,7 +6290,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 @@ -6278,30 +6308,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 @@ -6424,13 +6430,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 @@ -6555,13 +6561,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]*) @@ -6588,8 +6594,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 @@ -6625,10 +6630,6 @@ freebsd* | dragonfly*) fi ;; -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -6667,7 +6668,7 @@ irix5* | irix6* | nonstopux*) ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; @@ -6689,8 +6690,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)$' @@ -6743,6 +6744,9 @@ sysv4 | sysv4.3*) tpf*) lt_cv_deplibs_check_method=pass_all ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; esac fi @@ -6897,8 +6901,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 @@ -6910,7 +6914,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 @@ -7064,7 +7068,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 @@ -7072,7 +7076,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 @@ -7085,7 +7089,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 @@ -7302,7 +7306,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" ;; *) @@ -7392,7 +7396,7 @@ cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; @@ -7425,14 +7429,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= @@ -7450,21 +7484,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'" @@ -7512,11 +7549,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 @@ -7542,7 +7579,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} }; @@ -7562,13 +7599,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 @@ -7589,7 +7626,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= @@ -7642,6 +7679,16 @@ fi + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } @@ -7654,9 +7701,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 ;; #( @@ -7666,8 +7713,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 @@ -7679,18 +7726,99 @@ $as_echo "${lt_sysroot:-no}" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + # Check whether --enable-libtool-lock was given. 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 @@ -7699,24 +7827,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" @@ -7745,9 +7874,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 @@ -7761,7 +7931,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - LD="${LD-ld} -m elf_i386" + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" @@ -7806,7 +7983,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; } @@ -7846,13 +8023,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 @@ -7864,7 +8042,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*) @@ -7873,7 +8051,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 ;; *) @@ -7889,7 +8067,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. @@ -8000,7 +8178,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 @@ -8503,7 +8681,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 @@ -8521,7 +8699,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 @@ -8560,7 +8738,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 @@ -8589,7 +8767,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 @@ -8602,32 +8780,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' ;; - 10.[012]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _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= @@ -8635,6 +8813,41 @@ $as_echo "$lt_cv_ld_force_load" >&6; } ;; esac +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default @@ -8662,14 +8875,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 @@ -8998,14 +9211,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 @@ -9030,14 +9243,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 @@ -9045,8 +9258,6 @@ else fi -test -z "$pic_mode" && pic_mode=default - @@ -9062,14 +9273,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 @@ -9083,11 +9294,63 @@ fi + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + # 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' @@ -9136,7 +9399,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 @@ -9175,7 +9438,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 @@ -9186,14 +9449,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 @@ -9202,15 +9465,8 @@ test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +func_cc_basename $compiler +cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it @@ -9225,22 +9481,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 : @@ -9263,13 +9519,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; } @@ -9291,22 +9547,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 : @@ -9329,13 +9585,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; } @@ -9356,7 +9612,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' @@ -9418,7 +9674,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' ;; @@ -9434,7 +9690,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 @@ -9464,7 +9720,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 : @@ -9482,17 +9738,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*) @@ -9503,8 +9760,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 @@ -9520,6 +9777,11 @@ lt_prog_compiler_static= # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac ;; darwin* | rhapsody*) @@ -9590,7 +9852,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 @@ -9598,10 +9860,29 @@ 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). lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac ;; hpux9* | hpux10* | hpux11*) @@ -9617,7 +9898,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*) @@ -9626,9 +9907,9 @@ lt_prog_compiler_static= lt_prog_compiler_static='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + 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' @@ -9653,6 +9934,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) @@ -9750,7 +10037,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 @@ -9779,7 +10066,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= ;; @@ -9811,7 +10098,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 @@ -9841,7 +10128,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" ;; @@ -9873,7 +10160,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 @@ -9892,13 +10179,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= @@ -10018,8 +10305,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; } @@ -10031,9 +10318,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 @@ -10076,9 +10363,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 @@ -10093,7 +10380,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 ;; @@ -10101,7 +10388,7 @@ $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 ;; esac @@ -10111,7 +10398,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 @@ -10133,24 +10420,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 ... @@ -10163,7 +10450,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 @@ -10182,7 +10469,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) @@ -10198,7 +10485,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 @@ -10208,7 +10495,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 @@ -10216,61 +10503,89 @@ _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 ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=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' ;; @@ -10281,42 +10596,47 @@ _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 + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; 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 @@ -10330,8 +10650,8 @@ _LT_EOF 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 ;; @@ -10349,8 +10669,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 @@ -10362,7 +10682,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 @@ -10377,9 +10697,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 @@ -10396,15 +10716,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= @@ -10420,7 +10740,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 @@ -10428,34 +10748,57 @@ _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 - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive 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 done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi ;; esac @@ -10474,13 +10817,21 @@ _LT_EOF hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes - file_list_spec='${wl}-f,' + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac - 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 @@ -10499,35 +10850,42 @@ _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 + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' 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 + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' 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 aix,yes = "$with_aix_soname,$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 : @@ -10562,7 +10920,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 @@ -10570,17 +10928,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 : @@ -10615,7 +10973,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 @@ -10623,21 +10981,33 @@ 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='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; @@ -10646,7 +11016,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) @@ -10676,16 +11046,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 @@ -10694,18 +11065,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 @@ -10714,7 +11085,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. @@ -10733,24 +11104,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 @@ -10792,33 +11163,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 @@ -10826,25 +11197,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' ;; *) @@ -10856,7 +11227,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 @@ -10875,14 +11246,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 @@ -10890,8 +11261,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 @@ -10902,7 +11273,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. @@ -10913,8 +11284,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. @@ -10924,8 +11295,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; } @@ -10937,24 +11308,34 @@ 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 ;; + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out @@ -10969,7 +11350,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 ;; @@ -10977,27 +11358,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 @@ -11008,33 +11381,53 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes ;; 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' @@ -11045,24 +11438,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 @@ -11072,11 +11465,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 @@ -11086,10 +11479,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 @@ -11138,43 +11531,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 ;; @@ -11189,10 +11582,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 @@ -11200,7 +11593,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 @@ -11226,7 +11619,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. @@ -11441,14 +11834,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 @@ -11464,28 +11857,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--; } @@ -11499,7 +11899,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 @@ -11508,7 +11908,7 @@ fi library_names_spec= libname_spec='lib$name' soname_spec= -shrext_cmds=".so" +shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -11525,14 +11925,16 @@ hardcode_into_libs=no # flags to be left without arguments 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]*) @@ -11540,41 +11942,91 @@ 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 + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # 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 + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' # 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}' - else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' # 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' - fi + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac shlibpath_var=LIBPATH fi ;; @@ -11584,18 +12036,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 ;; @@ -11603,8 +12055,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" @@ -11616,7 +12068,7 @@ bsdi[45]*) cygwin* | mingw* | pw32* | cegcc*) version_type=windows - shrext_cmds=".dll" + shrext_cmds=.dll need_version=no need_lib_prefix=no @@ -11625,8 +12077,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~ @@ -11642,17 +12094,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' @@ -11661,8 +12113,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*) @@ -11689,7 +12141,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'` @@ -11702,8 +12154,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' @@ -11716,7 +12168,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 @@ -11729,8 +12181,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`' @@ -11743,8 +12195,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 ;; @@ -11762,12 +12214,13 @@ 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$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' 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 @@ -11792,26 +12245,15 @@ freebsd* | dragonfly*) esac ;; -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' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - haiku*) version_type=linux # correct to gnu/linux during the next big refactor 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 ;; @@ -11829,14 +12271,15 @@ 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" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' @@ -11844,8 +12287,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 ;; @@ -11854,8 +12297,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, ... @@ -11868,8 +12311,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 @@ -11880,7 +12323,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 @@ -11888,8 +12331,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= @@ -11908,8 +12351,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 ;; @@ -11918,13 +12361,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) +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 @@ -11971,11 +12434,15 @@ fi # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" - # Append ld.so.conf contents to the search path + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - fi # We used to test for /lib/ld.so.1 and disable shared libraries on @@ -11992,12 +12459,12 @@ netbsd*) 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 @@ -12007,7 +12474,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 ;; @@ -12016,58 +12483,68 @@ 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" + version_type=windows + shrext_cmds=.dll + need_version=no need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + 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~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' ;; 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*) @@ -12078,8 +12555,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 @@ -12089,11 +12566,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 @@ -12101,8 +12578,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) @@ -12123,24 +12600,24 @@ 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf + version_type=sco 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' @@ -12158,7 +12635,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 @@ -12166,8 +12643,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 ;; @@ -12177,20 +12654,35 @@ 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 +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + @@ -12287,15 +12779,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 @@ -12310,12 +12802,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 @@ -12325,7 +12817,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 @@ -12335,23 +12827,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 : @@ -12389,10 +12881,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 @@ -12400,10 +12892,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; } @@ -12442,11 +12942,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; } @@ -12485,7 +12985,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; } @@ -12524,7 +13024,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; } @@ -12563,7 +13063,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 @@ -12584,21 +13084,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 @@ -12606,7 +13106,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 @@ -12653,9 +13153,9 @@ else # endif #endif -/* When -fvisbility=hidden is used, assume the code has been annotated +/* When -fvisibility=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 @@ -12685,7 +13185,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 @@ -12705,14 +13205,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 @@ -12759,9 +13259,9 @@ else # endif #endif -/* When -fvisbility=hidden is used, assume the code has been annotated +/* When -fvisibility=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 @@ -12791,7 +13291,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 @@ -12812,9 +13312,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 @@ -12858,7 +13358,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 @@ -12886,7 +13386,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 @@ -12894,13 +13394,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' @@ -12908,8 +13408,12 @@ $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"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac fi ;; esac @@ -12919,7 +13423,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; } @@ -12933,7 +13437,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 @@ -12960,7 +13464,7 @@ CC="$lt_save_CC" LIBT_CURRENT=10 -LIBT_REVISION=0 +LIBT_REVISION=2 LIBT_AGE=9 @@ -14347,6 +14851,19 @@ _ACEOF # +ac_fn_c_check_member "$LINENO" "struct stat" "st_mtim" "ac_cv_member_struct_stat_st_mtim" "#include +" +if test "x$ac_cv_member_struct_stat_st_mtim" = xyes; then : + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_MTIM 1 +_ACEOF + + +fi + + +# if test "x$ac_cv_func_fstatvfs" = "xyes"; then ac_fn_c_check_member "$LINENO" "struct statvfs" "f_basetype" "ac_cv_member_struct_statvfs_f_basetype" "#include " @@ -15029,6 +15546,29 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi # +# Set default hinting +# + + +# Check whether --with-default-hinting was given. +if test "${with_default_hinting+set}" = set; then : + withval=$with_default_hinting; preferred_hinting="$withval" +else + preferred_hinting=slight +fi + + +case "$preferred_hinting" in +none|slight|medium|full) + PREFERRED_HINTING="$preferred_hinting" + + ;; +*) + as_fn_error $? "Invalid hinting. please choose one of none, slight, medium, or full" "$LINENO" 5 + ;; +esac + +# # Set default font directory # @@ -16435,6 +16975,10 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${HAVE_PYTHON_TRUE}" && test -z "${HAVE_PYTHON_FALSE}"; then + as_fn_error $? "conditional \"HAVE_PYTHON\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${OS_WIN32_TRUE}" && test -z "${OS_WIN32_FALSE}"; then as_fn_error $? "conditional \"OS_WIN32\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -16861,7 +17405,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 fontconfig $as_me 2.11.93, which was +This file was extended by fontconfig $as_me 2.12.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16927,7 +17471,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="\\ -fontconfig config.status 2.11.93 +fontconfig config.status 2.12.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -17065,6 +17609,7 @@ OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' @@ -17112,10 +17657,13 @@ 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"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' @@ -17180,7 +17728,8 @@ finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' @@ -17232,9 +17781,12 @@ 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_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ @@ -17269,7 +17821,7 @@ old_striplib \ striplib; 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\\\\\\"" @@ -17296,10 +17848,11 @@ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ -sys_lib_dlsearch_path_spec; do +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; 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\\\\\\"" @@ -17308,19 +17861,16 @@ sys_lib_dlsearch_path_spec; 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' @@ -18069,55 +18619,53 @@ $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" cat <<_LT_EOF >> "$cfgfile" #! $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. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 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. + +# GNU Libtool 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 2 of of the License, or +# (at your option) any later version. # -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool 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 2 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. +# 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. # -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of +# GNU Libtool 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 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 . # The names of the tagged configurations supported by this script. -available_tags="" +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG @@ -18146,6 +18694,9 @@ pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + # Shell to use when invoking shell scripts. SHELL=$lt_SHELL @@ -18257,18 +18808,27 @@ 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 +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + # The name of the directory that contains temporary libtool files. objdir=$objdir @@ -18359,8 +18919,11 @@ hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec -# Run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # Whether dlopen is supported. dlopen_support=$enable_dlopen @@ -18453,13 +19016,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 @@ -18511,13 +19074,72 @@ hardcode_action=$hardcode_action _LT_EOF + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # 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 @@ -18526,7 +19148,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 @@ -18536,165 +19158,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" diff --git a/configure.ac b/configure.ac index bb98804..4948816 100644 --- a/configure.ac +++ b/configure.ac @@ -33,7 +33,7 @@ dnl This is the package version number, not the shared library dnl version. This same version number must appear in fontconfig/fontconfig.h dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's dnl not possible to extract the version number here from fontconfig.h -AC_INIT([fontconfig], [2.11.93], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) +AC_INIT([fontconfig], [2.12.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) @@ -53,7 +53,8 @@ m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/ AM_MISSING_PROG([GIT], [git]) AM_MISSING_PROG([GPERF], [gperf]) -AM_PATH_PYTHON +AM_PATH_PYTHON(,, [:]) +AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :]) AC_MSG_CHECKING([for RM macro]) _predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'` @@ -74,7 +75,7 @@ dnl bump revision when fixing bugs dnl bump current and age, reset revision to zero when adding APIs dnl bump current, leave age, reset revision to zero when changing/removing APIS LIBT_CURRENT=10 -LIBT_REVISION=0 +LIBT_REVISION=2 AC_SUBST(LIBT_CURRENT) AC_SUBST(LIBT_REVISION) LIBT_AGE=9 @@ -167,6 +168,9 @@ AC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_ AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadvise' function.]) # +AC_CHECK_MEMBERS([struct stat.st_mtim],,, [#include ]) + +# if test "x$ac_cv_func_fstatvfs" = "xyes"; then AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,, [#include ]) @@ -402,6 +406,25 @@ if test "$enable_libxml2" = "yes"; then fi # +# Set default hinting +# + +AC_ARG_WITH(default-hinting, + [AC_HELP_STRING([--with-default-hinting=NAME], + [Enable your preferred hinting configuration (none/slight/medium/full) [default=slight]])], + preferred_hinting="$withval", preferred_hinting=slight) + +case "$preferred_hinting" in +none|slight|medium|full) + PREFERRED_HINTING="$preferred_hinting" + AC_SUBST(PREFERRED_HINTING) + ;; +*) + AC_MSG_ERROR([Invalid hinting. please choose one of none, slight, medium, or full]) + ;; +esac + +# # Set default font directory # diff --git a/depcomp b/depcomp index 4ebd5b3..fc98710 100755 --- a/depcomp +++ b/depcomp @@ -3,7 +3,7 @@ scriptversion=2013-05-30.07; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # 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 diff --git a/doc/FcAtomicCreate.3 b/doc/FcAtomicCreate.3 index e5d12e8..cb40ab9 100644 --- a/doc/FcAtomicCreate.3 +++ b/doc/FcAtomicCreate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcAtomicCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcAtomicCreate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcAtomicCreate \- create an FcAtomic object .SH SYNOPSIS diff --git a/doc/FcAtomicDeleteNew.3 b/doc/FcAtomicDeleteNew.3 index bb1a1f4..f6fa765 100644 --- a/doc/FcAtomicDeleteNew.3 +++ b/doc/FcAtomicDeleteNew.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcAtomicDeleteNew" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcAtomicDeleteNew" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcAtomicDeleteNew \- delete new file .SH SYNOPSIS diff --git a/doc/FcAtomicDestroy.3 b/doc/FcAtomicDestroy.3 index c2fff80..1d0da2b 100644 --- a/doc/FcAtomicDestroy.3 +++ b/doc/FcAtomicDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcAtomicDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcAtomicDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcAtomicDestroy \- destroy an FcAtomic object .SH SYNOPSIS diff --git a/doc/FcAtomicLock.3 b/doc/FcAtomicLock.3 index 0d4a94c..ee646a6 100644 --- a/doc/FcAtomicLock.3 +++ b/doc/FcAtomicLock.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcAtomicLock" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcAtomicLock" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcAtomicLock \- lock a file .SH SYNOPSIS diff --git a/doc/FcAtomicNewFile.3 b/doc/FcAtomicNewFile.3 index 2c1fc6b..af798db 100644 --- a/doc/FcAtomicNewFile.3 +++ b/doc/FcAtomicNewFile.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcAtomicNewFile" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcAtomicNewFile" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcAtomicNewFile \- return new temporary file name .SH SYNOPSIS diff --git a/doc/FcAtomicOrigFile.3 b/doc/FcAtomicOrigFile.3 index 2aafaca..b794a01 100644 --- a/doc/FcAtomicOrigFile.3 +++ b/doc/FcAtomicOrigFile.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcAtomicOrigFile" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcAtomicOrigFile" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcAtomicOrigFile \- return original file name .SH SYNOPSIS diff --git a/doc/FcAtomicReplaceOrig.3 b/doc/FcAtomicReplaceOrig.3 index 1ff4285..68bfaad 100644 --- a/doc/FcAtomicReplaceOrig.3 +++ b/doc/FcAtomicReplaceOrig.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcAtomicReplaceOrig" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcAtomicReplaceOrig" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcAtomicReplaceOrig \- replace original with new .SH SYNOPSIS diff --git a/doc/FcAtomicUnlock.3 b/doc/FcAtomicUnlock.3 index 54b3374..138afa4 100644 --- a/doc/FcAtomicUnlock.3 +++ b/doc/FcAtomicUnlock.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcAtomicUnlock" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcAtomicUnlock" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcAtomicUnlock \- unlock a file .SH SYNOPSIS diff --git a/doc/FcBlanksAdd.3 b/doc/FcBlanksAdd.3 index 982347c..e036bb0 100644 --- a/doc/FcBlanksAdd.3 +++ b/doc/FcBlanksAdd.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcBlanksAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcBlanksAdd" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcBlanksAdd \- Add a character to an FcBlanks .SH SYNOPSIS diff --git a/doc/FcBlanksCreate.3 b/doc/FcBlanksCreate.3 index 38dac0a..c7111a8 100644 --- a/doc/FcBlanksCreate.3 +++ b/doc/FcBlanksCreate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcBlanksCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcBlanksCreate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcBlanksCreate \- Create an FcBlanks .SH SYNOPSIS diff --git a/doc/FcBlanksDestroy.3 b/doc/FcBlanksDestroy.3 index 220cd64..9b27757 100644 --- a/doc/FcBlanksDestroy.3 +++ b/doc/FcBlanksDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcBlanksDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcBlanksDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcBlanksDestroy \- Destroy and FcBlanks .SH SYNOPSIS diff --git a/doc/FcBlanksIsMember.3 b/doc/FcBlanksIsMember.3 index afa8e56..fb061f9 100644 --- a/doc/FcBlanksIsMember.3 +++ b/doc/FcBlanksIsMember.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcBlanksIsMember" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcBlanksIsMember" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcBlanksIsMember \- Query membership in an FcBlanks .SH SYNOPSIS diff --git a/doc/FcCacheCopySet.3 b/doc/FcCacheCopySet.3 index 20ecb22..26d3a8b 100644 --- a/doc/FcCacheCopySet.3 +++ b/doc/FcCacheCopySet.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCacheCopySet" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCacheCopySet" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCacheCopySet \- Returns a copy of the fontset from cache .SH SYNOPSIS diff --git a/doc/FcCacheCreateTagFile.3 b/doc/FcCacheCreateTagFile.3 index b0dc4b1..274301b 100644 --- a/doc/FcCacheCreateTagFile.3 +++ b/doc/FcCacheCreateTagFile.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCacheCreateTagFile" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCacheCreateTagFile" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCacheCreateTagFile \- Create CACHEDIR.TAG at cache directory. .SH SYNOPSIS diff --git a/doc/FcCacheDir.3 b/doc/FcCacheDir.3 index dcf8756..dd84d6d 100644 --- a/doc/FcCacheDir.3 +++ b/doc/FcCacheDir.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCacheDir" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCacheDir" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCacheDir \- Return directory of cache .SH SYNOPSIS diff --git a/doc/FcCacheNumFont.3 b/doc/FcCacheNumFont.3 index 4e170a3..c01d37d 100644 --- a/doc/FcCacheNumFont.3 +++ b/doc/FcCacheNumFont.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCacheNumFont" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCacheNumFont" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCacheNumFont \- Returns the number of fonts in cache. .SH SYNOPSIS diff --git a/doc/FcCacheNumSubdir.3 b/doc/FcCacheNumSubdir.3 index 23ec4a2..4640bb1 100644 --- a/doc/FcCacheNumSubdir.3 +++ b/doc/FcCacheNumSubdir.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCacheNumSubdir" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCacheNumSubdir" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCacheNumSubdir \- Return the number of subdirectories in cache. .SH SYNOPSIS diff --git a/doc/FcCacheSubdir.3 b/doc/FcCacheSubdir.3 index 5a191dc..ee152a9 100644 --- a/doc/FcCacheSubdir.3 +++ b/doc/FcCacheSubdir.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCacheSubdir" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCacheSubdir" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCacheSubdir \- Return the i'th subdirectory. .SH SYNOPSIS diff --git a/doc/FcCharSetAddChar.3 b/doc/FcCharSetAddChar.3 index bdebc13..c775035 100644 --- a/doc/FcCharSetAddChar.3 +++ b/doc/FcCharSetAddChar.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetAddChar" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetAddChar" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetAddChar \- Add a character to a charset .SH SYNOPSIS diff --git a/doc/FcCharSetCopy.3 b/doc/FcCharSetCopy.3 index b192310..fdbb575 100644 --- a/doc/FcCharSetCopy.3 +++ b/doc/FcCharSetCopy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetCopy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetCopy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetCopy \- Copy a charset .SH SYNOPSIS diff --git a/doc/FcCharSetCount.3 b/doc/FcCharSetCount.3 index fda0f8f..eb86401 100644 --- a/doc/FcCharSetCount.3 +++ b/doc/FcCharSetCount.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetCount" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetCount" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetCount \- Count entries in a charset .SH SYNOPSIS diff --git a/doc/FcCharSetCoverage.3 b/doc/FcCharSetCoverage.3 index 0697e51..bb0cea6 100644 --- a/doc/FcCharSetCoverage.3 +++ b/doc/FcCharSetCoverage.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetCoverage" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetCoverage" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetCoverage \- DEPRECATED return coverage for a Unicode page .SH SYNOPSIS diff --git a/doc/FcCharSetCreate.3 b/doc/FcCharSetCreate.3 index 985e06a..dddb144 100644 --- a/doc/FcCharSetCreate.3 +++ b/doc/FcCharSetCreate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetCreate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetCreate \- Create an empty character set .SH SYNOPSIS diff --git a/doc/FcCharSetDelChar.3 b/doc/FcCharSetDelChar.3 index da456d7..0df4b18 100644 --- a/doc/FcCharSetDelChar.3 +++ b/doc/FcCharSetDelChar.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetDelChar" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetDelChar" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetDelChar \- Add a character to a charset .SH SYNOPSIS diff --git a/doc/FcCharSetDestroy.3 b/doc/FcCharSetDestroy.3 index 25ed7dc..4ed58cb 100644 --- a/doc/FcCharSetDestroy.3 +++ b/doc/FcCharSetDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetDestroy \- Destroy a character set .SH SYNOPSIS diff --git a/doc/FcCharSetEqual.3 b/doc/FcCharSetEqual.3 index e333f60..fc08a72 100644 --- a/doc/FcCharSetEqual.3 +++ b/doc/FcCharSetEqual.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetEqual" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetEqual \- Compare two charsets .SH SYNOPSIS diff --git a/doc/FcCharSetFirstPage.3 b/doc/FcCharSetFirstPage.3 index c4fdba8..34bdb92 100644 --- a/doc/FcCharSetFirstPage.3 +++ b/doc/FcCharSetFirstPage.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetFirstPage" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetFirstPage" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetFirstPage \- Start enumerating charset contents .SH SYNOPSIS diff --git a/doc/FcCharSetHasChar.3 b/doc/FcCharSetHasChar.3 index e2392d4..533abe1 100644 --- a/doc/FcCharSetHasChar.3 +++ b/doc/FcCharSetHasChar.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetHasChar" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetHasChar" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetHasChar \- Check a charset for a char .SH SYNOPSIS diff --git a/doc/FcCharSetIntersect.3 b/doc/FcCharSetIntersect.3 index a0c2331..d128ea1 100644 --- a/doc/FcCharSetIntersect.3 +++ b/doc/FcCharSetIntersect.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetIntersect" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetIntersect" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetIntersect \- Intersect charsets .SH SYNOPSIS diff --git a/doc/FcCharSetIntersectCount.3 b/doc/FcCharSetIntersectCount.3 index 6c0fb9e..87f6250 100644 --- a/doc/FcCharSetIntersectCount.3 +++ b/doc/FcCharSetIntersectCount.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetIntersectCount" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetIntersectCount" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetIntersectCount \- Intersect and count charsets .SH SYNOPSIS diff --git a/doc/FcCharSetIsSubset.3 b/doc/FcCharSetIsSubset.3 index 27980ac..1a0febe 100644 --- a/doc/FcCharSetIsSubset.3 +++ b/doc/FcCharSetIsSubset.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetIsSubset" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetIsSubset" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetIsSubset \- Test for charset inclusion .SH SYNOPSIS diff --git a/doc/FcCharSetMerge.3 b/doc/FcCharSetMerge.3 index 540a1bc..8796e78 100644 --- a/doc/FcCharSetMerge.3 +++ b/doc/FcCharSetMerge.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetMerge" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetMerge" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetMerge \- Merge charsets .SH SYNOPSIS diff --git a/doc/FcCharSetNew.3 b/doc/FcCharSetNew.3 index 5b6165b..6828d52 100644 --- a/doc/FcCharSetNew.3 +++ b/doc/FcCharSetNew.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetNew" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetNew" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetNew \- DEPRECATED alias for FcCharSetCreate .SH SYNOPSIS diff --git a/doc/FcCharSetNextPage.3 b/doc/FcCharSetNextPage.3 index 48e08e5..89a0001 100644 --- a/doc/FcCharSetNextPage.3 +++ b/doc/FcCharSetNextPage.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetNextPage" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetNextPage" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetNextPage \- Continue enumerating charset contents .SH SYNOPSIS diff --git a/doc/FcCharSetSubtract.3 b/doc/FcCharSetSubtract.3 index 7e28ab8..783ed40 100644 --- a/doc/FcCharSetSubtract.3 +++ b/doc/FcCharSetSubtract.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetSubtract" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetSubtract" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetSubtract \- Subtract charsets .SH SYNOPSIS diff --git a/doc/FcCharSetSubtractCount.3 b/doc/FcCharSetSubtractCount.3 index 3364352..d85d1a4 100644 --- a/doc/FcCharSetSubtractCount.3 +++ b/doc/FcCharSetSubtractCount.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetSubtractCount" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetSubtractCount" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetSubtractCount \- Subtract and count charsets .SH SYNOPSIS diff --git a/doc/FcCharSetUnion.3 b/doc/FcCharSetUnion.3 index fbfdff3..99168eb 100644 --- a/doc/FcCharSetUnion.3 +++ b/doc/FcCharSetUnion.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcCharSetUnion" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcCharSetUnion" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcCharSetUnion \- Add charsets .SH SYNOPSIS diff --git a/doc/FcConfigAppFontAddDir.3 b/doc/FcConfigAppFontAddDir.3 index 706ed65..1d05726 100644 --- a/doc/FcConfigAppFontAddDir.3 +++ b/doc/FcConfigAppFontAddDir.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigAppFontAddDir" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigAppFontAddDir" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigAppFontAddDir \- Add fonts from directory to font database .SH SYNOPSIS @@ -12,6 +12,6 @@ FcBool FcConfigAppFontAddDir (FcConfig *\fIconfig\fB, const FcChar8 *\fIdir\fB); .PP Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. Returns FcFalse -if the fonts cannot be added (due to allocation failure or no fonts found). +if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If \fIconfig\fR is NULL, the current configuration is used. diff --git a/doc/FcConfigAppFontAddFile.3 b/doc/FcConfigAppFontAddFile.3 index b77a3d1..a9493d8 100644 --- a/doc/FcConfigAppFontAddFile.3 +++ b/doc/FcConfigAppFontAddFile.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigAppFontAddFile" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigAppFontAddFile" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigAppFontAddFile \- Add font file to font database .SH SYNOPSIS diff --git a/doc/FcConfigAppFontClear.3 b/doc/FcConfigAppFontClear.3 index 36f804b..a7001ee 100644 --- a/doc/FcConfigAppFontClear.3 +++ b/doc/FcConfigAppFontClear.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigAppFontClear" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigAppFontClear" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigAppFontClear \- Remove all app fonts from font database .SH SYNOPSIS diff --git a/doc/FcConfigBuildFonts.3 b/doc/FcConfigBuildFonts.3 index 212d686..8f00ded 100644 --- a/doc/FcConfigBuildFonts.3 +++ b/doc/FcConfigBuildFonts.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigBuildFonts" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigBuildFonts" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigBuildFonts \- Build font database .SH SYNOPSIS diff --git a/doc/FcConfigCreate.3 b/doc/FcConfigCreate.3 index 978faf7..d231e34 100644 --- a/doc/FcConfigCreate.3 +++ b/doc/FcConfigCreate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigCreate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigCreate \- Create a configuration .SH SYNOPSIS diff --git a/doc/FcConfigDestroy.3 b/doc/FcConfigDestroy.3 index 3369340..48af295 100644 --- a/doc/FcConfigDestroy.3 +++ b/doc/FcConfigDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigDestroy \- Destroy a configuration .SH SYNOPSIS diff --git a/doc/FcConfigEnableHome.3 b/doc/FcConfigEnableHome.3 index c0711dd..b059581 100644 --- a/doc/FcConfigEnableHome.3 +++ b/doc/FcConfigEnableHome.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigEnableHome" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigEnableHome" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigEnableHome \- controls use of the home directory. .SH SYNOPSIS diff --git a/doc/FcConfigFilename.3 b/doc/FcConfigFilename.3 index c48dc34..22e556d 100644 --- a/doc/FcConfigFilename.3 +++ b/doc/FcConfigFilename.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigFilename" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigFilename" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigFilename \- Find a config file .SH SYNOPSIS diff --git a/doc/FcConfigGetBlanks.3 b/doc/FcConfigGetBlanks.3 index 6065e41..7117399 100644 --- a/doc/FcConfigGetBlanks.3 +++ b/doc/FcConfigGetBlanks.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigGetBlanks" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigGetBlanks" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigGetBlanks \- Get config blanks .SH SYNOPSIS diff --git a/doc/FcConfigGetCache.3 b/doc/FcConfigGetCache.3 index bb3c931..4da17a4 100644 --- a/doc/FcConfigGetCache.3 +++ b/doc/FcConfigGetCache.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigGetCache" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigGetCache" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigGetCache \- DEPRECATED used to return per-user cache filename .SH SYNOPSIS diff --git a/doc/FcConfigGetCacheDirs.3 b/doc/FcConfigGetCacheDirs.3 index 7a98be5..7b7961e 100644 --- a/doc/FcConfigGetCacheDirs.3 +++ b/doc/FcConfigGetCacheDirs.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigGetCacheDirs" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigGetCacheDirs" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigGetCacheDirs \- return the list of directories searched for cache files .SH SYNOPSIS diff --git a/doc/FcConfigGetConfigDirs.3 b/doc/FcConfigGetConfigDirs.3 index 0eba41d..784599a 100644 --- a/doc/FcConfigGetConfigDirs.3 +++ b/doc/FcConfigGetConfigDirs.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigGetConfigDirs" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigGetConfigDirs" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigGetConfigDirs \- Get config directories .SH SYNOPSIS diff --git a/doc/FcConfigGetConfigFiles.3 b/doc/FcConfigGetConfigFiles.3 index 6e8f2ad..d6a16c3 100644 --- a/doc/FcConfigGetConfigFiles.3 +++ b/doc/FcConfigGetConfigFiles.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigGetConfigFiles" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigGetConfigFiles" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigGetConfigFiles \- Get config files .SH SYNOPSIS diff --git a/doc/FcConfigGetCurrent.3 b/doc/FcConfigGetCurrent.3 index 9fef8fd..4cc7b86 100644 --- a/doc/FcConfigGetCurrent.3 +++ b/doc/FcConfigGetCurrent.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigGetCurrent" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigGetCurrent" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigGetCurrent \- Return current configuration .SH SYNOPSIS diff --git a/doc/FcConfigGetFontDirs.3 b/doc/FcConfigGetFontDirs.3 index 46393d9..8805e96 100644 --- a/doc/FcConfigGetFontDirs.3 +++ b/doc/FcConfigGetFontDirs.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigGetFontDirs" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigGetFontDirs" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigGetFontDirs \- Get font directories .SH SYNOPSIS diff --git a/doc/FcConfigGetFonts.3 b/doc/FcConfigGetFonts.3 index db360e9..ff30882 100644 --- a/doc/FcConfigGetFonts.3 +++ b/doc/FcConfigGetFonts.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigGetFonts" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigGetFonts" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigGetFonts \- Get config font set .SH SYNOPSIS diff --git a/doc/FcConfigGetRescanInterval.3 b/doc/FcConfigGetRescanInterval.3 index 2e40361..7899961 100644 --- a/doc/FcConfigGetRescanInterval.3 +++ b/doc/FcConfigGetRescanInterval.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigGetRescanInterval" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigGetRescanInterval" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigGetRescanInterval \- Get config rescan interval .SH SYNOPSIS diff --git a/doc/FcConfigGetSysRoot.3 b/doc/FcConfigGetSysRoot.3 index 45b7a15..3f764ea 100644 --- a/doc/FcConfigGetSysRoot.3 +++ b/doc/FcConfigGetSysRoot.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigGetSysRoot" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigGetSysRoot" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigGetSysRoot \- Obtain the system root directory .SH SYNOPSIS diff --git a/doc/FcConfigHome.3 b/doc/FcConfigHome.3 index 153218a..81b142d 100644 --- a/doc/FcConfigHome.3 +++ b/doc/FcConfigHome.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigHome" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigHome" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigHome \- return the current home directory. .SH SYNOPSIS diff --git a/doc/FcConfigParseAndLoad.3 b/doc/FcConfigParseAndLoad.3 index 0c16ea0..c0b329a 100644 --- a/doc/FcConfigParseAndLoad.3 +++ b/doc/FcConfigParseAndLoad.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigParseAndLoad" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigParseAndLoad" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigParseAndLoad \- load a configuration file .SH SYNOPSIS diff --git a/doc/FcConfigReference.3 b/doc/FcConfigReference.3 index 34215ab..beb0732 100644 --- a/doc/FcConfigReference.3 +++ b/doc/FcConfigReference.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigReference" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigReference" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigReference \- Increment config reference count .SH SYNOPSIS diff --git a/doc/FcConfigSetCurrent.3 b/doc/FcConfigSetCurrent.3 index 56be29f..6ff7370 100644 --- a/doc/FcConfigSetCurrent.3 +++ b/doc/FcConfigSetCurrent.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigSetCurrent" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigSetCurrent" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigSetCurrent \- Set configuration as default .SH SYNOPSIS diff --git a/doc/FcConfigSetRescanInterval.3 b/doc/FcConfigSetRescanInterval.3 index 7dbf59f..deba75a 100644 --- a/doc/FcConfigSetRescanInterval.3 +++ b/doc/FcConfigSetRescanInterval.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigSetRescanInterval" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigSetRescanInterval" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigSetRescanInterval \- Set config rescan interval .SH SYNOPSIS diff --git a/doc/FcConfigSetSysRoot.3 b/doc/FcConfigSetSysRoot.3 index fb1efa6..d480347 100644 --- a/doc/FcConfigSetSysRoot.3 +++ b/doc/FcConfigSetSysRoot.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigSetSysRoot" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigSetSysRoot" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigSetSysRoot \- Set the system root directory .SH SYNOPSIS diff --git a/doc/FcConfigSubstitute.3 b/doc/FcConfigSubstitute.3 index 1818595..91abcad 100644 --- a/doc/FcConfigSubstitute.3 +++ b/doc/FcConfigSubstitute.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigSubstitute" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigSubstitute" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigSubstitute \- Execute substitutions .SH SYNOPSIS diff --git a/doc/FcConfigSubstituteWithPat.3 b/doc/FcConfigSubstituteWithPat.3 index 2324b87..bd8c5ef 100644 --- a/doc/FcConfigSubstituteWithPat.3 +++ b/doc/FcConfigSubstituteWithPat.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigSubstituteWithPat" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigSubstituteWithPat" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigSubstituteWithPat \- Execute substitutions .SH SYNOPSIS diff --git a/doc/FcConfigUptoDate.3 b/doc/FcConfigUptoDate.3 index 4ee810f..dc5e712 100644 --- a/doc/FcConfigUptoDate.3 +++ b/doc/FcConfigUptoDate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcConfigUptoDate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcConfigUptoDate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcConfigUptoDate \- Check timestamps on config files .SH SYNOPSIS diff --git a/doc/FcDefaultSubstitute.3 b/doc/FcDefaultSubstitute.3 index ce76764..914aa01 100644 --- a/doc/FcDefaultSubstitute.3 +++ b/doc/FcDefaultSubstitute.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDefaultSubstitute" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDefaultSubstitute" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDefaultSubstitute \- Perform default substitutions in a pattern .SH SYNOPSIS diff --git a/doc/FcDirCacheClean.3 b/doc/FcDirCacheClean.3 index 600b815..6acef7a 100644 --- a/doc/FcDirCacheClean.3 +++ b/doc/FcDirCacheClean.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDirCacheClean" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDirCacheClean" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDirCacheClean \- This tries to clean up the cache directory of cache_dir.This returns FcTrue if the operation is successfully complete. otherwise FcFalse. .SH SYNOPSIS diff --git a/doc/FcDirCacheLoad.3 b/doc/FcDirCacheLoad.3 index c10d00b..51a5d32 100644 --- a/doc/FcDirCacheLoad.3 +++ b/doc/FcDirCacheLoad.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDirCacheLoad" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDirCacheLoad" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDirCacheLoad \- load a directory cache .SH SYNOPSIS diff --git a/doc/FcDirCacheLoadFile.3 b/doc/FcDirCacheLoadFile.3 index 86b8f65..9f397ae 100644 --- a/doc/FcDirCacheLoadFile.3 +++ b/doc/FcDirCacheLoadFile.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDirCacheLoadFile" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDirCacheLoadFile" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDirCacheLoadFile \- load a cache file .SH SYNOPSIS diff --git a/doc/FcDirCacheRead.3 b/doc/FcDirCacheRead.3 index 74c8112..63e57e7 100644 --- a/doc/FcDirCacheRead.3 +++ b/doc/FcDirCacheRead.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDirCacheRead" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDirCacheRead" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDirCacheRead \- read or construct a directory cache .SH SYNOPSIS diff --git a/doc/FcDirCacheRescan.3 b/doc/FcDirCacheRescan.3 index 280ecdd..9674b19 100644 --- a/doc/FcDirCacheRescan.3 +++ b/doc/FcDirCacheRescan.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDirCacheRescan" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDirCacheRescan" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDirCacheRescan \- Re-scan a directory cache .SH SYNOPSIS diff --git a/doc/FcDirCacheUnlink.3 b/doc/FcDirCacheUnlink.3 index 0e1911a..e358c9e 100644 --- a/doc/FcDirCacheUnlink.3 +++ b/doc/FcDirCacheUnlink.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDirCacheUnlink" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDirCacheUnlink" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDirCacheUnlink \- Remove all caches related to dir .SH SYNOPSIS diff --git a/doc/FcDirCacheUnload.3 b/doc/FcDirCacheUnload.3 index 02e638f..6d791a9 100644 --- a/doc/FcDirCacheUnload.3 +++ b/doc/FcDirCacheUnload.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDirCacheUnload" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDirCacheUnload" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDirCacheUnload \- unload a cache file .SH SYNOPSIS diff --git a/doc/FcDirCacheValid.3 b/doc/FcDirCacheValid.3 index a60a8c8..67a3537 100644 --- a/doc/FcDirCacheValid.3 +++ b/doc/FcDirCacheValid.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDirCacheValid" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDirCacheValid" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDirCacheValid \- check directory cache .SH SYNOPSIS diff --git a/doc/FcDirSave.3 b/doc/FcDirSave.3 index 3e95f5e..6c449a8 100644 --- a/doc/FcDirSave.3 +++ b/doc/FcDirSave.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDirSave" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDirSave" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDirSave \- DEPRECATED: formerly used to save a directory cache .SH SYNOPSIS diff --git a/doc/FcDirScan.3 b/doc/FcDirScan.3 index a91a928..99354d0 100644 --- a/doc/FcDirScan.3 +++ b/doc/FcDirScan.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcDirScan" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcDirScan" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcDirScan \- scan a font directory without caching it .SH SYNOPSIS diff --git a/doc/FcFileIsDir.3 b/doc/FcFileIsDir.3 index a5cd70a..1b9d965 100644 --- a/doc/FcFileIsDir.3 +++ b/doc/FcFileIsDir.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFileIsDir" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFileIsDir" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFileIsDir \- check whether a file is a directory .SH SYNOPSIS diff --git a/doc/FcFileScan.3 b/doc/FcFileScan.3 index 7a8f834..8761eff 100644 --- a/doc/FcFileScan.3 +++ b/doc/FcFileScan.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFileScan" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFileScan" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFileScan \- scan a font file .SH SYNOPSIS diff --git a/doc/FcFini.3 b/doc/FcFini.3 index 19c960b..ad7a141 100644 --- a/doc/FcFini.3 +++ b/doc/FcFini.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFini" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFini" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFini \- finalize fontconfig library .SH SYNOPSIS diff --git a/doc/FcFontList.3 b/doc/FcFontList.3 index 78f08a3..f0a4581 100644 --- a/doc/FcFontList.3 +++ b/doc/FcFontList.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontList" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontList" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontList \- List fonts .SH SYNOPSIS diff --git a/doc/FcFontMatch.3 b/doc/FcFontMatch.3 index 9f31b49..6710139 100644 --- a/doc/FcFontMatch.3 +++ b/doc/FcFontMatch.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontMatch" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontMatch" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontMatch \- Return best font .SH SYNOPSIS diff --git a/doc/FcFontRenderPrepare.3 b/doc/FcFontRenderPrepare.3 index 6b4282f..7c2577f 100644 --- a/doc/FcFontRenderPrepare.3 +++ b/doc/FcFontRenderPrepare.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontRenderPrepare" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontRenderPrepare" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontRenderPrepare \- Prepare pattern for loading font file .SH SYNOPSIS diff --git a/doc/FcFontSetAdd.3 b/doc/FcFontSetAdd.3 index f9722fe..dbf6daa 100644 --- a/doc/FcFontSetAdd.3 +++ b/doc/FcFontSetAdd.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontSetAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontSetAdd" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontSetAdd \- Add to a font set .SH SYNOPSIS diff --git a/doc/FcFontSetCreate.3 b/doc/FcFontSetCreate.3 index 83bd591..ae4537b 100644 --- a/doc/FcFontSetCreate.3 +++ b/doc/FcFontSetCreate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontSetCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontSetCreate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontSetCreate \- Create a font set .SH SYNOPSIS diff --git a/doc/FcFontSetDestroy.3 b/doc/FcFontSetDestroy.3 index 37f08f7..560a153 100644 --- a/doc/FcFontSetDestroy.3 +++ b/doc/FcFontSetDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontSetDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontSetDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontSetDestroy \- Destroy a font set .SH SYNOPSIS diff --git a/doc/FcFontSetList.3 b/doc/FcFontSetList.3 index 31ae257..09f9800 100644 --- a/doc/FcFontSetList.3 +++ b/doc/FcFontSetList.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontSetList" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontSetList" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontSetList \- List fonts from a set of font sets .SH SYNOPSIS diff --git a/doc/FcFontSetMatch.3 b/doc/FcFontSetMatch.3 index 8494f86..41b4fcd 100644 --- a/doc/FcFontSetMatch.3 +++ b/doc/FcFontSetMatch.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontSetMatch" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontSetMatch" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontSetMatch \- Return the best font from a set of font sets .SH SYNOPSIS diff --git a/doc/FcFontSetPrint.3 b/doc/FcFontSetPrint.3 index 36ee13f..a2397fe 100644 --- a/doc/FcFontSetPrint.3 +++ b/doc/FcFontSetPrint.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontSetPrint" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontSetPrint" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontSetPrint \- Print a set of patterns to stdout .SH SYNOPSIS diff --git a/doc/FcFontSetSort.3 b/doc/FcFontSetSort.3 index 41b83f1..4dce69b 100644 --- a/doc/FcFontSetSort.3 +++ b/doc/FcFontSetSort.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontSetSort" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontSetSort" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontSetSort \- Add to a font set .SH SYNOPSIS diff --git a/doc/FcFontSetSortDestroy.3 b/doc/FcFontSetSortDestroy.3 index d54c97a..e83ab2c 100644 --- a/doc/FcFontSetSortDestroy.3 +++ b/doc/FcFontSetSortDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontSetSortDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontSetSortDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontSetSortDestroy \- DEPRECATED destroy a font set .SH SYNOPSIS diff --git a/doc/FcFontSort.3 b/doc/FcFontSort.3 index 2541608..4ab4401 100644 --- a/doc/FcFontSort.3 +++ b/doc/FcFontSort.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFontSort" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFontSort" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFontSort \- Return list of matching fonts .SH SYNOPSIS diff --git a/doc/FcFreeTypeCharIndex.3 b/doc/FcFreeTypeCharIndex.3 index 7e139cd..0ca41ac 100644 --- a/doc/FcFreeTypeCharIndex.3 +++ b/doc/FcFreeTypeCharIndex.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFreeTypeCharIndex" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFreeTypeCharIndex" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFreeTypeCharIndex \- map Unicode to glyph id .SH SYNOPSIS diff --git a/doc/FcFreeTypeCharSet.3 b/doc/FcFreeTypeCharSet.3 index 1afde0c..aec6bb3 100644 --- a/doc/FcFreeTypeCharSet.3 +++ b/doc/FcFreeTypeCharSet.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFreeTypeCharSet" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFreeTypeCharSet" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFreeTypeCharSet \- compute Unicode coverage .SH SYNOPSIS diff --git a/doc/FcFreeTypeCharSetAndSpacing.3 b/doc/FcFreeTypeCharSetAndSpacing.3 index 7853432..01e2b28 100644 --- a/doc/FcFreeTypeCharSetAndSpacing.3 +++ b/doc/FcFreeTypeCharSetAndSpacing.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFreeTypeCharSetAndSpacing" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFreeTypeCharSetAndSpacing" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFreeTypeCharSetAndSpacing \- compute Unicode coverage and spacing type .SH SYNOPSIS diff --git a/doc/FcFreeTypeQuery.3 b/doc/FcFreeTypeQuery.3 index b633df7..9669e13 100644 --- a/doc/FcFreeTypeQuery.3 +++ b/doc/FcFreeTypeQuery.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFreeTypeQuery" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFreeTypeQuery" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFreeTypeQuery \- compute pattern from font file (and index) .SH SYNOPSIS diff --git a/doc/FcFreeTypeQueryFace.3 b/doc/FcFreeTypeQueryFace.3 index 7435527..210d91b 100644 --- a/doc/FcFreeTypeQueryFace.3 +++ b/doc/FcFreeTypeQueryFace.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcFreeTypeQueryFace" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcFreeTypeQueryFace" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcFreeTypeQueryFace \- compute pattern from FT_Face .SH SYNOPSIS diff --git a/doc/FcGetDefaultLangs.3 b/doc/FcGetDefaultLangs.3 index 65d11cd..8e2215f 100644 --- a/doc/FcGetDefaultLangs.3 +++ b/doc/FcGetDefaultLangs.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcGetDefaultLangs" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcGetDefaultLangs" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcGetDefaultLangs \- Get the default languages list .SH SYNOPSIS diff --git a/doc/FcGetLangs.3 b/doc/FcGetLangs.3 index 1fbd516..2b9de20 100644 --- a/doc/FcGetLangs.3 +++ b/doc/FcGetLangs.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcGetLangs" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcGetLangs" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcGetLangs \- Get list of languages .SH SYNOPSIS diff --git a/doc/FcGetVersion.3 b/doc/FcGetVersion.3 index a4bbf00..5befbd0 100644 --- a/doc/FcGetVersion.3 +++ b/doc/FcGetVersion.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcGetVersion" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcGetVersion" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcGetVersion \- library version number .SH SYNOPSIS diff --git a/doc/FcInit.3 b/doc/FcInit.3 index 8d68d7a..2d9fe58 100644 --- a/doc/FcInit.3 +++ b/doc/FcInit.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcInit" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcInit" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcInit \- initialize fontconfig library .SH SYNOPSIS diff --git a/doc/FcInitBringUptoDate.3 b/doc/FcInitBringUptoDate.3 index adbe2bf..9770061 100644 --- a/doc/FcInitBringUptoDate.3 +++ b/doc/FcInitBringUptoDate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcInitBringUptoDate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcInitBringUptoDate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcInitBringUptoDate \- reload configuration files if needed .SH SYNOPSIS diff --git a/doc/FcInitLoadConfig.3 b/doc/FcInitLoadConfig.3 index 64915a8..ceda2bf 100644 --- a/doc/FcInitLoadConfig.3 +++ b/doc/FcInitLoadConfig.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcInitLoadConfig" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcInitLoadConfig" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcInitLoadConfig \- load configuration .SH SYNOPSIS diff --git a/doc/FcInitLoadConfigAndFonts.3 b/doc/FcInitLoadConfigAndFonts.3 index a8c51c2..32329e5 100644 --- a/doc/FcInitLoadConfigAndFonts.3 +++ b/doc/FcInitLoadConfigAndFonts.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcInitLoadConfigAndFonts" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcInitLoadConfigAndFonts" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcInitLoadConfigAndFonts \- load configuration and font data .SH SYNOPSIS diff --git a/doc/FcInitReinitialize.3 b/doc/FcInitReinitialize.3 index c02fb11..9901c2a 100644 --- a/doc/FcInitReinitialize.3 +++ b/doc/FcInitReinitialize.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcInitReinitialize" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcInitReinitialize" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcInitReinitialize \- re-initialize library .SH SYNOPSIS diff --git a/doc/FcIsLower.3 b/doc/FcIsLower.3 index c75046b..ae88801 100644 --- a/doc/FcIsLower.3 +++ b/doc/FcIsLower.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcIsLower" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcIsLower" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcIsLower \- check for lower case ASCII character .SH SYNOPSIS diff --git a/doc/FcIsUpper.3 b/doc/FcIsUpper.3 index 3482228..f64d7fd 100644 --- a/doc/FcIsUpper.3 +++ b/doc/FcIsUpper.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcIsUpper" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcIsUpper" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcIsUpper \- check for upper case ASCII character .SH SYNOPSIS diff --git a/doc/FcLangGetCharSet.3 b/doc/FcLangGetCharSet.3 index 8d79832..2dc911f 100644 --- a/doc/FcLangGetCharSet.3 +++ b/doc/FcLangGetCharSet.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangGetCharSet" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangGetCharSet" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangGetCharSet \- Get character map for a language .SH SYNOPSIS diff --git a/doc/FcLangNormalize.3 b/doc/FcLangNormalize.3 index 0963cb3..bb5f3ef 100644 --- a/doc/FcLangNormalize.3 +++ b/doc/FcLangNormalize.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangNormalize" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangNormalize" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangNormalize \- Normalize the language string .SH SYNOPSIS diff --git a/doc/FcLangSetAdd.3 b/doc/FcLangSetAdd.3 index e12c4ce..151c311 100644 --- a/doc/FcLangSetAdd.3 +++ b/doc/FcLangSetAdd.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetAdd" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetAdd \- add a language to a langset .SH SYNOPSIS diff --git a/doc/FcLangSetCompare.3 b/doc/FcLangSetCompare.3 index 193fa01..3faf961 100644 --- a/doc/FcLangSetCompare.3 +++ b/doc/FcLangSetCompare.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetCompare" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetCompare" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetCompare \- compare language sets .SH SYNOPSIS diff --git a/doc/FcLangSetContains.3 b/doc/FcLangSetContains.3 index 294d08d..1f62356 100644 --- a/doc/FcLangSetContains.3 +++ b/doc/FcLangSetContains.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetContains" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetContains" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetContains \- check langset subset relation .SH SYNOPSIS diff --git a/doc/FcLangSetCopy.3 b/doc/FcLangSetCopy.3 index a67b990..a7d713f 100644 --- a/doc/FcLangSetCopy.3 +++ b/doc/FcLangSetCopy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetCopy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetCopy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetCopy \- copy a langset object .SH SYNOPSIS diff --git a/doc/FcLangSetCreate.3 b/doc/FcLangSetCreate.3 index 72d1ab6..d180573 100644 --- a/doc/FcLangSetCreate.3 +++ b/doc/FcLangSetCreate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetCreate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetCreate \- create a langset object .SH SYNOPSIS diff --git a/doc/FcLangSetDel.3 b/doc/FcLangSetDel.3 index 0d1830b..e3540e2 100644 --- a/doc/FcLangSetDel.3 +++ b/doc/FcLangSetDel.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetDel" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetDel" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetDel \- delete a language from a langset .SH SYNOPSIS diff --git a/doc/FcLangSetDestroy.3 b/doc/FcLangSetDestroy.3 index b6d5d85..9d79acc 100644 --- a/doc/FcLangSetDestroy.3 +++ b/doc/FcLangSetDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetDestroy \- destroy a langset object .SH SYNOPSIS diff --git a/doc/FcLangSetEqual.3 b/doc/FcLangSetEqual.3 index 379406f..d6f0db7 100644 --- a/doc/FcLangSetEqual.3 +++ b/doc/FcLangSetEqual.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetEqual" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetEqual \- test for matching langsets .SH SYNOPSIS diff --git a/doc/FcLangSetGetLangs.3 b/doc/FcLangSetGetLangs.3 index 8f201f5..e40b799 100644 --- a/doc/FcLangSetGetLangs.3 +++ b/doc/FcLangSetGetLangs.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetGetLangs" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetGetLangs" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetGetLangs \- get the list of languages in the langset .SH SYNOPSIS diff --git a/doc/FcLangSetHasLang.3 b/doc/FcLangSetHasLang.3 index 96e0096..2fa8116 100644 --- a/doc/FcLangSetHasLang.3 +++ b/doc/FcLangSetHasLang.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetHasLang" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetHasLang" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetHasLang \- test langset for language support .SH SYNOPSIS diff --git a/doc/FcLangSetHash.3 b/doc/FcLangSetHash.3 index 38cd577..a48f6c3 100644 --- a/doc/FcLangSetHash.3 +++ b/doc/FcLangSetHash.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetHash" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetHash" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetHash \- return a hash value for a langset .SH SYNOPSIS diff --git a/doc/FcLangSetSubtract.3 b/doc/FcLangSetSubtract.3 index afa14ec..1af2f47 100644 --- a/doc/FcLangSetSubtract.3 +++ b/doc/FcLangSetSubtract.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetSubtract" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetSubtract" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetSubtract \- Subtract langsets .SH SYNOPSIS diff --git a/doc/FcLangSetUnion.3 b/doc/FcLangSetUnion.3 index a67f8d3..931b607 100644 --- a/doc/FcLangSetUnion.3 +++ b/doc/FcLangSetUnion.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcLangSetUnion" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcLangSetUnion" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcLangSetUnion \- Add langsets .SH SYNOPSIS diff --git a/doc/FcMatrixCopy.3 b/doc/FcMatrixCopy.3 index a396ada..8398196 100644 --- a/doc/FcMatrixCopy.3 +++ b/doc/FcMatrixCopy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcMatrixCopy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcMatrixCopy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcMatrixCopy \- Copy a matrix .SH SYNOPSIS diff --git a/doc/FcMatrixEqual.3 b/doc/FcMatrixEqual.3 index e757636..fe7d0de 100644 --- a/doc/FcMatrixEqual.3 +++ b/doc/FcMatrixEqual.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcMatrixEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcMatrixEqual" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcMatrixEqual \- Compare two matrices .SH SYNOPSIS diff --git a/doc/FcMatrixInit.3 b/doc/FcMatrixInit.3 index dd2dea1..9e569df 100644 --- a/doc/FcMatrixInit.3 +++ b/doc/FcMatrixInit.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcMatrixInit" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcMatrixInit" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcMatrixInit \- initialize an FcMatrix structure .SH SYNOPSIS diff --git a/doc/FcMatrixMultiply.3 b/doc/FcMatrixMultiply.3 index 4b2754d..b076afb 100644 --- a/doc/FcMatrixMultiply.3 +++ b/doc/FcMatrixMultiply.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcMatrixMultiply" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcMatrixMultiply" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcMatrixMultiply \- Multiply matrices .SH SYNOPSIS diff --git a/doc/FcMatrixRotate.3 b/doc/FcMatrixRotate.3 index cceb1a2..e66b66c 100644 --- a/doc/FcMatrixRotate.3 +++ b/doc/FcMatrixRotate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcMatrixRotate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcMatrixRotate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcMatrixRotate \- Rotate a matrix .SH SYNOPSIS diff --git a/doc/FcMatrixScale.3 b/doc/FcMatrixScale.3 index 6d2cb9c..1ef3346 100644 --- a/doc/FcMatrixScale.3 +++ b/doc/FcMatrixScale.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcMatrixScale" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcMatrixScale" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcMatrixScale \- Scale a matrix .SH SYNOPSIS diff --git a/doc/FcMatrixShear.3 b/doc/FcMatrixShear.3 index b3efd51..9d89a03 100644 --- a/doc/FcMatrixShear.3 +++ b/doc/FcMatrixShear.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcMatrixShear" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcMatrixShear" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcMatrixShear \- Shear a matrix .SH SYNOPSIS diff --git a/doc/FcNameConstant.3 b/doc/FcNameConstant.3 index d84f25f..9b93cb1 100644 --- a/doc/FcNameConstant.3 +++ b/doc/FcNameConstant.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcNameConstant" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcNameConstant" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcNameConstant \- Get the value for a symbolic constant .SH SYNOPSIS diff --git a/doc/FcNameGetConstant.3 b/doc/FcNameGetConstant.3 index ea3da7a..9c2a301 100644 --- a/doc/FcNameGetConstant.3 +++ b/doc/FcNameGetConstant.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcNameGetConstant" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcNameGetConstant" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcNameGetConstant \- Lookup symbolic constant .SH SYNOPSIS diff --git a/doc/FcNameGetObjectType.3 b/doc/FcNameGetObjectType.3 index 2308ee1..49d6050 100644 --- a/doc/FcNameGetObjectType.3 +++ b/doc/FcNameGetObjectType.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcNameGetObjectType" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcNameGetObjectType" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcNameGetObjectType \- Lookup an object type .SH SYNOPSIS diff --git a/doc/FcNameParse.3 b/doc/FcNameParse.3 index 215c5db..fb4d6a7 100644 --- a/doc/FcNameParse.3 +++ b/doc/FcNameParse.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcNameParse" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcNameParse" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcNameParse \- Parse a pattern string .SH SYNOPSIS diff --git a/doc/FcNameRegisterConstants.3 b/doc/FcNameRegisterConstants.3 index a84ea67..ac3c7b6 100644 --- a/doc/FcNameRegisterConstants.3 +++ b/doc/FcNameRegisterConstants.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcNameRegisterConstants" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcNameRegisterConstants" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcNameRegisterConstants \- Register symbolic constants .SH SYNOPSIS diff --git a/doc/FcNameRegisterObjectTypes.3 b/doc/FcNameRegisterObjectTypes.3 index df23c61..b3a7c08 100644 --- a/doc/FcNameRegisterObjectTypes.3 +++ b/doc/FcNameRegisterObjectTypes.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcNameRegisterObjectTypes" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcNameRegisterObjectTypes" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcNameRegisterObjectTypes \- Register object types .SH SYNOPSIS diff --git a/doc/FcNameUnparse.3 b/doc/FcNameUnparse.3 index a477e21..6085356 100644 --- a/doc/FcNameUnparse.3 +++ b/doc/FcNameUnparse.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcNameUnparse" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcNameUnparse" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcNameUnparse \- Convert a pattern back into a string that can be parsed .SH SYNOPSIS diff --git a/doc/FcNameUnregisterConstants.3 b/doc/FcNameUnregisterConstants.3 index 654714d..7b6f477 100644 --- a/doc/FcNameUnregisterConstants.3 +++ b/doc/FcNameUnregisterConstants.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcNameUnregisterConstants" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcNameUnregisterConstants" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcNameUnregisterConstants \- Unregister symbolic constants .SH SYNOPSIS diff --git a/doc/FcNameUnregisterObjectTypes.3 b/doc/FcNameUnregisterObjectTypes.3 index adef4dd..33507dc 100644 --- a/doc/FcNameUnregisterObjectTypes.3 +++ b/doc/FcNameUnregisterObjectTypes.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcNameUnregisterObjectTypes" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcNameUnregisterObjectTypes" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcNameUnregisterObjectTypes \- Unregister object types .SH SYNOPSIS diff --git a/doc/FcObjectSetAdd.3 b/doc/FcObjectSetAdd.3 index 2ba055e..a10976f 100644 --- a/doc/FcObjectSetAdd.3 +++ b/doc/FcObjectSetAdd.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcObjectSetAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcObjectSetAdd" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcObjectSetAdd \- Add to an object set .SH SYNOPSIS diff --git a/doc/FcObjectSetBuild.3 b/doc/FcObjectSetBuild.3 index 184372d..b25ab5e 100644 --- a/doc/FcObjectSetBuild.3 +++ b/doc/FcObjectSetBuild.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcObjectSetBuild" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcObjectSetBuild" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcObjectSetBuild, FcObjectSetVaBuild, FcObjectSetVapBuild \- Build object set from args .SH SYNOPSIS diff --git a/doc/FcObjectSetCreate.3 b/doc/FcObjectSetCreate.3 index dee5739..847ba67 100644 --- a/doc/FcObjectSetCreate.3 +++ b/doc/FcObjectSetCreate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcObjectSetCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcObjectSetCreate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcObjectSetCreate \- Create an object set .SH SYNOPSIS diff --git a/doc/FcObjectSetDestroy.3 b/doc/FcObjectSetDestroy.3 index b9a91aa..0b587d9 100644 --- a/doc/FcObjectSetDestroy.3 +++ b/doc/FcObjectSetDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcObjectSetDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcObjectSetDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcObjectSetDestroy \- Destroy an object set .SH SYNOPSIS diff --git a/doc/FcPatternAdd-Type.3 b/doc/FcPatternAdd-Type.3 index a4e4935..90400f2 100644 --- a/doc/FcPatternAdd-Type.3 +++ b/doc/FcPatternAdd-Type.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternAdd-Type" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternAdd-Type" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternAddInteger, FcPatternAddDouble, FcPatternAddString, FcPatternAddMatrix, FcPatternAddCharSet, FcPatternAddBool, FcPatternAddFTFace, FcPatternAddLangSet, FcPatternAddRange \- Add a typed value to a pattern .SH SYNOPSIS diff --git a/doc/FcPatternAdd.3 b/doc/FcPatternAdd.3 index d0a6b70..9e3f374 100644 --- a/doc/FcPatternAdd.3 +++ b/doc/FcPatternAdd.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternAdd" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternAdd \- Add a value to a pattern .SH SYNOPSIS diff --git a/doc/FcPatternAddWeak.3 b/doc/FcPatternAddWeak.3 index 9e8bc42..0aaa05b 100644 --- a/doc/FcPatternAddWeak.3 +++ b/doc/FcPatternAddWeak.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternAddWeak" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternAddWeak" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternAddWeak \- Add a value to a pattern with weak binding .SH SYNOPSIS diff --git a/doc/FcPatternBuild.3 b/doc/FcPatternBuild.3 index 4a5abc9..c8c5a98 100644 --- a/doc/FcPatternBuild.3 +++ b/doc/FcPatternBuild.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternBuild" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternBuild" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternBuild, FcPatternVaBuild, FcPatternVapBuild \- Create patterns from arguments .SH SYNOPSIS diff --git a/doc/FcPatternCreate.3 b/doc/FcPatternCreate.3 index ad3d6f6..7cd8f91 100644 --- a/doc/FcPatternCreate.3 +++ b/doc/FcPatternCreate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternCreate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternCreate \- Create a pattern .SH SYNOPSIS diff --git a/doc/FcPatternDel.3 b/doc/FcPatternDel.3 index 5934dd8..f04c366 100644 --- a/doc/FcPatternDel.3 +++ b/doc/FcPatternDel.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternDel" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternDel" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternDel \- Delete a property from a pattern .SH SYNOPSIS diff --git a/doc/FcPatternDestroy.3 b/doc/FcPatternDestroy.3 index 525c6c5..d613711 100644 --- a/doc/FcPatternDestroy.3 +++ b/doc/FcPatternDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternDestroy \- Destroy a pattern .SH SYNOPSIS diff --git a/doc/FcPatternDuplicate.3 b/doc/FcPatternDuplicate.3 index b9d61ab..3510479 100644 --- a/doc/FcPatternDuplicate.3 +++ b/doc/FcPatternDuplicate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternDuplicate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternDuplicate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternDuplicate \- Copy a pattern .SH SYNOPSIS diff --git a/doc/FcPatternEqual.3 b/doc/FcPatternEqual.3 index 5cb658b..21bfc43 100644 --- a/doc/FcPatternEqual.3 +++ b/doc/FcPatternEqual.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternEqual" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternEqual \- Compare patterns .SH SYNOPSIS diff --git a/doc/FcPatternEqualSubset.3 b/doc/FcPatternEqualSubset.3 index ef68066..f2ecfea 100644 --- a/doc/FcPatternEqualSubset.3 +++ b/doc/FcPatternEqualSubset.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternEqualSubset" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternEqualSubset" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternEqualSubset \- Compare portions of patterns .SH SYNOPSIS diff --git a/doc/FcPatternFilter.3 b/doc/FcPatternFilter.3 index 5bdd593..dc5d31a 100644 --- a/doc/FcPatternFilter.3 +++ b/doc/FcPatternFilter.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternFilter" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternFilter" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternFilter \- Filter the objects of pattern .SH SYNOPSIS diff --git a/doc/FcPatternFormat.3 b/doc/FcPatternFormat.3 index 7040191..61565ad 100644 --- a/doc/FcPatternFormat.3 +++ b/doc/FcPatternFormat.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternFormat" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternFormat" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternFormat \- Format a pattern into a string according to a format specifier .SH SYNOPSIS diff --git a/doc/FcPatternGet-Type.3 b/doc/FcPatternGet-Type.3 index d23a3ae..2a880f6 100644 --- a/doc/FcPatternGet-Type.3 +++ b/doc/FcPatternGet-Type.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternGet-Type" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternGet-Type" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternGetInteger, FcPatternGetDouble, FcPatternGetString, FcPatternGetMatrix, FcPatternGetCharSet, FcPatternGetBool, FcPatternGetFTFace, FcPatternGetLangSet, FcPatternGetRange \- Return a typed value from a pattern .SH SYNOPSIS diff --git a/doc/FcPatternGet.3 b/doc/FcPatternGet.3 index 4cd50ac..8a15ac1 100644 --- a/doc/FcPatternGet.3 +++ b/doc/FcPatternGet.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternGet" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternGet" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternGet \- Return a value from a pattern .SH SYNOPSIS diff --git a/doc/FcPatternHash.3 b/doc/FcPatternHash.3 index 24da813..0022da7 100644 --- a/doc/FcPatternHash.3 +++ b/doc/FcPatternHash.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternHash" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternHash" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternHash \- Compute a pattern hash value .SH SYNOPSIS diff --git a/doc/FcPatternPrint.3 b/doc/FcPatternPrint.3 index 3d0c624..7914c8f 100644 --- a/doc/FcPatternPrint.3 +++ b/doc/FcPatternPrint.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternPrint" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternPrint" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternPrint \- Print a pattern for debugging .SH SYNOPSIS diff --git a/doc/FcPatternReference.3 b/doc/FcPatternReference.3 index 036df2b..0aea9c1 100644 --- a/doc/FcPatternReference.3 +++ b/doc/FcPatternReference.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternReference" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternReference" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternReference \- Increment pattern reference count .SH SYNOPSIS diff --git a/doc/FcPatternRemove.3 b/doc/FcPatternRemove.3 index 50007e9..e4c8e91 100644 --- a/doc/FcPatternRemove.3 +++ b/doc/FcPatternRemove.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcPatternRemove" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcPatternRemove" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcPatternRemove \- Remove one object of the specified type from the pattern .SH SYNOPSIS diff --git a/doc/FcRangeCopy.3 b/doc/FcRangeCopy.3 index 7b6acc1..2517f44 100644 --- a/doc/FcRangeCopy.3 +++ b/doc/FcRangeCopy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcRangeCopy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcRangeCopy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcRangeCopy \- Copy a range object .SH SYNOPSIS diff --git a/doc/FcRangeCreateDouble.3 b/doc/FcRangeCreateDouble.3 index 554f756..f8e8bb5 100644 --- a/doc/FcRangeCreateDouble.3 +++ b/doc/FcRangeCreateDouble.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcRangeCreateDouble" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcRangeCreateDouble" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcRangeCreateDouble \- create a range object for double .SH SYNOPSIS diff --git a/doc/FcRangeCreateInteger.3 b/doc/FcRangeCreateInteger.3 index 8ab4f60..469987c 100644 --- a/doc/FcRangeCreateInteger.3 +++ b/doc/FcRangeCreateInteger.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcRangeCreateInteger" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcRangeCreateInteger" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcRangeCreateInteger \- create a range object for integer .SH SYNOPSIS diff --git a/doc/FcRangeDestroy.3 b/doc/FcRangeDestroy.3 index 201de2a..bfadeb3 100644 --- a/doc/FcRangeDestroy.3 +++ b/doc/FcRangeDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcRangeDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcRangeDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcRangeDestroy \- destroy a range object .SH SYNOPSIS diff --git a/doc/FcRangeGetDouble.3 b/doc/FcRangeGetDouble.3 index a39d55f..4aeb55b 100644 --- a/doc/FcRangeGetDouble.3 +++ b/doc/FcRangeGetDouble.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcRangeGetDouble" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcRangeGetDouble" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcRangeGetDouble \- Get the range in double .SH SYNOPSIS diff --git a/doc/FcStrBasename.3 b/doc/FcStrBasename.3 index 81f8ccb..93b078d 100644 --- a/doc/FcStrBasename.3 +++ b/doc/FcStrBasename.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrBasename" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrBasename" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrBasename \- last component of filename .SH SYNOPSIS diff --git a/doc/FcStrCmp.3 b/doc/FcStrCmp.3 index 82f4b13..6885903 100644 --- a/doc/FcStrCmp.3 +++ b/doc/FcStrCmp.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrCmp" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrCmp" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrCmp \- compare UTF-8 strings .SH SYNOPSIS diff --git a/doc/FcStrCmpIgnoreCase.3 b/doc/FcStrCmpIgnoreCase.3 index 9800fd2..e5a3372 100644 --- a/doc/FcStrCmpIgnoreCase.3 +++ b/doc/FcStrCmpIgnoreCase.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrCmpIgnoreCase" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrCmpIgnoreCase" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrCmpIgnoreCase \- compare UTF-8 strings ignoring case .SH SYNOPSIS diff --git a/doc/FcStrCopy.3 b/doc/FcStrCopy.3 index e1aa71f..d7eccb7 100644 --- a/doc/FcStrCopy.3 +++ b/doc/FcStrCopy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrCopy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrCopy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrCopy \- duplicate a string .SH SYNOPSIS diff --git a/doc/FcStrCopyFilename.3 b/doc/FcStrCopyFilename.3 index c88b411..0d193f0 100644 --- a/doc/FcStrCopyFilename.3 +++ b/doc/FcStrCopyFilename.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrCopyFilename" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrCopyFilename" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrCopyFilename \- create a complete path from a filename .SH SYNOPSIS diff --git a/doc/FcStrDirname.3 b/doc/FcStrDirname.3 index 9d03920..1a30378 100644 --- a/doc/FcStrDirname.3 +++ b/doc/FcStrDirname.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrDirname" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrDirname" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrDirname \- directory part of filename .SH SYNOPSIS diff --git a/doc/FcStrDowncase.3 b/doc/FcStrDowncase.3 index 7db42c9..2c4636e 100644 --- a/doc/FcStrDowncase.3 +++ b/doc/FcStrDowncase.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrDowncase" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrDowncase" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrDowncase \- create a lower case translation of a string .SH SYNOPSIS diff --git a/doc/FcStrFree.3 b/doc/FcStrFree.3 index 8a02e58..99d9ba3 100644 --- a/doc/FcStrFree.3 +++ b/doc/FcStrFree.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrFree" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrFree" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrFree \- free a string .SH SYNOPSIS diff --git a/doc/FcStrListCreate.3 b/doc/FcStrListCreate.3 index de4a25a..5d2dae7 100644 --- a/doc/FcStrListCreate.3 +++ b/doc/FcStrListCreate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrListCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrListCreate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrListCreate \- create a string iterator .SH SYNOPSIS diff --git a/doc/FcStrListDone.3 b/doc/FcStrListDone.3 index ebcebf0..12cd13e 100644 --- a/doc/FcStrListDone.3 +++ b/doc/FcStrListDone.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrListDone" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrListDone" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrListDone \- destroy a string iterator .SH SYNOPSIS diff --git a/doc/FcStrListFirst.3 b/doc/FcStrListFirst.3 index 78b7567..80fa20f 100644 --- a/doc/FcStrListFirst.3 +++ b/doc/FcStrListFirst.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrListFirst" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrListFirst" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrListFirst \- get first string in iteration .SH SYNOPSIS diff --git a/doc/FcStrListNext.3 b/doc/FcStrListNext.3 index bd69ae4..e9ce489 100644 --- a/doc/FcStrListNext.3 +++ b/doc/FcStrListNext.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrListNext" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrListNext" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrListNext \- get next string in iteration .SH SYNOPSIS diff --git a/doc/FcStrPlus.3 b/doc/FcStrPlus.3 index e499ba6..38d1dd7 100644 --- a/doc/FcStrPlus.3 +++ b/doc/FcStrPlus.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrPlus" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrPlus" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrPlus \- concatenate two strings .SH SYNOPSIS diff --git a/doc/FcStrSetAdd.3 b/doc/FcStrSetAdd.3 index ff4ccff..95f9775 100644 --- a/doc/FcStrSetAdd.3 +++ b/doc/FcStrSetAdd.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrSetAdd" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrSetAdd" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrSetAdd \- add to a string set .SH SYNOPSIS diff --git a/doc/FcStrSetAddFilename.3 b/doc/FcStrSetAddFilename.3 index eb2d874..9277014 100644 --- a/doc/FcStrSetAddFilename.3 +++ b/doc/FcStrSetAddFilename.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrSetAddFilename" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrSetAddFilename" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrSetAddFilename \- add a filename to a string set .SH SYNOPSIS diff --git a/doc/FcStrSetCreate.3 b/doc/FcStrSetCreate.3 index a88e328..f4172f6 100644 --- a/doc/FcStrSetCreate.3 +++ b/doc/FcStrSetCreate.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrSetCreate" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrSetCreate" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrSetCreate \- create a string set .SH SYNOPSIS diff --git a/doc/FcStrSetDel.3 b/doc/FcStrSetDel.3 index 8480f4d..b0e192d 100644 --- a/doc/FcStrSetDel.3 +++ b/doc/FcStrSetDel.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrSetDel" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrSetDel" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrSetDel \- delete from a string set .SH SYNOPSIS diff --git a/doc/FcStrSetDestroy.3 b/doc/FcStrSetDestroy.3 index ccc6240..5751152 100644 --- a/doc/FcStrSetDestroy.3 +++ b/doc/FcStrSetDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrSetDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrSetDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrSetDestroy \- destroy a string set .SH SYNOPSIS diff --git a/doc/FcStrSetEqual.3 b/doc/FcStrSetEqual.3 index 0ff0960..7cbbf81 100644 --- a/doc/FcStrSetEqual.3 +++ b/doc/FcStrSetEqual.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrSetEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrSetEqual" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrSetEqual \- check sets for equality .SH SYNOPSIS diff --git a/doc/FcStrSetMember.3 b/doc/FcStrSetMember.3 index 7b46579..8e39272 100644 --- a/doc/FcStrSetMember.3 +++ b/doc/FcStrSetMember.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrSetMember" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrSetMember" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrSetMember \- check set for membership .SH SYNOPSIS diff --git a/doc/FcStrStr.3 b/doc/FcStrStr.3 index 2c8de6c..e808b3f 100644 --- a/doc/FcStrStr.3 +++ b/doc/FcStrStr.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrStr" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrStr" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrStr \- locate UTF-8 substring .SH SYNOPSIS diff --git a/doc/FcStrStrIgnoreCase.3 b/doc/FcStrStrIgnoreCase.3 index 1e252cd..78d0442 100644 --- a/doc/FcStrStrIgnoreCase.3 +++ b/doc/FcStrStrIgnoreCase.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcStrStrIgnoreCase" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcStrStrIgnoreCase" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcStrStrIgnoreCase \- locate UTF-8 substring ignoring ASCII case .SH SYNOPSIS diff --git a/doc/FcToLower.3 b/doc/FcToLower.3 index b67a656..8ee62fb 100644 --- a/doc/FcToLower.3 +++ b/doc/FcToLower.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcToLower" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcToLower" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcToLower \- convert upper case ASCII to lower case .SH SYNOPSIS diff --git a/doc/FcUcs4ToUtf8.3 b/doc/FcUcs4ToUtf8.3 index 7431381..94533ff 100644 --- a/doc/FcUcs4ToUtf8.3 +++ b/doc/FcUcs4ToUtf8.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcUcs4ToUtf8" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcUcs4ToUtf8" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcUcs4ToUtf8 \- convert UCS4 to UTF-8 .SH SYNOPSIS diff --git a/doc/FcUtf16Len.3 b/doc/FcUtf16Len.3 index c5e2cc0..3591d30 100644 --- a/doc/FcUtf16Len.3 +++ b/doc/FcUtf16Len.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcUtf16Len" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcUtf16Len" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcUtf16Len \- count UTF-16 encoded chars .SH SYNOPSIS diff --git a/doc/FcUtf16ToUcs4.3 b/doc/FcUtf16ToUcs4.3 index 87814ab..5899a0c 100644 --- a/doc/FcUtf16ToUcs4.3 +++ b/doc/FcUtf16ToUcs4.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcUtf16ToUcs4" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcUtf16ToUcs4" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcUtf16ToUcs4 \- convert UTF-16 to UCS4 .SH SYNOPSIS diff --git a/doc/FcUtf8Len.3 b/doc/FcUtf8Len.3 index 6d9d348..4f46fdb 100644 --- a/doc/FcUtf8Len.3 +++ b/doc/FcUtf8Len.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcUtf8Len" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcUtf8Len" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcUtf8Len \- count UTF-8 encoded chars .SH SYNOPSIS diff --git a/doc/FcUtf8ToUcs4.3 b/doc/FcUtf8ToUcs4.3 index 488c1b6..6d07b7f 100644 --- a/doc/FcUtf8ToUcs4.3 +++ b/doc/FcUtf8ToUcs4.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcUtf8ToUcs4" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcUtf8ToUcs4" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcUtf8ToUcs4 \- convert UTF-8 to UCS4 .SH SYNOPSIS diff --git a/doc/FcValueDestroy.3 b/doc/FcValueDestroy.3 index 6310cf6..01d21b8 100644 --- a/doc/FcValueDestroy.3 +++ b/doc/FcValueDestroy.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcValueDestroy" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcValueDestroy" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcValueDestroy \- Free a value .SH SYNOPSIS diff --git a/doc/FcValueEqual.3 b/doc/FcValueEqual.3 index ccdfa4c..9375cdf 100644 --- a/doc/FcValueEqual.3 +++ b/doc/FcValueEqual.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcValueEqual" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcValueEqual" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcValueEqual \- Test two values for equality .SH SYNOPSIS diff --git a/doc/FcValuePrint.3 b/doc/FcValuePrint.3 index 9f67ec1..851d06d 100644 --- a/doc/FcValuePrint.3 +++ b/doc/FcValuePrint.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcValuePrint" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcValuePrint" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcValuePrint \- Print a value to stdout .SH SYNOPSIS diff --git a/doc/FcValueSave.3 b/doc/FcValueSave.3 index 58b15b2..b98e3f9 100644 --- a/doc/FcValueSave.3 +++ b/doc/FcValueSave.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcValueSave" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcValueSave" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcValueSave \- Copy a value .SH SYNOPSIS diff --git a/doc/FcWeightFromOpenType.3 b/doc/FcWeightFromOpenType.3 index 371e261..744c66f 100644 --- a/doc/FcWeightFromOpenType.3 +++ b/doc/FcWeightFromOpenType.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcWeightFromOpenType" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcWeightFromOpenType" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcWeightFromOpenType \- Convert from OpenType weight values to fontconfig ones .SH SYNOPSIS diff --git a/doc/FcWeightToOpenType.3 b/doc/FcWeightToOpenType.3 index 9477594..c35a602 100644 --- a/doc/FcWeightToOpenType.3 +++ b/doc/FcWeightToOpenType.3 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FcWeightToOpenType" "3" "09 3月 2015" "Fontconfig 2.11.93" "" +.TH "FcWeightToOpenType" "3" "05 8月 2016" "Fontconfig 2.12.1" "" .SH NAME FcWeightToOpenType \- Convert from fontconfig weight values to OpenType ones .SH SYNOPSIS diff --git a/doc/Makefile.in b/doc/Makefile.in index 1f38d78..716a726 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -40,7 +40,17 @@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -116,9 +126,6 @@ noinst_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) @USEDOCBOOK_TRUE@am__append_3 = $(HTML_DIR)/* @USEDOCBOOK_FALSE@am__append_4 = $(srcdir)/$(HTML_DIR)/* subdir = doc -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/version.sgml.in $(top_srcdir)/depcomp \ - $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -129,6 +136,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = version.sgml @@ -415,6 +423,8 @@ TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.sgml.in \ + $(top_srcdir)/depcomp $(top_srcdir)/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -482,6 +492,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -504,6 +515,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -726,7 +738,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1001,7 +1012,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ - else \ + elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ @@ -1304,6 +1315,8 @@ uninstall-man: uninstall-man3 uninstall-man5 uninstall-htmldocDATA uninstall-man uninstall-man3 \ uninstall-man5 +.PRECIOUS: Makefile + @USEDOCBOOK_TRUE@.fncs.sgml: @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs index af328fc..a2ce5c8 100644 --- a/doc/fcconfig.fncs +++ b/doc/fcconfig.fncs @@ -232,7 +232,7 @@ the current configuration is used. @DESC@ Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. Returns FcFalse -if the fonts cannot be added (due to allocation failure or no fonts found). +if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. @@ diff --git a/doc/fcconfig.sgml b/doc/fcconfig.sgml index 448c501..d1f771e 100644 --- a/doc/fcconfig.sgml +++ b/doc/fcconfig.sgml @@ -1048,7 +1048,7 @@ the current configuration is used. Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. Returns FcFalse -if the fonts cannot be added (due to allocation failure or no fonts found). +if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If config is NULL, the current configuration is used. diff --git a/doc/fontconfig-devel.pdf b/doc/fontconfig-devel.pdf index 79de82c184b409f501b59a0d37ae809a68506789..4603d10d3bcb72bacdbbc3bd462e5348ef15de35 100644 GIT binary patch delta 261795 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 z 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≧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≻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 VI7c1@C3z(B43DHF+CZDpixel - conversions + conversions (deprecated) + symbol FC_SYMBOL Bool Whether font uses MS symbol-font encoding color FC_COLOR Bool Whether any glyphs have color dpi FC_DPI Double Target dots per inch rgba FC_RGBA Int unknown, rgb, bgr, vrgb, diff --git a/doc/fontconfig-devel.txt b/doc/fontconfig-devel.txt index 7150dfe..9a715c2 100644 --- a/doc/fontconfig-devel.txt +++ b/doc/fontconfig-devel.txt @@ -1,4 +1,4 @@ -Fontconfig Developers Reference, Version 2.11.93 +Fontconfig Developers Reference, Version 2.12.1 Copyright © 2002 Keith Packard @@ -149,7 +149,10 @@ Type scaled scale FC_SCALE Double Scale factor for point ->pixel - conversions + conversions (deprecate +d) + symbol FC_SYMBOL Bool Whether font uses MS s +ymbol-font encoding color FC_COLOR Bool Whether any glyphs hav e color dpi FC_DPI Double Target dots per inch @@ -3212,9 +3215,9 @@ Description Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. Returns FcFalse if - the fonts cannot be added (due to allocation failure or no - fonts found). Otherwise returns FcTrue. If config is NULL, the - current configuration is used. + the fonts cannot be added (due to allocation failure). + Otherwise returns FcTrue. If config is NULL, the current + configuration is used. FcConfigAppFontClear diff --git a/doc/fontconfig-devel/fcconfigappfontadddir.html b/doc/fontconfig-devel/fcconfigappfontadddir.html index 071d312..b63bd1e 100644 --- a/doc/fontconfig-devel/fcconfigappfontadddir.html +++ b/doc/fontconfig-devel/fcconfigappfontadddir.html @@ -141,7 +141,7 @@ NAME="AEN3131" >

Scans the specified directory for fonts, adding each one found to the application-specific set of fonts. Returns FcFalse -if the fonts cannot be added (due to allocation failure or no fonts found). +if the fonts cannot be added (due to allocation failure). Otherwise returns FcTrue. If Fontconfig Developers Reference, Version 2.11.93 +>Fontconfig Developers Reference, Version 2.12.1 Fontconfig Developers Reference, Version 2.11.93Fontconfig Developers Reference, Version 2.12.1<version> is the font configureation file -version number (currently 3). +> is the font configuration file +version number (currently 5).

FC_DBG_MATCH_FILTER +is used to filter out the patterns. this takes a comma-separated list of object names and effects only when FC_DEBUG has MATCH2. see Debugging Applications section for more details. +

FONTCONFIG_USE_MMAP is used to control the use of mmap(2) for the cache files if available. this take a boolean value. fontconfig will checks if the cache files are stored on the filesystem that is safe to use mmap(2). explicitly setting this environment variable will causes skipping this check and enforce to use or not use mmap(2) anyway. @@ -1523,7 +1533,7 @@ is used to control the use of mmap(2) for the cache files if available. this tak >

See Also

Version

Fontconfig version 2.11.93 +>Fontconfig version 2.12.1

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 conversions + scale Double Scale factor for point->pixel conversions (deprecated) dpi Double Target dots per inch rgba Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry @@ -258,7 +258,7 @@ debugging messages. MEMORY 512 Monitor fontconfig memory usage CONFIG 1024 Monitor which config files are loaded LANGSET 2048 Dump char sets used to construct lang values - OBJTYPES 4096 Display message when value typechecks fail + MATCH2 4096 Display font-matching transformation in patterns Add the value of the desired debug levels together and assign that (in @@ -322,8 +322,8 @@ will be used to store the cache files. If it starts with '~', it refers to a directory in the users home directory. If 'prefix' is set to "xdg", the value in the XDG_CACHE_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. The default directory is ``$XDG_CACHE_HOME/fontconfig'' and it contains the cache files named ``<hash value>-<architecture>.cache-<version>'', -where <version> is the font configureation file -version number (currently 3). +where <version> is the font configuration file +version number (currently 5). <literal><include ignore_missing="no" prefix="default"></literal> This element contains the name of an additional configuration file or @@ -787,6 +787,10 @@ is used to override the default configuration directory. is used to output the detailed debugging messages. see Debugging Applications section for more details. +FC_DBG_MATCH_FILTER +is used to filter out the patterns. this takes a comma-separated list of object names and effects only when FC_DEBUG has MATCH2. see Debugging Applications section for more details. + + FONTCONFIG_USE_MMAP is used to control the use of mmap(2) for the cache files if available. this take a boolean value. fontconfig will checks if the cache files are stored on the filesystem that is safe to use mmap(2). explicitly setting this environment variable will causes skipping this check and enforce to use or not use mmap(2) anyway. diff --git a/doc/fontconfig-user.txt b/doc/fontconfig-user.txt index f18c083..d3e294f 100644 --- a/doc/fontconfig-user.txt +++ b/doc/fontconfig-user.txt @@ -93,7 +93,8 @@ l outline Bool Whether the glyphs are outlines scalable Bool Whether glyphs can be scaled color Bool Whether any glyphs have color - scale Double Scale factor for point->pixel conversions + scale Double Scale factor for point->pixel conversions (dep +recated) dpi Double Target dots per inch rgba Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry @@ -231,7 +232,7 @@ Debugging Applications MEMORY 512 Monitor fontconfig memory usage CONFIG 1024 Monitor which config files are loaded LANGSET 2048 Dump char sets used to construct lang values - OBJTYPES 4096 Display message when value typechecks fail + MATCH2 4096 Display font-matching transformation in patterns Add the value of the desired debug levels together and assign that (in base 10) to the FC_DEBUG environment variable before @@ -306,8 +307,8 @@ Configuration File Format Specification for more details. The default directory is ``$XDG_CACHE_HOME/fontconfig'' and it contains the cache files named ``-.cache-'', where - is the font configureation file version number - (currently 3). + is the font configuration file version number + (currently 5). @@ -811,6 +812,11 @@ Environment variables FC_DEBUG is used to output the detailed debugging messages. see Debugging Applications section for more details. + FC_DBG_MATCH_FILTER is used to filter out the patterns. this + takes a comma-separated list of object names and effects only + when FC_DEBUG has MATCH2. see Debugging Applications section + for more details. + FONTCONFIG_USE_MMAP is used to control the use of mmap(2) for the cache files if available. this take a boolean value. fontconfig will checks if the cache files are stored on the @@ -824,4 +830,4 @@ See Also Version - Fontconfig version 2.11.93 + Fontconfig version 2.12.1 diff --git a/doc/fonts-conf.5 b/doc/fonts-conf.5 index a799049..197b70c 100644 --- a/doc/fonts-conf.5 +++ b/doc/fonts-conf.5 @@ -1,5 +1,5 @@ .\" auto-generated by docbook2man-spec from docbook-utils package -.TH "FONTS-CONF" "5" "09 3月 2015" "" "" +.TH "FONTS-CONF" "5" "05 8月 2016" "" "" .SH NAME fonts.conf \- Font configuration files .SH SYNOPSIS @@ -85,7 +85,7 @@ convenience for the applications' rendering mechanism. outline Bool Whether the glyphs are outlines scalable Bool Whether glyphs can be scaled color Bool Whether any glyphs have color - scale Double Scale factor for point->pixel conversions + scale Double Scale factor for point->pixel conversions (deprecated) dpi Double Target dots per inch rgba Int unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry @@ -222,7 +222,7 @@ debugging messages. MEMORY 512 Monitor fontconfig memory usage CONFIG 1024 Monitor which config files are loaded LANGSET 2048 Dump char sets used to construct lang values - OBJTYPES 4096 Display message when value typechecks fail + MATCH2 4096 Display font-matching transformation in patterns .sp .fi @@ -287,8 +287,8 @@ will be used to store the cache files. If it starts with '~', it refers to a directory in the users home directory. If 'prefix' is set to "xdg", the value in the XDG_CACHE_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. The default directory is ``$XDG_CACHE_HOME/fontconfig'' and it contains the cache files named ``-\&.cache-\&'', -where is the font configureation file -version number (currently 3). +where is the font configuration file +version number (currently 5). .SS "" .PP This element contains the name of an additional configuration file or @@ -741,6 +741,9 @@ is used to override the default configuration directory. \fBFC_DEBUG\fR is used to output the detailed debugging messages. see Debugging Applications section for more details. .PP +\fBFC_DBG_MATCH_FILTER\fR +is used to filter out the patterns. this takes a comma-separated list of object names and effects only when FC_DEBUG has MATCH2. see Debugging Applications section for more details. +.PP \fBFONTCONFIG_USE_MMAP\fR is used to control the use of mmap(2) for the cache files if available. this take a boolean value. fontconfig will checks if the cache files are stored on the filesystem that is safe to use mmap(2). explicitly setting this environment variable will causes skipping this check and enforce to use or not use mmap(2) anyway. .SH "SEE ALSO" @@ -748,4 +751,4 @@ is used to control the use of mmap(2) for the cache files if available. this tak fc-cat(1), fc-cache(1), fc-list(1), fc-match(1), fc-query(1) .SH "VERSION" .PP -Fontconfig version 2.11.93 +Fontconfig version 2.12.1 diff --git a/fc-blanks/Makefile.am b/fc-blanks/Makefile.am index e9de1fe..2b2075f 100644 --- a/fc-blanks/Makefile.am +++ b/fc-blanks/Makefile.am @@ -28,8 +28,13 @@ noinst_SCRIPTS = $(BLANKSPY) noinst_HEADERS = $(BLANKS_H) $(BLANKS_H): $(TMPL) $(BLANKSPY) +if HAVE_PYTHON $(AM_V_GEN) $(PYTHON) $(srcdir)/$(BLANKSPY) < $< > $(BLANKS_H).tmp && \ mv $(BLANKS_H).tmp $(BLANKS_H) || ($(RM) $(BLANKS_H).tmp && false) +else + @echo "No python installed. please install python to build $(BLANKS_H)." + @false +endif EXTRA_DIST = \ $(BLANKSPY) \ diff --git a/fc-blanks/Makefile.in b/fc-blanks/Makefile.in index 52b860b..1b75bdc 100644 --- a/fc-blanks/Makefile.in +++ b/fc-blanks/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -102,8 +112,6 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = fc-blanks -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -114,6 +122,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -158,6 +168,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -225,6 +236,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -247,6 +259,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -353,7 +366,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-blanks/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-blanks/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -576,10 +588,14 @@ uninstall-am: mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + $(BLANKS_H): $(TMPL) $(BLANKSPY) - $(AM_V_GEN) $(PYTHON) $(srcdir)/$(BLANKSPY) < $< > $(BLANKS_H).tmp && \ - mv $(BLANKS_H).tmp $(BLANKS_H) || ($(RM) $(BLANKS_H).tmp && false) +@HAVE_PYTHON_TRUE@ $(AM_V_GEN) $(PYTHON) $(srcdir)/$(BLANKSPY) < $< > $(BLANKS_H).tmp && \ +@HAVE_PYTHON_TRUE@ mv $(BLANKS_H).tmp $(BLANKS_H) || ($(RM) $(BLANKS_H).tmp && false) +@HAVE_PYTHON_FALSE@ @echo "No python installed. please install python to build $(BLANKS_H)." +@HAVE_PYTHON_FALSE@ @false -include $(top_srcdir)/git.mk diff --git a/fc-blanks/fc-blanks.py b/fc-blanks/fc-blanks.py index a2f0b95..cc23cde 100755 --- a/fc-blanks/fc-blanks.py +++ b/fc-blanks/fc-blanks.py @@ -1,12 +1,36 @@ #! /usr/bin/python -import urllib2 +from __future__ import absolute_import +from __future__ import print_function +try: + from urllib2 import urlopen + from urllib2 import URLError +except ImportError: + from urllib.request import urlopen + from urllib.error import URLError + import sys +import os from lxml import html +from six.moves import range -fp = urllib2.urlopen('http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[%3AGC%3DZs%3A][%3ADI%3A]&abb=on&ucd=on&esc=on&g') -data = fp.read() -fp.close() +datafile = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'list-unicodeset.html') +try: + fp = urlopen('http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[%3AGC%3DZs%3A][%3ADI%3A]&abb=on&ucd=on&esc=on&g') + data = fp.read() + fp.close() + fp = open(datafile, 'wb'); + fp.write(data); + fp.close(); +except URLError: + # fall back reading the static data in repo + try: + fp = open(datafile) + data = fp.read() + fp.close() + except IOError: + sys.stderr.write("Error: No static data to generate the blank data. please make sure the network connection is reachable to Unicode.org\n") + sys.exit(1) dom = html.fromstring(data) x = dom.xpath('/html/body/form/p/text()') @@ -47,12 +71,12 @@ for i in p: fescape = False elif i >= '0' and i <= '9' or i.lower() >= 'a' and i.lower() <= 'f': if fescape == True: - raise RuntimeError, "Unexpected escape code" + raise RuntimeError("Unexpected escape code") if funicode == True: v <<= 4 v += int(i, 16) else: - raise RuntimeError, "Unable to parse Unicode" + raise RuntimeError("Unable to parse Unicode") elif i == ' ': if fescape == True: funicode = True @@ -71,13 +95,13 @@ for i in p: frange = False elif i == '-': if fescape == True: - raise RuntimeError, "Unexpected escape code" + raise RuntimeError("Unexpected escape code") vbegin = v v = 0 funicode = False frange = True else: - raise RuntimeError, "Unable to parse Unicode: %s" % i + raise RuntimeError("Unable to parse Unicode: %s" % i) if fprocess == True: vbegin = 0 @@ -111,22 +135,22 @@ while True: s = sys.stdin.readline().rstrip() if s == "@@@": break - print s + print(s) -print "static FcChar32 _fcBlanks[%s] = {" % (ncode + 1) +print("static FcChar32 _fcBlanks[%s] = {" % (ncode + 1)) k = 0 -for i in sorted(l, key=lambda(a): a[0]): +for i in sorted(l, key=lambda a: a[0]): for j in range(i[0], i[1] + 1): if k != 0: - print "," - print " 0x%04x" % j, + print(",") + print(" 0x%04x" % j, end=' ') k += 1 -print "};" -print ''' +print("};") +print(''' static FcBlanks fcBlanks = { %s, -1, _fcBlanks }; -''' % (ncode + 1) +''' % (ncode + 1)) diff --git a/fc-cache/Makefile.in b/fc-cache/Makefile.in index 598c91c..7865c0d 100644 --- a/fc-cache/Makefile.in +++ b/fc-cache/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -104,8 +114,6 @@ host_triplet = @host@ bin_PROGRAMS = fc-cache$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-cache -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -219,6 +228,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -286,6 +296,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -308,6 +319,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -411,7 +423,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-cache/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-cache/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -773,6 +784,8 @@ uninstall-man: uninstall-man1 uninstall-am uninstall-binPROGRAMS uninstall-local \ uninstall-man uninstall-man1 +.PRECIOUS: Makefile + @OS_WIN32_FALSE@install-data-local: @OS_WIN32_FALSE@ -$(mkinstalldirs) "$(DESTDIR)$(fc_cachedir)" diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c index 18cd6c5..0336073 100644 --- a/fc-cache/fc-cache.c +++ b/fc-cache/fc-cache.c @@ -122,7 +122,7 @@ usage (char *program, int error) static FcStrSet *processed_dirs; static int -scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, FcBool recursive, FcBool error_on_no_fonts, int *changed, FcStrSet *updateDirs) +scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, FcBool verbose, FcBool error_on_no_fonts, int *changed) { int ret = 0; const FcChar8 *dir; @@ -142,15 +142,13 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, { if (verbose) { - if (!recursive) - printf ("Re-scanning "); if (sysroot) printf ("[%s]", sysroot); printf ("%s: ", dir); fflush (stdout); } - if (recursive && FcStrSetMember (processed_dirs, dir)) + if (FcStrSetMember (processed_dirs, dir)) { if (verbose) printf ("skipping, looped directory detected\n"); @@ -194,13 +192,8 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, if (!cache) { - if (!recursive) - cache = FcDirCacheRescan (dir, config); - else - { - (*changed)++; - cache = FcDirCacheRead (dir, FcTrue, config); - } + (*changed)++; + cache = FcDirCacheRead (dir, FcTrue, config); if (!cache) { fprintf (stderr, "%s: error scanning\n", dir); @@ -229,37 +222,30 @@ scanDirs (FcStrList *list, FcConfig *config, FcBool force, FcBool really_force, } } - if (recursive) + subdirs = FcStrSetCreate (); + if (!subdirs) { - subdirs = FcStrSetCreate (); - if (!subdirs) - { - fprintf (stderr, "%s: Can't create subdir set\n", dir); - ret++; - FcDirCacheUnload (cache); - continue; - } - for (i = 0; i < FcCacheNumSubdir (cache); i++) - FcStrSetAdd (subdirs, FcCacheSubdir (cache, i)); - if (updateDirs && FcCacheNumSubdir (cache) > 0) - FcStrSetAdd (updateDirs, dir); - + fprintf (stderr, "%s: Can't create subdir set\n", dir); + ret++; FcDirCacheUnload (cache); + continue; + } + for (i = 0; i < FcCacheNumSubdir (cache); i++) + FcStrSetAdd (subdirs, FcCacheSubdir (cache, i)); - sublist = FcStrListCreate (subdirs); - FcStrSetDestroy (subdirs); - if (!sublist) - { - fprintf (stderr, "%s: Can't create subdir list\n", dir); - ret++; - continue; - } - FcStrSetAdd (processed_dirs, dir); - ret += scanDirs (sublist, config, force, really_force, verbose, recursive, error_on_no_fonts, changed, updateDirs); - FcStrListDone (sublist); + FcDirCacheUnload (cache); + + sublist = FcStrListCreate (subdirs); + FcStrSetDestroy (subdirs); + if (!sublist) + { + fprintf (stderr, "%s: Can't create subdir list\n", dir); + ret++; + continue; } - else - FcDirCacheUnload (cache); + FcStrSetAdd (processed_dirs, dir); + ret += scanDirs (sublist, config, force, really_force, verbose, error_on_no_fonts, changed); + FcStrListDone (sublist); } if (error_on_no_fonts && !was_processed) ret++; @@ -290,7 +276,7 @@ cleanCacheDirectories (FcConfig *config, FcBool verbose) int main (int argc, char **argv) { - FcStrSet *dirs, *updateDirs; + FcStrSet *dirs; FcStrList *list; FcBool verbose = FcFalse; FcBool force = FcFalse; @@ -393,18 +379,9 @@ main (int argc, char **argv) return 1; } - updateDirs = FcStrSetCreate (); changed = 0; - ret = scanDirs (list, config, force, really_force, verbose, FcTrue, error_on_no_fonts, &changed, updateDirs); - /* Update the directory cache again to avoid the race condition as much as possible */ + ret = scanDirs (list, config, force, really_force, verbose, error_on_no_fonts, &changed); FcStrListDone (list); - list = FcStrListCreate (updateDirs); - if (list) - { - ret += scanDirs (list, config, FcTrue, FcFalse, verbose, FcFalse, error_on_no_fonts, &changed, NULL); - FcStrListDone (list); - } - FcStrSetDestroy (updateDirs); /* * Try to create CACHEDIR.TAG anyway. diff --git a/fc-case/CaseFolding.txt b/fc-case/CaseFolding.txt index 13c10a6..372ee68 100644 --- a/fc-case/CaseFolding.txt +++ b/fc-case/CaseFolding.txt @@ -1,10 +1,11 @@ -# CaseFolding-7.0.0.txt -# Date: 2014-04-09, 20:00:56 GMT [MD] +# CaseFolding-9.0.0.txt +# Date: 2016-03-02, 18:54:54 GMT +# © 2016 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see http://www.unicode.org/terms_of_use.html # # Unicode Character Database -# Copyright (c) 1991-2014 Unicode, Inc. -# For terms of use, see http://www.unicode.org/terms_of_use.html -# For documentation, see http://www.unicode.org/reports/tr44/ +# For documentation, see http://www.unicode.org/reports/tr44/ # # Case Folding Properties # @@ -587,6 +588,21 @@ 10C5; C; 2D25; # GEORGIAN CAPITAL LETTER HOE 10C7; C; 2D27; # GEORGIAN CAPITAL LETTER YN 10CD; C; 2D2D; # GEORGIAN CAPITAL LETTER AEN +13F8; C; 13F0; # CHEROKEE SMALL LETTER YE +13F9; C; 13F1; # CHEROKEE SMALL LETTER YI +13FA; C; 13F2; # CHEROKEE SMALL LETTER YO +13FB; C; 13F3; # CHEROKEE SMALL LETTER YU +13FC; C; 13F4; # CHEROKEE SMALL LETTER YV +13FD; C; 13F5; # CHEROKEE SMALL LETTER MV +1C80; C; 0432; # CYRILLIC SMALL LETTER ROUNDED VE +1C81; C; 0434; # CYRILLIC SMALL LETTER LONG-LEGGED DE +1C82; C; 043E; # CYRILLIC SMALL LETTER NARROW O +1C83; C; 0441; # CYRILLIC SMALL LETTER WIDE ES +1C84; C; 0442; # CYRILLIC SMALL LETTER TALL TE +1C85; C; 0442; # CYRILLIC SMALL LETTER THREE-LEGGED TE +1C86; C; 044A; # CYRILLIC SMALL LETTER TALL HARD SIGN +1C87; C; 0463; # CYRILLIC SMALL LETTER TALL YAT +1C88; C; A64B; # CYRILLIC SMALL LETTER UNBLENDED UK 1E00; C; 1E01; # LATIN CAPITAL LETTER A WITH RING BELOW 1E02; C; 1E03; # LATIN CAPITAL LETTER B WITH DOT ABOVE 1E04; C; 1E05; # LATIN CAPITAL LETTER B WITH DOT BELOW @@ -1157,8 +1173,93 @@ A7AA; C; 0266; # LATIN CAPITAL LETTER H WITH HOOK A7AB; C; 025C; # LATIN CAPITAL LETTER REVERSED OPEN E A7AC; C; 0261; # LATIN CAPITAL LETTER SCRIPT G A7AD; C; 026C; # LATIN CAPITAL LETTER L WITH BELT +A7AE; C; 026A; # LATIN CAPITAL LETTER SMALL CAPITAL I A7B0; C; 029E; # LATIN CAPITAL LETTER TURNED K A7B1; C; 0287; # LATIN CAPITAL LETTER TURNED T +A7B2; C; 029D; # LATIN CAPITAL LETTER J WITH CROSSED-TAIL +A7B3; C; AB53; # LATIN CAPITAL LETTER CHI +A7B4; C; A7B5; # LATIN CAPITAL LETTER BETA +A7B6; C; A7B7; # LATIN CAPITAL LETTER OMEGA +AB70; C; 13A0; # CHEROKEE SMALL LETTER A +AB71; C; 13A1; # CHEROKEE SMALL LETTER E +AB72; C; 13A2; # CHEROKEE SMALL LETTER I +AB73; C; 13A3; # CHEROKEE SMALL LETTER O +AB74; C; 13A4; # CHEROKEE SMALL LETTER U +AB75; C; 13A5; # CHEROKEE SMALL LETTER V +AB76; C; 13A6; # CHEROKEE SMALL LETTER GA +AB77; C; 13A7; # CHEROKEE SMALL LETTER KA +AB78; C; 13A8; # CHEROKEE SMALL LETTER GE +AB79; C; 13A9; # CHEROKEE SMALL LETTER GI +AB7A; C; 13AA; # CHEROKEE SMALL LETTER GO +AB7B; C; 13AB; # CHEROKEE SMALL LETTER GU +AB7C; C; 13AC; # CHEROKEE SMALL LETTER GV +AB7D; C; 13AD; # CHEROKEE SMALL LETTER HA +AB7E; C; 13AE; # CHEROKEE SMALL LETTER HE +AB7F; C; 13AF; # CHEROKEE SMALL LETTER HI +AB80; C; 13B0; # CHEROKEE SMALL LETTER HO +AB81; C; 13B1; # CHEROKEE SMALL LETTER HU +AB82; C; 13B2; # CHEROKEE SMALL LETTER HV +AB83; C; 13B3; # CHEROKEE SMALL LETTER LA +AB84; C; 13B4; # CHEROKEE SMALL LETTER LE +AB85; C; 13B5; # CHEROKEE SMALL LETTER LI +AB86; C; 13B6; # CHEROKEE SMALL LETTER LO +AB87; C; 13B7; # CHEROKEE SMALL LETTER LU +AB88; C; 13B8; # CHEROKEE SMALL LETTER LV +AB89; C; 13B9; # CHEROKEE SMALL LETTER MA +AB8A; C; 13BA; # CHEROKEE SMALL LETTER ME +AB8B; C; 13BB; # CHEROKEE SMALL LETTER MI +AB8C; C; 13BC; # CHEROKEE SMALL LETTER MO +AB8D; C; 13BD; # CHEROKEE SMALL LETTER MU +AB8E; C; 13BE; # CHEROKEE SMALL LETTER NA +AB8F; C; 13BF; # CHEROKEE SMALL LETTER HNA +AB90; C; 13C0; # CHEROKEE SMALL LETTER NAH +AB91; C; 13C1; # CHEROKEE SMALL LETTER NE +AB92; C; 13C2; # CHEROKEE SMALL LETTER NI +AB93; C; 13C3; # CHEROKEE SMALL LETTER NO +AB94; C; 13C4; # CHEROKEE SMALL LETTER NU +AB95; C; 13C5; # CHEROKEE SMALL LETTER NV +AB96; C; 13C6; # CHEROKEE SMALL LETTER QUA +AB97; C; 13C7; # CHEROKEE SMALL LETTER QUE +AB98; C; 13C8; # CHEROKEE SMALL LETTER QUI +AB99; C; 13C9; # CHEROKEE SMALL LETTER QUO +AB9A; C; 13CA; # CHEROKEE SMALL LETTER QUU +AB9B; C; 13CB; # CHEROKEE SMALL LETTER QUV +AB9C; C; 13CC; # CHEROKEE SMALL LETTER SA +AB9D; C; 13CD; # CHEROKEE SMALL LETTER S +AB9E; C; 13CE; # CHEROKEE SMALL LETTER SE +AB9F; C; 13CF; # CHEROKEE SMALL LETTER SI +ABA0; C; 13D0; # CHEROKEE SMALL LETTER SO +ABA1; C; 13D1; # CHEROKEE SMALL LETTER SU +ABA2; C; 13D2; # CHEROKEE SMALL LETTER SV +ABA3; C; 13D3; # CHEROKEE SMALL LETTER DA +ABA4; C; 13D4; # CHEROKEE SMALL LETTER TA +ABA5; C; 13D5; # CHEROKEE SMALL LETTER DE +ABA6; C; 13D6; # CHEROKEE SMALL LETTER TE +ABA7; C; 13D7; # CHEROKEE SMALL LETTER DI +ABA8; C; 13D8; # CHEROKEE SMALL LETTER TI +ABA9; C; 13D9; # CHEROKEE SMALL LETTER DO +ABAA; C; 13DA; # CHEROKEE SMALL LETTER DU +ABAB; C; 13DB; # CHEROKEE SMALL LETTER DV +ABAC; C; 13DC; # CHEROKEE SMALL LETTER DLA +ABAD; C; 13DD; # CHEROKEE SMALL LETTER TLA +ABAE; C; 13DE; # CHEROKEE SMALL LETTER TLE +ABAF; C; 13DF; # CHEROKEE SMALL LETTER TLI +ABB0; C; 13E0; # CHEROKEE SMALL LETTER TLO +ABB1; C; 13E1; # CHEROKEE SMALL LETTER TLU +ABB2; C; 13E2; # CHEROKEE SMALL LETTER TLV +ABB3; C; 13E3; # CHEROKEE SMALL LETTER TSA +ABB4; C; 13E4; # CHEROKEE SMALL LETTER TSE +ABB5; C; 13E5; # CHEROKEE SMALL LETTER TSI +ABB6; C; 13E6; # CHEROKEE SMALL LETTER TSO +ABB7; C; 13E7; # CHEROKEE SMALL LETTER TSU +ABB8; C; 13E8; # CHEROKEE SMALL LETTER TSV +ABB9; C; 13E9; # CHEROKEE SMALL LETTER WA +ABBA; C; 13EA; # CHEROKEE SMALL LETTER WE +ABBB; C; 13EB; # CHEROKEE SMALL LETTER WI +ABBC; C; 13EC; # CHEROKEE SMALL LETTER WO +ABBD; C; 13ED; # CHEROKEE SMALL LETTER WU +ABBE; C; 13EE; # CHEROKEE SMALL LETTER WV +ABBF; C; 13EF; # CHEROKEE SMALL LETTER YA FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL @@ -1237,6 +1338,93 @@ FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z 10425; C; 1044D; # DESERET CAPITAL LETTER ENG 10426; C; 1044E; # DESERET CAPITAL LETTER OI 10427; C; 1044F; # DESERET CAPITAL LETTER EW +104B0; C; 104D8; # OSAGE CAPITAL LETTER A +104B1; C; 104D9; # OSAGE CAPITAL LETTER AI +104B2; C; 104DA; # OSAGE CAPITAL LETTER AIN +104B3; C; 104DB; # OSAGE CAPITAL LETTER AH +104B4; C; 104DC; # OSAGE CAPITAL LETTER BRA +104B5; C; 104DD; # OSAGE CAPITAL LETTER CHA +104B6; C; 104DE; # OSAGE CAPITAL LETTER EHCHA +104B7; C; 104DF; # OSAGE CAPITAL LETTER E +104B8; C; 104E0; # OSAGE CAPITAL LETTER EIN +104B9; C; 104E1; # OSAGE CAPITAL LETTER HA +104BA; C; 104E2; # OSAGE CAPITAL LETTER HYA +104BB; C; 104E3; # OSAGE CAPITAL LETTER I +104BC; C; 104E4; # OSAGE CAPITAL LETTER KA +104BD; C; 104E5; # OSAGE CAPITAL LETTER EHKA +104BE; C; 104E6; # OSAGE CAPITAL LETTER KYA +104BF; C; 104E7; # OSAGE CAPITAL LETTER LA +104C0; C; 104E8; # OSAGE CAPITAL LETTER MA +104C1; C; 104E9; # OSAGE CAPITAL LETTER NA +104C2; C; 104EA; # OSAGE CAPITAL LETTER O +104C3; C; 104EB; # OSAGE CAPITAL LETTER OIN +104C4; C; 104EC; # OSAGE CAPITAL LETTER PA +104C5; C; 104ED; # OSAGE CAPITAL LETTER EHPA +104C6; C; 104EE; # OSAGE CAPITAL LETTER SA +104C7; C; 104EF; # OSAGE CAPITAL LETTER SHA +104C8; C; 104F0; # OSAGE CAPITAL LETTER TA +104C9; C; 104F1; # OSAGE CAPITAL LETTER EHTA +104CA; C; 104F2; # OSAGE CAPITAL LETTER TSA +104CB; C; 104F3; # OSAGE CAPITAL LETTER EHTSA +104CC; C; 104F4; # OSAGE CAPITAL LETTER TSHA +104CD; C; 104F5; # OSAGE CAPITAL LETTER DHA +104CE; C; 104F6; # OSAGE CAPITAL LETTER U +104CF; C; 104F7; # OSAGE CAPITAL LETTER WA +104D0; C; 104F8; # OSAGE CAPITAL LETTER KHA +104D1; C; 104F9; # OSAGE CAPITAL LETTER GHA +104D2; C; 104FA; # OSAGE CAPITAL LETTER ZA +104D3; C; 104FB; # OSAGE CAPITAL LETTER ZHA +10C80; C; 10CC0; # OLD HUNGARIAN CAPITAL LETTER A +10C81; C; 10CC1; # OLD HUNGARIAN CAPITAL LETTER AA +10C82; C; 10CC2; # OLD HUNGARIAN CAPITAL LETTER EB +10C83; C; 10CC3; # OLD HUNGARIAN CAPITAL LETTER AMB +10C84; C; 10CC4; # OLD HUNGARIAN CAPITAL LETTER EC +10C85; C; 10CC5; # OLD HUNGARIAN CAPITAL LETTER ENC +10C86; C; 10CC6; # OLD HUNGARIAN CAPITAL LETTER ECS +10C87; C; 10CC7; # OLD HUNGARIAN CAPITAL LETTER ED +10C88; C; 10CC8; # OLD HUNGARIAN CAPITAL LETTER AND +10C89; C; 10CC9; # OLD HUNGARIAN CAPITAL LETTER E +10C8A; C; 10CCA; # OLD HUNGARIAN CAPITAL LETTER CLOSE E +10C8B; C; 10CCB; # OLD HUNGARIAN CAPITAL LETTER EE +10C8C; C; 10CCC; # OLD HUNGARIAN CAPITAL LETTER EF +10C8D; C; 10CCD; # OLD HUNGARIAN CAPITAL LETTER EG +10C8E; C; 10CCE; # OLD HUNGARIAN CAPITAL LETTER EGY +10C8F; C; 10CCF; # OLD HUNGARIAN CAPITAL LETTER EH +10C90; C; 10CD0; # OLD HUNGARIAN CAPITAL LETTER I +10C91; C; 10CD1; # OLD HUNGARIAN CAPITAL LETTER II +10C92; C; 10CD2; # OLD HUNGARIAN CAPITAL LETTER EJ +10C93; C; 10CD3; # OLD HUNGARIAN CAPITAL LETTER EK +10C94; C; 10CD4; # OLD HUNGARIAN CAPITAL LETTER AK +10C95; C; 10CD5; # OLD HUNGARIAN CAPITAL LETTER UNK +10C96; C; 10CD6; # OLD HUNGARIAN CAPITAL LETTER EL +10C97; C; 10CD7; # OLD HUNGARIAN CAPITAL LETTER ELY +10C98; C; 10CD8; # OLD HUNGARIAN CAPITAL LETTER EM +10C99; C; 10CD9; # OLD HUNGARIAN CAPITAL LETTER EN +10C9A; C; 10CDA; # OLD HUNGARIAN CAPITAL LETTER ENY +10C9B; C; 10CDB; # OLD HUNGARIAN CAPITAL LETTER O +10C9C; C; 10CDC; # OLD HUNGARIAN CAPITAL LETTER OO +10C9D; C; 10CDD; # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE +10C9E; C; 10CDE; # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE +10C9F; C; 10CDF; # OLD HUNGARIAN CAPITAL LETTER OEE +10CA0; C; 10CE0; # OLD HUNGARIAN CAPITAL LETTER EP +10CA1; C; 10CE1; # OLD HUNGARIAN CAPITAL LETTER EMP +10CA2; C; 10CE2; # OLD HUNGARIAN CAPITAL LETTER ER +10CA3; C; 10CE3; # OLD HUNGARIAN CAPITAL LETTER SHORT ER +10CA4; C; 10CE4; # OLD HUNGARIAN CAPITAL LETTER ES +10CA5; C; 10CE5; # OLD HUNGARIAN CAPITAL LETTER ESZ +10CA6; C; 10CE6; # OLD HUNGARIAN CAPITAL LETTER ET +10CA7; C; 10CE7; # OLD HUNGARIAN CAPITAL LETTER ENT +10CA8; C; 10CE8; # OLD HUNGARIAN CAPITAL LETTER ETY +10CA9; C; 10CE9; # OLD HUNGARIAN CAPITAL LETTER ECH +10CAA; C; 10CEA; # OLD HUNGARIAN CAPITAL LETTER U +10CAB; C; 10CEB; # OLD HUNGARIAN CAPITAL LETTER UU +10CAC; C; 10CEC; # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE +10CAD; C; 10CED; # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE +10CAE; C; 10CEE; # OLD HUNGARIAN CAPITAL LETTER EV +10CAF; C; 10CEF; # OLD HUNGARIAN CAPITAL LETTER EZ +10CB0; C; 10CF0; # OLD HUNGARIAN CAPITAL LETTER EZS +10CB1; C; 10CF1; # OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN +10CB2; C; 10CF2; # OLD HUNGARIAN CAPITAL LETTER US 118A0; C; 118C0; # WARANG CITI CAPITAL LETTER NGAA 118A1; C; 118C1; # WARANG CITI CAPITAL LETTER A 118A2; C; 118C2; # WARANG CITI CAPITAL LETTER WI @@ -1269,5 +1457,39 @@ FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z 118BD; C; 118DD; # WARANG CITI CAPITAL LETTER SSUU 118BE; C; 118DE; # WARANG CITI CAPITAL LETTER SII 118BF; C; 118DF; # WARANG CITI CAPITAL LETTER VIYO +1E900; C; 1E922; # ADLAM CAPITAL LETTER ALIF +1E901; C; 1E923; # ADLAM CAPITAL LETTER DAALI +1E902; C; 1E924; # ADLAM CAPITAL LETTER LAAM +1E903; C; 1E925; # ADLAM CAPITAL LETTER MIIM +1E904; C; 1E926; # ADLAM CAPITAL LETTER BA +1E905; C; 1E927; # ADLAM CAPITAL LETTER SINNYIIYHE +1E906; C; 1E928; # ADLAM CAPITAL LETTER PE +1E907; C; 1E929; # ADLAM CAPITAL LETTER BHE +1E908; C; 1E92A; # ADLAM CAPITAL LETTER RA +1E909; C; 1E92B; # ADLAM CAPITAL LETTER E +1E90A; C; 1E92C; # ADLAM CAPITAL LETTER FA +1E90B; C; 1E92D; # ADLAM CAPITAL LETTER I +1E90C; C; 1E92E; # ADLAM CAPITAL LETTER O +1E90D; C; 1E92F; # ADLAM CAPITAL LETTER DHA +1E90E; C; 1E930; # ADLAM CAPITAL LETTER YHE +1E90F; C; 1E931; # ADLAM CAPITAL LETTER WAW +1E910; C; 1E932; # ADLAM CAPITAL LETTER NUN +1E911; C; 1E933; # ADLAM CAPITAL LETTER KAF +1E912; C; 1E934; # ADLAM CAPITAL LETTER YA +1E913; C; 1E935; # ADLAM CAPITAL LETTER U +1E914; C; 1E936; # ADLAM CAPITAL LETTER JIIM +1E915; C; 1E937; # ADLAM CAPITAL LETTER CHI +1E916; C; 1E938; # ADLAM CAPITAL LETTER HA +1E917; C; 1E939; # ADLAM CAPITAL LETTER QAAF +1E918; C; 1E93A; # ADLAM CAPITAL LETTER GA +1E919; C; 1E93B; # ADLAM CAPITAL LETTER NYA +1E91A; C; 1E93C; # ADLAM CAPITAL LETTER TU +1E91B; C; 1E93D; # ADLAM CAPITAL LETTER NHA +1E91C; C; 1E93E; # ADLAM CAPITAL LETTER VA +1E91D; C; 1E93F; # ADLAM CAPITAL LETTER KHA +1E91E; C; 1E940; # ADLAM CAPITAL LETTER GBE +1E91F; C; 1E941; # ADLAM CAPITAL LETTER ZAL +1E920; C; 1E942; # ADLAM CAPITAL LETTER KPO +1E921; C; 1E943; # ADLAM CAPITAL LETTER SHA # # EOF diff --git a/fc-case/Makefile.am b/fc-case/Makefile.am index 662f771..4c30a1e 100644 --- a/fc-case/Makefile.am +++ b/fc-case/Makefile.am @@ -28,6 +28,9 @@ DEPS = $(srcdir)/CaseFolding.txt ARGS = $(srcdir)/CaseFolding.txt DIST = $(srcdir)/CaseFolding.txt +update: + curl -s -o $(srcdir)/CaseFolding.txt http://www.unicode.org/Public/UNIDATA/CaseFolding.txt + include $(top_srcdir)/Tools.mk -include $(top_srcdir)/git.mk diff --git a/fc-case/Makefile.in b/fc-case/Makefile.in index d6cccb5..c2a1984 100644 --- a/fc-case/Makefile.in +++ b/fc-case/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -65,7 +65,17 @@ # Google Author(s): Behdad Esfahbod VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -128,8 +138,6 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(top_srcdir)/Tools.mk $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(noinst_HEADERS) subdir = fc-case ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ @@ -141,6 +149,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -184,6 +194,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/Tools.mk DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -251,6 +262,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -273,6 +285,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -393,7 +406,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Tools.mk $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-case/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-case/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -402,7 +414,7 @@ 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)/Tools.mk: +$(top_srcdir)/Tools.mk $(am__empty): $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -621,6 +633,11 @@ uninstall-am: mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + + +update: + curl -s -o $(srcdir)/CaseFolding.txt http://www.unicode.org/Public/UNIDATA/CaseFolding.txt $(TOOL): $(TSRC) $(ALIAS_FILES) $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) diff --git a/fc-case/fccase.h b/fc-case/fccase.h index 3df563e..5be716d 100644 --- a/fc-case/fccase.h +++ b/fc-case/fccase.h @@ -22,12 +22,12 @@ * PERFORMANCE OF THIS SOFTWARE. */ -#define FC_NUM_CASE_FOLD 271 +#define FC_NUM_CASE_FOLD 288 #define FC_NUM_CASE_FOLD_CHARS 471 #define FC_MAX_CASE_FOLD_CHARS 6 #define FC_MAX_CASE_FOLD_EXPAND 4 #define FC_MIN_FOLD_CHAR 0x00000041 -#define FC_MAX_FOLD_CHAR 0x000118bf +#define FC_MAX_FOLD_CHAR 0x0001e921 static const FcCaseFold fcCaseFold[FC_NUM_CASE_FOLD] = { { 0x00000041, FC_CASE_FOLD_RANGE, 0x001a, 32 }, @@ -137,6 +137,15 @@ static const FcCaseFold fcCaseFold[FC_NUM_CASE_FOLD] = { { 0x000010a0, FC_CASE_FOLD_RANGE, 0x0026, 7264 }, { 0x000010c7, FC_CASE_FOLD_RANGE, 0x0001, 7264 }, { 0x000010cd, FC_CASE_FOLD_RANGE, 0x0001, 7264 }, + { 0x000013f8, FC_CASE_FOLD_RANGE, 0x0006, -8 }, + { 0x00001c80, FC_CASE_FOLD_RANGE, 0x0001, -6222 }, + { 0x00001c81, FC_CASE_FOLD_RANGE, 0x0001, -6221 }, + { 0x00001c82, FC_CASE_FOLD_RANGE, 0x0001, -6212 }, + { 0x00001c83, FC_CASE_FOLD_RANGE, 0x0002, -6210 }, + { 0x00001c85, FC_CASE_FOLD_RANGE, 0x0001, -6211 }, + { 0x00001c86, FC_CASE_FOLD_RANGE, 0x0001, -6204 }, + { 0x00001c87, FC_CASE_FOLD_RANGE, 0x0001, -6180 }, + { 0x00001c88, FC_CASE_FOLD_RANGE, 0x0001, -30269 }, { 0x00001e00, FC_CASE_FOLD_EVEN_ODD, 0x0095, 1 }, { 0x00001e96, FC_CASE_FOLD_FULL, 0x0003, 27 }, { 0x00001e97, FC_CASE_FOLD_FULL, 0x0003, 30 }, @@ -284,8 +293,13 @@ static const FcCaseFold fcCaseFold[FC_NUM_CASE_FOLD] = { { 0x0000a7ab, FC_CASE_FOLD_RANGE, 0x0001, 23217 }, { 0x0000a7ac, FC_CASE_FOLD_RANGE, 0x0001, 23221 }, { 0x0000a7ad, FC_CASE_FOLD_RANGE, 0x0001, 23231 }, + { 0x0000a7ae, FC_CASE_FOLD_RANGE, 0x0001, 23228 }, { 0x0000a7b0, FC_CASE_FOLD_RANGE, 0x0001, 23278 }, { 0x0000a7b1, FC_CASE_FOLD_RANGE, 0x0001, 23254 }, + { 0x0000a7b2, FC_CASE_FOLD_RANGE, 0x0001, 23275 }, + { 0x0000a7b3, FC_CASE_FOLD_RANGE, 0x0001, 928 }, + { 0x0000a7b4, FC_CASE_FOLD_EVEN_ODD, 0x0003, 1 }, + { 0x0000ab70, FC_CASE_FOLD_RANGE, 0x0050, 26672 }, { 0x0000fb00, FC_CASE_FOLD_FULL, 0x0002, 435 }, { 0x0000fb01, FC_CASE_FOLD_FULL, 0x0002, 437 }, { 0x0000fb02, FC_CASE_FOLD_FULL, 0x0002, 439 }, @@ -300,7 +314,10 @@ static const FcCaseFold fcCaseFold[FC_NUM_CASE_FOLD] = { { 0x0000fb17, FC_CASE_FOLD_FULL, 0x0004, 467 }, { 0x0000ff21, FC_CASE_FOLD_RANGE, 0x001a, 32 }, { 0x00010400, FC_CASE_FOLD_RANGE, 0x0028, 40 }, + { 0x000104b0, FC_CASE_FOLD_RANGE, 0x0024, 40 }, + { 0x00010c80, FC_CASE_FOLD_RANGE, 0x0033, 64 }, { 0x000118a0, FC_CASE_FOLD_RANGE, 0x0020, 32 }, + { 0x0001e900, FC_CASE_FOLD_RANGE, 0x0022, 34 }, }; static const FcChar8 fcCaseFoldChars[FC_NUM_CASE_FOLD_CHARS] = { diff --git a/fc-cat/Makefile.in b/fc-cat/Makefile.in index 32239f0..0d505e8 100644 --- a/fc-cat/Makefile.in +++ b/fc-cat/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -104,8 +114,6 @@ host_triplet = @host@ bin_PROGRAMS = fc-cat$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-cat -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -219,6 +228,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -286,6 +296,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -308,6 +319,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -411,7 +423,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-cat/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-cat/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -770,6 +781,8 @@ uninstall-man: uninstall-man1 pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 +.PRECIOUS: Makefile + @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ diff --git a/fc-glyphname/Makefile.in b/fc-glyphname/Makefile.in index 4173cc2..0df1c18 100644 --- a/fc-glyphname/Makefile.in +++ b/fc-glyphname/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -65,7 +65,17 @@ # Google Author(s): Behdad Esfahbod VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -128,8 +138,6 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(top_srcdir)/Tools.mk $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(noinst_HEADERS) subdir = fc-glyphname ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ @@ -141,6 +149,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -184,6 +194,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/Tools.mk DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -251,6 +262,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -273,6 +285,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -393,7 +406,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Tools.mk $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-glyphname/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-glyphname/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -402,7 +414,7 @@ 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)/Tools.mk: +$(top_srcdir)/Tools.mk $(am__empty): $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -621,6 +633,8 @@ uninstall-am: mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + $(TOOL): $(TSRC) $(ALIAS_FILES) $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) diff --git a/fc-lang/Makefile.in b/fc-lang/Makefile.in index c417fca..e70f94a 100644 --- a/fc-lang/Makefile.in +++ b/fc-lang/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -65,7 +65,17 @@ # Google Author(s): Behdad Esfahbod VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -128,8 +138,6 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(top_srcdir)/Tools.mk $(srcdir)/Makefile.in \ - $(srcdir)/Makefile.am $(noinst_HEADERS) README subdir = fc-lang ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ @@ -141,6 +149,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -184,6 +194,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/Tools.mk README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -251,6 +262,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -273,6 +285,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -646,7 +659,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/Tools.mk $(am__confi echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-lang/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-lang/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -655,7 +667,7 @@ 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)/Tools.mk: +$(top_srcdir)/Tools.mk $(am__empty): $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh @@ -874,6 +886,8 @@ uninstall-am: mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + $(TOOL): $(TSRC) $(ALIAS_FILES) $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) diff --git a/fc-list/Makefile.in b/fc-list/Makefile.in index 16145cd..b8e1582 100644 --- a/fc-list/Makefile.in +++ b/fc-list/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -104,8 +114,6 @@ host_triplet = @host@ bin_PROGRAMS = fc-list$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-list -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -219,6 +228,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -286,6 +296,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -308,6 +319,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -411,7 +423,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-list/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-list/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -770,6 +781,8 @@ uninstall-man: uninstall-man1 pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 +.PRECIOUS: Makefile + @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ diff --git a/fc-match/Makefile.in b/fc-match/Makefile.in index ce4ebd2..d5d22f0 100644 --- a/fc-match/Makefile.in +++ b/fc-match/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -104,8 +114,6 @@ host_triplet = @host@ bin_PROGRAMS = fc-match$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-match -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -219,6 +228,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -286,6 +296,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -308,6 +319,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -411,7 +423,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-match/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-match/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -770,6 +781,8 @@ uninstall-man: uninstall-man1 pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 +.PRECIOUS: Makefile + @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ diff --git a/fc-pattern/Makefile.in b/fc-pattern/Makefile.in index 0054006..4e4b6d4 100644 --- a/fc-pattern/Makefile.in +++ b/fc-pattern/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -104,8 +114,6 @@ host_triplet = @host@ bin_PROGRAMS = fc-pattern$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-pattern -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -219,6 +228,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -286,6 +296,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -308,6 +319,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -411,7 +423,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-pattern/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-pattern/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -770,6 +781,8 @@ uninstall-man: uninstall-man1 pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 +.PRECIOUS: Makefile + @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ diff --git a/fc-query/Makefile.in b/fc-query/Makefile.in index 978879b..0ee25fe 100644 --- a/fc-query/Makefile.in +++ b/fc-query/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -104,8 +114,6 @@ host_triplet = @host@ bin_PROGRAMS = fc-query$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-query -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -219,6 +228,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -286,6 +296,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -308,6 +319,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -411,7 +423,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-query/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-query/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -770,6 +781,8 @@ uninstall-man: uninstall-man1 pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 +.PRECIOUS: Makefile + @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ diff --git a/fc-query/fc-query.1 b/fc-query/fc-query.1 index 7c67595..106cfc0 100644 --- a/fc-query/fc-query.1 +++ b/fc-query/fc-query.1 @@ -6,7 +6,7 @@ fc-query \- query font files .sp \fBfc-query\fR [ \fB-Vh\fR ] - [ \fB [ -i \fIindex\fB ] [ --index \fIindex\fB ] \fR ] [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ] \fB\fIfont-file\fB\fR\fI...\fR + [ \fB [ -b ] [ --ignore-blanks ] \fR ] [ \fB [ -i \fIindex\fB ] [ --index \fIindex\fB ] \fR ] [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ] \fB\fIfont-file\fB\fR\fI...\fR .SH "DESCRIPTION" .PP \fBfc-query\fR queries @@ -20,6 +20,9 @@ This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP +\fB-b\fR +Ignore blanks to compute languages +.TP \fB-i\fR Only query face indexed \fIindex\fR of each file. diff --git a/fc-query/fc-query.c b/fc-query/fc-query.c index 2983e0f..9bd3980 100644 --- a/fc-query/fc-query.c +++ b/fc-query/fc-query.c @@ -52,6 +52,7 @@ #define _GNU_SOURCE #include static const struct option longopts[] = { + {"ignore-blanks", 0, 0, 'b'}, {"index", 1, 0, 'i'}, {"format", 1, 0, 'f'}, {"version", 0, 0, 'V'}, @@ -70,24 +71,26 @@ usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG - fprintf (file, "usage: %s [-Vh] [-i index] [-f FORMAT] [--index index] [--format FORMAT] [--version] [--help] font-file...\n", + fprintf (file, "usage: %s [-Vbh] [-i index] [-f FORMAT] [--ignore-blanks] [--index index] [--format FORMAT] [--version] [--help] font-file...\n", program); #else - fprintf (file, "usage: %s [-Vh] [-i index] [-f FORMAT] font-file...\n", + fprintf (file, "usage: %s [-Vbh] [-i index] [-f FORMAT] font-file...\n", program); #endif fprintf (file, "Query font files and print resulting pattern(s)\n"); fprintf (file, "\n"); #if HAVE_GETOPT_LONG + fprintf (file, " -b, --ignore-blanks ignore blanks to compute langauges\n"); fprintf (file, " -i, --index INDEX display the INDEX face of each font file only\n"); fprintf (file, " -f, --format=FORMAT use the given output format\n"); fprintf (file, " -V, --version display font config version and exit\n"); fprintf (file, " -h, --help display this help and exit\n"); #else - fprintf (file, " -i INDEX (index) display the INDEX face of each font file only\n"); - fprintf (file, " -f FORMAT (format) use the given output format\n"); - fprintf (file, " -V (version) display font config version and exit\n"); - fprintf (file, " -h (help) display this help and exit\n"); + fprintf (file, " -b (ignore-blanks) ignore blanks to compute languages\n"); + fprintf (file, " -i INDEX (index) display the INDEX face of each font file only\n"); + fprintf (file, " -f FORMAT (format) use the given output format\n"); + fprintf (file, " -V (version) display font config version and exit\n"); + fprintf (file, " -h (help) display this help and exit\n"); #endif exit (error); } @@ -97,19 +100,24 @@ main (int argc, char **argv) { int index_set = 0; int set_index = 0; + int ignore_blanks = 0; FcChar8 *format = NULL; + FcBlanks *blanks = NULL; int err = 0; int i; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, "i:f:Vh", longopts, NULL)) != -1) + while ((c = getopt_long (argc, argv, "bi:f:Vh", longopts, NULL)) != -1) #else - while ((c = getopt (argc, argv, "i:f:Vh")) != -1) + while ((c = getopt (argc, argv, "bi:f:Vh")) != -1) #endif { switch (c) { + case 'b': + ignore_blanks = 1; + break; case 'i': index_set = 1; set_index = atoi (optarg); @@ -135,6 +143,8 @@ main (int argc, char **argv) if (i == argc) usage (argv[0], 1); + if (!ignore_blanks) + blanks = FcConfigGetBlanks (NULL); for (; i < argc; i++) { int index; @@ -145,7 +155,7 @@ main (int argc, char **argv) do { FcPattern *pat; - pat = FcFreeTypeQuery ((FcChar8 *) argv[i], index, NULL, &count); + pat = FcFreeTypeQuery ((FcChar8 *) argv[i], index, blanks, &count); if (pat) { if (format) diff --git a/fc-query/fc-query.sgml b/fc-query/fc-query.sgml index 5351d1e..fd51d21 100644 --- a/fc-query/fc-query.sgml +++ b/fc-query/fc-query.sgml @@ -65,6 +65,10 @@ manpage.1: manpage.sgml + + + + @@ -97,6 +101,14 @@ manpage.1: manpage.sgml + + + + + Ignore blanks to compute languages + + + diff --git a/fc-scan/Makefile.in b/fc-scan/Makefile.in index 2b1a1b4..a0e0901 100644 --- a/fc-scan/Makefile.in +++ b/fc-scan/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -104,8 +114,6 @@ host_triplet = @host@ bin_PROGRAMS = fc-scan$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = ${man_MANS} subdir = fc-scan -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -219,6 +228,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -286,6 +296,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -308,6 +319,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -411,7 +423,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-scan/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-scan/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -770,6 +781,8 @@ uninstall-man: uninstall-man1 pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 +.PRECIOUS: Makefile + @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ diff --git a/fc-scan/fc-scan.1 b/fc-scan/fc-scan.1 index b1714c2..ecb5279 100644 --- a/fc-scan/fc-scan.1 +++ b/fc-scan/fc-scan.1 @@ -4,9 +4,9 @@ fc-scan \- scan font files or directories .SH SYNOPSIS .sp -\fBfc-scan\fR [ \fB-Vh\fR ] +\fBfc-scan\fR [ \fB-Vbh\fR ] - [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ] \fB\fIfile\fB\fR\fI...\fR + [ \fB [ -b ] [ --ignore-blanks ] \fR ] [ \fB [ -f \fIformat\fB ] [ --format \fIformat\fB ] \fR ] [ \fB--version\fR ] [ \fB--help\fR ] \fB\fIfile\fB\fR\fI...\fR .SH "DESCRIPTION" .PP \fBfc-scan\fR scans @@ -18,6 +18,9 @@ This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP +\fB-b\fR +Ignore blanks to compute languages +.TP \fB-f\fR Format output according to the format specifier \fIformat\fR\&. diff --git a/fc-scan/fc-scan.c b/fc-scan/fc-scan.c index 5638b51..4d0b1db 100644 --- a/fc-scan/fc-scan.c +++ b/fc-scan/fc-scan.c @@ -52,6 +52,7 @@ #define _GNU_SOURCE #include static const struct option longopts[] = { + {"ignore-blanks", 0, 0, 'b'}, {"format", 1, 0, 'f'}, {"version", 0, 0, 'V'}, {"help", 0, 0, 'h'}, @@ -69,22 +70,24 @@ usage (char *program, int error) { FILE *file = error ? stderr : stdout; #if HAVE_GETOPT_LONG - fprintf (file, "usage: %s [-Vh] [-f FORMAT] [--format FORMAT] [--version] [--help] font-file...\n", + fprintf (file, "usage: %s [-Vbh] [-f FORMAT] [--ignore-blanks] [--format FORMAT] [--version] [--help] font-file...\n", program); #else - fprintf (file, "usage: %s [-Vh] [-f FORMAT] font-file...\n", + fprintf (file, "usage: %s [-Vbh] [-f FORMAT] font-file...\n", program); #endif fprintf (file, "Scan font files and directories, and print resulting pattern(s)\n"); fprintf (file, "\n"); #if HAVE_GETOPT_LONG + fprintf (file, " -b, --ignore-blanks ignore blanks to compute languages\n"); fprintf (file, " -f, --format=FORMAT use the given output format\n"); fprintf (file, " -V, --version display font config version and exit\n"); fprintf (file, " -h, --help display this help and exit\n"); #else - fprintf (file, " -f FORMAT (format) use the given output format\n"); - fprintf (file, " -V (version) display font config version and exit\n"); - fprintf (file, " -h (help) display this help and exit\n"); + fprintf (file, " -b (ignore-blanks) ignore blanks to compute languages\n"); + fprintf (file, " -f FORMAT (format) use the given output format\n"); + fprintf (file, " -V (version) display font config version and exit\n"); + fprintf (file, " -h (help) display this help and exit\n"); #endif exit (error); } @@ -94,17 +97,22 @@ main (int argc, char **argv) { FcChar8 *format = NULL; int i; + int ignore_blanks = 0; FcFontSet *fs; + FcBlanks *blanks = NULL; #if HAVE_GETOPT_LONG || HAVE_GETOPT int c; #if HAVE_GETOPT_LONG - while ((c = getopt_long (argc, argv, "f:Vh", longopts, NULL)) != -1) + while ((c = getopt_long (argc, argv, "bf:Vh", longopts, NULL)) != -1) #else - while ((c = getopt (argc, argv, "f:Vh")) != -1) + while ((c = getopt (argc, argv, "bf:Vh")) != -1) #endif { switch (c) { + case 'b': + ignore_blanks = 1; + break; case 'f': format = (FcChar8 *) strdup (optarg); break; @@ -127,20 +135,22 @@ main (int argc, char **argv) usage (argv[0], 1); fs = FcFontSetCreate (); + if (!ignore_blanks) + blanks = FcConfigGetBlanks (NULL); for (; i < argc; i++) { const FcChar8 *file = (FcChar8*) argv[i]; if (!FcFileIsDir (file)) - FcFileScan (fs, NULL, NULL, NULL, file, FcTrue); + FcFileScan (fs, NULL, NULL, blanks, file, FcTrue); else { FcStrSet *dirs = FcStrSetCreate (); FcStrList *strlist = FcStrListCreate (dirs); do { - FcDirScan (fs, dirs, NULL, NULL, file, FcTrue); + FcDirScan (fs, dirs, NULL, blanks, file, FcTrue); } while ((file = FcStrListNext (strlist))); FcStrListDone (strlist); diff --git a/fc-scan/fc-scan.sgml b/fc-scan/fc-scan.sgml index 9af403c..65a66c4 100644 --- a/fc-scan/fc-scan.sgml +++ b/fc-scan/fc-scan.sgml @@ -62,9 +62,13 @@ manpage.1: manpage.sgml &dhpackage; - + + + + + @@ -91,6 +95,14 @@ manpage.1: manpage.sgml + + + + + Ignore blanks to compute languages + + + diff --git a/fc-validate/Makefile.in b/fc-validate/Makefile.in index cbe5382..f3dcea8 100644 --- a/fc-validate/Makefile.in +++ b/fc-validate/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -38,7 +38,17 @@ # PERFORMANCE OF THIS SOFTWARE. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -104,8 +114,6 @@ host_triplet = @host@ bin_PROGRAMS = fc-validate$(EXEEXT) @USEDOCBOOK_TRUE@am__append_1 = $(man_MANS) subdir = fc-validate -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -221,6 +230,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -288,6 +298,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -310,6 +321,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -413,7 +425,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fc-validate/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fc-validate/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -772,6 +783,8 @@ uninstall-man: uninstall-man1 pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-man uninstall-man1 +.PRECIOUS: Makefile + @USEDOCBOOK_TRUE@${man_MANS}: ${SGML} @USEDOCBOOK_TRUE@ $(AM_V_GEN) $(RM) $@; \ diff --git a/fontconfig.spec b/fontconfig.spec index 04c23a6..402515e 100644 --- a/fontconfig.spec +++ b/fontconfig.spec @@ -4,7 +4,7 @@ Summary: Font configuration and customization library Name: fontconfig -Version: 2.11.93 +Version: 2.12.1 Release: 1 License: MIT Group: System Environment/Libraries diff --git a/fontconfig/Makefile.in b/fontconfig/Makefile.in index 1f0eca4..69c36ed 100644 --- a/fontconfig/Makefile.in +++ b/fontconfig/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,7 +15,17 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -79,8 +89,6 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = fontconfig -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(fontconfiginclude_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -91,6 +99,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(fontconfiginclude_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -162,6 +172,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -229,6 +240,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -251,6 +263,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -351,7 +364,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fontconfig/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu fontconfig/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -598,6 +610,8 @@ uninstall-am: uninstall-fontconfigincludeHEADERS ps ps-am tags tags-am uninstall uninstall-am \ uninstall-fontconfigincludeHEADERS +.PRECIOUS: Makefile + -include $(top_srcdir)/git.mk diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h index b14c961..5c72b22 100644 --- a/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig.h @@ -51,8 +51,8 @@ typedef int FcBool; */ #define FC_MAJOR 2 -#define FC_MINOR 11 -#define FC_REVISION 93 +#define FC_MINOR 12 +#define FC_REVISION 1 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) @@ -66,7 +66,10 @@ typedef int FcBool; * it means multiple copies of the font information. */ -#define FC_CACHE_VERSION "5" +#define FC_CACHE_VERSION_NUMBER 7 +#define _FC_STRINGIFY_(s) #s +#define _FC_STRINGIFY(s) _FC_STRINGIFY_(s) +#define FC_CACHE_VERSION _FC_STRINGIFY(FC_CACHE_VERSION_NUMBER) #define FcTrue 1 #define FcFalse 0 @@ -95,7 +98,8 @@ typedef int FcBool; #define FC_OUTLINE "outline" /* Bool */ #define FC_SCALABLE "scalable" /* Bool */ #define FC_COLOR "color" /* Bool */ -#define FC_SCALE "scale" /* double */ +#define FC_SCALE "scale" /* double (deprecated) */ +#define FC_SYMBOL "symbol" /* Bool */ #define FC_DPI "dpi" /* double */ #define FC_RGBA "rgba" /* Int */ #define FC_MINSPACE "minspace" /* Bool use minimum line spacing */ @@ -216,7 +220,7 @@ typedef struct _FcMatrix { typedef struct _FcCharSet FcCharSet; typedef struct _FcObjectType { - const char *object; + char *object; FcType type; } FcObjectType; diff --git a/install-sh b/install-sh index 377bb86..0b0fdcb 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2011-11-20.07; # UTC +scriptversion=2013-12-25.23; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC # This script is compatible with the BSD install script, but was written # from scratch. +tab=' ' nl=' ' -IFS=" "" $nl" +IFS=" $tab$nl" -# set DOITPROG to echo to test this script +# Set DOITPROG to "echo" to test this script. -# Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi +doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. @@ -68,17 +64,6 @@ mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - posix_mkdir= # Desired mode of installed file. @@ -97,7 +82,7 @@ dir_arg= dst_arg= copy_on_change=false -no_target_directory= +is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE @@ -137,46 +122,57 @@ while test $# -ne 0; do -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" - shift;; + shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; -o) chowncmd="$chownprog $2" - shift;; + shift;; -s) stripcmd=$stripprog;; - -t) dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; - -T) no_target_directory=true;; + -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; - --) shift - break;; + --) shift + break;; - -*) echo "$0: invalid option: $1" >&2 - exit 1;; + -*) echo "$0: invalid option: $1" >&2 + exit 1;; *) break;; esac shift done +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. @@ -208,6 +204,15 @@ if test $# -eq 0; then fi if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 @@ -223,16 +228,16 @@ if test -z "$dir_arg"; then *[0-7]) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw='% 200' + u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw=,u+rw + u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac @@ -269,41 +274,15 @@ do # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - + dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi @@ -314,74 +293,74 @@ do if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; esac if $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else @@ -391,53 +370,51 @@ do # directory the slow way, step by step, checking for races as we go. case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; esac - eval "$initialize_posix_glob" - oIFS=$IFS IFS=/ - $posix_glob set -f + set -f set fnord $dstdir shift - $posix_glob set +f + set +f IFS=$oIFS prefixes= for d do - test X"$d" = X && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ done if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi fi fi @@ -472,15 +449,12 @@ do # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - + set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then @@ -493,24 +467,24 @@ do # to itself, or perhaps because mv is so ancient that it does not # support -f. { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 diff --git a/ltmain.sh b/ltmain.sh index 63ae69d..0f0a2da 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -1,9 +1,12 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 -# libtool (GNU libtool) 2.4.2 +# libtool (GNU libtool) 2.4.6 +# 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-2015 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 +26,2112 @@ # 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 -# 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 -TIMESTAMP="" -package_revision=1.3337 +VERSION=2.4.6 +package_revision=2.4.6 -# 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=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 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 apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +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" +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## 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="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${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=`$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=`$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 () -{ - $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 +# 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. - # bash bug again: - : -} -# func_fatal_error arg... -# Echo program name prefixed message to standard error, and exit. -func_fatal_error () +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () { - func_error ${1+"$@"} - exit $EXIT_FAILURE -} + $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 + } -# func_fatal_help arg... -# Echo program name prefixed message to standard error, followed by -# a help hint, and exit. -func_fatal_help () -{ - func_error ${1+"$@"} - func_fatal_error "$help" + require_term_colors=: } -help="Try \`$progname --help' for more information." ## default -# func_grep expression filename +## ----------------- ## +## 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 () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# 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 + $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=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$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 + $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_mkdir_p directory-path +# 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 () { - my_directory_path="$1" - my_dir_list= + $debug_cmd - if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + _G_directory_path=$1 + _G_dir_list= - # Protect directory names starting with `-' - case $my_directory_path in - -*) my_directory_path="./$my_directory_path" ;; + 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 "$my_directory_path"; do + 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. - my_dir_list="$my_directory_path:$my_dir_list" + _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done - case $my_directory_path in */*) ;; *) break ;; esac + case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done - my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` - 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 + 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 "$my_dir" 2>/dev/null || : + $MKDIR "$_G_dir" 2>/dev/null || : done - IFS="$save_mkdir_p_IFS" + IFS=$func_mkdir_p_IFS # 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'" + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" fi } -# func_mktempdir [string] +# func_mktempdir [BASENAME] +# ------------------------- # 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. +# given, BASENAME is the basename for that directory. func_mktempdir () { - my_template="${TMPDIR-/tmp}/${1-$progname}" + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} - if test "$opt_dry_run" = ":"; then + if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" + _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` - if test ! -d "$my_tmpdir"; then + if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" + _G_tmpdir=$_G_template-${RANDOM-0}$$ - save_mktempdir_umask=`umask` + func_mktempdir_umask=`umask` umask 0077 - $MKDIR "$my_tmpdir" - umask $save_mktempdir_umask + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask fi # 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'" + 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 - $ECHO "$my_tmpdir" + 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 + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook '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=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 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='`$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 () +{ + $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 } -# 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 () +# 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 () { - 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 + # 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_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_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () { - case $1 in - *[\\\`\"]*) - my_arg=`$ECHO "$1" | $SED \ - -e "$double_quote_subst" -e "$sed_double_backslash"` ;; - *) - my_arg="$1" ;; - esac + $debug_cmd - 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 + func_parse_options_result= - func_quote_for_expand_result="$my_arg" -} + # 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+"$@"} + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift -# 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 () -{ - my_cmd="$1" - my_fail_exp="${2-:}" + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } + _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 + ;; - 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 + --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 + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result } -# 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 () +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () { - my_cmd="$1" - my_fail_exp="${2-:}" + $debug_cmd - ${opt_silent-false} || { - func_quote_for_expand "$my_cmd" - eval "func_echo $func_quote_for_expand_result" - } + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" - 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_run_hooks func_validate_options ${1+"$@"} -# 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 + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result } -# func_version -# Echo version message to standard output and exit. -func_version () -{ - $opt_debug - $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 $? -} +## ----------------- ## +## Helper functions. ## +## ----------------- ## -# func_usage -# Echo short help message to standard output and exit. -func_usage () +# 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 () { - $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 $? + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE } -# func_help [NOEXIT] -# Echo long help message to standard output and exit, -# unless 'noexit' is passed as argument. + +# func_help +# --------- +# Echo long help message to standard output and exit. func_help () { - $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 + + func_usage_message + $ECHO "$long_help_message" + exit 0 } -# func_missing_arg argname + +# func_missing_arg ARGNAME +# ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { - $opt_debug + $debug_cmd - func_error "missing argument for $1." + func_error "Missing argument for '$1'." exit_cmd=exit } -# func_split_short_opt shortopt +# 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 + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + 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_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_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 () +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 + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () { - my_sed_short_opt='1s/^\(..\).*$/\1/;q' - my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + $debug_cmd - 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 + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} -# 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_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () { - 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 + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} -exit_cmd=: +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(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" + exit $? +} -magic="%%%MAGIC variable%%%" -magic_exe="%%%MAGIC EXE variable%%%" +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: -# Global variables. -nonopt= -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' -# 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= -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () { - eval "${1}=\$${1}\${2}" -} # func_append may be replaced by extended shell implementation + $debug_cmd -# 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 + _G_message=$* + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} -# func_arith arithmetic-term... -func_arith () + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () { - func_arith_result=`expr "${@}"` -} # func_arith may be replaced by extended shell implementation + $debug_cmd + $warning_func ${1+"$@"} +} -# 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 +## ---------------- ## +## 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 +" -# func_lo2o object -func_lo2o () +# Additional text appended to 'usage_message' in response to '--help'. +func_help () { - func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -} # func_lo2o may be replaced by extended shell implementation + $debug_cmd + + func_usage_message + $ECHO "$long_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) + version: $progname (GNU libtool) 2.4.6 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} -# 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_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +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 () + { + 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 +2149,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,314 +2170,350 @@ 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" - # 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 + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$opt_mode' for more information." - } + $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" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # 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_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + # 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 () { test -f "$1" && - $SED -e 4q "$1" 2>/dev/null \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_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 +2521,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 @@ -1264,7 +2536,8 @@ func_lalib_unsafe_p () # determined imposters. func_ltwrapper_script_p () { - func_lalib_p "$1" + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file @@ -1289,7 +2562,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 +2581,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 +2599,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 +2630,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 +2650,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 +2670,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 +2695,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 +2711,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 +2727,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 +2792,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 +2833,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 +2843,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 +2854,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 +2869,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 +2888,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 +2901,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 +2913,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 +2930,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 +2941,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 +2954,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 +2973,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 +2984,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 +3001,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 +3019,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 +3036,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 +3055,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 +3072,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 +3096,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 +3110,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 +3122,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 +3133,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 +3143,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 +3157,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 +3178,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 +3200,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 +3224,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 +3235,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 +3244,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 +3281,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 +3296,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 +3325,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 +3343,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 +3359,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 +3385,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 +3394,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 +3421,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 +3443,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 +3461,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 +3474,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 +3496,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 +3517,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 +3528,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 +3544,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 +3566,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 +3577,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 +3597,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 +3607,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 +3627,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 +3646,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 +3668,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 +3687,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 +3697,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 +3723,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 @@ -2421,7 +3737,8 @@ The following components of LINK-COMMAND are treated specially: -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information @@ -2441,20 +3758,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 +3782,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 +3790,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 { @@ -2491,7 +3808,7 @@ if $opt_help; then for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do @@ -2499,7 +3816,7 @@ if $opt_help; then func_mode_help done } | - sed '1d + $SED '1d /^When reporting/,/^Report/{ H d @@ -2516,16 +3833,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 +3853,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 +3864,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 +3883,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 +3906,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 +3919,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 +3932,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 +3957,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 +3982,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 +4001,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 +4031,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 +4042,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 +4081,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 +4121,7 @@ func_mode_install () opts= prev= install_type= - isdir=no + isdir=false stripme= no_mode=: for arg @@ -2813,7 +4134,7 @@ func_mode_install () fi case $arg in - -d) isdir=yes ;; + -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg @@ -2831,7 +4152,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 +4177,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 +4199,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 +4220,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 +4229,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 +4249,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 +4271,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 +4285,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 +4294,36 @@ 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 + ;; + os2*) + case $realname in + *_dll.a) + tstripme= ;; esac ;; @@ -3006,7 +4334,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 +4345,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 +4364,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 +4378,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 +4391,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 +4403,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 +4447,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 +4467,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 +4526,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 +4544,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 +4563,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}" - my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + $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 +4584,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 +4592,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 +4629,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 +4649,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 +4662,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 +4676,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 +4699,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 +4755,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 +4768,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 +4833,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 +4850,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 +4871,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 +4885,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 +4920,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 +4932,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 +4986,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 +5004,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 +5041,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 +5053,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 +5066,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 +5084,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 +5097,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 +5111,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 +5139,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,22 +5152,23 @@ 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` + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do @@ -3815,7 +5190,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 +5205,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 +5216,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 +5273,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 +5308,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 +5319,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 +5333,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 +5343,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 +5418,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\" @@ -4066,7 +5441,7 @@ func_exec_program () if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else - $ECHO \"\$relink_command_output\" >&2 + \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi @@ -4101,7 +5476,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 +5496,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 +5515,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 +5607,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 +5641,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; @@ -4300,11 +5673,16 @@ void lt_dump_script (FILE *f); EOF 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,27 +6460,47 @@ 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 ;; esac } +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + # 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. @@ -5146,10 +6544,11 @@ func_mode_link () module=no no_install=no objs= + os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no - preload=no + preload=false prev= prevarg= release= @@ -5161,7 +6560,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 +6568,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 +6609,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 +6626,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 +6648,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 +6660,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 +6671,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 +6696,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 +6726,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 +6751,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 +6759,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 +6783,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 +6791,29 @@ 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 ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; precious_regex) - precious_files_regex="$arg" + precious_files_regex=$arg prev= continue ;; release) - release="-$arg" + release=-$arg prev= continue ;; @@ -5415,7 +6825,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 +6840,7 @@ func_mode_link () continue ;; shrext) - shrext_cmds="$arg" + shrext_cmds=$arg prev= continue ;; @@ -5470,7 +6880,7 @@ func_mode_link () esac fi # test -n "$prev" - prevarg="$arg" + prevarg=$arg case $arg in -all-static) @@ -5484,7 +6894,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 +6926,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 +6960,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 +6973,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 +7009,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 +7017,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 +7030,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 +7049,11 @@ func_mode_link () continue ;; + -mllvm) + prev=mllvm + continue + ;; + -module) module=yes continue @@ -5668,7 +7083,7 @@ func_mode_link () ;; -multi_module) - single_module="${wl}-multi_module" + single_module=$wl-multi_module continue ;; @@ -5682,8 +7097,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 ;; @@ -5701,6 +7116,11 @@ func_mode_link () continue ;; + -os2dllname) + prev=os2dllname + continue + ;; + -o) prev=output ;; -precious-files-regex) @@ -5788,14 +7208,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 +7224,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 +7255,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: @@ -5847,25 +7267,46 @@ func_mode_link () # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC # @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|-fstack-protector*|-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" continue ;; + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" + arg=$func_quote_for_eval_result ;; *.$objext) @@ -5886,21 +7327,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 +7352,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 +7360,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 +7384,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 +7392,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 +7408,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 +7427,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 +7439,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,20 +7450,23 @@ 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 eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + 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 +7489,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 +7497,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 +7529,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 +7537,7 @@ func_mode_link () prog) compile_deplibs= finalize_deplibs= - alldeplibs=no + alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" @@ -6105,29 +7549,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" ;; + 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 @@ -6148,26 +7592,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" ;; @@ -6177,13 +7621,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" @@ -6191,31 +7635,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 @@ -6223,19 +7658,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 @@ -6244,15 +7679,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" ;; @@ -6265,18 +7710,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" @@ -6287,13 +7732,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 @@ -6311,7 +7756,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 @@ -6322,21 +7767,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" @@ -6344,18 +7794,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" @@ -6366,10 +7811,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" @@ -6382,22 +7827,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= @@ -6427,30 +7870,30 @@ 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" - 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 + if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac @@ -6464,26 +7907,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 @@ -6497,40 +7940,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 @@ -6539,11 +7982,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 @@ -6587,9 +8030,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 @@ -6599,14 +8042,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= @@ -6618,14 +8061,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 @@ -6635,15 +8078,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 @@ -6672,9 +8115,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 @@ -6683,19 +8126,19 @@ 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*) + *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) - if test "$installed" = no; then + if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi @@ -6705,24 +8148,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. @@ -6750,43 +8193,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*) + *cygwin* | mingw* | *cegcc* | *os2*) 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 @@ -6794,58 +8237,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 @@ -6854,10 +8297,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 @@ -6865,7 +8308,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 @@ -6875,15 +8318,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:" ;; @@ -6892,33 +8335,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 @@ -6927,10 +8370,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 @@ -6938,43 +8381,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 @@ -6987,11 +8430,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 @@ -7005,12 +8448,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 @@ -7020,7 +8463,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" ;; @@ -7029,12 +8472,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 @@ -7042,12 +8485,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 @@ -7055,35 +8498,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 @@ -7095,23 +8538,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 @@ -7121,12 +8564,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 @@ -7184,62 +8627,93 @@ func_mode_link () eval $var=\"$tmp_libs\" done # for var fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + # 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" @@ -7248,10 +8722,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 @@ -7265,8 +8739,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" @@ -7275,21 +8749,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" @@ -7298,20 +8772,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 @@ -7319,42 +8793,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) + darwin|freebsd-elf|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" + freebsd-aout|qnx|sunos) + 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 ;; esac ;; no) - current="$1" - revision="$2" - age="$3" + current=$1 + revision=$2 + age=$3 ;; esac @@ -7362,30 +8836,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. @@ -7400,26 +8874,36 @@ 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" + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision ;; 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 @@ -7430,69 +8914,74 @@ 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 + ;; + + sco) + 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 @@ -7506,42 +8995,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= @@ -7550,8 +9042,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 @@ -7567,11 +9059,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. @@ -7592,13 +9084,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 @@ -7608,7 +9100,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 @@ -7617,7 +9109,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*) @@ -7641,7 +9133,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 ;; @@ -7657,9 +9149,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 @@ -7688,20 +9180,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 @@ -7731,20 +9223,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 @@ -7781,24 +9273,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 @@ -7816,25 +9308,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." @@ -7842,7 +9334,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" @@ -7865,30 +9357,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." @@ -7896,7 +9388,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" @@ -7912,18 +9404,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." @@ -7947,8 +9439,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" @@ -7957,12 +9449,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 @@ -7973,14 +9465,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 @@ -8026,7 +9518,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= @@ -8034,25 +9526,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 @@ -8077,7 +9569,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 @@ -8091,8 +9583,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 @@ -8102,19 +9594,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 @@ -8128,7 +9620,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 @@ -8137,31 +9629,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 @@ -8175,7 +9667,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 @@ -8186,7 +9678,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" @@ -8209,8 +9701,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 @@ -8218,16 +9710,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. @@ -8246,11 +9738,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. @@ -8261,7 +9753,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 @@ -8270,18 +9762,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 @@ -8299,7 +9791,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 @@ -8332,8 +9824,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 @@ -8345,14 +9837,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 @@ -8367,7 +9859,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 @@ -8379,13 +9871,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\" @@ -8395,10 +9887,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 @@ -8410,9 +9902,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" @@ -8420,9 +9912,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. @@ -8431,16 +9923,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" } @@ -8448,7 +9940,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" ) @@ -8457,7 +9949,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"' @@ -8465,18 +9957,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. @@ -8485,7 +9977,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. @@ -8499,7 +9991,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 @@ -8521,7 +10013,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 @@ -8529,11 +10021,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" } @@ -8541,7 +10034,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" ) @@ -8550,10 +10043,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 @@ -8573,39 +10066,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" @@ -8613,7 +10106,7 @@ EOF ;; *) libobj= - obj="$output" + obj=$output ;; esac @@ -8626,17 +10119,19 @@ EOF # the extraction. reload_conv_objs= gentop= - # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec and hope we can get by with - # turning comma into space.. - wl= - + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else - gentop="$output_objdir/${obj}x" + gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience @@ -8645,12 +10140,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. @@ -8662,7 +10157,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 @@ -8672,12 +10167,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 @@ -8694,16 +10189,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]) @@ -8717,11 +10210,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 @@ -8757,7 +10250,7 @@ EOF *) func_append new_libs " $deplib" ;; esac done - compile_deplibs="$new_libs" + compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" @@ -8781,7 +10274,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 @@ -8804,7 +10297,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;; @@ -8821,10 +10314,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= @@ -8832,7 +10325,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 @@ -8857,45 +10350,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 @@ -8908,12 +10399,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" @@ -8943,9 +10434,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. @@ -8962,27 +10453,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'` @@ -9039,8 +10531,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 @@ -9061,7 +10553,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 @@ -9084,25 +10576,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 @@ -9110,13 +10604,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 @@ -9137,7 +10631,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 @@ -9146,7 +10640,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 "*) @@ -9215,18 +10709,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\" @@ -9243,7 +10737,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 @@ -9258,31 +10752,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*) @@ -9298,23 +10792,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 @@ -9324,34 +10818,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 @@ -9367,10 +10861,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 @@ -9379,7 +10872,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. @@ -9393,7 +10886,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. @@ -9419,7 +10912,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 @@ -9434,27 +10927,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 @@ -9467,18 +10962,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" ;; @@ -9493,11 +10988,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) @@ -9511,7 +11006,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 "*) ;; @@ -9522,12 +11017,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. ;; @@ -9543,21 +11038,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) @@ -9584,12 +11077,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 @@ -9598,7 +11091,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" @@ -9608,16 +11101,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" @@ -9628,7 +11122,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 @@ -9651,5 +11145,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 f12cfdf..a644432 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-2015 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -10,36 +8,30 @@ # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008, 2009, 2010, 2011 Free Software -# Foundation, Inc. -# Written by Gordon Matzigkeit, 1996 -# -# This file is part of GNU Libtool. -# -# GNU Libtool 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 2 of -# the License, or (at your option) any later version. +# Copyright (C) 2014 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. + +# GNU Libtool 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 2 of 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. +# 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. # -# GNU Libtool is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of +# GNU Libtool 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 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 . ]) -# serial 57 LT_INIT +# serial 58 LT_INIT # LT_PREREQ(VERSION) @@ -67,7 +59,7 @@ esac # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], -[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl @@ -91,7 +83,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' @@ -111,26 +103,43 @@ dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + # _LT_CC_BASENAME(CC) # ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result ]) # _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"} @@ -177,15 +186,16 @@ m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])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 +208,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 +219,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 +279,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 +296,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 +431,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 +456,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 +484,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 +510,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 +557,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 +570,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 +586,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 +608,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 +631,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 +653,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 +666,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 +695,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,27 +715,31 @@ 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" cat <<_LT_EOF >> "$cfgfile" #! $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. -# + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + _LT_COPYING _LT_LIBTOOL_TAGS +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS @@ -733,13 +747,24 @@ _LT_LIBTOOL_TAG_VARS _LT_EOF + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # 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 +781,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 +798,6 @@ _LT_EOF [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' - TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS @@ -974,7 +996,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 +1014,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 +1032,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 +1054,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 +1064,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' ;; - 10.[[012]]*) - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _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 +1109,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 +1151,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 +1169,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 +1189,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 +1218,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 +1247,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 +1267,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 +1282,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 +1337,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 @@ -1324,7 +1386,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - LD="${LD-ld} -m elf_i386" + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" @@ -1369,19 +1438,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 @@ -1389,7 +1459,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*) @@ -1398,7 +1468,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 ;; *) @@ -1414,7 +1484,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) ;; esac -need_locks="$enable_libtool_lock" +need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK @@ -1433,11 +1503,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 @@ -1445,7 +1515,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 @@ -1476,7 +1546,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" ;; *) @@ -1512,7 +1582,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 @@ -1539,7 +1609,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]) @@ -1561,7 +1631,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 @@ -1580,10 +1650,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]) @@ -1604,7 +1674,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*) @@ -1644,7 +1714,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` @@ -1694,22 +1764,23 @@ 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"; then + if test -n "$lt_cv_sys_max_cmd_len" && \ + 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 @@ -1725,7 +1796,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) @@ -1753,7 +1824,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 @@ -1800,9 +1871,9 @@ else # endif #endif -/* When -fvisbility=hidden is used, assume the code has been annotated +/* When -fvisibility=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 @@ -1828,7 +1899,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 @@ -1849,7 +1920,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 @@ -1859,44 +1930,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]) ]) ]) ]) @@ -1905,21 +1984,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], @@ -1929,7 +2008,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 @@ -1939,9 +2018,9 @@ else ]) fi - CPPFLAGS="$save_CPPFLAGS" - LDFLAGS="$save_LDFLAGS" - LIBS="$save_LIBS" + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS ;; esac @@ -2033,8 +2112,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 @@ -2044,8 +2123,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 @@ -2072,8 +2151,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 @@ -2085,15 +2164,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 @@ -2107,12 +2186,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 @@ -2136,7 +2215,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]) @@ -2154,6 +2233,47 @@ _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics @@ -2164,17 +2284,18 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])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 @@ -2190,28 +2311,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--; } @@ -2225,7 +2353,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 @@ -2234,7 +2362,7 @@ fi]) library_names_spec= libname_spec='lib$name' soname_spec= -shrext_cmds=".so" +shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -2251,14 +2379,17 @@ hardcode_into_libs=no # flags to be left without arguments need_version=unknown +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + 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]]*) @@ -2266,41 +2397,91 @@ 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 + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # 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 + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' # 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}' - else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' # 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' - fi + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac shlibpath_var=LIBPATH fi ;; @@ -2310,18 +2491,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 ;; @@ -2329,8 +2510,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" @@ -2342,7 +2523,7 @@ bsdi[[45]]*) cygwin* | mingw* | pw32* | cegcc*) version_type=windows - shrext_cmds=".dll" + shrext_cmds=.dll need_version=no need_lib_prefix=no @@ -2351,8 +2532,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~ @@ -2368,17 +2549,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' @@ -2387,8 +2568,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*) @@ -2415,7 +2596,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'` @@ -2428,8 +2609,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' @@ -2442,7 +2623,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 @@ -2455,8 +2636,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`' @@ -2469,8 +2650,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 ;; @@ -2488,12 +2669,13 @@ 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$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' 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 @@ -2518,26 +2700,15 @@ freebsd* | dragonfly*) esac ;; -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' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - haiku*) version_type=linux # correct to gnu/linux during the next big refactor 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 ;; @@ -2555,14 +2726,15 @@ 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" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' @@ -2570,8 +2742,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 ;; @@ -2580,8 +2752,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, ... @@ -2594,8 +2766,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 @@ -2606,7 +2778,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 @@ -2614,8 +2786,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= @@ -2634,8 +2806,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 ;; @@ -2644,13 +2816,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) +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 @@ -2678,11 +2870,15 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) # Add ABI-specific directories to the system library path. sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" - # Append ld.so.conf contents to the search path + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" - fi # We used to test for /lib/ld.so.1 and disable shared libraries on @@ -2699,12 +2895,12 @@ netbsd*) 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 @@ -2714,7 +2910,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 ;; @@ -2723,58 +2919,68 @@ 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" + version_type=windows + shrext_cmds=.dll + need_version=no need_lib_prefix=no - library_names_spec='$libname${shared_ext} $libname.a' + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + 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~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' ;; 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*) @@ -2785,8 +2991,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 @@ -2796,11 +3002,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 @@ -2808,8 +3014,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) @@ -2830,24 +3036,24 @@ 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf + version_type=sco 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' @@ -2865,7 +3071,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 @@ -2873,8 +3079,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 ;; @@ -2883,20 +3089,30 @@ 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 +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) @@ -2929,39 +3145,41 @@ _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) -_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], - [Run-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER # _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 : @@ -2984,11 +3202,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 @@ -3006,7 +3224,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 @@ -3033,16 +3251,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` ;; @@ -3056,7 +3274,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. @@ -3067,37 +3285,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 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies @@ -3183,13 +3438,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]]*) @@ -3216,8 +3471,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 @@ -3253,10 +3507,6 @@ freebsd* | dragonfly*) fi ;; -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -3295,7 +3545,7 @@ irix5* | irix6* | nonstopux*) ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; @@ -3317,8 +3567,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)$' @@ -3371,6 +3621,9 @@ sysv4 | sysv4.3*) tpf*) lt_cv_deplibs_check_method=pass_all ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; esac ]) @@ -3411,33 +3664,38 @@ 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'*) + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'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 @@ -3448,21 +3706,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=: @@ -3470,8 +3728,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 @@ -3517,8 +3775,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 @@ -3530,7 +3788,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 ]) @@ -3557,13 +3815,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 @@ -3575,11 +3848,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]) @@ -3598,7 +3871,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' ;; @@ -3650,7 +3923,7 @@ cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) - if test "$host_cpu" = ia64; then + if test ia64 = "$host_cpu"; then symcode='[[ABCDEGRST]]' fi ;; @@ -3683,14 +3956,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= @@ -3708,21 +4011,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'" @@ -3762,11 +4068,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 @@ -3792,7 +4098,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} }; @@ -3812,9 +4118,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 @@ -3835,7 +4141,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= @@ -3862,12 +4168,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 @@ -3883,17 +4193,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*) @@ -3904,8 +4215,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 @@ -3921,6 +4232,11 @@ m4_if([$1], [CXX], [ # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac ;; darwin* | rhapsody*) # PIC is the default on this platform @@ -3970,7 +4286,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 @@ -4011,14 +4327,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 @@ -4047,7 +4363,7 @@ m4_if([$1], [CXX], [ ;; esac ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler @@ -4055,7 +4371,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' @@ -4200,17 +4516,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*) @@ -4221,8 +4538,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 @@ -4239,6 +4556,11 @@ m4_if([$1], [CXX], [ # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac ;; darwin* | rhapsody*) @@ -4309,7 +4631,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 @@ -4317,11 +4639,30 @@ 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). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac ;; hpux9* | hpux10* | hpux11*) @@ -4337,7 +4678,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*) @@ -4346,9 +4687,9 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + 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' @@ -4373,6 +4714,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) @@ -4470,7 +4817,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 @@ -4499,7 +4846,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)= ;; @@ -4565,17 +4912,21 @@ m4_if([$1], [CXX], [ case $host_os in aix[[4-9]]*) # 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 - # Also, AIX nm treats weak defined symbols like other global defined - # symbols, whereas GNU nm marks them as "W". + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' 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 @@ -4621,9 +4972,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 @@ -4639,7 +4990,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 ;; @@ -4647,7 +4998,7 @@ 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 ;; esac @@ -4657,7 +5008,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 @@ -4679,24 +5030,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 ... @@ -4709,7 +5060,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 @@ -4728,7 +5079,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) @@ -4744,7 +5095,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 @@ -4754,7 +5105,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 @@ -4762,61 +5113,89 @@ _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 ;; + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $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' ;; @@ -4827,42 +5206,47 @@ _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 + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; 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 @@ -4876,8 +5260,8 @@ _LT_EOF _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 ;; @@ -4895,8 +5279,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 @@ -4908,7 +5292,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 @@ -4923,9 +5307,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 @@ -4942,15 +5326,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)= @@ -4966,7 +5350,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 @@ -4974,34 +5358,57 @@ _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 - # Also, AIX nm treats weak defined symbols like other global - # defined symbols, whereas GNU nm marks them as "W". + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive 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 done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi ;; esac @@ -5020,13 +5427,21 @@ _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,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac - 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 @@ -5045,61 +5460,80 @@ _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 + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' 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 + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' 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 aix,yes = "$with_aix_soname,$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)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; @@ -5108,7 +5542,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) @@ -5138,16 +5572,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 @@ -5156,18 +5591,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 @@ -5176,7 +5611,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. @@ -5226,33 +5661,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 @@ -5260,25 +5695,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, [], [ @@ -5286,14 +5721,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 @@ -5304,7 +5739,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. @@ -5315,16 +5750,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; }]], @@ -5337,21 +5772,31 @@ _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 ;; + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + 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 @@ -5366,7 +5811,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 ;; @@ -5374,27 +5819,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 @@ -5405,33 +5842,53 @@ _LT_EOF _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; 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' @@ -5442,24 +5899,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 @@ -5469,11 +5926,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 @@ -5483,10 +5940,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 @@ -5535,43 +5992,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 ;; @@ -5586,17 +6043,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 @@ -5613,7 +6070,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. @@ -5693,12 +6150,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 @@ -5739,10 +6196,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. @@ -5782,18 +6239,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' @@ -5801,8 +6258,12 @@ 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"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac fi ;; esac @@ -5810,13 +6271,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 @@ -5824,14 +6285,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 @@ -5873,7 +6334,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;" @@ -5915,35 +6376,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 @@ -5979,18 +6440,30 @@ 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 # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in @@ -6000,6 +6473,13 @@ if test "$_lt_caught_CXX_error" != yes; then ;; esac done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi ;; esac @@ -6018,13 +6498,21 @@ 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,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac - 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 @@ -6042,64 +6530,84 @@ 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 + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' 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 + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' 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 aix,yes = "$with_aix_soname,$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' + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' # 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' 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)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; @@ -6109,7 +6617,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 @@ -6137,57 +6645,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 @@ -6198,6 +6707,34 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_DARWIN_LINKER_FEATURES($1) ;; + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + dgux*) case $cc_basename in ec++*) @@ -6232,18 +6769,15 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(ld_shlibs, $1)=yes ;; - gnu*) - ;; - 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 @@ -6255,7 +6789,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. @@ -6264,11 +6798,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 @@ -6278,15 +6812,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 @@ -6312,13 +6846,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 @@ -6329,20 +6863,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 @@ -6357,22 +6891,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 @@ -6381,22 +6915,22 @@ 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 ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler @@ -6404,8 +6938,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. @@ -6414,10 +6948,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. @@ -6431,59 +6965,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' @@ -6497,18 +7031,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 ;; *) @@ -6516,10 +7050,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 @@ -6577,22 +7111,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 @@ -6608,9 +7137,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 @@ -6628,17 +7157,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 @@ -6653,21 +7182,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 @@ -6713,9 +7242,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 @@ -6723,7 +7252,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' ;; @@ -6740,30 +7269,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 @@ -6771,11 +7300,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 @@ -6784,52 +7313,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 ;; @@ -6860,10 +7389,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 @@ -6890,7 +7419,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 @@ -6912,13 +7441,14 @@ 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 + # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose @@ -7002,13 +7532,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 @@ -7024,16 +7554,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 @@ -7041,9 +7571,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= @@ -7058,15 +7588,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 @@ -7097,51 +7627,6 @@ interix[[3-9]]*) _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - if test "$solaris_use_stlport4" != yes; then - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # 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 - _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; esac ]) @@ -7150,7 +7635,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]) @@ -7170,10 +7655,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 @@ -7210,7 +7695,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 @@ -7232,7 +7717,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"} @@ -7246,21 +7731,25 @@ 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"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac fi ;; esac @@ -7268,11 +7757,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 @@ -7289,9 +7778,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 @@ -7301,11 +7790,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 @@ -7342,7 +7831,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 @@ -7364,7 +7853,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"} @@ -7380,21 +7869,25 @@ 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"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac fi ;; esac @@ -7402,11 +7895,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 @@ -7426,7 +7919,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 @@ -7436,7 +7929,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 @@ -7470,7 +7963,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. @@ -7507,7 +8000,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 @@ -7541,7 +8034,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. @@ -7578,7 +8071,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 @@ -7594,7 +8087,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 @@ -7604,7 +8097,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= @@ -7633,7 +8126,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 ]) @@ -7744,7 +8237,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 @@ -7761,9 +8254,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 @@ -7787,27 +8280,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 @@ -7831,102 +8304,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..94b0829 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-2015 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,15 @@ 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_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) ]) ])# _LT_SET_OPTIONS @@ -112,7 +114,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 +150,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 +159,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 +174,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 +213,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 +228,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 +267,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 +282,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 +306,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: @@ -319,11 +321,64 @@ dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + # _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 +389,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 +412,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..48bc934 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-2015 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..fa04b52 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-2015 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 4179 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.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.2' -macro_revision='1.3337' +[macro_version='2.4.6' +macro_revision='2.4.6' _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..c6b26f8 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-2015 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..f62bbae 100755 --- a/missing +++ b/missing @@ -3,7 +3,7 @@ scriptversion=2013-10-28.13; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify diff --git a/src/Makefile.in b/src/Makefile.in index f54e08a..f4626ad 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -41,7 +41,17 @@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -106,8 +116,6 @@ build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = fcarch$(EXEEXT) subdir = src -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -233,6 +243,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -300,6 +311,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -322,6 +334,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -498,7 +511,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -754,8 +766,8 @@ maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -@ENABLE_SHARED_FALSE@uninstall-local: @ENABLE_SHARED_FALSE@install-data-local: +@ENABLE_SHARED_FALSE@uninstall-local: clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ @@ -845,6 +857,8 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-local tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES \ uninstall-local +.PRECIOUS: Makefile + # gcc import library install/uninstall diff --git a/src/fcarch.c b/src/fcarch.c index 4a921c0..6ca15a9 100644 --- a/src/fcarch.c +++ b/src/fcarch.c @@ -48,7 +48,7 @@ FC_ASSERT_STATIC (0x08 + 1*FC_MAX(SIZEOF_VOID_P,ALIGNOF_DOUBLE) == sizeof (FcVal FC_ASSERT_STATIC (0x00 + 2*SIZEOF_VOID_P == sizeof (FcPatternElt)); FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcPattern)); FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcCharSet)); -FC_ASSERT_STATIC (0x08 + 6*SIZEOF_VOID_P == sizeof (FcCache)); +FC_ASSERT_STATIC (0x10 + 6*SIZEOF_VOID_P == sizeof (FcCache)); int diff --git a/src/fcatomic.c b/src/fcatomic.c index 2ce419f..d12d324 100644 --- a/src/fcatomic.c +++ b/src/fcatomic.c @@ -131,7 +131,7 @@ FcAtomicLock (FcAtomic *atomic) return FcFalse; } ret = link ((char *) atomic->tmp, (char *) atomic->lck); - if (ret < 0 && (errno == EPERM || errno == ENOTSUP)) + if (ret < 0 && (errno == EPERM || errno == ENOTSUP || errno == EACCES)) { /* the filesystem where atomic->lck points to may not supports * the hard link. so better try to fallback diff --git a/src/fccache.c b/src/fccache.c index 25538bd..02ec301 100644 --- a/src/fccache.c +++ b/src/fccache.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -34,6 +35,9 @@ # include # include #endif +#if defined(_WIN32) +#include +#endif #ifndef O_BINARY #define O_BINARY 0 @@ -253,6 +257,7 @@ struct _FcCacheSkip { dev_t cache_dev; ino_t cache_ino; time_t cache_mtime; + long cache_mtime_nano; FcCacheSkip *next[1]; }; @@ -380,12 +385,18 @@ FcCacheInsert (FcCache *cache, struct stat *cache_stat) s->cache_dev = cache_stat->st_dev; s->cache_ino = cache_stat->st_ino; s->cache_mtime = cache_stat->st_mtime; +#ifdef HAVE_STRUCT_STAT_ST_MTIM + s->cache_mtime_nano = cache_stat->st_mtim.tv_nsec; +#else + s->cache_mtime_nano = 0; +#endif } else { s->cache_dev = 0; s->cache_ino = 0; s->cache_mtime = 0; + s->cache_mtime_nano = 0; } /* @@ -473,6 +484,10 @@ FcCacheFindByStat (struct stat *cache_stat) s->cache_ino == cache_stat->st_ino && s->cache_mtime == cache_stat->st_mtime) { +#ifdef HAVE_STRUCT_STAT_ST_MTIM + if (s->cache_mtime != cache_stat->st_mtim.tv_nsec) + continue; +#endif FcRefInc (&s->ref); unlock_cache (); return s->cache; @@ -540,6 +555,7 @@ static FcBool FcCacheTimeValid (FcConfig *config, FcCache *cache, struct stat *dir_stat) { struct stat dir_static; + FcBool fnano = FcTrue; if (!dir_stat) { @@ -558,37 +574,94 @@ FcCacheTimeValid (FcConfig *config, FcCache *cache, struct stat *dir_stat) FcStrFree (d); dir_stat = &dir_static; } +#ifdef HAVE_STRUCT_STAT_ST_MTIM + fnano = (cache->checksum_nano == dir_stat->st_mtim.tv_nsec); + if (FcDebug () & FC_DBG_CACHE) + printf ("FcCacheTimeValid dir \"%s\" cache checksum %d.%ld dir checksum %d.%ld\n", + FcCacheDir (cache), cache->checksum, (long)cache->checksum_nano, (int) dir_stat->st_mtime, dir_stat->st_mtim.tv_nsec); +#else if (FcDebug () & FC_DBG_CACHE) printf ("FcCacheTimeValid dir \"%s\" cache checksum %d dir checksum %d\n", FcCacheDir (cache), cache->checksum, (int) dir_stat->st_mtime); - return cache->checksum == (int) dir_stat->st_mtime; +#endif + + return cache->checksum == (int) dir_stat->st_mtime && fnano; } static FcBool -FcCacheDirsValid (FcConfig *config, FcCache *cache) +FcCacheOffsetsValid (FcCache *cache) { - FcStrSet *dirs = FcStrSetCreate (); - FcBool ret = FcFalse; - const FcChar8 *sysroot = FcConfigGetSysRoot (config); - FcChar8 *d; + char *base = (char *)cache; + char *end = base + cache->size; + intptr_t *dirs; + FcFontSet *fs; + int i, j; + + if (cache->dir < 0 || cache->dir > cache->size - sizeof (intptr_t) || + memchr (base + cache->dir, '\0', cache->size - cache->dir) == NULL) + return FcFalse; - if (!dirs) - goto bail; - if (sysroot) - d = FcStrBuildFilename (sysroot, FcCacheDir (cache), NULL); - else - d = FcStrdup (FcCacheDir (cache)); - if (!FcDirScanOnly (dirs, d, config)) - goto bail1; - ret = cache->dirs_count == dirs->num; - if (FcDebug () & FC_DBG_CACHE) - printf ("%s: cache: %d, fs: %d\n", d, cache->dirs_count, dirs->num); + if (cache->dirs < 0 || cache->dirs >= cache->size || + cache->dirs_count < 0 || + cache->dirs_count > (cache->size - cache->dirs) / sizeof (intptr_t)) + return FcFalse; -bail1: - FcStrSetDestroy (dirs); - FcStrFree (d); -bail: - return ret; + dirs = FcCacheDirs (cache); + if (dirs) + { + for (i = 0; i < cache->dirs_count; i++) + { + FcChar8 *dir; + + if (dirs[i] < 0 || + dirs[i] > end - (char *) dirs - sizeof (intptr_t)) + return FcFalse; + + dir = FcOffsetToPtr (dirs, dirs[i], FcChar8); + if (memchr (dir, '\0', end - (char *) dir) == NULL) + return FcFalse; + } + } + + if (cache->set < 0 || cache->set > cache->size - sizeof (FcFontSet)) + return FcFalse; + + fs = FcCacheSet (cache); + if (fs) + { + if (fs->nfont > (end - (char *) fs) / sizeof (FcPattern)) + return FcFalse; + + if (fs->fonts != 0 && !FcIsEncodedOffset(fs->fonts)) + return FcFalse; + + for (i = 0; i < fs->nfont; i++) + { + FcPattern *font = FcFontSetFont (fs, i); + FcPatternElt *e; + FcValueListPtr l; + + if ((char *) font < base || + (char *) font > end - sizeof (FcFontSet) || + font->elts_offset < 0 || + font->elts_offset > end - (char *) font || + font->num > (end - (char *) font - font->elts_offset) / sizeof (FcPatternElt)) + return FcFalse; + + + e = FcPatternElts(font); + if (e->values != 0 && !FcIsEncodedOffset(e->values)) + return FcFalse; + + for (j = font->num, l = FcPatternEltValues(e); j >= 0 && l; j--, l = FcValueListNext(l)) + if (l->next != NULL && !FcIsEncodedOffset(l->next)) + break; + if (j < 0) + return FcFalse; + } + } + + return FcTrue; } /* @@ -600,13 +673,13 @@ FcDirCacheMapFd (FcConfig *config, int fd, struct stat *fd_stat, struct stat *di FcCache *cache; FcBool allocated = FcFalse; - if (fd_stat->st_size < (int) sizeof (FcCache)) + if (fd_stat->st_size > INTPTR_MAX || + fd_stat->st_size < (int) sizeof (FcCache)) return NULL; cache = FcCacheFindByStat (fd_stat); if (cache) { - if (FcCacheTimeValid (config, cache, dir_stat) && - FcCacheDirsValid (config, cache)) + if (FcCacheTimeValid (config, cache, dir_stat)) return cache; FcDirCacheUnload (cache); cache = NULL; @@ -655,10 +728,10 @@ FcDirCacheMapFd (FcConfig *config, int fd, struct stat *fd_stat, struct stat *di allocated = FcTrue; } if (cache->magic != FC_CACHE_MAGIC_MMAP || - cache->version < FC_CACHE_CONTENT_VERSION || + cache->version < FC_CACHE_VERSION_NUMBER || cache->size != (intptr_t) fd_stat->st_size || + !FcCacheOffsetsValid (cache) || !FcCacheTimeValid (config, cache, dir_stat) || - !FcCacheDirsValid (config, cache) || !FcCacheInsert (cache, fd_stat)) { if (allocated) @@ -751,12 +824,16 @@ FcDirCacheValidateHelper (FcConfig *config, int fd, struct stat *fd_stat, struct ret = FcFalse; else if (c.magic != FC_CACHE_MAGIC_MMAP) ret = FcFalse; - else if (c.version < FC_CACHE_CONTENT_VERSION) + else if (c.version < FC_CACHE_VERSION_NUMBER) ret = FcFalse; else if (fd_stat->st_size != c.size) ret = FcFalse; else if (c.checksum != (int) dir_stat->st_mtime) ret = FcFalse; +#ifdef HAVE_STRUCT_STAT_ST_MTIM + else if (c.checksum_nano != dir_stat->st_mtim.tv_nsec) + ret = FcFalse; +#endif return ret; } @@ -828,9 +905,12 @@ FcDirCacheBuild (FcFontSet *set, const FcChar8 *dir, struct stat *dir_stat, FcSt serialize->linear = cache; cache->magic = FC_CACHE_MAGIC_ALLOC; - cache->version = FC_CACHE_CONTENT_VERSION; + cache->version = FC_CACHE_VERSION_NUMBER; cache->size = serialize->size; cache->checksum = (int) dir_stat->st_mtime; +#ifdef HAVE_STRUCT_STAT_ST_MTIM + cache->checksum_nano = dir_stat->st_mtim.tv_nsec; +#endif /* * Serialize directory name @@ -1018,6 +1098,11 @@ FcDirCacheWrite (FcCache *cache, FcConfig *config) skip->cache_dev = cache_stat.st_dev; skip->cache_ino = cache_stat.st_ino; skip->cache_mtime = cache_stat.st_mtime; +#ifdef HAVE_STRUCT_STAT_ST_MTIM + skip->cache_mtime_nano = cache_stat.st_mtim.tv_nsec; +#else + skip->cache_mtime_nano = 0; +#endif } unlock_cache (); } @@ -1142,6 +1227,82 @@ FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose) return ret; } +int +FcDirCacheLock (const FcChar8 *dir, + FcConfig *config) +{ + FcChar8 *cache_hashed = NULL; + FcChar8 cache_base[CACHEBASE_LEN]; + FcStrList *list; + FcChar8 *cache_dir; + const FcChar8 *sysroot = FcConfigGetSysRoot (config); + int fd = -1; + + FcDirCacheBasename (dir, cache_base); + list = FcStrListCreate (config->cacheDirs); + if (!list) + return -1; + + while ((cache_dir = FcStrListNext (list))) + { + if (sysroot) + cache_hashed = FcStrBuildFilename (sysroot, cache_dir, cache_base, NULL); + else + cache_hashed = FcStrBuildFilename (cache_dir, cache_base, NULL); + if (!cache_hashed) + break; + fd = FcOpen ((const char *)cache_hashed, O_RDWR); + FcStrFree (cache_hashed); + /* No caches in that directory. simply retry with another one */ + if (fd != -1) + { +#if defined(_WIN32) + if (_locking (fd, _LK_LOCK, 1) == -1) + goto bail; +#else + struct flock fl; + + fl.l_type = F_WRLCK; + fl.l_whence = SEEK_SET; + fl.l_start = 0; + fl.l_len = 0; + fl.l_pid = getpid (); + if (fcntl (fd, F_SETLKW, &fl) == -1) + goto bail; +#endif + break; + } + } + FcStrListDone (list); + return fd; +bail: + FcStrListDone (list); + if (fd != -1) + close (fd); + return -1; +} + +void +FcDirCacheUnlock (int fd) +{ + if (fd != -1) + { +#if defined(_WIN32) + _locking (fd, _LK_UNLCK, 1); +#else + struct flock fl; + + fl.l_type = F_UNLCK; + fl.l_whence = SEEK_SET; + fl.l_start = 0; + fl.l_len = 0; + fl.l_pid = getpid (); + fcntl (fd, F_SETLK, &fl); +#endif + close (fd); + } +} + /* * Hokey little macro trick to permit the definitions of C functions * with the same name as CPP macros diff --git a/src/fccfg.c b/src/fccfg.c index b92270b..9f8ee7c 100644 --- a/src/fccfg.c +++ b/src/fccfg.c @@ -368,7 +368,6 @@ FcConfigAddDirList (FcConfig *config, FcSetName set, FcStrSet *dirSet) FcStrList *dirlist; FcChar8 *dir; FcCache *cache; - FcBool ret = FcFalse; dirlist = FcStrListCreate (dirSet); if (!dirlist) @@ -383,10 +382,9 @@ FcConfigAddDirList (FcConfig *config, FcSetName set, FcStrSet *dirSet) continue; FcConfigAddCache (config, cache, set, dirSet); FcDirCacheUnload (cache); - ret = FcTrue; } FcStrListDone (dirlist); - return ret; + return FcTrue; } /* @@ -1843,6 +1841,7 @@ FcConfigSubstitute (FcConfig *config, #if defined (_WIN32) static FcChar8 fontconfig_path[1000] = ""; /* MT-dontcare */ +FcChar8 fontconfig_instprefix[1000] = ""; /* MT-dontcare */ # if (defined (PIC) || defined (DLL_EXPORT)) @@ -1877,6 +1876,7 @@ DllMain (HINSTANCE hinstDLL, if (p && (FcStrCmpIgnoreCase (p + 1, (const FcChar8 *) "bin") == 0 || FcStrCmpIgnoreCase (p + 1, (const FcChar8 *) "lib") == 0)) *p = '\0'; + strcat ((char *) fontconfig_instprefix, (char *) fontconfig_path); strcat ((char *) fontconfig_path, "\\etc\\fonts"); } else @@ -2197,7 +2197,6 @@ FcConfigAppFontAddFile (FcConfig *config, FcStrSet *subdirs; FcStrList *sublist; FcChar8 *subdir; - FcBool ret = FcFalse; if (!config) { @@ -2206,7 +2205,7 @@ FcConfigAppFontAddFile (FcConfig *config, return FcFalse; } - subdirs = FcStrSetCreate (); + subdirs = FcStrSetCreateEx (FCSS_GROW_BY_64); if (!subdirs) return FcFalse; @@ -2231,13 +2230,12 @@ FcConfigAppFontAddFile (FcConfig *config, { while ((subdir = FcStrListNext (sublist))) { - if (FcConfigAppFontAddDir (config, subdir)) - ret = FcTrue; + FcConfigAppFontAddDir (config, subdir); } FcStrListDone (sublist); } FcStrSetDestroy (subdirs); - return ret; + return FcTrue; } FcBool @@ -2246,7 +2244,6 @@ FcConfigAppFontAddDir (FcConfig *config, { FcFontSet *set; FcStrSet *dirs; - FcBool ret = FcTrue; if (!config) { @@ -2255,7 +2252,7 @@ FcConfigAppFontAddDir (FcConfig *config, return FcFalse; } - dirs = FcStrSetCreate (); + dirs = FcStrSetCreateEx (FCSS_GROW_BY_64); if (!dirs) return FcFalse; @@ -2265,8 +2262,8 @@ FcConfigAppFontAddDir (FcConfig *config, set = FcFontSetCreate (); if (!set) { - ret = FcFalse; - goto bail; + FcStrSetDestroy (dirs); + return FcFalse; } FcConfigSetFonts (config, set, FcSetApplication); } @@ -2274,10 +2271,12 @@ FcConfigAppFontAddDir (FcConfig *config, FcStrSetAddFilename (dirs, dir); if (!FcConfigAddDirList (config, FcSetApplication, dirs)) - ret = FcFalse; -bail: + { + FcStrSetDestroy (dirs); + return FcFalse; + } FcStrSetDestroy (dirs); - return ret; + return FcTrue; } void diff --git a/src/fccharset.c b/src/fccharset.c index 6e0093f..3f17892 100644 --- a/src/fccharset.c +++ b/src/fccharset.c @@ -164,6 +164,14 @@ FcCharSetPutLeaf (FcCharSet *fcs, unsigned int alloced = 8; leaves = malloc (alloced * sizeof (*leaves)); numbers = malloc (alloced * sizeof (*numbers)); + if (!leaves || !numbers) + { + if (leaves) + free (leaves); + if (numbers) + free (numbers); + return FcFalse; + } } else { @@ -172,8 +180,19 @@ FcCharSetPutLeaf (FcCharSet *fcs, alloced *= 2; new_leaves = realloc (leaves, alloced * sizeof (*leaves)); + if (!new_leaves) + return FcFalse; numbers = realloc (numbers, alloced * sizeof (*numbers)); - + if (!numbers) + { + /* Revert the reallocation of leaves */ + leaves = realloc (new_leaves, (alloced / 2) * sizeof (*new_leaves)); + /* unlikely to fail though */ + if (!leaves) + return FcFalse; + fcs->leaves_offset = FcPtrToOffset (fcs, leaves); + return FcFalse; + } distance = (intptr_t) new_leaves - (intptr_t) leaves; if (new_leaves && distance) { @@ -184,9 +203,6 @@ FcCharSetPutLeaf (FcCharSet *fcs, leaves = new_leaves; } - if (!leaves || !numbers) - return FcFalse; - fcs->leaves_offset = FcPtrToOffset (fcs, leaves); fcs->numbers_offset = FcPtrToOffset (fcs, numbers); } diff --git a/src/fcdbg.c b/src/fcdbg.c index ef038f0..c2853ff 100644 --- a/src/fcdbg.c +++ b/src/fcdbg.c @@ -29,8 +29,6 @@ static void _FcValuePrintFile (FILE *f, const FcValue v) { - FcRange r; - switch (v.type) { case FcTypeUnknown: fprintf (f, ""); @@ -64,8 +62,7 @@ _FcValuePrintFile (FILE *f, const FcValue v) fprintf (f, "face"); break; case FcTypeRange: - r = FcRangeCanonicalize (v.u.r); - fprintf (f, "(%g, %g)", r.u.d.begin, r.u.d.end); + fprintf (f, "[%g %g)", v.u.r->begin, v.u.r->end); break; } } @@ -214,6 +211,84 @@ FcPatternPrint (const FcPattern *p) } void +FcPatternPrint2 (FcPattern *pp1, + FcPattern *pp2, + const FcObjectSet *os) +{ + int i, j, k, pos; + FcPatternElt *e1, *e2; + FcPattern *p1, *p2; + + if (os) + { + p1 = FcPatternFilter (pp1, os); + p2 = FcPatternFilter (pp2, os); + } + else + { + p1 = pp1; + p2 = pp2; + } + printf ("Pattern has %d elts (size %d), %d elts (size %d)\n", + p1->num, p1->size, p2->num, p2->size); + for (i = 0, j = 0; i < p1->num; i++) + { + e1 = &FcPatternElts(p1)[i]; + e2 = &FcPatternElts(p2)[j]; + if (!e2 || e1->object != e2->object) + { + pos = FcPatternPosition (p2, FcObjectName (e1->object)); + if (pos >= 0) + { + for (k = j; k < pos; k++) + { + e2 = &FcPatternElts(p2)[k]; + printf ("\t%s: (None) -> ", FcObjectName (e2->object)); + FcValueListPrint (FcPatternEltValues (e2)); + printf ("\n"); + } + j = pos; + goto cont; + } + else + { + printf ("\t%s:", FcObjectName (e1->object)); + FcValueListPrint (FcPatternEltValues (e1)); + printf (" -> (None)\n"); + } + } + else + { + cont: + printf ("\t%s:", FcObjectName (e1->object)); + FcValueListPrint (FcPatternEltValues (e1)); + printf (" -> "); + e2 = &FcPatternElts(p2)[j]; + FcValueListPrint (FcPatternEltValues (e2)); + printf ("\n"); + j++; + } + } + if (j < p2->num) + { + for (k = j; k < p2->num; k++) + { + e2 = &FcPatternElts(p2)[k]; + if (FcObjectName (e2->object)) + { + printf ("\t%s: (None) -> ", FcObjectName (e2->object)); + FcValueListPrint (FcPatternEltValues (e2)); + printf ("\n"); + } + } + } + if (p1 != pp1) + FcPatternDestroy (p1); + if (p2 != pp2) + FcPatternDestroy (p2); +} + +void FcOpPrint (FcOp op_) { FcOp op = FC_OP_GET_OP (op_); @@ -267,8 +342,6 @@ FcOpPrint (FcOp op_) void FcExprPrint (const FcExpr *expr) { - FcRange r; - if (!expr) printf ("none"); else switch (FC_OP_GET_OP (expr->op)) { case FcOpInteger: printf ("%d", expr->u.ival); break; @@ -286,8 +359,7 @@ FcExprPrint (const FcExpr *expr) printf ("]"); break; case FcOpRange: - r = FcRangeCanonicalize (expr->u.rval); - printf ("(%g, %g)", r.u.d.begin, r.u.d.end); + printf ("(%g, %g)", expr->u.rval->begin, expr->u.rval->end); break; case FcOpBool: printf ("%s", expr->u.bval ? "true" : "false"); break; case FcOpCharSet: printf ("charset\n"); break; diff --git a/src/fcdefault.c b/src/fcdefault.c index 7c16f48..6647a8f 100644 --- a/src/fcdefault.c +++ b/src/fcdefault.c @@ -38,6 +38,7 @@ static const struct { { FC_GLOBAL_ADVANCE_OBJECT, FcTrue }, /* !FC_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH */ { FC_EMBEDDED_BITMAP_OBJECT, FcTrue }, /* !FC_LOAD_NO_BITMAP */ { FC_DECORATIVE_OBJECT, FcFalse }, + { FC_SYMBOL_OBJECT, FcFalse }, }; #define NUM_FC_BOOL_DEFAULTS (int) (sizeof FcBoolDefaults / sizeof FcBoolDefaults[0]) @@ -94,7 +95,6 @@ retry: { FcStrSet *langs = FcGetDefaultLangs (); lang = FcStrdup (langs->strs[0]); - FcStrSetDestroy (langs); if (!fc_atomic_ptr_cmpexch (&default_lang, NULL, lang)) { free (lang); diff --git a/src/fcdir.c b/src/fcdir.c index 593382f..fd62a34 100644 --- a/src/fcdir.c +++ b/src/fcdir.c @@ -23,6 +23,9 @@ */ #include "fcint.h" +#include "fcftint.h" +#include +#include FT_FREETYPE_H #include FcBool @@ -65,13 +68,20 @@ FcFileScanFontConfig (FcFontSet *set, const FcChar8 *file, FcConfig *config) { + FT_Library ftLibrary; + FT_Face face; FcPattern *font; FcBool ret = FcTrue; + int num_faces = 0; + int num_instances = 0; + int face_num = 0; + int instance_num = 0; int id; - int count = 0; const FcChar8 *sysroot = FcConfigGetSysRoot (config); - id = 0; + if (FT_Init_FreeType (&ftLibrary)) + return FcFalse; + do { font = 0; @@ -83,14 +93,22 @@ FcFileScanFontConfig (FcFontSet *set, printf ("\tScanning file %s...", file); fflush (stdout); } - font = FcFreeTypeQuery (file, id, blanks, &count); + + id = ((instance_num << 16) + face_num); + if (FT_New_Face (ftLibrary, (char *) file, id, &face)) + return FcFalse; + num_faces = face->num_faces; + num_instances = face->style_flags >> 16; + font = FcFreeTypeQueryFace (face, file, id, blanks); + FT_Done_Face (face); + if (FcDebug () & FC_DBG_SCAN) printf ("done\n"); /* * Get rid of sysroot here so that targeting scan rule may contains FC_FILE pattern * and they should usually expect without sysroot. */ - if (sysroot) + if (font && sysroot) { size_t len = strlen ((const char *)sysroot); FcChar8 *f = NULL; @@ -136,10 +154,20 @@ FcFileScanFontConfig (FcFontSet *set, ret = FcFalse; } } - else if (font) - FcPatternDestroy (font); - id++; - } while (font && ret && id < count); + else + ret = FcFalse; + + if (instance_num < num_instances) + instance_num++; + else + { + face_num++; + instance_num = 0; + } + } while (font && ret && face_num < num_faces); + + FT_Done_FreeType (ftLibrary); + return ret; } @@ -205,8 +233,7 @@ FcDirScanConfig (FcFontSet *set, FcBlanks *blanks, const FcChar8 *dir, FcBool force, /* XXX unused */ - FcConfig *config, - FcBool scanOnly) + FcConfig *config) { DIR *d; struct dirent *e; @@ -222,7 +249,7 @@ FcDirScanConfig (FcFontSet *set, if (!set && !dirs) return FcTrue; - if (!blanks && !scanOnly) + if (!blanks) blanks = FcConfigGetBlanks (config); /* freed below */ @@ -248,7 +275,7 @@ FcDirScanConfig (FcFontSet *set, goto bail; } - files = FcStrSetCreate (); + files = FcStrSetCreateEx (FCSS_ALLOW_DUPLICATES | FCSS_GROW_BY_64); if (!files) { ret = FcFalse; @@ -275,17 +302,7 @@ FcDirScanConfig (FcFontSet *set, * Scan file files to build font patterns */ for (i = 0; i < files->num; i++) - { - if (scanOnly) - { - if (FcFileIsDir (files->strs[i])) - FcFileScanConfig (NULL, dirs, NULL, files->strs[i], config); - } - else - { - FcFileScanConfig (set, dirs, blanks, files->strs[i], config); - } - } + FcFileScanConfig (set, dirs, blanks, files->strs[i], config); bail2: FcStrSetDestroy (files); @@ -309,15 +326,7 @@ FcDirScan (FcFontSet *set, if (cache || !force) return FcFalse; - return FcDirScanConfig (set, dirs, blanks, dir, force, FcConfigGetCurrent (), FcFalse); -} - -FcBool -FcDirScanOnly (FcStrSet *dirs, - const FcChar8 *dir, - FcConfig *config) -{ - return FcDirScanConfig (NULL, dirs, NULL, dir, FcTrue, config, FcTrue); + return FcDirScanConfig (set, dirs, blanks, dir, force, FcConfigGetCurrent ()); } /* @@ -332,6 +341,7 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config) struct stat dir_stat; const FcChar8 *sysroot = FcConfigGetSysRoot (config); FcChar8 *d; + int fd = -1; if (sysroot) d = FcStrBuildFilename (sysroot, dir, NULL); @@ -348,14 +358,15 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config) if (!set) goto bail; - dirs = FcStrSetCreate (); + dirs = FcStrSetCreateEx (FCSS_GROW_BY_64); if (!dirs) goto bail1; + fd = FcDirCacheLock (dir, config); /* * Scan the dir */ - if (!FcDirScanConfig (set, dirs, NULL, d, FcTrue, config, FcFalse)) + if (!FcDirScanConfig (set, dirs, NULL, d, FcTrue, config)) goto bail2; /* @@ -371,6 +382,7 @@ FcDirCacheScan (const FcChar8 *dir, FcConfig *config) FcDirCacheWrite (cache, config); bail2: + FcDirCacheUnlock (fd); FcStrSetDestroy (dirs); bail1: FcFontSetDestroy (set); @@ -389,6 +401,7 @@ FcDirCacheRescan (const FcChar8 *dir, FcConfig *config) FcStrSet *dirs; const FcChar8 *sysroot = FcConfigGetSysRoot (config); FcChar8 *d = NULL; + int fd = -1; cache = FcDirCacheLoad (dir, config, NULL); if (!cache) @@ -400,14 +413,15 @@ FcDirCacheRescan (const FcChar8 *dir, FcConfig *config) d = FcStrdup (dir); if (FcStatChecksum (d, &dir_stat) < 0) goto bail; - dirs = FcStrSetCreate (); + dirs = FcStrSetCreateEx (FCSS_GROW_BY_64); if (!dirs) goto bail; + fd = FcDirCacheLock (dir, config); /* * Scan the dir */ - if (!FcDirScanConfig (NULL, dirs, NULL, d, FcTrue, config, FcFalse)) + if (!FcDirScanConfig (NULL, dirs, NULL, d, FcTrue, config)) goto bail1; /* * Rebuild the cache object @@ -422,6 +436,7 @@ FcDirCacheRescan (const FcChar8 *dir, FcConfig *config) FcDirCacheWrite (new, config); bail1: + FcDirCacheUnlock (fd); FcStrSetDestroy (dirs); bail: if (d) diff --git a/src/fcfreetype.c b/src/fcfreetype.c index 50ff348..b4d926d 100644 --- a/src/fcfreetype.c +++ b/src/fcfreetype.c @@ -62,6 +62,7 @@ #include FT_BDF_H #include FT_MODULE_H #endif +#include FT_MULTIPLE_MASTERS_H #include "ftglue.h" @@ -978,76 +979,6 @@ FcNoticeFoundry(const FT_String *notice) return 0; } -static FcBool -FcVendorMatch(const FT_Char vendor[4], const FT_Char *vendor_string) -{ - /* vendor is not necessarily NUL-terminated. */ - int i, len; - - len = strlen((char *) vendor_string); - if (memcmp(vendor, vendor_string, len) != 0) - return FcFalse; - for (i = len; i < 4; i++) - if (vendor[i] != ' ' && vendor[i] != '\0') - return FcFalse; - return FcTrue; -} - -/* This table is partly taken from ttmkfdir by Joerg Pommnitz. */ - -/* It should not contain useless entries (such as UNKN) nor duplicate - entries for padding both with spaces and NULs. */ - -static const struct { - const FT_Char vendor[5]; - const FcChar8 foundry[13]; -} FcVendorFoundries[] = { - { "ADBE", "adobe"}, - { "AGFA", "agfa"}, - { "ALTS", "altsys"}, - { "APPL", "apple"}, - { "ARPH", "arphic"}, - { "ATEC", "alltype"}, - { "B&H", "b&h"}, - { "BITS", "bitstream"}, - { "CANO", "cannon"}, - { "CLM", "culmus"}, - { "DYNA", "dynalab"}, - { "EPSN", "epson"}, - { "FJ", "fujitsu"}, - { "IBM", "ibm"}, - { "ITC", "itc"}, - { "IMPR", "impress"}, - { "LARA", "larabiefonts"}, - { "LEAF", "interleaf"}, - { "LETR", "letraset"}, - { "LINO", "linotype"}, - { "MACR", "macromedia"}, - { "MONO", "monotype"}, - { "MS", "microsoft"}, - { "MT", "monotype"}, - { "NEC", "nec"}, - { "PARA", "paratype"}, - { "QMSI", "qms"}, - { "RICO", "ricoh"}, - { "URW", "urw"}, - { "Y&Y", "y&y"} -}; - -#define NUM_VENDOR_FOUNDRIES (int) (sizeof (FcVendorFoundries) / sizeof (FcVendorFoundries[0])) - -static const FcChar8 * -FcVendorFoundry(const FT_Char vendor[4]) -{ - int i; - - if (vendor) - for(i = 0; i < NUM_VENDOR_FOUNDRIES; i++) - if (FcVendorMatch (vendor, FcVendorFoundries[i].vendor)) - return FcVendorFoundries[i].foundry; - return 0; -} - typedef struct _FcStringConst { const FcChar8 *name; int value; @@ -1239,9 +1170,16 @@ FcFreeTypeQueryFace (const FT_Face face, #if 0 FcChar8 *family = 0; #endif - FcChar8 *complex_; + FcChar8 *complex_, *foundry_ = NULL; const FcChar8 *foundry = 0; int spacing; + + /* Support for glyph-variation named-instances. */ + FT_MM_Var *master = NULL; + FT_Var_Named_Style *instance = NULL; + double weight_mult = 1.0; + double width_mult = 1.0; + TT_OS2 *os2; #if HAVE_FT_GET_PS_FONT_INFO PS_FontInfoRec psfontinfo; @@ -1269,7 +1207,8 @@ FcFreeTypeQueryFace (const FT_Face face, const char *tmp; FcRange *r = NULL; - double lower_size = 0.0L, upper_size = DBL_MAX; + + FcBool symbol = FcFalse; FcInitDebug (); /* We might be called with no initizalization whatsoever. */ @@ -1300,6 +1239,37 @@ FcFreeTypeQueryFace (const FT_Face face, goto bail1; } + if (id >> 16) + { + if (!FT_Get_MM_Var (face, &master)) + instance = &master->namedstyle[(id >> 16) - 1]; + + if (instance) + { + /* Pull out weight and width from named-instance. */ + unsigned int i; + + for (i = 0; i < master->num_axis; i++) + { + double value = instance->coords[i] / (double) (1 << 16); + double default_value = master->axis[i].def / (double) (1 << 16); + double mult = value / default_value; + //printf ("named-instance, axis %d tag %lx value %g\n", i, master->axis[i].tag, value); + switch (master->axis[i].tag) + { + case FT_MAKE_TAG ('w','g','h','t'): + weight_mult = mult; + break; + + case FT_MAKE_TAG ('w','d','t','h'): + width_mult = mult; + break; + + /* TODO optical size! */ + } + } + } + } /* * Get the OS/2 table @@ -1315,7 +1285,15 @@ FcFreeTypeQueryFace (const FT_Face face, */ if (os2 && os2->version >= 0x0001 && os2->version != 0xffff) - foundry = FcVendorFoundry(os2->achVendID); + { + if (os2->achVendID && os2->achVendID[0] != 0) + { + foundry_ = (FcChar8 *) malloc (sizeof (os2->achVendID) + 1); + memcpy ((void *)foundry_, os2->achVendID, sizeof (os2->achVendID)); + foundry_[sizeof (os2->achVendID)] = 0; + foundry = foundry_; + } + } if (FcDebug () & FC_DBG_SCANV) printf ("\n"); @@ -1350,6 +1328,19 @@ FcFreeTypeQueryFace (const FT_Face face, if (FT_Get_Sfnt_Name (face, snamei, &sname) != 0) continue; + + if (instance) + { + /* For named-instances, we regular style nameIDs, + * and map the instance's strid to FONT_SUBFAMILY. */ + if (sname.name_id == TT_NAME_ID_WWS_SUBFAMILY || + sname.name_id == TT_NAME_ID_PREFERRED_SUBFAMILY || + sname.name_id == TT_NAME_ID_FONT_SUBFAMILY) + continue; + if (sname.name_id == instance->strid) + sname.name_id = TT_NAME_ID_FONT_SUBFAMILY; + } + if (sname.name_id != nameid) continue; @@ -1489,6 +1480,8 @@ FcFreeTypeQueryFace (const FT_Face face, printf ("using FreeType family \"%s\"\n", face->family_name); if (!FcPatternAddString (pat, FC_FAMILY, (FcChar8 *) face->family_name)) goto bail1; + if (!FcPatternAddString (pat, FC_STYLELANG, (FcChar8 *) "en")) + goto bail1; ++nfamily; } @@ -1499,6 +1492,8 @@ FcFreeTypeQueryFace (const FT_Face face, printf ("using FreeType style \"%s\"\n", face->style_name); if (!FcPatternAddString (pat, FC_STYLE, (FcChar8 *) face->style_name)) goto bail1; + if (!FcPatternAddString (pat, FC_STYLELANG, (FcChar8 *) "en")) + goto bail1; ++nstyle; } @@ -1644,12 +1639,22 @@ FcFreeTypeQueryFace (const FT_Face face, if (os2 && os2->version != 0xffff) { - weight = FcWeightFromOpenType (os2->usWeightClass); + weight = os2->usWeightClass; + if (weight < 10 && weight_mult != 1.0) + { + /* Work around bad values by cleaning them up before + * multiplying by weight_mult. */ + weight = FcWeightToOpenType (FcWeightFromOpenType (weight)); + } + weight = FcWeightFromOpenType ((int) (weight * weight_mult + .5)); if ((FcDebug() & FC_DBG_SCANV) && weight != -1) - printf ("\tos2 weight class %d maps to weight %d\n", - os2->usWeightClass, weight); + printf ("\tos2 weight class %d multiplier %g maps to weight %d\n", + os2->usWeightClass, weight_mult, weight); - switch (os2->usWidthClass) { + /* TODO: + * Add FcWidthFromOpenType and FcWidthToOpenType, + * and apply width_mult post-conversion? */ + switch ((int) (os2->usWidthClass * width_mult + .5)) { case 1: width = FC_WIDTH_ULTRACONDENSED; break; case 2: width = FC_WIDTH_EXTRACONDENSED; break; case 3: width = FC_WIDTH_CONDENSED; break; @@ -1661,8 +1666,8 @@ FcFreeTypeQueryFace (const FT_Face face, case 9: width = FC_WIDTH_ULTRAEXPANDED; break; } if ((FcDebug() & FC_DBG_SCANV) && width != -1) - printf ("\tos2 width class %d maps to width %d\n", - os2->usWidthClass, width); + printf ("\tos2 width class %d multiplier %g maps to width %d\n", + os2->usWidthClass, width_mult, width); } if (os2 && (complex_ = FcFontCapabilities(face))) { @@ -1677,13 +1682,12 @@ FcFreeTypeQueryFace (const FT_Face face, #if defined (HAVE_TT_OS2_USUPPEROPTICALPOINTSIZE) && defined (HAVE_TT_OS2_USLOWEROPTICALPOINTSIZE) if (os2 && os2->version >= 0x0005 && os2->version != 0xffff) { + double lower_size, upper_size; + /* usLowerPointSize and usUpperPointSize is actually twips */ lower_size = os2->usLowerOpticalPointSize / 20.0L; upper_size = os2->usUpperOpticalPointSize / 20.0L; - } -#endif - if (os2) - { + r = FcRangeCreateDouble (lower_size, upper_size); if (!FcPatternAddRange (pat, FC_SIZE, r)) { @@ -1692,20 +1696,7 @@ FcFreeTypeQueryFace (const FT_Face face, } FcRangeDestroy (r); } - else - { - for (i = 0; i < face->num_fixed_sizes; i++) - { - double d = FcGetPixelSize (face, i); - r = FcRangeCreateDouble (d, d); - if (!FcPatternAddRange (pat, FC_SIZE, r)) - { - FcRangeDestroy (r); - goto bail1; - } - FcRangeDestroy (r); - } - } +#endif /* * Type 1: Check for FontInfo dictionary information @@ -1865,6 +1856,11 @@ FcFreeTypeQueryFace (const FT_Face face, if (!cs) goto bail1; + /* The FcFreeTypeCharSetAndSpacing() chose the encoding; test it for symbol. */ + symbol = face->charmap && face->charmap->encoding == FT_ENCODING_MS_SYMBOL; + if (!FcPatternAddBool (pat, FC_SYMBOL, symbol)) + goto bail1; + #if HAVE_FT_GET_BDF_PROPERTY /* For PCF fonts, override the computed spacing with the one from the property */ @@ -1897,9 +1893,18 @@ FcFreeTypeQueryFace (const FT_Face face, if (!FcPatternAddCharSet (pat, FC_CHARSET, cs)) goto bail2; - ls = FcFreeTypeLangSet (cs, exclusiveLang); - if (!ls) - goto bail2; + if (!symbol) + { + ls = FcFreeTypeLangSet (cs, exclusiveLang); + if (!ls) + goto bail2; + } + else + { + /* Symbol fonts don't cover any language, even though they + * claim to support Latin1 range. */ + ls = FcLangSetCreate (); + } if (!FcPatternAddLangSet (pat, FC_LANG, ls)) { @@ -1939,6 +1944,13 @@ FcFreeTypeQueryFace (const FT_Face face, * Drop our reference to the charset */ FcCharSetDestroy (cs); + if (foundry_) + free (foundry_); + + if (master) + { + /* TODO: How to free master?! */ + } return pat; @@ -1946,6 +1958,8 @@ bail2: FcCharSetDestroy (cs); bail1: FcPatternDestroy (pat); + if (foundry_) + free (foundry_); bail0: return NULL; } @@ -1993,10 +2007,6 @@ static const FT_Encoding fcFontEncodings[] = { #define NUM_DECODE (int) (sizeof (fcFontEncodings) / sizeof (fcFontEncodings[0])) -static const FcChar32 prefer_unicode[] = { - 0x20ac, /* EURO SIGN */ -}; - #include "../fc-glyphname/fcglyphname.h" static FcChar32 @@ -2153,6 +2163,22 @@ FcFreeTypeCharIndex (FT_Face face, FcChar32 ucs4) glyphindex = FT_Get_Char_Index (face, (FT_ULong) ucs4); if (glyphindex) return glyphindex; + if (ucs4 < 0x100 && face->charmap && + face->charmap->encoding == FT_ENCODING_MS_SYMBOL) + { + /* For symbol-encoded OpenType fonts, we duplicate the + * U+F000..F0FF range at U+0000..U+00FF. That's what + * Windows seems to do, and that's hinted about at: + * http://www.microsoft.com/typography/otspec/recom.htm + * under "Non-Standard (Symbol) Fonts". + * + * See thread with subject "Webdings and other MS symbol + * fonts don't display" on mailing list from May 2015. + */ + glyphindex = FT_Get_Char_Index (face, (FT_ULong) ucs4 + 0xF000); + if (glyphindex) + return glyphindex; + } } #if HAVE_FT_HAS_PS_GLYPH_NAMES /* @@ -2313,6 +2339,23 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing } ucs4 = FT_Get_Next_Char (face, ucs4, &glyph); } + if (fcFontEncodings[o] == FT_ENCODING_MS_SYMBOL) + { + /* For symbol-encoded OpenType fonts, we duplicate the + * U+F000..F0FF range at U+0000..U+00FF. That's what + * Windows seems to do, and that's hinted about at: + * http://www.microsoft.com/typography/otspec/recom.htm + * under "Non-Standard (Symbol) Fonts". + * + * See thread with subject "Webdings and other MS symbol + * fonts don't display" on mailing list from May 2015. + */ + for (ucs4 = 0xF000; ucs4 < 0xF100; ucs4++) + { + if (FcCharSetHasChar (fcs, ucs4)) + FcCharSetAddChar (fcs, ucs4 - 0xF000); + } + } #ifdef CHECK for (ucs4 = 0; ucs4 < 0x10000; ucs4++) { @@ -2327,6 +2370,8 @@ FcFreeTypeCharSetAndSpacingForSize (FT_Face face, FcBlanks *blanks, int *spacing } #endif } + + break; } #if HAVE_FT_HAS_PS_GLYPH_NAMES /* diff --git a/src/fcinit.c b/src/fcinit.c index 6134ed4..5e7c2f1 100644 --- a/src/fcinit.c +++ b/src/fcinit.c @@ -91,12 +91,23 @@ FcInitLoadOwnConfig (FcConfig *config) { FcChar8 *prefix, *p; size_t plen; + FcBool have_own = FcFalse; + char *env_file, *env_path; - fprintf (stderr, - "Fontconfig warning: no elements found. Check configuration.\n"); - fprintf (stderr, - "Fontconfig warning: adding %s\n", - FC_CACHEDIR); + env_file = getenv ("FONTCONFIG_FILE"); + env_path = getenv ("FONTCONFIG_PATH"); + if ((env_file != NULL && env_file[0] != 0) || + (env_path != NULL && env_path[0] != 0)) + have_own = FcTrue; + + if (!have_own) + { + fprintf (stderr, + "Fontconfig warning: no elements found. Check configuration.\n"); + fprintf (stderr, + "Fontconfig warning: adding %s\n", + FC_CACHEDIR); + } prefix = FcConfigXdgCacheHome (); if (!prefix) goto bail; @@ -107,8 +118,9 @@ FcInitLoadOwnConfig (FcConfig *config) prefix = p; memcpy (&prefix[plen], FC_DIR_SEPARATOR_S "fontconfig", 11); prefix[plen + 11] = 0; - fprintf (stderr, - "Fontconfig warning: adding fontconfig\n"); + if (!have_own) + fprintf (stderr, + "Fontconfig warning: adding fontconfig\n"); if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR) || !FcConfigAddCacheDir (config, (FcChar8 *) prefix)) @@ -180,6 +192,8 @@ FcFini (void) FcConfigFini (); FcCacheFini (); FcDefaultFini (); + FcObjectFini (); + FcConfigPathFini (); } /* diff --git a/src/fcint.h b/src/fcint.h index 80205c9..ac911ad 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -87,6 +87,7 @@ extern pfnSHGetFolderPathA pSHGetFolderPathA; #define FC_DBG_SCANV 256 #define FC_DBG_CONFIG 1024 #define FC_DBG_LANGSET 2048 +#define FC_DBG_MATCH2 4096 #define _FC_ASSERT_STATIC1(_line, _cond) typedef int _static_assert_on_line_##_line##_failed[(_cond)?1:-1] FC_UNUSED #define _FC_ASSERT_STATIC0(_line, _cond) _FC_ASSERT_STATIC1 (_line, (_cond)) @@ -96,11 +97,6 @@ extern pfnSHGetFolderPathA pSHGetFolderPathA; #define FC_MAX(a,b) ((a) > (b) ? (a) : (b)) #define FC_ABS(a) ((a) < 0 ? -(a) : (a)) -#define FcDoubleIsZero(a) (fabs ((a)) <= DBL_EPSILON) -#define FcDoubleCmpEQ(a,b) (fabs ((a) - (b)) <= DBL_EPSILON) -#define FcDoubleCmpGE(a,b) (FcDoubleCmpEQ (a, b) || (a) > (b)) -#define FcDoubleCmpLE(a,b) (FcDoubleCmpEQ (a, b) || (a) < (b)) - /* slim_internal.h */ #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) && !defined(__sun) #define FcPrivate __attribute__((__visibility__("hidden"))) @@ -252,21 +248,9 @@ typedef struct _FcExprName { FcMatchKind kind; } FcExprName; -typedef struct _FcRangeInt { - FcChar32 begin; - FcChar32 end; -} FcRangeInt; -typedef struct _FcRangeDouble { +struct _FcRange { double begin; double end; -} FcRangeDouble; -struct _FcRange { - FcBool is_double; - FcBool is_inclusive; - union { - FcRangeInt i; - FcRangeDouble d; - } u; }; @@ -355,11 +339,19 @@ struct _FcCharSet { FcCharLeaf)) #define FcCharSetNumbers(c) FcOffsetMember(c,numbers_offset,FcChar16) +#define FCSS_DEFAULT 0 /* default behavior */ +#define FCSS_ALLOW_DUPLICATES 1 /* allows for duplicate strings in the set */ +#define FCSS_GROW_BY_64 2 /* grows buffer by 64 elements instead of 1 */ + +#define FcStrSetHasControlBit(s,c) (s->control & c) +#define FcStrSetHasControlBits(s,c) ( (c) == (s->control & (c)) ) + struct _FcStrSet { FcRef ref; /* reference count */ int num; int size; FcChar8 **strs; + unsigned int control; /* control bits for set behavior */ }; struct _FcStrList { @@ -378,13 +370,14 @@ typedef struct _FcStrBuf { struct _FcCache { unsigned int magic; /* FC_CACHE_MAGIC_MMAP or FC_CACHE_ALLOC */ - int version; /* FC_CACHE_CONTENT_VERSION */ + int version; /* FC_CACHE_VERSION_NUMBER */ intptr_t size; /* size of file */ intptr_t dir; /* offset to dir name */ intptr_t dirs; /* offset to subdirs */ int dirs_count; /* number of subdir strings */ intptr_t set; /* offset to font set */ int checksum; /* checksum of directory state */ + int64_t checksum_nano; /* checksum of directory state */ }; #undef FcCacheDir @@ -470,7 +463,6 @@ typedef struct _FcCaseFold { #define FC_CACHE_MAGIC_MMAP 0xFC02FC04 #define FC_CACHE_MAGIC_ALLOC 0xFC02FC05 -#define FC_CACHE_CONTENT_VERSION 5 struct _FcAtomic { FcChar8 *file; /* original file name */ @@ -607,6 +599,13 @@ FcCacheFini (void); FcPrivate void FcDirCacheReference (FcCache *cache, int nref); +FcPrivate int +FcDirCacheLock (const FcChar8 *dir, + FcConfig *config); + +FcPrivate void +FcDirCacheUnlock (int fd); + /* fccfg.c */ FcPrivate FcBool @@ -811,6 +810,9 @@ FcSubstPrint (const FcSubst *subst); FcPrivate void FcCharSetPrint (const FcCharSet *c); +FcPrivate void +FcPatternPrint2 (FcPattern *p1, FcPattern *p2, const FcObjectSet *os); + extern FcPrivate int FcDebugVal; #define FcDebug() (FcDebugVal) @@ -849,13 +851,7 @@ FcDirScanConfig (FcFontSet *set, FcBlanks *blanks, const FcChar8 *dir, FcBool force, - FcConfig *config, - FcBool scanOnly); - -FcPrivate FcBool -FcDirScanOnly (FcStrSet *dirs, - const FcChar8 *dir, - FcConfig *config); + FcConfig *config); /* fcfont.c */ FcPrivate int @@ -881,6 +877,9 @@ FcInitLoadOwnConfigAndFonts (FcConfig *config); /* fcxml.c */ FcPrivate void +FcConfigPathFini (void); + +FcPrivate void FcTestDestroy (FcTest *test); FcPrivate void @@ -1054,6 +1053,9 @@ FcPatternObjectGetRange (const FcPattern *p, FcObject object, int id, FcRange ** FcPrivate FcBool FcPatternAppend (FcPattern *p, FcPattern *s); +FcPrivate int +FcPatternPosition (const FcPattern *p, const char *object); + FcPrivate FcChar32 FcStringHash (const FcChar8 *s); @@ -1080,16 +1082,10 @@ FcMatrixFree (FcMatrix *mat); /* fcrange.c */ -FcPrivate FcRange -FcRangeCanonicalize (const FcRange *range); - FcPrivate FcRange * FcRangePromote (double v, FcValuePromotionBuffer *vbuf); FcPrivate FcBool -FcRangeIsZero (const FcRange *r); - -FcPrivate FcBool FcRangeIsInRange (const FcRange *a, const FcRange *b); FcPrivate FcBool @@ -1119,6 +1115,9 @@ FcPrivate FcBool FcIsFsMtimeBroken (const FcChar8 *dir); /* fcstr.c */ +FcPrivate FcStrSet * +FcStrSetCreateEx (unsigned int control); + FcPrivate FcBool FcStrSetAddLangs (FcStrSet *strs, const char *languages); @@ -1192,6 +1191,9 @@ FcStrSerialize (FcSerialize *serialize, const FcChar8 *str); /* fcobjs.c */ +FcPrivate void +FcObjectFini (void); + FcPrivate FcObject FcObjectLookupIdByName (const char *str); diff --git a/src/fcmatch.c b/src/fcmatch.c index 46d08bc..40efbd3 100644 --- a/src/fcmatch.c +++ b/src/fcmatch.c @@ -220,7 +220,7 @@ FcCompareSizeRange (FcValue *v1, FcValue *v2) if (FcRangeIsInRange (r1, r2)) ret = 0.0; else - ret = FC_MIN (fabs (r1->u.d.end - r2->u.d.begin), fabs (r1->u.d.begin - r2->u.d.end)); + ret = FC_MIN (fabs (r1->end - r2->begin), fabs (r1->begin - r2->end)); bail: if (r1) @@ -292,6 +292,7 @@ typedef enum _FcMatcherPriority { PRI1(LANG), PRI_FAMILY_WEAK, PRI_POSTSCRIPT_NAME_WEAK, + PRI1(SYMBOL), PRI1(SPACING), PRI1(SIZE), PRI1(PIXEL_SIZE), @@ -688,6 +689,47 @@ FcFontSetMatchInternal (FcFontSet **sets, printf ("\n"); FcPatternPrint (best); } + if (FcDebug () & FC_DBG_MATCH2) + { + char *env = getenv ("FC_DBG_MATCH_FILTER"); + FcObjectSet *os = NULL; + + if (env) + { + char *ss, *s; + char *p; + FcBool f = FcTrue; + + ss = s = strdup (env); + os = FcObjectSetCreate (); + while (f) + { + size_t len; + char *x; + + if (!(p = strchr (s, ','))) + { + f = FcFalse; + len = strlen (s) + 1; + } + else + { + len = (p - s) + 1; + } + x = malloc (sizeof (char) * len); + strncpy (x, s, len - 1); + x[len - 1] = 0; + if (FcObjectFromName (x) > 0) + FcObjectSetAdd (os, x); + s = p + 1; + free (x); + } + free (ss); + } + FcPatternPrint2 (p, best, os); + if (os) + FcObjectSetDestroy (os); + } /* assuming that 'result' is initialized with FcResultNoMatch * outside this function */ if (best) diff --git a/src/fcname.c b/src/fcname.c index 1d8fe75..8be36c7 100644 --- a/src/fcname.c +++ b/src/fcname.c @@ -88,7 +88,9 @@ FcObjectValidType (FcObject object, FcType type) return FcTrue; break; case FcTypeRange: - if (type == FcTypeRange || type == FcTypeDouble) + if (type == FcTypeRange || + type == FcTypeDouble || + type == FcTypeInteger) return FcTrue; break; default: @@ -316,7 +318,7 @@ FcNameConvert (FcType type, FcChar8 *string) v.type = FcTypeVoid; break; case FcTypeRange: - if (sscanf ((char *) string, "(%lg %lg)", &b, &e) != 2) + if (sscanf ((char *) string, "[%lg %lg)", &b, &e) != 2) { v.u.d = strtod ((char *) string, &p); if (p != NULL && p[0] != 0) @@ -498,7 +500,6 @@ FcNameUnparseValue (FcStrBuf *buf, { FcChar8 temp[1024]; FcValue v = FcValueCanonicalize(v0); - FcRange r; switch (v.type) { case FcTypeUnknown: @@ -525,17 +526,8 @@ FcNameUnparseValue (FcStrBuf *buf, case FcTypeFTFace: return FcTrue; case FcTypeRange: - r = FcRangeCanonicalize (v.u.r); - if (!FcDoubleIsZero (r.u.d.begin) || !FcDoubleIsZero (r.u.d.end)) - { - if (FcDoubleCmpEQ (r.u.d.begin, r.u.d.end)) - sprintf ((char *) temp, "%g", r.u.d.begin); - else - sprintf ((char *) temp, "(%g %g)", r.u.d.begin, r.u.d.end); - return FcNameUnparseString (buf, temp, 0); - } - else - return FcTrue; + sprintf ((char *) temp, "[%g %g)", v.u.r->begin, v.u.r->end); + return FcNameUnparseString (buf, temp, 0); } return FcFalse; } diff --git a/src/fcobjs.c b/src/fcobjs.c index bad9824..16ff31c 100644 --- a/src/fcobjs.c +++ b/src/fcobjs.c @@ -44,6 +44,28 @@ struct FcObjectOtherTypeInfo { FcObject id; } *other_types; +void +FcObjectFini (void) +{ + struct FcObjectOtherTypeInfo *ots, *ot; + +retry: + ots = fc_atomic_ptr_get (&other_types); + if (!ots) + return; + if (!fc_atomic_ptr_cmpexch (&other_types, ots, NULL)) + goto retry; + + while (ots) + { + ot = ots->next; + if (ots->object.object) + free (ots->object.object); + free (ots); + ots = ot; + } +} + static FcObjectType * _FcObjectLookupOtherTypeByName (const char *str, FcObject *id) { @@ -62,12 +84,19 @@ retry: if (!ot) return NULL; - ot->object.object = (const char *) FcStrdup (str); + ot->object.object = (char *) FcStrdup (str); ot->object.type = FcTypeUnknown; ot->id = fc_atomic_int_add (next_id, +1); + if (ot->id < (FC_MAX_BASE_OBJECT + FC_EXT_OBJ_INDEX)) + { + fprintf (stderr, "Fontconfig error: No object ID to assign\n"); + abort (); + } ot->next = ots; if (!fc_atomic_ptr_cmpexch (&other_types, ots, ot)) { + if (ot->object.object) + free (ot->object.object); free (ot); goto retry; } diff --git a/src/fcobjs.h b/src/fcobjs.h index 573fa61..1fc4f65 100644 --- a/src/fcobjs.h +++ b/src/fcobjs.h @@ -69,4 +69,5 @@ FC_OBJECT (PRGNAME, FcTypeString, NULL) FC_OBJECT (HASH, FcTypeString, NULL) /* deprecated */ FC_OBJECT (POSTSCRIPT_NAME, FcTypeString, FcComparePostScript) FC_OBJECT (COLOR, FcTypeBool, FcCompareBool) +FC_OBJECT (SYMBOL, FcTypeBool, FcCompareBool) /* ^-------------- Add new objects here. */ diff --git a/src/fcobjshash.gperf b/src/fcobjshash.gperf index 6bc62df..80a0237 100644 --- a/src/fcobjshash.gperf +++ b/src/fcobjshash.gperf @@ -62,3 +62,4 @@ int id; "hash",FC_HASH_OBJECT "postscriptname",FC_POSTSCRIPT_NAME_OBJECT "color",FC_COLOR_OBJECT +"symbol",FC_SYMBOL_OBJECT diff --git a/src/fcobjshash.h b/src/fcobjshash.h index dbaee96..5a4d1ea 100644 --- a/src/fcobjshash.h +++ b/src/fcobjshash.h @@ -37,7 +37,7 @@ int name; int id; }; #include -/* maximum key range = 52, duplicates = 0 */ +/* maximum key range = 56, duplicates = 0 */ #ifdef __GNUC__ __inline @@ -51,32 +51,32 @@ FcObjectTypeHash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 17, 12, 1, - 35, 0, 56, 27, 15, 0, 56, 56, 0, 7, - 7, 0, 22, 56, 21, 10, 13, 0, 56, 56, - 1, 26, 5, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56 + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 21, 30, 3, + 36, 45, 60, 3, 15, 0, 60, 60, 0, 9, + 9, 0, 21, 60, 0, 0, 15, 0, 60, 60, + 0, 15, 24, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60 }; return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[1]]; } @@ -85,64 +85,64 @@ struct FcObjectTypeNamePool_t { char FcObjectTypeNamePool_str4[sizeof("file")]; char FcObjectTypeNamePool_str5[sizeof("color")]; - char FcObjectTypeNamePool_str6[sizeof("weight")]; char FcObjectTypeNamePool_str7[sizeof("foundry")]; char FcObjectTypeNamePool_str8[sizeof("fullname")]; - char FcObjectTypeNamePool_str9[sizeof("size")]; - char FcObjectTypeNamePool_str10[sizeof("pixelsize")]; - char FcObjectTypeNamePool_str11[sizeof("decorative")]; + char FcObjectTypeNamePool_str9[sizeof("pixelsize")]; + char FcObjectTypeNamePool_str10[sizeof("prgname")]; char FcObjectTypeNamePool_str12[sizeof("fullnamelang")]; char FcObjectTypeNamePool_str13[sizeof("globaladvance")]; - char FcObjectTypeNamePool_str14[sizeof("hinting")]; - char FcObjectTypeNamePool_str15[sizeof("minspace")]; - char FcObjectTypeNamePool_str16[sizeof("hintstyle")]; - char FcObjectTypeNamePool_str17[sizeof("fontformat")]; - char FcObjectTypeNamePool_str18[sizeof("fontversion")]; - char FcObjectTypeNamePool_str19[sizeof("fontfeatures")]; - char FcObjectTypeNamePool_str20[sizeof("outline")]; - char FcObjectTypeNamePool_str21[sizeof("autohint")]; - char FcObjectTypeNamePool_str22[sizeof("slant")]; - char FcObjectTypeNamePool_str23[sizeof("scale")]; - char FcObjectTypeNamePool_str24[sizeof("postscriptname")]; - char FcObjectTypeNamePool_str25[sizeof("dpi")]; - char FcObjectTypeNamePool_str26[sizeof("scalable")]; - char FcObjectTypeNamePool_str27[sizeof("embolden")]; - char FcObjectTypeNamePool_str28[sizeof("lang")]; - char FcObjectTypeNamePool_str29[sizeof("antialias")]; - char FcObjectTypeNamePool_str30[sizeof("family")]; - char FcObjectTypeNamePool_str31[sizeof("hash")]; - char FcObjectTypeNamePool_str32[sizeof("namelang")]; - char FcObjectTypeNamePool_str33[sizeof("embeddedbitmap")]; - char FcObjectTypeNamePool_str34[sizeof("familylang")]; - char FcObjectTypeNamePool_str35[sizeof("verticallayout")]; - char FcObjectTypeNamePool_str36[sizeof("matrix")]; - char FcObjectTypeNamePool_str37[sizeof("rasterizer")]; - char FcObjectTypeNamePool_str38[sizeof("aspect")]; - char FcObjectTypeNamePool_str39[sizeof("charset")]; - char FcObjectTypeNamePool_str40[sizeof("width")]; - char FcObjectTypeNamePool_str41[sizeof("charwidth")]; - char FcObjectTypeNamePool_str42[sizeof("charheight")]; - char FcObjectTypeNamePool_str43[sizeof("rgba")]; - char FcObjectTypeNamePool_str44[sizeof("style")]; - char FcObjectTypeNamePool_str45[sizeof("lcdfilter")]; - char FcObjectTypeNamePool_str46[sizeof("spacing")]; - char FcObjectTypeNamePool_str47[sizeof("index")]; - char FcObjectTypeNamePool_str48[sizeof("stylelang")]; - char FcObjectTypeNamePool_str49[sizeof("capability")]; - char FcObjectTypeNamePool_str55[sizeof("prgname")]; + char FcObjectTypeNamePool_str14[sizeof("postscriptname")]; + char FcObjectTypeNamePool_str16[sizeof("hinting")]; + char FcObjectTypeNamePool_str17[sizeof("minspace")]; + char FcObjectTypeNamePool_str18[sizeof("hintstyle")]; + char FcObjectTypeNamePool_str19[sizeof("fontformat")]; + char FcObjectTypeNamePool_str20[sizeof("fontversion")]; + char FcObjectTypeNamePool_str21[sizeof("fontfeatures")]; + char FcObjectTypeNamePool_str22[sizeof("outline")]; + char FcObjectTypeNamePool_str23[sizeof("autohint")]; + char FcObjectTypeNamePool_str24[sizeof("dpi")]; + char FcObjectTypeNamePool_str25[sizeof("hash")]; + char FcObjectTypeNamePool_str26[sizeof("slant")]; + char FcObjectTypeNamePool_str27[sizeof("aspect")]; + char FcObjectTypeNamePool_str28[sizeof("size")]; + char FcObjectTypeNamePool_str29[sizeof("scale")]; + char FcObjectTypeNamePool_str30[sizeof("symbol")]; + char FcObjectTypeNamePool_str31[sizeof("rasterizer")]; + char FcObjectTypeNamePool_str32[sizeof("scalable")]; + char FcObjectTypeNamePool_str33[sizeof("antialias")]; + char FcObjectTypeNamePool_str34[sizeof("lang")]; + char FcObjectTypeNamePool_str35[sizeof("style")]; + char FcObjectTypeNamePool_str36[sizeof("family")]; + char FcObjectTypeNamePool_str37[sizeof("rgba")]; + char FcObjectTypeNamePool_str38[sizeof("namelang")]; + char FcObjectTypeNamePool_str39[sizeof("stylelang")]; + char FcObjectTypeNamePool_str40[sizeof("familylang")]; + char FcObjectTypeNamePool_str41[sizeof("width")]; + char FcObjectTypeNamePool_str42[sizeof("matrix")]; + char FcObjectTypeNamePool_str43[sizeof("charset")]; + char FcObjectTypeNamePool_str45[sizeof("charwidth")]; + char FcObjectTypeNamePool_str46[sizeof("charheight")]; + char FcObjectTypeNamePool_str47[sizeof("embolden")]; + char FcObjectTypeNamePool_str48[sizeof("lcdfilter")]; + char FcObjectTypeNamePool_str49[sizeof("spacing")]; + char FcObjectTypeNamePool_str50[sizeof("index")]; + char FcObjectTypeNamePool_str51[sizeof("weight")]; + char FcObjectTypeNamePool_str52[sizeof("capability")]; + char FcObjectTypeNamePool_str53[sizeof("embeddedbitmap")]; + char FcObjectTypeNamePool_str58[sizeof("decorative")]; + char FcObjectTypeNamePool_str59[sizeof("verticallayout")]; }; static const struct FcObjectTypeNamePool_t FcObjectTypeNamePool_contents = { "file", "color", - "weight", "foundry", "fullname", - "size", "pixelsize", - "decorative", + "prgname", "fullnamelang", "globaladvance", + "postscriptname", "hinting", "minspace", "hintstyle", @@ -151,35 +151,37 @@ static const struct FcObjectTypeNamePool_t FcObjectTypeNamePool_contents = "fontfeatures", "outline", "autohint", + "dpi", + "hash", "slant", + "aspect", + "size", "scale", - "postscriptname", - "dpi", + "symbol", + "rasterizer", "scalable", - "embolden", - "lang", "antialias", + "lang", + "style", "family", - "hash", + "rgba", "namelang", - "embeddedbitmap", + "stylelang", "familylang", - "verticallayout", + "width", "matrix", - "rasterizer", - "aspect", "charset", - "width", "charwidth", "charheight", - "rgba", - "style", + "embolden", "lcdfilter", "spacing", "index", - "stylelang", + "weight", "capability", - "prgname" + "embeddedbitmap", + "decorative", + "verticallayout" }; #define FcObjectTypeNamePool ((const char *) &FcObjectTypeNamePool_contents) #ifdef __GNUC__ @@ -193,11 +195,11 @@ FcObjectTypeLookup (register const char *str, register unsigned int len) { enum { - TOTAL_KEYWORDS = 47, + TOTAL_KEYWORDS = 48, MIN_WORD_LENGTH = 3, MAX_WORD_LENGTH = 14, MIN_HASH_VALUE = 4, - MAX_HASH_VALUE = 55 + MAX_HASH_VALUE = 59 }; static const struct FcObjectTypeInfo wordlist[] = @@ -207,97 +209,103 @@ FcObjectTypeLookup (register const char *str, register unsigned int len) {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str4,FC_FILE_OBJECT}, #line 64 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str5,FC_COLOR_OBJECT}, -#line 25 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str6,FC_WEIGHT_OBJECT}, + {-1}, #line 31 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str7,FC_FOUNDRY_OBJECT}, #line 22 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str8,FC_FULLNAME_OBJECT}, -#line 27 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str9,FC_SIZE_OBJECT}, #line 29 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str10,FC_PIXEL_SIZE_OBJECT}, -#line 57 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str11,FC_DECORATIVE_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str9,FC_PIXEL_SIZE_OBJECT}, +#line 61 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str10,FC_PRGNAME_OBJECT}, + {-1}, #line 23 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str12,FC_FULLNAMELANG_OBJECT}, #line 37 "fcobjshash.gperf" {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str13,FC_GLOBAL_ADVANCE_OBJECT}, +#line 63 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str14,FC_POSTSCRIPT_NAME_OBJECT}, + {-1}, #line 34 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str14,FC_HINTING_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str16,FC_HINTING_OBJECT}, #line 46 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str15,FC_MINSPACE_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str17,FC_MINSPACE_OBJECT}, #line 33 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str16,FC_HINT_STYLE_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str18,FC_HINT_STYLE_OBJECT}, #line 54 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str17,FC_FONTFORMAT_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str19,FC_FONTFORMAT_OBJECT}, #line 52 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str18,FC_FONTVERSION_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str20,FC_FONTVERSION_OBJECT}, #line 60 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str19,FC_FONT_FEATURES_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str21,FC_FONT_FEATURES_OBJECT}, #line 41 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str20,FC_OUTLINE_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str22,FC_OUTLINE_OBJECT}, #line 36 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str21,FC_AUTOHINT_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str23,FC_AUTOHINT_OBJECT}, +#line 43 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str24,FC_DPI_OBJECT}, +#line 62 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str25,FC_HASH_OBJECT}, #line 24 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str22,FC_SLANT_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str26,FC_SLANT_OBJECT}, +#line 28 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str27,FC_ASPECT_OBJECT}, +#line 27 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str28,FC_SIZE_OBJECT}, #line 45 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str23,FC_SCALE_OBJECT}, -#line 63 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str24,FC_POSTSCRIPT_NAME_OBJECT}, -#line 43 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str25,FC_DPI_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str29,FC_SCALE_OBJECT}, +#line 65 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str30,FC_SYMBOL_OBJECT}, +#line 40 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str31,FC_RASTERIZER_OBJECT}, #line 42 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str26,FC_SCALABLE_OBJECT}, -#line 55 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str27,FC_EMBOLDEN_OBJECT}, -#line 51 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str28,FC_LANG_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str32,FC_SCALABLE_OBJECT}, #line 32 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str29,FC_ANTIALIAS_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str33,FC_ANTIALIAS_OBJECT}, +#line 51 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str34,FC_LANG_OBJECT}, +#line 20 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str35,FC_STYLE_OBJECT}, #line 18 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str30,FC_FAMILY_OBJECT}, -#line 62 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str31,FC_HASH_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str36,FC_FAMILY_OBJECT}, +#line 44 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str37,FC_RGBA_OBJECT}, #line 59 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str32,FC_NAMELANG_OBJECT}, -#line 56 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str33,FC_EMBEDDED_BITMAP_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str38,FC_NAMELANG_OBJECT}, +#line 21 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str39,FC_STYLELANG_OBJECT}, #line 19 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str34,FC_FAMILYLANG_OBJECT}, -#line 35 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str35,FC_VERTICAL_LAYOUT_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str40,FC_FAMILYLANG_OBJECT}, +#line 26 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str41,FC_WIDTH_OBJECT}, #line 49 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str36,FC_MATRIX_OBJECT}, -#line 40 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str37,FC_RASTERIZER_OBJECT}, -#line 28 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str38,FC_ASPECT_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str42,FC_MATRIX_OBJECT}, #line 50 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str39,FC_CHARSET_OBJECT}, -#line 26 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str40,FC_WIDTH_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_CHARSET_OBJECT}, + {-1}, #line 47 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str41,FC_CHAR_WIDTH_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHAR_WIDTH_OBJECT}, #line 48 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str42,FC_CHAR_HEIGHT_OBJECT}, -#line 44 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_RGBA_OBJECT}, -#line 20 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str44,FC_STYLE_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str46,FC_CHAR_HEIGHT_OBJECT}, +#line 55 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str47,FC_EMBOLDEN_OBJECT}, #line 58 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_LCD_FILTER_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str48,FC_LCD_FILTER_OBJECT}, #line 30 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str46,FC_SPACING_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str49,FC_SPACING_OBJECT}, #line 39 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str47,FC_INDEX_OBJECT}, -#line 21 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str48,FC_STYLELANG_OBJECT}, + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str50,FC_INDEX_OBJECT}, +#line 25 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str51,FC_WEIGHT_OBJECT}, #line 53 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str49,FC_CAPABILITY_OBJECT}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 61 "fcobjshash.gperf" - {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str55,FC_PRGNAME_OBJECT} + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str52,FC_CAPABILITY_OBJECT}, +#line 56 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str53,FC_EMBEDDED_BITMAP_OBJECT}, + {-1}, {-1}, {-1}, {-1}, +#line 57 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str58,FC_DECORATIVE_OBJECT}, +#line 35 "fcobjshash.gperf" + {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str59,FC_VERTICAL_LAYOUT_OBJECT} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) diff --git a/src/fcpat.c b/src/fcpat.c index 7e7d54a..3ef1ed2 100644 --- a/src/fcpat.c +++ b/src/fcpat.c @@ -425,6 +425,12 @@ FcPatternObjectPosition (const FcPattern *p, FcObject object) return -(mid + 1); } +int +FcPatternPosition (const FcPattern *p, const char *object) +{ + return FcPatternObjectPosition (p, FcObjectFromName (object)); +} + FcPatternElt * FcPatternObjectFindElt (const FcPattern *p, FcObject object) { diff --git a/src/fcrange.c b/src/fcrange.c index 37cf067..f70226c 100644 --- a/src/fcrange.c +++ b/src/fcrange.c @@ -32,10 +32,8 @@ FcRangeCreateDouble (double begin, double end) if (ret) { - ret->is_double = FcTrue; - ret->is_inclusive = FcDoubleCmpEQ (begin, end); - ret->u.d.begin = begin; - ret->u.d.end = end; + ret->begin = begin; + ret->end = end; } return ret; @@ -48,10 +46,8 @@ FcRangeCreateInteger (FcChar32 begin, FcChar32 end) if (ret) { - ret->is_double = FcFalse; - ret->is_inclusive = (begin == end); - ret->u.i.begin = begin; - ret->u.i.end = end; + ret->begin = begin; + ret->end = end; } return ret; @@ -66,14 +62,7 @@ FcRangeDestroy (FcRange *range) FcRange * FcRangeCopy (const FcRange *range) { - FcRange *ret; - - if (range->is_double) - ret = FcRangeCreateDouble (range->u.d.begin, range->u.d.end); - else - ret = FcRangeCreateInteger (range->u.i.begin, range->u.i.end); - - return ret; + return FcRangeCreateDouble (range->begin, range->end); } FcBool @@ -81,41 +70,14 @@ FcRangeGetDouble(const FcRange *range, double *begin, double *end) { if (!range) return FcFalse; - if (range->is_double) - { - if (begin) - *begin = range->u.d.begin; - if (end) - *end = range->u.d.end; - } - else - { - if (begin) - *begin = (double)range->u.i.begin; - if (end) - *end = (double)range->u.i.end; - } + if (begin) + *begin = range->begin; + if (end) + *end = range->end; return FcTrue; } -FcRange -FcRangeCanonicalize (const FcRange *range) -{ - FcRange new; - - if (range->is_double) - new = *range; - else - { - new.is_double = FcTrue; - new.is_inclusive = range->is_inclusive; - new.u.d.begin = (double)range->u.i.begin; - new.u.d.end = (double)range->u.i.end; - } - return new; -} - FcRange * FcRangePromote (double v, FcValuePromotionBuffer *vbuf) { @@ -125,50 +87,24 @@ FcRangePromote (double v, FcValuePromotionBuffer *vbuf) FcRangePromotionBuffer *buf = (FcRangePromotionBuffer *) vbuf; FC_ASSERT_STATIC (sizeof (FcRangePromotionBuffer) <= sizeof (FcValuePromotionBuffer)); - buf->r.is_double = FcTrue; - buf->r.is_inclusive = FcTrue; - buf->r.u.d.begin = v; - buf->r.u.d.end = v; + buf->r.begin = v; + buf->r.end = v; return &buf->r; } FcBool -FcRangeIsZero (const FcRange *r) -{ - FcRange c; - - if (!r) - return FcFalse; - c = FcRangeCanonicalize (r); - - return FcDoubleIsZero (c.u.d.begin) && FcDoubleIsZero (c.u.d.end); -} - -FcBool FcRangeIsInRange (const FcRange *a, const FcRange *b) { - FcRange ca, cb; - FcBool f; - if (!a || !b) return FcFalse; - ca = FcRangeCanonicalize (a); - cb = FcRangeCanonicalize (b); - if (ca.is_inclusive & cb.is_inclusive) - f = ca.u.d.end <= cb.u.d.end; - else - f = ca.u.d.end < cb.u.d.end; - - return FcDoubleCmpGE (ca.u.d.begin, cb.u.d.begin) && f; + return a->begin >= b->begin && a->end <= b->end; } FcBool FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b) { - FcRange ca, cb; - switch ((int) op) { case FcOpEqual: case FcOpContains: @@ -178,21 +114,13 @@ FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b) case FcOpNotContains: return !FcRangeIsInRange (a, b); case FcOpLess: - ca = FcRangeCanonicalize (a); - cb = FcRangeCanonicalize (b); - return ca.u.d.begin < cb.u.d.begin; + return a->begin < b->begin; case FcOpLessEqual: - ca = FcRangeCanonicalize (a); - cb = FcRangeCanonicalize (b); - return FcDoubleCmpLE (ca.u.d.begin, cb.u.d.begin); + return a->begin <= b->begin; case FcOpMore: - ca = FcRangeCanonicalize (a); - cb = FcRangeCanonicalize (b); - return ca.u.d.end > cb.u.d.end; + return a->end > b->end; case FcOpMoreEqual: - ca = FcRangeCanonicalize (a); - cb = FcRangeCanonicalize (b); - return FcDoubleCmpGE (ca.u.d.end, cb.u.d.end); + return a->end >= b->end; default: break; } @@ -202,9 +130,8 @@ FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b) FcChar32 FcRangeHash (const FcRange *r) { - FcRange c = FcRangeCanonicalize (r); - int b = (int) (c.u.d.begin * 100); - int e = (int) (c.u.d.end * 100); + int b = (int) (r->begin * 100); + int e = (int) (r->end * 100); return b ^ (b << 1) ^ (e << 9); } diff --git a/src/fcstdint.h b/src/fcstdint.h index d33e70a..ff8e647 100644 --- a/src/fcstdint.h +++ b/src/fcstdint.h @@ -1,8 +1,8 @@ #ifndef _FONTCONFIG_SRC_FCSTDINT_H #define _FONTCONFIG_SRC_FCSTDINT_H 1 #ifndef _GENERATED_STDINT_H -#define _GENERATED_STDINT_H "fontconfig 2.11.93" -/* generated using gnu compiler gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6) */ +#define _GENERATED_STDINT_H "fontconfig 2.12.1" +/* generated using gnu compiler gcc (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3) */ #define _STDINT_HAVE_STDINT_H 1 #include #endif diff --git a/src/fcstr.c b/src/fcstr.c index 29a577d..b65492d 100644 --- a/src/fcstr.c +++ b/src/fcstr.c @@ -880,7 +880,7 @@ FcStrBuildFilename (const FcChar8 *path, if (!path) return NULL; - sset = FcStrSetCreate (); + sset = FcStrSetCreateEx (FCSS_ALLOW_DUPLICATES | FCSS_GROW_BY_64); if (!sset) return NULL; @@ -1130,6 +1130,12 @@ FcStrCanonFilename (const FcChar8 *s) FcStrSet * FcStrSetCreate (void) { + return FcStrSetCreateEx (FCSS_DEFAULT); +} + +FcStrSet * +FcStrSetCreateEx (unsigned int control) +{ FcStrSet *set = malloc (sizeof (FcStrSet)); if (!set) return 0; @@ -1137,29 +1143,42 @@ FcStrSetCreate (void) set->num = 0; set->size = 0; set->strs = 0; + set->control = control; return set; } static FcBool +_FcStrSetGrow (FcStrSet *set, int growElements) +{ + /* accommodate an additional NULL entry at the end of the array */ + FcChar8 **strs = malloc ((set->size + growElements + 1) * sizeof (FcChar8 *)); + if (!strs) + return FcFalse; + if (set->num) + memcpy (strs, set->strs, set->num * sizeof (FcChar8 *)); + if (set->strs) + free (set->strs); + set->size = set->size + growElements; + set->strs = strs; + return FcTrue; +} + +static FcBool _FcStrSetAppend (FcStrSet *set, FcChar8 *s) { - if (FcStrSetMember (set, s)) + if (!FcStrSetHasControlBit (set, FCSS_ALLOW_DUPLICATES)) { - FcStrFree (s); - return FcTrue; + if (FcStrSetMember (set, s)) + { + FcStrFree (s); + return FcTrue; + } } if (set->num == set->size) { - FcChar8 **strs = malloc ((set->size + 2) * sizeof (FcChar8 *)); - - if (!strs) - return FcFalse; - if (set->num) - memcpy (strs, set->strs, set->num * sizeof (FcChar8 *)); - if (set->strs) - free (set->strs); - set->size = set->size + 1; - set->strs = strs; + int growElements = FcStrSetHasControlBit (set, FCSS_GROW_BY_64) ? 64 : 1; + if (!_FcStrSetGrow(set, growElements)) + return FcFalse; } set->strs[set->num++] = s; set->strs[set->num] = 0; diff --git a/src/fcweight.c b/src/fcweight.c index 77b78ad..036a518 100644 --- a/src/fcweight.c +++ b/src/fcweight.c @@ -54,14 +54,28 @@ FcWeightFromOpenType (int ot_weight) { int i; - /* Follow WPF Font Selection Model's advice. */ - if (1 <= ot_weight && ot_weight <= 9) - ot_weight *= 100; + /* Loosely based on WPF Font Selection Model's advice. */ - /* WPF Font Selection Model rejects 1000, we allow it - * because Pango uses that number. */ - if (ot_weight < 1 || ot_weight > 1000) + if (ot_weight < 0) return -1; + else if (1 <= ot_weight && ot_weight <= 9) + { + /* WPF Font Selection Model says do "ot_weight *= 100", + * but Greg Hitchcock revealed that GDI had a mapping + * reflected below: */ + switch (ot_weight) { + case 1: ot_weight = 80; break; + case 2: ot_weight = 160; break; + case 3: ot_weight = 240; break; + case 4: ot_weight = 320; break; + case 5: ot_weight = 400; break; + case 6: ot_weight = 550; break; + case 7: ot_weight = 700; break; + case 8: ot_weight = 800; break; + case 9: ot_weight = 900; break; + } + } + ot_weight = FC_MIN (ot_weight, map[(sizeof (map) / sizeof (map[0])) - 1].ot); for (i = 1; ot_weight > map[i].ot; i++) ; diff --git a/src/fcxml.c b/src/fcxml.c index cdb14b6..031a7da 100644 --- a/src/fcxml.c +++ b/src/fcxml.c @@ -54,8 +54,12 @@ #ifdef _WIN32 #include +extern FcChar8 fontconfig_instprefix[]; #endif +static FcChar8 *__fc_userdir = NULL; +static FcChar8 *__fc_userconf = NULL; + static void FcExprDestroy (FcExpr *e); @@ -78,6 +82,7 @@ FcRuleDestroy (FcRule *rule) case FcRuleEdit: FcEditDestroy (rule->u.edit); break; + case FcRuleUnknown: default: break; } @@ -608,6 +613,7 @@ FcTypeName (FcType type) return "langset"; case FcTypeRange: return "range"; + case FcTypeUnknown: default: return "unknown"; } @@ -805,6 +811,7 @@ FcRuleCreate (FcRuleType type, case FcRuleEdit: r->u.edit = (FcEdit *) p; break; + case FcRuleUnknown: default: free (r); r = NULL; @@ -1253,9 +1260,11 @@ static void FcParseBlank (FcConfigParse *parse) { int n = FcVStackElements (parse); +#if 0 FcChar32 i, begin, end; - FcRange r; +#endif + FcConfigMessage (parse, FcSevereWarning, "blank doesn't take any effect anymore. please remove it from your fonts.conf"); while (n-- > 0) { FcVStack *v = FcVStackFetch (parse, n); @@ -1267,13 +1276,15 @@ FcParseBlank (FcConfigParse *parse) } switch ((int) v->tag) { case FcVStackInteger: +#if 0 if (!FcBlanksAdd (parse->config->blanks, v->u.integer)) goto bail; break; +#endif case FcVStackRange: - r = FcRangeCanonicalize (v->u.range); - begin = (FcChar32)r.u.d.begin; - end = (FcChar32)r.u.d.end; +#if 0 + begin = (FcChar32) v->u.range->begin; + end = (FcChar32) v->u.range->end; if (begin <= end) { for (i = begin; i <= end; i++) @@ -1282,6 +1293,7 @@ FcParseBlank (FcConfigParse *parse) goto bail; } } +#endif break; default: FcConfigMessage (parse, FcSevereError, "invalid element in blank"); @@ -1340,7 +1352,11 @@ FcParseInt (FcConfigParse *parse) static double FcStrtod (char *s, char **end) { +#ifndef __BIONIC__ struct lconv *locale_data; +#endif + const char *decimal_point; + int dlen; char *dot; double v; @@ -1348,14 +1364,21 @@ FcStrtod (char *s, char **end) * Have to swap the decimal point to match the current locale * if that locale doesn't use 0x2e */ +#ifndef __BIONIC__ + locale_data = localeconv (); + decimal_point = locale_data->decimal_point; + dlen = strlen (decimal_point); +#else + decimal_point = "."; + dlen = 1; +#endif + if ((dot = strchr (s, 0x2e)) && - (locale_data = localeconv ()) && - (locale_data->decimal_point[0] != 0x2e || - locale_data->decimal_point[1] != 0)) + (decimal_point[0] != 0x2e || + decimal_point[1] != 0)) { char buf[128]; int slen = strlen (s); - int dlen = strlen (locale_data->decimal_point); if (slen + dlen > (int) sizeof (buf)) { @@ -1369,7 +1392,7 @@ FcStrtod (char *s, char **end) /* mantissa */ strncpy (buf, s, dot - s); /* decimal point */ - strcpy (buf + (dot - s), locale_data->decimal_point); + strcpy (buf + (dot - s), decimal_point); /* rest of number */ strcpy (buf + (dot - s) + dlen, dot + 1); buf_end = 0; @@ -1586,7 +1609,6 @@ FcParseCharSet (FcConfigParse *parse) FcVStack *vstack; FcCharSet *charset = FcCharSetCreate (); FcChar32 i, begin, end; - FcRange r; int n = 0; while ((vstack = FcVStackPeek (parse))) @@ -1601,9 +1623,8 @@ FcParseCharSet (FcConfigParse *parse) n++; break; case FcVStackRange: - r = FcRangeCanonicalize (vstack->u.range); - begin = (FcChar32)r.u.d.begin; - end = (FcChar32)r.u.d.end; + begin = (FcChar32) vstack->u.range->begin; + end = (FcChar32) vstack->u.range->end; if (begin <= end) { @@ -2187,7 +2208,25 @@ FcParseCacheDir (FcConfigParse *parse) data = prefix; } #ifdef _WIN32 - if (strcmp ((const char *) data, "WINDOWSTEMPDIR_FONTCONFIG_CACHE") == 0) + else if (data[0] == '/' && fontconfig_instprefix[0] != '\0') + { + size_t plen = strlen ((const char *)fontconfig_instprefix); + size_t dlen = strlen ((const char *)data); + + prefix = malloc (plen + 1 + dlen + 1); + if (!prefix) + { + FcConfigMessage (parse, FcSevereError, "out of memory"); + goto bail; + } + strcpy ((char *) prefix, (char *) fontconfig_instprefix); + prefix[plen] = FC_DIR_SEPARATOR; + memcpy (&prefix[plen + 1], data, dlen); + prefix[plen + 1 + dlen] = 0; + FcStrFree (data); + data = prefix; + } + else if (strcmp ((const char *) data, "WINDOWSTEMPDIR_FONTCONFIG_CACHE") == 0) { int rc; FcStrFree (data); @@ -2243,6 +2282,24 @@ FcParseCacheDir (FcConfigParse *parse) FcStrFree (data); } +void +FcConfigPathFini (void) +{ + FcChar8 *s; + +retry_dir: + s = fc_atomic_ptr_get (&__fc_userdir); + if (!fc_atomic_ptr_cmpexch (&__fc_userdir, s, NULL)) + goto retry_dir; + free (s); + +retry_conf: + s = fc_atomic_ptr_get (&__fc_userconf); + if (!fc_atomic_ptr_cmpexch (&__fc_userconf, s, NULL)) + goto retry_conf; + free (s); +} + static void FcParseInclude (FcConfigParse *parse) { @@ -2253,8 +2310,7 @@ FcParseInclude (FcConfigParse *parse) FcBool deprecated = FcFalse; #endif FcChar8 *prefix = NULL, *p; - static FcChar8 *userdir = NULL; - static FcChar8 *userconf = NULL; + FcChar8 *userdir = NULL, *userconf = NULL; s = FcStrBufDoneStatic (&parse->pstack->str); if (!s) @@ -2265,8 +2321,8 @@ FcParseInclude (FcConfigParse *parse) attr = FcConfigGetAttribute (parse, "ignore_missing"); if (attr && FcConfigLexBool (parse, (FcChar8 *) attr) == FcTrue) ignore_missing = FcTrue; -#ifndef _WIN32 attr = FcConfigGetAttribute (parse, "deprecated"); +#ifndef _WIN32 if (attr && FcConfigLexBool (parse, (FcChar8 *) attr) == FcTrue) deprecated = FcTrue; #endif @@ -2284,6 +2340,7 @@ FcParseInclude (FcConfigParse *parse) { size_t plen = strlen ((const char *)prefix); size_t dlen = strlen ((const char *)s); + FcChar8 *u; p = realloc (prefix, plen + 1 + dlen + 1); if (!p) @@ -2299,14 +2356,32 @@ FcParseInclude (FcConfigParse *parse) if (FcFileIsDir (s)) { userdir: + userdir = fc_atomic_ptr_get (&__fc_userdir); if (!userdir) - userdir = FcStrdup (s); + { + u = FcStrdup (s); + if (!fc_atomic_ptr_cmpexch (&__fc_userdir, userdir, u)) + { + free (u); + goto userdir; + } + userdir = u; + } } else if (FcFileIsFile (s)) { userconf: + userconf = fc_atomic_ptr_get (&__fc_userconf); if (!userconf) - userconf = FcStrdup (s); + { + u = FcStrdup (s); + if (!fc_atomic_ptr_cmpexch (&__fc_userconf, userconf, u)) + { + free (u); + goto userconf; + } + userconf = u; + } } else { @@ -2330,6 +2405,7 @@ FcParseInclude (FcConfigParse *parse) filename = FcConfigFilename(s); if (deprecated == FcTrue && filename != NULL && + userdir != NULL && !FcFileIsLink (filename)) { if (FcFileIsDir (filename)) @@ -3093,7 +3169,7 @@ FcConfigParseAndLoadDir (FcConfig *config, strcat ((char *) file, "/"); base = file + strlen ((char *) file); - files = FcStrSetCreate (); + files = FcStrSetCreateEx (FCSS_GROW_BY_64); if (!files) { ret = FcFalse; diff --git a/test-driver b/test-driver index d306056..8e575b0 100755 --- a/test-driver +++ b/test-driver @@ -3,7 +3,7 @@ scriptversion=2013-07-13.22; # UTC -# Copyright (C) 2011-2013 Free Software Foundation, Inc. +# Copyright (C) 2011-2014 Free Software Foundation, Inc. # # 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 @@ -106,11 +106,14 @@ trap "st=143; $do_exit" 15 # Test script is run here. "$@" >$log_file 2>&1 estatus=$? + if test $enable_hard_errors = no && test $estatus -eq 99; then - estatus=1 + tweaked_estatus=1 +else + tweaked_estatus=$estatus fi -case $estatus:$expect_failure in +case $tweaked_estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; @@ -119,6 +122,12 @@ case $estatus:$expect_failure in *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>$log_file + # Report outcome to console. echo "${col}${res}${std}: $test_name" diff --git a/test/Makefile.am b/test/Makefile.am index f270b50..72923fa 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -24,6 +24,13 @@ test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la # to meaningfully test anything, and we are not installed yet. #TESTS += test-pthread endif +check_PROGRAMS += test-bz89617 +test_bz89617_CFLAGS = \ + -DSRCDIR="\"$(abs_srcdir)\"" + +test_bz89617_LDADD = $(top_builddir)/src/libfontconfig.la +TESTS += test-bz89617 + noinst_PROGRAMS = $(check_PROGRAMS) if !OS_WIN32 @@ -31,6 +38,10 @@ check_PROGRAMS += test-migration test_migration_LDADD = $(top_builddir)/src/libfontconfig.la endif +check_PROGRAMS += test-bz96676 +test_bz96676_LDADD = $(top_builddir)/src/libfontconfig.la +TESTS += test-bz96676 + EXTRA_DIST=$(check_SCRIPTS) $(TESTDATA) CLEANFILES= diff --git a/test/Makefile.in b/test/Makefile.in index 87869db..8436375 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,7 +15,17 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -78,12 +88,12 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) +TESTS = run-test.sh test-bz89617$(EXEEXT) test-bz96676$(EXEEXT) +check_PROGRAMS = $(am__EXEEXT_1) test-bz89617$(EXEEXT) $(am__EXEEXT_2) \ + test-bz96676$(EXEEXT) @HAVE_PTHREAD_TRUE@am__append_1 = test-pthread @OS_WIN32_FALSE@am__append_2 = test-migration subdir = test -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/depcomp $(top_srcdir)/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/ax_cc_for_build.m4 \ @@ -94,6 +104,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_symbol.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -101,14 +112,23 @@ CONFIG_CLEAN_VPATH_FILES = @HAVE_PTHREAD_TRUE@am__EXEEXT_1 = test-pthread$(EXEEXT) @OS_WIN32_FALSE@am__EXEEXT_2 = test-migration$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) -test_migration_SOURCES = test-migration.c -test_migration_OBJECTS = test-migration.$(OBJEXT) -@OS_WIN32_FALSE@test_migration_DEPENDENCIES = \ -@OS_WIN32_FALSE@ $(top_builddir)/src/libfontconfig.la +test_bz89617_SOURCES = test-bz89617.c +test_bz89617_OBJECTS = test_bz89617-test-bz89617.$(OBJEXT) +test_bz89617_DEPENDENCIES = $(top_builddir)/src/libfontconfig.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = +test_bz89617_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_bz89617_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +test_bz96676_SOURCES = test-bz96676.c +test_bz96676_OBJECTS = test-bz96676.$(OBJEXT) +test_bz96676_DEPENDENCIES = $(top_builddir)/src/libfontconfig.la +test_migration_SOURCES = test-migration.c +test_migration_OBJECTS = test-migration.$(OBJEXT) +@OS_WIN32_FALSE@test_migration_DEPENDENCIES = \ +@OS_WIN32_FALSE@ $(top_builddir)/src/libfontconfig.la test_pthread_SOURCES = test-pthread.c test_pthread_OBJECTS = test-pthread.$(OBJEXT) @HAVE_PTHREAD_TRUE@test_pthread_DEPENDENCIES = \ @@ -147,8 +167,10 @@ 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 = test-migration.c test-pthread.c -DIST_SOURCES = test-migration.c test-pthread.c +SOURCES = test-bz89617.c test-bz96676.c test-migration.c \ + test-pthread.c +DIST_SOURCES = test-bz89617.c test-bz96676.c test-migration.c \ + test-pthread.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -358,11 +380,8 @@ am__set_TESTS_bases = \ RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.sh.log=.log) -SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver -SH_LOG_COMPILE = $(SH_LOG_COMPILER) $(AM_SH_LOG_FLAGS) $(SH_LOG_FLAGS) +LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ @@ -373,6 +392,13 @@ am__set_b = \ *) \ b='$*';; \ esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.sh.log=.log) +SH_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver +SH_LOG_COMPILE = $(SH_LOG_COMPILER) $(AM_SH_LOG_FLAGS) $(SH_LOG_FLAGS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ + $(top_srcdir)/test-driver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ @@ -440,6 +466,7 @@ LIBXML2_LIBS = @LIBXML2_LIBS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ @@ -462,6 +489,7 @@ PKGCONFIG_REQUIRES_PRIVATELY = @PKGCONFIG_REQUIRES_PRIVATELY@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PREFERRED_HINTING = @PREFERRED_HINTING@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ @@ -551,15 +579,16 @@ AM_TESTS_ENVIRONMENT = \ $(NULL) SH_LOG_COMPILER = sh -TESTS = run-test.sh TESTDATA = 4x6.pcf 8x16.pcf out.expected fonts.conf.in AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) @HAVE_PTHREAD_TRUE@test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la -# We don't enable this test by default because it will require config and fonts -# to meaningfully test anything, and we are not installed yet. -#TESTS += test-pthread +test_bz89617_CFLAGS = \ + -DSRCDIR="\"$(abs_srcdir)\"" + +test_bz89617_LDADD = $(top_builddir)/src/libfontconfig.la noinst_PROGRAMS = $(check_PROGRAMS) @OS_WIN32_FALSE@test_migration_LDADD = $(top_builddir)/src/libfontconfig.la +test_bz96676_LDADD = $(top_builddir)/src/libfontconfig.la EXTRA_DIST = $(check_SCRIPTS) $(TESTDATA) CLEANFILES = all: all-am @@ -578,7 +607,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -615,6 +643,14 @@ clean-noinstPROGRAMS: echo " rm -f" $$list; \ rm -f $$list +test-bz89617$(EXEEXT): $(test_bz89617_OBJECTS) $(test_bz89617_DEPENDENCIES) $(EXTRA_test_bz89617_DEPENDENCIES) + @rm -f test-bz89617$(EXEEXT) + $(AM_V_CCLD)$(test_bz89617_LINK) $(test_bz89617_OBJECTS) $(test_bz89617_LDADD) $(LIBS) + +test-bz96676$(EXEEXT): $(test_bz96676_OBJECTS) $(test_bz96676_DEPENDENCIES) $(EXTRA_test_bz96676_DEPENDENCIES) + @rm -f test-bz96676$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_bz96676_OBJECTS) $(test_bz96676_LDADD) $(LIBS) + test-migration$(EXEEXT): $(test_migration_OBJECTS) $(test_migration_DEPENDENCIES) $(EXTRA_test_migration_DEPENDENCIES) @rm -f test-migration$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_migration_OBJECTS) $(test_migration_LDADD) $(LIBS) @@ -629,8 +665,10 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-bz96676.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-migration.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pthread.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bz89617-test-bz89617.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -653,6 +691,20 @@ distclean-compile: @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< +test_bz89617-test-bz89617.o: test-bz89617.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_bz89617_CFLAGS) $(CFLAGS) -MT test_bz89617-test-bz89617.o -MD -MP -MF $(DEPDIR)/test_bz89617-test-bz89617.Tpo -c -o test_bz89617-test-bz89617.o `test -f 'test-bz89617.c' || echo '$(srcdir)/'`test-bz89617.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_bz89617-test-bz89617.Tpo $(DEPDIR)/test_bz89617-test-bz89617.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-bz89617.c' object='test_bz89617-test-bz89617.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_bz89617_CFLAGS) $(CFLAGS) -c -o test_bz89617-test-bz89617.o `test -f 'test-bz89617.c' || echo '$(srcdir)/'`test-bz89617.c + +test_bz89617-test-bz89617.obj: test-bz89617.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_bz89617_CFLAGS) $(CFLAGS) -MT test_bz89617-test-bz89617.obj -MD -MP -MF $(DEPDIR)/test_bz89617-test-bz89617.Tpo -c -o test_bz89617-test-bz89617.obj `if test -f 'test-bz89617.c'; then $(CYGPATH_W) 'test-bz89617.c'; else $(CYGPATH_W) '$(srcdir)/test-bz89617.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_bz89617-test-bz89617.Tpo $(DEPDIR)/test_bz89617-test-bz89617.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-bz89617.c' object='test_bz89617-test-bz89617.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_bz89617_CFLAGS) $(CFLAGS) -c -o test_bz89617-test-bz89617.obj `if test -f 'test-bz89617.c'; then $(CYGPATH_W) 'test-bz89617.c'; else $(CYGPATH_W) '$(srcdir)/test-bz89617.c'; fi` + mostlyclean-libtool: -rm -f *.lo @@ -741,7 +793,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ - else \ + elif test -n "$$redo_logs"; then \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ @@ -852,6 +904,20 @@ recheck: all $(check_PROGRAMS) $(check_SCRIPTS) am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? +test-bz89617.log: test-bz89617$(EXEEXT) + @p='test-bz89617$(EXEEXT)'; \ + b='test-bz89617'; \ + $(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-bz96676.log: test-bz96676$(EXEEXT) + @p='test-bz96676$(EXEEXT)'; \ + b='test-bz96676'; \ + $(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) .sh.log: @p='$<'; \ $(am__set_b); \ @@ -1025,6 +1091,8 @@ uninstall-am: pdf pdf-am ps ps-am recheck tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + -include $(top_srcdir)/git.mk diff --git a/test/run-test.sh b/test/run-test.sh index d451a8d..97df6e5 100644 --- a/test/run-test.sh +++ b/test/run-test.sh @@ -20,10 +20,15 @@ # DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -TESTDIR=${srcdir-`pwd`} +case "$OSTYPE" in + msys ) MyPWD=`pwd -W` ;; # On Msys/MinGW, returns a MS Windows style path. + * ) MyPWD=`pwd` ;; # On any other platforms, returns a Unix style path. +esac -FONTDIR=`pwd`/fonts -CACHEDIR=`pwd`/cache.dir +TESTDIR=${srcdir-"$MyPWD"} + +FONTDIR="$MyPWD"/fonts +CACHEDIR="$MyPWD"/cache.dir ECHO=true @@ -62,7 +67,7 @@ dotest () { sed "s!@FONTDIR@!$FONTDIR! s!@CACHEDIR@!$CACHEDIR!" < $TESTDIR/fonts.conf.in > fonts.conf -FONTCONFIG_FILE=`pwd`/fonts.conf +FONTCONFIG_FILE="$MyPWD"/fonts.conf export FONTCONFIG_FILE dotest "Basic check" diff --git a/test/test-bz89617.c b/test/test-bz89617.c new file mode 100644 index 0000000..f8139a6 --- /dev/null +++ b/test/test-bz89617.c @@ -0,0 +1,40 @@ +/* + * fontconfig/test/test-bz89617.c + * + * Copyright © 2000 Keith Packard + * Copyright © 2015 Akira TAGOH + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of the author(s) not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. The authors make no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ +#include +#include + +int +main (void) +{ + FcConfig *config = FcConfigCreate (); + + if (!FcConfigAppFontAddFile (config, (const FcChar8 *)SRCDIR "/4x6.pcf") || + FcConfigAppFontAddFile (config, (const FcChar8 *)"/dev/null")) + return 1; + + FcConfigDestroy (config); + + return 0; +} diff --git a/test/test-bz96676.c b/test/test-bz96676.c new file mode 100644 index 0000000..cbf7bd0 --- /dev/null +++ b/test/test-bz96676.c @@ -0,0 +1,32 @@ +/* + * fontconfig/test/test-bz96676.c + * + * Copyright © 2000 Keith Packard + * Copyright © 2016 Akira TAGOH + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of the author(s) not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. The authors make no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ +#include +#include + +int +main (int argc, char **argv) +{ + return FcWeightFromOpenType (INT_MAX) != FC_WEIGHT_EXTRABLACK; +} -- 2.7.4