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