Makefile revision 1.29
1#	$NetBSD: Makefile,v 1.29 2023/01/25 22:35:06 christos Exp $
2
3.include <bsd.own.mk>
4
5LIB=	fontconfig
6
7.PATH:	${X11SRCDIR.${LIB}}/src
8SRCS=	fcatomic.c \
9	fccache.c \
10	fccfg.c \
11	fccharset.c \
12	fccompat.c \
13	fcdbg.c \
14	fcdefault.c \
15	fcdir.c \
16	fcformat.c \
17	fcfreetype.c \
18	fcfs.c \
19	fchash.c \
20	fcinit.c \
21	fclang.c \
22	fclist.c \
23	fcmatch.c \
24	fcmatrix.c \
25	fcname.c \
26	fcobjs.c \
27	fcpat.c \
28	fcptrlist.c \
29	fcrange.c \
30	fcserialize.c \
31	fcstat.c \
32	fcstr.c \
33	fcweight.c \
34	fcxml.c \
35	ftglue.c
36
37.PATH:	${X11SRCDIR.${LIB}}/doc
38MAN=	\
39	FcAtomicCreate.3 \
40	FcAtomicDeleteNew.3 \
41	FcAtomicDestroy.3 \
42	FcAtomicLock.3 \
43	FcAtomicNewFile.3 \
44	FcAtomicOrigFile.3 \
45	FcAtomicReplaceOrig.3 \
46	FcAtomicUnlock.3 \
47	FcBlanksAdd.3 \
48	FcBlanksCreate.3 \
49	FcBlanksDestroy.3 \
50	FcBlanksIsMember.3 \
51	FcCacheCopySet.3 \
52	FcCacheCreateTagFile.3 \
53	FcCacheDir.3 \
54	FcCacheNumFont.3 \
55	FcCacheNumSubdir.3 \
56	FcCacheSubdir.3 \
57	FcCharSetAddChar.3 \
58	FcCharSetCopy.3 \
59	FcCharSetCount.3 \
60	FcCharSetCoverage.3 \
61	FcCharSetCreate.3 \
62	FcCharSetDelChar.3 \
63	FcCharSetDestroy.3 \
64	FcCharSetEqual.3 \
65	FcCharSetFirstPage.3 \
66	FcCharSetHasChar.3 \
67	FcCharSetIntersect.3 \
68	FcCharSetIntersectCount.3 \
69	FcCharSetIsSubset.3 \
70	FcCharSetMerge.3 \
71	FcCharSetNew.3 \
72	FcCharSetNextPage.3 \
73	FcCharSetSubtract.3 \
74	FcCharSetSubtractCount.3 \
75	FcCharSetUnion.3 \
76	FcConfigAppFontAddDir.3 \
77	FcConfigAppFontAddFile.3 \
78	FcConfigAppFontClear.3 \
79	FcConfigBuildFonts.3 \
80	FcConfigCreate.3 \
81	FcConfigDestroy.3 \
82	FcConfigEnableHome.3 \
83	FcConfigFileInfoIterGet.3 \
84	FcConfigFileInfoIterInit.3 \
85	FcConfigFileInfoIterNext.3 \
86	FcConfigFilename.3 \
87	FcConfigGetBlanks.3 \
88	FcConfigGetCache.3 \
89	FcConfigGetCacheDirs.3 \
90	FcConfigGetConfigDirs.3 \
91	FcConfigGetConfigFiles.3 \
92	FcConfigGetCurrent.3 \
93	FcConfigGetFontDirs.3 \
94	FcConfigGetFonts.3 \
95	FcConfigGetRescanInterval.3 \
96	FcConfigGetSysRoot.3 \
97	FcConfigHome.3 \
98	FcConfigParseAndLoad.3 \
99	FcConfigParseAndLoadFromMemory.3 \
100	FcConfigReference.3 \
101	FcConfigSetCurrent.3 \
102	FcConfigSetRescanInterval.3 \
103	FcConfigSetSysRoot.3 \
104	FcConfigSubstitute.3 \
105	FcConfigSubstituteWithPat.3 \
106	FcConfigUptoDate.3 \
107	FcDefaultSubstitute.3 \
108	FcDirCacheClean.3 \
109	FcDirCacheCreateUUID.3 \
110	FcDirCacheDeleteUUID.3 \
111	FcDirCacheLoad.3 \
112	FcDirCacheLoadFile.3 \
113	FcDirCacheRead.3 \
114	FcDirCacheRescan.3 \
115	FcDirCacheUnlink.3 \
116	FcDirCacheUnload.3 \
117	FcDirCacheValid.3 \
118	FcDirSave.3 \
119	FcDirScan.3 \
120	FcFileIsDir.3 \
121	FcFileScan.3 \
122	FcFini.3 \
123	FcFontList.3 \
124	FcFontMatch.3 \
125	FcFontRenderPrepare.3 \
126	FcFontSetAdd.3 \
127	FcFontSetCreate.3 \
128	FcFontSetDestroy.3 \
129	FcFontSetList.3 \
130	FcFontSetMatch.3 \
131	FcFontSetPrint.3 \
132	FcFontSetSort.3 \
133	FcFontSetSortDestroy.3 \
134	FcFontSort.3 \
135	FcFreeTypeCharIndex.3 \
136	FcFreeTypeCharSet.3 \
137	FcFreeTypeCharSetAndSpacing.3 \
138	FcFreeTypeQuery.3 \
139	FcFreeTypeQueryAll.3 \
140	FcFreeTypeQueryFace.3 \
141	FcGetDefaultLangs.3 \
142	FcGetLangs.3 \
143	FcGetVersion.3 \
144	FcInit.3 \
145	FcInitBringUptoDate.3 \
146	FcInitLoadConfig.3 \
147	FcInitLoadConfigAndFonts.3 \
148	FcInitReinitialize.3 \
149	FcIsLower.3 \
150	FcIsUpper.3 \
151	FcLangGetCharSet.3 \
152	FcLangNormalize.3 \
153	FcLangSetAdd.3 \
154	FcLangSetCompare.3 \
155	FcLangSetContains.3 \
156	FcLangSetCopy.3 \
157	FcLangSetCreate.3 \
158	FcLangSetDel.3 \
159	FcLangSetDestroy.3 \
160	FcLangSetEqual.3 \
161	FcLangSetGetLangs.3 \
162	FcLangSetHasLang.3 \
163	FcLangSetHash.3 \
164	FcLangSetSubtract.3 \
165	FcLangSetUnion.3 \
166	FcMatrixCopy.3 \
167	FcMatrixEqual.3 \
168	FcMatrixInit.3 \
169	FcMatrixMultiply.3 \
170	FcMatrixRotate.3 \
171	FcMatrixScale.3 \
172	FcMatrixShear.3 \
173	FcNameConstant.3 \
174	FcNameGetConstant.3 \
175	FcNameGetObjectType.3 \
176	FcNameParse.3 \
177	FcNameRegisterConstants.3 \
178	FcNameRegisterObjectTypes.3 \
179	FcNameUnparse.3 \
180	FcNameUnregisterConstants.3 \
181	FcNameUnregisterObjectTypes.3 \
182	FcObjectSetAdd.3 \
183	FcObjectSetBuild.3 \
184	FcObjectSetCreate.3 \
185	FcObjectSetDestroy.3 \
186	FcPatternAdd-Type.3 \
187	FcPatternAdd.3 \
188	FcPatternAddWeak.3 \
189	FcPatternBuild.3 \
190	FcPatternCreate.3 \
191	FcPatternDel.3 \
192	FcPatternDestroy.3 \
193	FcPatternDuplicate.3 \
194	FcPatternEqual.3 \
195	FcPatternEqualSubset.3 \
196	FcPatternFilter.3 \
197	FcPatternFindIter.3 \
198	FcPatternFormat.3 \
199	FcPatternGet-Type.3 \
200	FcPatternGet.3 \
201	FcPatternGetWithBinding.3 \
202	FcPatternHash.3 \
203	FcPatternIterEqual.3 \
204	FcPatternIterGetObject.3 \
205	FcPatternIterGetValue.3 \
206	FcPatternIterIsValid.3 \
207	FcPatternIterNext.3 \
208	FcPatternIterStart.3 \
209	FcPatternIterValueCount.3 \
210	FcPatternObjectCount.3 \
211	FcPatternPrint.3 \
212	FcPatternReference.3 \
213	FcPatternRemove.3 \
214	FcRangeCopy.3 \
215	FcRangeCreateDouble.3 \
216	FcRangeCreateInteger.3 \
217	FcRangeDestroy.3 \
218	FcRangeGetDouble.3 \
219	FcStrBasename.3 \
220	FcStrCmp.3 \
221	FcStrCmpIgnoreCase.3 \
222	FcStrCopy.3 \
223	FcStrCopyFilename.3 \
224	FcStrDirname.3 \
225	FcStrDowncase.3 \
226	FcStrFree.3 \
227	FcStrListCreate.3 \
228	FcStrListDone.3 \
229	FcStrListFirst.3 \
230	FcStrListNext.3 \
231	FcStrPlus.3 \
232	FcStrSetAdd.3 \
233	FcStrSetAddFilename.3 \
234	FcStrSetCreate.3 \
235	FcStrSetDel.3 \
236	FcStrSetDestroy.3 \
237	FcStrSetEqual.3 \
238	FcStrSetMember.3 \
239	FcStrStr.3 \
240	FcStrStrIgnoreCase.3 \
241	FcToLower.3 \
242	FcUcs4ToUtf8.3 \
243	FcUtf16Len.3 \
244	FcUtf16ToUcs4.3 \
245	FcUtf8Len.3 \
246	FcUtf8ToUcs4.3 \
247	FcValueDestroy.3 \
248	FcValueEqual.3 \
249	FcValuePrint.3 \
250	FcValueSave.3 \
251	FcWeightFromOpenType.3 \
252	FcWeightFromOpenTypeDouble.3 \
253	FcWeightToOpenType.3 \
254	FcWeightToOpenTypeDouble.3
255
256MAN+=	fonts-conf.5
257
258MLINKS= fonts-conf.5 fonts.conf.5
259
260LIBDPLIBS=\
261	expat		${NETBSDSRCDIR}/external/mit/expat/lib/libexpat \
262	freetype	${.CURDIR}/../../freetype
263
264# XXX FONTCONFIG_PATH was arbitrarily chosen
265FONTCONFIG_PATH=/etc/fonts
266TEMPLATEDIR=${FONTCONFIG_PATH}/fontconfig/conf.avail
267
268CPPFLAGS+=	-DHAVE_CONFIG_H
269CPPFLAGS+=	-DFONTCONFIG_PATH='"${FONTCONFIG_PATH}"' \
270		-DFC_DEFAULT_FONTS='"<dir>${X11FONTDIR}</dir>"' \
271		-DFC_TEMPLATEDIR='"${X11FONTDIR}"' \
272		-DFC_CACHEDIR='"/var/cache/fontconfig"' \
273		-DCONFIGDIR='"${FONTCONFIG_PATH}/conf.d"' \
274		-DHAVE_FT_BITMAP_SIZE_Y_PPEM \
275		-DHAVE_FT_GET_BDF_PROPERTY \
276		-DHAVE_FT_GET_NEXT_CHAR \
277		-DHAVE_FT_GET_PS_FONT_INFO \
278		-DHAVE_FT_GET_X11_FONT_FORMAT \
279		-DHAVE_FT_HAS_PS_GLYPH_NAMES \
280		-DHAVE_EXPAT -DXFREE86_FT2 -DHAVE_INTTYPES_H \
281		-DHAVE_STDINT_H -DHAVE_RANDOM \
282		-DHAVE_STRUCT_STAT_ST_MTIM \
283		-DHAVE_FT_DONE_MM_VAR
284
285CPPFLAGS+=	${X11FLAGS.THREADLIB}
286CPPFLAGS+=	-I${DESTDIR}${X11INCDIR}/freetype2 \
287		-I${X11SRCDIR.freetype}/src \
288		-I${X11SRCDIR.freetype}/include \
289		-I${X11SRCDIR.freetype}/include/freetype \
290		-I${X11SRCDIR.${LIB}}/../include \
291		-I. \
292		-I${X11SRCDIR.${LIB}}
293
294IGNORE_QUALIFIERS+= ${${ACTIVE_CC} == "gcc":? -Wno-error=discarded-qualifiers :}
295IGNORE_QUALIFIERS+= ${${ACTIVE_CC} == "clang":? -Wno-error=incompatible-pointer-types-discards-qualifiers :}
296
297CPPFLAGS.fccache.c+= 	${IGNORE_QUALIFIERS}
298CPPFLAGS.fccfg.c+=	${IGNORE_QUALIFIERS}
299
300.if ${MACHINE_ARCH:Mvax}
301COPTS.fccache.c+=	-O0
302COPTS.fccfg.c+=	-O0
303.endif
304
305.include "Makefile.fcarch"
306
307CLEANFILES+= fcarch.h
308
309PKGCONFIG=	fontconfig
310PKGCONFIG_SED_FLAGS= \
311	-e "s,@sysconfdir@,${X11ETCDIR},; \
312	    s,@localstatedir@,/var,; \
313	    s,@BASECONFIGDIR@,${FONTCONFIG_PATH},; \
314	    s,@PKG_EXPAT_LIBS@,-lexpat,; \
315	    s,@PKG_EXPAT_CFLAGS@,,; \
316	    s,@TEMPLATEDIR@,${TEMPLATEDIR},; \
317	    s,@fc_cachedir@,${FONTCONFIG_PATH},"
318
319# XXX
320CPPFLAGS.fcxml.c=	-Wno-error
321
322CWARNFLAGS.clang+=	-Wno-pointer-sign -Wno-switch
323
324.if ${MACHINE_ARCH} == "sparc" || ${COMMON_MACHINE_ARCH:U} == "sparc"
325COPTS.fccache.c+=	${${ACTIVE_CC} == "clang":? -Wa,-Av8plus  :}
326COPTS.fccfg.c+=	${${ACTIVE_CC} == "clang":? -Wa,-Av8plus  :}
327COPTS.fccharset.c+=	${${ACTIVE_CC} == "clang":? -Wa,-Av8plus  :}
328COPTS.fcobjs.c+=	${${ACTIVE_CC} == "clang":? -Wa,-Av8plus  :}
329COPTS.fcpat.c+=	${${ACTIVE_CC} == "clang":? -Wa,-Av8plus  :}
330COPTS.fcstr.c+=	${${ACTIVE_CC} == "clang":? -Wa,-Av8plus  :}
331.endif
332
333LINTFLAGS+=-DFC_NO_MT
334
335LIBUUID_DIST=	${NETBSDSRCDIR}/external/bsd/libuuid_ul/lib/libuuid_ul
336.include "${LIBUUID_DIST}/srcs.mk"
337.include "${LIBUUID_DIST}/libuuid_ul-rename.mk"
338SRCS+=	${UUID_UL_SRCS}
339
340includes depend dependall all: uuid/uuid.h
341uuid/uuid.h:
342	@-mkdir -p uuid
343	ln -s ${X11SRCDIR}/external/bsd/libuuid_ul/dist/uuid.h uuid/uuid.h
344
345CLEANFILES+=	uuid/uuid.h
346
347.include <bsd.x11.mk>
348.include <bsd.lib.mk>
349