From 706a1b367abc4589c7eccfd7cea3af1029bc2d8c Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 17 Sep 2006 14:09:12 -0700 Subject: [PATCH] Build fontconfig.def from header files when needed. Instead of attempting to track exported symbols manually in fontconfig.def.in, build it directly from the public fontconfig header files to ensure it exports the public API. --- configure.in | 1 - src/Makefile.am | 18 ++- src/fontconfig.def.in | 303 ------------------------------------------ 3 files changed, 17 insertions(+), 305 deletions(-) delete mode 100755 src/fontconfig.def.in diff --git a/configure.in b/configure.in index 9cebc9f..06bdf52 100644 --- a/configure.in +++ b/configure.in @@ -562,7 +562,6 @@ fc-glyphname/Makefile fc-case/Makefile fc-arch/Makefile src/Makefile -src/fontconfig.def conf.d/Makefile fc-cache/Makefile fc-cat/Makefile diff --git a/src/Makefile.am b/src/Makefile.am index 126d01a..418b74b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -25,6 +25,8 @@ if OS_WIN32 export_symbols = -export-symbols fontconfig.def +fontconfig_def_dependency = fontconfig.def + # gcc import library install/uninstall install-libtool-import-lib: @@ -39,6 +41,8 @@ else install-libtool-import-lib: uninstall-libtool-import-lib: +fontconfig_def_dependency = + endif if MS_LIB_AVAILABLE @@ -73,7 +77,7 @@ INCLUDES = \ -DFC_CACHEDIR='"$(FC_CACHEDIR)"' \ -DFONTCONFIG_PATH='"$(CONFDIR)"' -EXTRA_DIST = fontconfig.def.in makealias +EXTRA_DIST = makealias noinst_HEADERS=fcint.h @@ -112,6 +116,8 @@ libfontconfig_la_LDFLAGS = \ libfontconfig_la_LIBADD = $(ICONV_LIBS) $(FREETYPE_LIBS) $(LIBXML2_LIBS) $(EXPAT_LIBS) +libfontconfig_la_DEPENDENCIES = $(fontconfig_def_dependency) + install-data-local: install-ms-import-lib install-libtool-import-lib uninstall-local: uninstall-ms-import-lib uninstall-libtool-import-lib @@ -127,3 +133,13 @@ fcalias.h: $(top_srcdir)/src/makealias $(PUBLIC_FILES) sh $(top_srcdir)/src/makealias "$(top_srcdir)/src" $(PUBLIC_FILES) CLEANFILES := $(ALIAS_FILES) + +fontconfig.def: $(PUBLIC_FILES) + echo Generating $@ + (echo EXPORTS; \ + (cat $(PUBLIC_FILES) || echo 'FcERROR ()' ) | \ + grep '^Fc[^ ]* *(' | sed -e 's/ *(.*$$//' -e 's/^/ /' | \ + sort; \ + echo LIBRARY libfontconfig-@LT_CURRENT_MINUS_AGE@.dll; \ + echo VERSION @LT_CURRENT@.@LT_REVISION@) >$@ + @ ! grep -q FcERROR $@ || ($(RM) $@; false) diff --git a/src/fontconfig.def.in b/src/fontconfig.def.in deleted file mode 100755 index 0bccef5..0000000 --- a/src/fontconfig.def.in +++ /dev/null @@ -1,303 +0,0 @@ -EXPORTS - FcDirCacheValid - FcDirCacheHasCurrentArch - FcDirCacheUnlink - FcBlanksCreate - FcBlanksDestroy - FcBlanksAdd - FcBlanksIsMember - FcConfigHome - FcConfigEnableHome - FcConfigFilename - FcConfigCreate - FcConfigDestroy - FcConfigSetCurrent - FcConfigGetCurrent - FcConfigUptoDate - FcConfigBuildFonts - FcConfigGetFontDirs - FcConfigNormalizeFontDir - FcConfigGetConfigDirs - FcConfigGetConfigFiles - FcConfigGetCache - FcConfigGetBlanks - FcConfigGetRescanInverval - FcConfigSetRescanInverval - FcConfigGetFonts - FcConfigAppFontAddFile - FcConfigAppFontAddDir - FcConfigAppFontClear - FcConfigSubstituteWithPat - FcConfigSubstitute - FcCharSetCreate - FcCharSetDestroy - FcCharSetAddChar - FcCharSetCopy - FcCharSetEqual - FcCharSetIntersect - FcCharSetUnion - FcCharSetSubtract - FcCharSetHasChar - FcCharSetCount - FcCharSetIntersectCount - FcCharSetSubtractCount - FcCharSetIsSubset - FcCharSetFirstPage - FcCharSetNextPage - FcValuePrint - FcPatternPrint - FcFontSetPrint - FcDebugVal - FcFontSetUnserialize - FcDefaultSubstitute - FcFileScan - FcDirScan - FcDirSave - FcFreeTypeQuery - FcFontSetCreate - FcFontSetDestroy - FcFontSetAdd - FcInitLoadConfig - FcInitLoadConfigAndFonts - FcInit - FcFini - FcGetVersion - FcInitReinitialize - FcInitBringUptoDate - FcLangSetCreate - FcLangSetDestroy - FcLangSetCopy - FcLangSetAdd - FcLangSetHasLang - FcLangSetCompare - FcLangSetContains - FcLangSetEqual - FcLangSetHash - FcObjectSetCreate - FcObjectSetAdd - FcObjectSetDestroy - FcObjectSetVaBuild - FcObjectSetBuild - FcFontSetList - FcFontList - FcAtomicCreate - FcAtomicLock - FcAtomicNewFile - FcAtomicOrigFile - FcAtomicReplaceOrig - FcAtomicDeleteNew - FcAtomicUnlock - FcAtomicDestroy - FcFontSetMatch - FcFontMatch - FcFontRenderPrepare - FcFontSetSort - FcFontSort - FcFontSetSortDestroy - FcMatrixCopy - FcMatrixEqual - FcMatrixMultiply - FcMatrixRotate - FcMatrixScale - FcMatrixShear - FcNameRegisterObjectTypes - FcNameUnregisterObjectTypes - FcNameGetObjectType - FcNameRegisterConstants - FcNameUnregisterConstants - FcNameGetConstant - FcNameConstant - FcNameParse - FcNameUnparse - FcNameUnparseEscaped - FcPatternCreate - FcPatternDuplicate - FcPatternReference - FcValueDestroy - FcValueEqual - FcValueSave - FcPatternDestroy - FcPatternEqual - FcPatternEqualSubset - FcPatternHash - FcPatternAdd - FcPatternAddWeak - FcPatternGet - FcPatternDel - FcPatternRemove - FcPatternAddInteger - FcPatternAddDouble - FcPatternAddString - FcPatternAddMatrix - FcPatternAddCharSet - FcPatternAddBool - FcPatternAddLangSet - FcPatternGetInteger - FcPatternGetDouble - FcPatternGetString - FcPatternGetMatrix - FcPatternGetCharSet - FcPatternGetBool - FcPatternGetLangSet - FcPatternVaBuild - FcPatternBuild - FcStrCopy - FcStrCopyFilename - FcStrDowncase - FcStrCmpIgnoreCase - FcStrCmp - FcStrStrIgnoreCase - FcStrStr - FcUtf8ToUcs4 - FcUtf8Len - FcUcs4ToUtf8 - FcUtf16ToUcs4 - FcUtf16Len - FcStrDirname - FcStrBasename - FcStrSetCreate - FcStrSetMember - FcStrSetEqual - FcStrSetAdd - FcStrSetAddFilename - FcStrSetDel - FcStrSetDestroy - FcStrListCreate - FcStrListNext - FcStrListDone - FcConfigParseAndLoad - FcFreeTypeCharIndex - FcFreeTypeCharSetAndSpacing - FcFreeTypeCharSet - FcPatternGetFTFace - FcPatternAddFTFace - FcGlobalCacheCreate - FcGlobalCacheDestroy - FcGlobalCacheReadDir - FcGlobalCacheLoad - FcGlobalCacheUpdate - FcGlobalCacheSave - FcCacheRead - FcDirCacheWrite - FcDirCacheRead - FcCacheBankToIndexMTF - FcCacheFindBankDir - FcConfigAddConfigDir - FcConfigAddFontDir - FcConfigAddDir - FcConfigAddConfigFile - FcConfigSetCache - FcConfigAddBlank - FcConfigAddEdit - FcConfigSetFonts - FcConfigCompareValue - FcConfigGlobAdd - FcConfigAcceptFilename - FcConfigPatternsAdd - FcConfigAcceptFont - FcConfigModifiedTime - FcLangCharSetPopulate - FcCharSetFreeze - FcCharSetThawAll - FcNameUnparseCharSet - FcNameParseCharSet - FcCharSetFindLeafCreate - FcCharSetNewBank - FcCharSetNeededBytes - FcCharSetNeededBytesAlign - FcCharSetDistributeBytes - FcCharSetUnserialize - FcValueListPrint - FcLangSetPrint - FcOpPrint - FcTestPrint - FcExprPrint - FcEditPrint - FcSubstPrint - FcInitDebug - FcGetDefaultLang - FcFileIsDir - FcFileScanConfig - FcDirScanConfig - FcFreeTypeIsExclusiveLang - FcFreeTypeUcs4ToPrivate - FcFreeTypePrivateToUcs4 - FcFreeTypeGetPrivateMap - FcFontSetNewBank - FcFontSetNeededBytes - FcFontSetNeededBytesAlign - FcFontSetDistributeBytes - FcFontSetSerialize - FcConfigSaveField - FcTestDestroy - FcExprCreateInteger - FcExprCreateDouble - FcExprCreateString - FcExprCreateMatrix - FcExprCreateBool - FcExprCreateNil - FcExprCreateField - FcExprCreateConst - FcExprCreateOp - FcExprDestroy - FcEditDestroy - FcMemReport - FcMemAlloc - FcMemFree - FcFreeTypeLangSet - FcLangCompare - FcCharSetForLang - FcLangSetPromote - FcNameParseLangSet - FcNameUnparseLangSet - FcLangSetNewBank - FcLangSetNeededBytes - FcLangSetNeededBytesAlign - FcLangSetDistributeBytes - FcLangSetSerialize - FcLangSetUnserialize - FcListPatternMatchAny - FcNameBool - FcObjectDistributeBytes - FcObjectToPtr - FcObjectNeededBytes - FcObjectNeededBytesAlign - FcObjectUnserialize - FcObjectSerialize - FcObjectPtrU - FcObjectStaticNameFini - FcValueCanonicalize - FcValueListDestroy - FcPatternFindElt - FcPatternInsertElt - FcPatternAddWithBinding - FcPatternFreeze - FcPatternFini - FcPatternAppend - FcPatternAddFullFname - FcPatternTransferFullFname - FcStrStaticName - FcStringHash - FcPatternNewBank - FcPatternNeededBytes - FcPatternNeededBytesAlign - FcPatternDistributeBytes - FcPatternSerialize - FcPatternUnserialize - FcMatrixFree - FcStrPlus - FcStrFree - FcStrBufInit - FcStrBufDestroy - FcStrBufDone - FcStrBufChar - FcStrBufString - FcStrBufData - FcStrCmpIgnoreBlanksAndCase - FcStrContainsIgnoreBlanksAndCase - FcStrContainsIgnoreCase - FcStrUsesHome - FcStrLastSlash - FcStrHashIgnoreCase -LIBRARY libfontconfig-@LT_CURRENT_MINUS_AGE@.dll -VERSION @LT_CURRENT@.@LT_REVISION@ -- 2.39.5