]>
Commit | Line | Data |
---|---|---|
1 | dnl | |
2 | dnl fontconfig/configure.in | |
3 | dnl | |
4 | dnl Copyright © 2003 Keith Packard | |
5 | dnl | |
6 | dnl Permission to use, copy, modify, distribute, and sell this software and its | |
7 | dnl documentation for any purpose is hereby granted without fee, provided that | |
8 | dnl the above copyright notice appear in all copies and that both that | |
9 | dnl copyright notice and this permission notice appear in supporting | |
10 | dnl documentation, and that the name of the author(s) not be used in | |
11 | dnl advertising or publicity pertaining to distribution of the software without | |
12 | dnl specific, written prior permission. The authors make no | |
13 | dnl representations about the suitability of this software for any purpose. It | |
14 | dnl is provided "as is" without express or implied warranty. | |
15 | dnl | |
16 | dnl THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, | |
17 | dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO | |
18 | dnl EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR | |
19 | dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, | |
20 | dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER | |
21 | dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | |
22 | dnl PERFORMANCE OF THIS SOFTWARE. | |
23 | dnl | |
24 | dnl Process this file with autoconf to create configure. | |
25 | ||
26 | AC_INIT(fonts.dtd) | |
27 | ||
28 | dnl ========================================================================== | |
29 | dnl Versioning | |
30 | dnl ========================================================================== | |
31 | ||
32 | dnl This is the package version number, not the shared library | |
33 | dnl version. This same version number must appear in fontconfig/fontconfig.h | |
34 | dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's | |
35 | dnl not possible to extract the version number here from fontconfig.h | |
36 | AM_INIT_AUTOMAKE(fontconfig, 2.8.90) | |
37 | m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) | |
38 | AM_MAINTAINER_MODE | |
39 | ||
40 | dnl libtool versioning | |
41 | ||
42 | dnl bump revision when fixing bugs | |
43 | dnl bump current and age, reset revision to zero when adding APIs | |
44 | dnl bump current, leave age, reset revision to zero when changing/removing APIS | |
45 | LIBT_CURRENT=5 | |
46 | LIBT_REVISION=4 | |
47 | AC_SUBST(LIBT_CURRENT) | |
48 | AC_SUBST(LIBT_REVISION) | |
49 | LIBT_AGE=4 | |
50 | ||
51 | LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE" | |
52 | AC_SUBST(LIBT_VERSION_INFO) | |
53 | ||
54 | LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE` | |
55 | AC_SUBST(LIBT_CURRENT_MINUS_AGE) | |
56 | ||
57 | dnl ========================================================================== | |
58 | ||
59 | AC_CONFIG_HEADERS(config.h) | |
60 | ||
61 | AC_PROG_CC | |
62 | AC_PROG_INSTALL | |
63 | AC_PROG_LN_S | |
64 | AC_LIBTOOL_WIN32_DLL | |
65 | AM_PROG_LIBTOOL | |
66 | AC_PROG_MAKE_SET | |
67 | ||
68 | dnl ========================================================================== | |
69 | ||
70 | case "$host" in | |
71 | *-*-mingw*) | |
72 | os_win32=yes | |
73 | ;; | |
74 | *) | |
75 | os_win32=no | |
76 | esac | |
77 | AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") | |
78 | ||
79 | if test "$os_win32" = "yes"; then | |
80 | AC_CHECK_PROG(ms_librarian, lib.exe, yes, no) | |
81 | fi | |
82 | AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) | |
83 | ||
84 | WARN_CFLAGS="" | |
85 | if test "x$GCC" = "xyes"; then | |
86 | WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ | |
87 | -Wmissing-prototypes -Wmissing-declarations \ | |
88 | -Wnested-externs -fno-strict-aliasing" | |
89 | AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1, | |
90 | [Can use #warning in C files]) | |
91 | fi | |
92 | AC_SUBST(WARN_CFLAGS) | |
93 | ||
94 | ||
95 | dnl ========================================================================== | |
96 | ||
97 | AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes) | |
98 | ||
99 | dnl ========================================================================== | |
100 | ||
101 | AC_ARG_WITH(arch, [ --with-arch=ARCH Force architecture to ARCH], arch="$withval", arch=auto) | |
102 | ||
103 | if test "x$arch" != xauto; then | |
104 | AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names]) | |
105 | fi | |
106 | ||
107 | ||
108 | dnl ========================================================================== | |
109 | ||
110 | # Checks for header files. | |
111 | AC_HEADER_DIRENT | |
112 | AC_HEADER_STDC | |
113 | AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h]) | |
114 | ||
115 | # Checks for typedefs, structures, and compiler characteristics. | |
116 | AC_C_CONST | |
117 | AC_C_INLINE | |
118 | AC_TYPE_PID_T | |
119 | ||
120 | # Checks for library functions. | |
121 | AC_FUNC_VPRINTF | |
122 | AC_FUNC_MMAP | |
123 | AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48]) | |
124 | ||
125 | # | |
126 | # Checks for iconv | |
127 | # | |
128 | AC_MSG_CHECKING([for a usable iconv]) | |
129 | ICONV_LIBS="" | |
130 | AC_TRY_LINK([#include <iconv.h>], | |
131 | [iconv_open ("from", "to");], | |
132 | [use_iconv=1], | |
133 | [use_iconv=0]) | |
134 | if test x$use_iconv = x1; then | |
135 | AC_MSG_RESULT([libc]) | |
136 | else | |
137 | # try using libiconv | |
138 | fontconfig_save_libs="$LIBS" | |
139 | LIBS="$LIBS -liconv" | |
140 | ||
141 | AC_TRY_LINK([#include <iconv.h>], | |
142 | [iconv_open ("from", "to");], | |
143 | [use_iconv=1], | |
144 | [use_iconv=0]) | |
145 | ||
146 | if test x$use_iconv = x1; then | |
147 | ICONV_LIBS="-liconv" | |
148 | AC_MSG_RESULT([libiconv]) | |
149 | else | |
150 | AC_MSG_RESULT([no]) | |
151 | fi | |
152 | ||
153 | LIBS="$fontconfig_save_libs" | |
154 | fi | |
155 | AC_SUBST(ICONV_LIBS) | |
156 | AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.]) | |
157 | ||
158 | # | |
159 | # Checks for FreeType | |
160 | # | |
161 | ||
162 | AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes) | |
163 | ||
164 | if test "$freetype_config" = "yes"; then | |
165 | AC_PATH_PROG(ft_config,freetype-config,no) | |
166 | if test "$ft_config" = "no"; then | |
167 | AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/]) | |
168 | fi | |
169 | else | |
170 | ft_config="$freetype_config" | |
171 | fi | |
172 | ||
173 | FREETYPE_CFLAGS="`$ft_config --cflags`" | |
174 | FREETYPE_LIBS="`$ft_config --libs`" | |
175 | ||
176 | AC_SUBST(FREETYPE_LIBS) | |
177 | AC_SUBST(FREETYPE_CFLAGS) | |
178 | ||
179 | fontconfig_save_libs="$LIBS" | |
180 | fontconfig_save_cflags="$CFLAGS" | |
181 | LIBS="$LIBS $FREETYPE_LIBS" | |
182 | CFLAGS="$CFLAGS $FREETYPE_CFLAGS" | |
183 | AC_CHECK_FUNCS(FT_Get_Next_Char FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format FT_Select_Size) | |
184 | AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem, | |
185 | HAVE_FT_BITMAP_SIZE_Y_PPEM=1, | |
186 | HAVE_FT_BITMAP_SIZE_Y_PPEM=0, | |
187 | [#include <ft2build.h> | |
188 | #include FT_FREETYPE_H]) | |
189 | AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM, | |
190 | [FT_Bitmap_Size structure includes y_ppem field]) | |
191 | CFLAGS="$fontconfig_save_cflags" | |
192 | LIBS="$fontconfig_save_libs" | |
193 | ||
194 | # | |
195 | # Check expat configuration | |
196 | # | |
197 | ||
198 | AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR], expat=$withval, expat=yes) | |
199 | AC_ARG_WITH(expat-includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes) | |
200 | AC_ARG_WITH(expat-lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes) | |
201 | ||
202 | if test "$enable_libxml2" != "yes"; then | |
203 | case "$expat" in | |
204 | no) | |
205 | ;; | |
206 | *) | |
207 | case "$expat_includes" in | |
208 | yes) | |
209 | case "$expat" in | |
210 | yes) | |
211 | ;; | |
212 | *) | |
213 | EXPAT_CFLAGS="-I$expat/include" | |
214 | ;; | |
215 | esac | |
216 | ;; | |
217 | no) | |
218 | EXPAT_CFLAGS="" | |
219 | ;; | |
220 | *) | |
221 | EXPAT_CFLAGS="-I$expat_includes" | |
222 | ;; | |
223 | esac | |
224 | case "$expat_lib" in | |
225 | yes) | |
226 | case "$expat" in | |
227 | yes) | |
228 | EXPAT_LIBS="-lexpat" | |
229 | ;; | |
230 | *) | |
231 | EXPAT_LIBS="-L$expat/lib -lexpat" | |
232 | ;; | |
233 | esac | |
234 | ;; | |
235 | no) | |
236 | ;; | |
237 | *) | |
238 | EXPAT_LIBS="-L$expat_lib -lexpat" | |
239 | ;; | |
240 | esac | |
241 | ||
242 | expatsaved_CPPFLAGS="$CPPFLAGS" | |
243 | CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS" | |
244 | expatsaved_LIBS="$LIBS" | |
245 | LIBS="$LIBS $EXPAT_LIBS" | |
246 | ||
247 | AC_CHECK_HEADER(expat.h) | |
248 | case "$ac_cv_header_expat_h" in | |
249 | no) | |
250 | AC_CHECK_HEADER(xmlparse.h) | |
251 | case "$ac_cv_header_xmlparse_h" in | |
252 | no) | |
253 | have_expat_header=no; | |
254 | ;; | |
255 | yes) | |
256 | HAVE_XMLPARSE_H=1 | |
257 | AC_SUBST(HAVE_XMLPARSE_H) | |
258 | AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H, | |
259 | [Use xmlparse.h instead of expat.h]) | |
260 | have_expat_header=yes | |
261 | ;; | |
262 | esac | |
263 | ;; | |
264 | yes) | |
265 | have_expat_header=yes | |
266 | ;; | |
267 | esac | |
268 | case "$have_expat_header" in | |
269 | no) | |
270 | expat=no | |
271 | ;; | |
272 | yes) | |
273 | AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler) | |
274 | case "$ac_cv_func_XML_SetDoctypeDeclHandler" in | |
275 | yes) | |
276 | HAVE_EXPAT=1 | |
277 | AC_SUBST(HAVE_EXPAT) | |
278 | AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT, | |
279 | [Found a useable expat library]) | |
280 | ;; | |
281 | *) | |
282 | expat=no | |
283 | ;; | |
284 | esac | |
285 | ;; | |
286 | esac | |
287 | CPPFLAGS="$expatsaved_CPPFLAGS" | |
288 | LIBS="$expatsaved_LIBS" | |
289 | ;; | |
290 | esac | |
291 | ||
292 | AC_SUBST(EXPAT_CFLAGS) | |
293 | AC_SUBST(EXPAT_LIBS) | |
294 | ||
295 | case "$expat" in | |
296 | no) | |
297 | EXPAT_CFLAGS="" | |
298 | EXPAT_LIBS="" | |
299 | ||
300 | AC_MSG_WARN([Cannot find usable expat library. Trying to use libxml2 as fallback.]) | |
301 | ;; | |
302 | esac | |
303 | fi | |
304 | ||
305 | # | |
306 | # Check libxml2 configuration | |
307 | # | |
308 | ||
309 | AC_ARG_ENABLE(libxml2, [ --enable-libxml2 Use libxml2 instead of Expat]) | |
310 | ||
311 | PKG_PROG_PKG_CONFIG | |
312 | ||
313 | if test "$enable_libxml2" = "yes" -o "$expat" = "no"; then | |
314 | PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6]) | |
315 | AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat]) | |
316 | ||
317 | AC_SUBST(LIBXML2_CFLAGS) | |
318 | AC_SUBST(LIBXML2_LIBS) | |
319 | fi | |
320 | ||
321 | # | |
322 | # Set default font directory | |
323 | # | |
324 | ||
325 | AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes) | |
326 | ||
327 | case "$default_fonts" in | |
328 | yes) | |
329 | if test "$os_win32" = "yes"; then | |
330 | FC_DEFAULT_FONTS="WINDOWSFONTDIR" | |
331 | AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", | |
332 | [Windows font directory]) | |
333 | else | |
334 | FC_DEFAULT_FONTS="/usr/share/fonts" | |
335 | AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", | |
336 | [System font directory]) | |
337 | fi | |
338 | ;; | |
339 | *) | |
340 | FC_DEFAULT_FONTS="$default_fonts" | |
341 | AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts", | |
342 | [System font directory]) | |
343 | ;; | |
344 | esac | |
345 | ||
346 | AC_SUBST(FC_DEFAULT_FONTS) | |
347 | ||
348 | # | |
349 | # Add more fonts if available. By default, add only the directories | |
350 | # with outline fonts; those with bitmaps can be added as desired in | |
351 | # local.conf or ~/.fonts.conf | |
352 | # | |
353 | AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes) | |
354 | ||
355 | case "$add_fonts" in | |
356 | yes) | |
357 | FC_ADD_FONTS="" | |
358 | for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do | |
359 | case x"$FC_ADD_FONTS" in | |
360 | x) | |
361 | sub="$dir/fonts" | |
362 | if test -d "$sub"; then | |
363 | case x$FC_ADD_FONTS in | |
364 | x) | |
365 | FC_ADD_FONTS="$sub" | |
366 | ;; | |
367 | *) | |
368 | FC_ADD_FONTS="$FC_ADD_FONTS,$sub" | |
369 | ;; | |
370 | esac | |
371 | fi | |
372 | ;; | |
373 | esac | |
374 | done | |
375 | AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories]) | |
376 | ;; | |
377 | no) | |
378 | FC_ADD_FONTS="" | |
379 | ;; | |
380 | *) | |
381 | FC_ADD_FONTS="$add_fonts" | |
382 | AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories]) | |
383 | ;; | |
384 | esac | |
385 | ||
386 | AC_SUBST(FC_ADD_FONTS) | |
387 | ||
388 | FC_FONTPATH="" | |
389 | ||
390 | case "$FC_ADD_FONTS" in | |
391 | "") | |
392 | ;; | |
393 | *) | |
394 | FC_FONTPATH=`echo $FC_ADD_FONTS | | |
395 | sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'` | |
396 | ;; | |
397 | esac | |
398 | ||
399 | AC_SUBST(FC_FONTPATH) | |
400 | ||
401 | # | |
402 | # Set default cache directory path | |
403 | # | |
404 | AC_ARG_WITH(cache-dir, [ --with-cache-dir=DIR Use DIR to store cache files (default LOCALSTATEDIR/cache/fontconfig)], fc_cachedir="$withval", fc_cachedir=yes) | |
405 | ||
406 | case $fc_cachedir in | |
407 | no|yes) | |
408 | if test "$os_win32" = "yes"; then | |
409 | fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE" | |
410 | else | |
411 | fc_cachedir='${localstatedir}/cache/${PACKAGE}' | |
412 | fi | |
413 | ;; | |
414 | *) | |
415 | ;; | |
416 | esac | |
417 | AC_SUBST(fc_cachedir) | |
418 | FC_CACHEDIR=${fc_cachedir} | |
419 | AC_SUBST(FC_CACHEDIR) | |
420 | ||
421 | FC_FONTDATE=`LC_ALL=C date` | |
422 | ||
423 | AC_SUBST(FC_FONTDATE) | |
424 | ||
425 | AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default SYSCONFDIR/fonts)], confdir="$withval", confdir=yes) | |
426 | ||
427 | # | |
428 | # Set CONFDIR and FONTCONFIG_PATH | |
429 | # | |
430 | ||
431 | case "$confdir" in | |
432 | no|yes) | |
433 | confdir='${sysconfdir}'/fonts | |
434 | ;; | |
435 | *) | |
436 | ;; | |
437 | esac | |
438 | AC_SUBST(confdir) | |
439 | CONFDIR=${confdir} | |
440 | AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory]) | |
441 | AC_SUBST(CONFDIR) | |
442 | ||
443 | # | |
444 | # Let people not build/install docs if they don't have docbook | |
445 | # | |
446 | ||
447 | AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no) | |
448 | ||
449 | AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes) | |
450 | ||
451 | default_docs="yes" | |
452 | # | |
453 | # Check if docs exist or can be created | |
454 | # | |
455 | if test x$HASDOCBOOK = xno; then | |
456 | if test -f $srcdir/doc/fonts-conf.5; then | |
457 | : | |
458 | else | |
459 | default_docs="no" | |
460 | fi | |
461 | fi | |
462 | ||
463 | AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs) | |
464 | ||
465 | AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes) | |
466 | ||
467 | if test "x$enable_docs" = xyes; then | |
468 | DOCSRC="doc" | |
469 | tmp=funcs.$$ | |
470 | cat $srcdir/doc/*.fncs | awk ' | |
471 | /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } } | |
472 | /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } } | |
473 | /^@@/ { done = 0; }' > $tmp | |
474 | DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'` | |
475 | echo DOCMAN3 $DOCMAN3 | |
476 | rm -f $tmp | |
477 | else | |
478 | DOCSRC="" | |
479 | DOCMAN3="" | |
480 | fi | |
481 | ||
482 | AC_SUBST(DOCSRC) | |
483 | AC_SUBST(DOCMAN3) | |
484 | ||
485 | ||
486 | dnl Figure out what cache format suffix to use for this architecture | |
487 | AC_C_BIGENDIAN | |
488 | AC_CHECK_SIZEOF([void *]) | |
489 | AC_CHECK_ALIGNOF([double]) | |
490 | ||
491 | ||
492 | ||
493 | AC_OUTPUT([ | |
494 | Makefile | |
495 | fontconfig/Makefile | |
496 | fc-lang/Makefile | |
497 | fc-glyphname/Makefile | |
498 | fc-case/Makefile | |
499 | src/Makefile | |
500 | conf.d/Makefile | |
501 | fc-cache/Makefile | |
502 | fc-cat/Makefile | |
503 | fc-list/Makefile | |
504 | fc-match/Makefile | |
505 | fc-pattern/Makefile | |
506 | fc-query/Makefile | |
507 | fc-scan/Makefile | |
508 | doc/Makefile | |
509 | doc/version.sgml | |
510 | test/Makefile | |
511 | fontconfig.spec | |
512 | fontconfig.pc | |
513 | fontconfig-zip | |
514 | ]) |