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