]> git.wh0rd.org - fontconfig.git/blob - configure.in
Bump version to 2.5.93
[fontconfig.git] / configure.in
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.5.93)
37 AM_MAINTAINER_MODE
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=4
45 LIBT_REVISION=0
46 AC_SUBST(LIBT_CURRENT)
47 AC_SUBST(LIBT_REVISION)
48 LIBT_AGE=3
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 AM_CONFIG_HEADER(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 DOLT
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 # Setup for compiling build tools (fc-glyphname, etc)
102 AC_MSG_CHECKING([for a C compiler for build tools])
103 if test $cross_compiling = yes; then
104 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
105 else
106 CC_FOR_BUILD=$CC
107 fi
108 AC_MSG_RESULT([$CC_FOR_BUILD])
109 AC_SUBST(CC_FOR_BUILD)
110
111 AC_MSG_CHECKING([for suffix of executable build tools])
112 if test $cross_compiling = yes; then
113 cat >conftest.c <<\_______EOF
114 int
115 main ()
116 {
117 exit (0);
118 }
119 _______EOF
120 for i in .exe ""; do
121 compile="$CC_FOR_BUILD conftest.c -o conftest$i"
122 if AC_TRY_EVAL(compile); then
123 if (./conftest) 2>&AC_FD_CC; then
124 EXEEXT_FOR_BUILD=$i
125 break
126 fi
127 fi
128 done
129 rm -f conftest*
130 if test "${EXEEXT_FOR_BUILD+set}" != set; then
131 AC_MSG_ERROR([Cannot determine suffix of executable build tools])
132 fi
133 else
134 EXEEXT_FOR_BUILD=$EXEEXT
135 fi
136 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
137 AC_SUBST(EXEEXT_FOR_BUILD)
138
139 dnl ==========================================================================
140
141 AC_ARG_WITH(arch, [ --with-arch=ARCH Force architecture to ARCH], arch="$withval", arch=auto)
142
143 if test $cross_compiling = yes; then
144 case "$arch" in
145 auto)
146 AC_MSG_ERROR([Cannot autodetect architecture in cross compile environment]
147 [Use --with-arch=ARCH to specify architecture])
148 ;;
149 esac
150 fi
151
152 ARCHITECTURE=$arch
153 AC_SUBST(ARCHITECTURE)
154
155 dnl ==========================================================================
156
157 # Checks for header files.
158 AC_HEADER_DIRENT
159 AC_HEADER_STDC
160 AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
161
162 # Checks for typedefs, structures, and compiler characteristics.
163 AC_C_CONST
164 AC_C_INLINE
165 AC_TYPE_PID_T
166
167 # Checks for library functions.
168 AC_FUNC_VPRINTF
169 AC_FUNC_MMAP
170 AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48])
171
172 #
173 # Checks for iconv
174 #
175 AC_MSG_CHECKING([for a usable iconv])
176 ICONV_LIBS=""
177 AC_TRY_LINK([#include <iconv.h>],
178 [iconv_open ("from", "to");],
179 [use_iconv=1],
180 [use_iconv=0])
181 if test x$use_iconv = x1; then
182 AC_MSG_RESULT([libc])
183 else
184 # try using libiconv
185 fontconfig_save_libs="$LIBS"
186 LIBS="$LIBS -liconv"
187
188 AC_TRY_LINK([#include <iconv.h>],
189 [iconv_open ("from", "to");],
190 [use_iconv=1],
191 [use_iconv=0])
192
193 if test x$use_iconv = x1; then
194 ICONV_LIBS="-liconv"
195 AC_MSG_RESULT([libiconv])
196 else
197 AC_MSG_RESULT([no])
198 fi
199
200 LIBS="$fontconfig_save_libs"
201 fi
202 AC_SUBST(ICONV_LIBS)
203 AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
204
205 #
206 # Checks for FreeType
207 #
208
209 AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
210
211 if test "$freetype_config" = "yes"; then
212 AC_PATH_PROG(ft_config,freetype-config,no)
213 if test "$ft_config" = "no"; then
214 AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/])
215 fi
216 else
217 ft_config="$freetype_config"
218 fi
219
220 FREETYPE_CFLAGS="`$ft_config --cflags`"
221 FREETYPE_LIBS="`$ft_config --libs`"
222
223 AC_SUBST(FREETYPE_LIBS)
224 AC_SUBST(FREETYPE_CFLAGS)
225
226 #
227 # Check to see whether we have:
228 # FT_Get_Next_Char
229 # FT_Get_BDF_Property
230 # FT_Get_PS_Font_Info
231 # FT_Has_PS_Glyph_Names
232 #
233
234 fontconfig_save_libs="$LIBS"
235 fontconfig_save_cflags="$CFLAGS"
236 LIBS="$LIBS $FREETYPE_LIBS"
237 CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
238 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)
239 AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
240 HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
241 HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
242 [#include <ft2build.h>
243 #include FT_FREETYPE_H])
244 AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
245 [FT_Bitmap_Size structure includes y_ppem field])
246 CFLAGS="$fontconfig_save_cflags"
247 LIBS="$fontconfig_save_libs"
248
249 #
250 # Check expat configuration
251 #
252
253 AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR], expat=$withval, expat=yes)
254 AC_ARG_WITH(expat-includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes)
255 AC_ARG_WITH(expat-lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes)
256
257 if test "$enable_libxml2" != "yes"; then
258 case "$expat" in
259 no)
260 ;;
261 *)
262 case "$expat_includes" in
263 yes)
264 case "$expat" in
265 yes)
266 ;;
267 *)
268 EXPAT_CFLAGS="-I$expat/include"
269 ;;
270 esac
271 ;;
272 no)
273 EXPAT_CFLAGS=""
274 ;;
275 *)
276 EXPAT_CFLAGS="-I$expat_includes"
277 ;;
278 esac
279 case "$expat_lib" in
280 yes)
281 case "$expat" in
282 yes)
283 EXPAT_LIBS="-lexpat"
284 ;;
285 *)
286 EXPAT_LIBS="-L$expat/lib -lexpat"
287 ;;
288 esac
289 ;;
290 no)
291 ;;
292 *)
293 EXPAT_LIBS="-L$expat_lib -lexpat"
294 ;;
295 esac
296
297 expatsaved_CPPFLAGS="$CPPFLAGS"
298 CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
299 expatsaved_LIBS="$LIBS"
300 LIBS="$LIBS $EXPAT_LIBS"
301
302 AC_CHECK_HEADER(expat.h)
303 case "$ac_cv_header_expat_h" in
304 no)
305 AC_CHECK_HEADER(xmlparse.h)
306 case "$ac_cv_header_xmlparse_h" in
307 no)
308 have_expat_header=no;
309 ;;
310 yes)
311 HAVE_XMLPARSE_H=1
312 AC_SUBST(HAVE_XMLPARSE_H)
313 AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
314 [Use xmlparse.h instead of expat.h])
315 have_expat_header=yes
316 ;;
317 esac
318 ;;
319 yes)
320 have_expat_header=yes
321 ;;
322 esac
323 case "$have_expat_header" in
324 no)
325 expat=no
326 ;;
327 yes)
328 AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
329 case "$ac_cv_func_XML_SetDoctypeDeclHandler" in
330 yes)
331 HAVE_EXPAT=1
332 AC_SUBST(HAVE_EXPAT)
333 AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT,
334 [Found a useable expat library])
335 ;;
336 *)
337 expat=no
338 ;;
339 esac
340 ;;
341 esac
342 CPPFLAGS="$expatsaved_CPPFLAGS"
343 LIBS="$expatsaved_LIBS"
344 ;;
345 esac
346
347 AC_SUBST(EXPAT_CFLAGS)
348 AC_SUBST(EXPAT_LIBS)
349
350 case "$expat" in
351 no)
352 EXPAT_CFLAGS=""
353 EXPAT_LIBS=""
354
355 AC_MSG_WARN([Cannot find usable expat library. Trying to use libxml2 as fallback.])
356 ;;
357 esac
358 fi
359
360 #
361 # Check libxml2 configuration
362 #
363
364 AC_ARG_ENABLE(libxml2, [ --enable-libxml2 Use libxml2 instead of Expat])
365
366 PKG_PROG_PKG_CONFIG
367
368 if test "$enable_libxml2" = "yes" -o "$expat" = "no"; then
369 PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
370 AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
371
372 AC_SUBST(LIBXML2_CFLAGS)
373 AC_SUBST(LIBXML2_LIBS)
374 fi
375
376 #
377 # Set default font directory
378 #
379
380 AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes)
381
382 case "$default_fonts" in
383 yes)
384 if test "$os_win32" = "yes"; then
385 FC_DEFAULT_FONTS="WINDOWSFONTDIR"
386 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR",
387 [Windows font directory])
388 else
389 FC_DEFAULT_FONTS="/usr/share/fonts"
390 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts",
391 [System font directory])
392 fi
393 ;;
394 *)
395 FC_DEFAULT_FONTS="$default_fonts"
396 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
397 [System font directory])
398 ;;
399 esac
400
401 AC_SUBST(FC_DEFAULT_FONTS)
402
403 #
404 # Add more fonts if available. By default, add only the directories
405 # with outline fonts; those with bitmaps can be added as desired in
406 # local.conf or ~/.fonts.conf
407 #
408 AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
409
410 case "$add_fonts" in
411 yes)
412 FC_ADD_FONTS=""
413 for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
414 case x"$FC_ADD_FONTS" in
415 x)
416 sub="$dir/fonts"
417 if test -d "$sub"; then
418 case x$FC_ADD_FONTS in
419 x)
420 FC_ADD_FONTS="$sub"
421 ;;
422 *)
423 FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
424 ;;
425 esac
426 fi
427 ;;
428 esac
429 done
430 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
431 ;;
432 no)
433 FC_ADD_FONTS=""
434 ;;
435 *)
436 FC_ADD_FONTS="$add_fonts"
437 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
438 ;;
439 esac
440
441 AC_SUBST(FC_ADD_FONTS)
442
443 FC_FONTPATH=""
444
445 case "$FC_ADD_FONTS" in
446 "")
447 ;;
448 *)
449 FC_FONTPATH=`echo $FC_ADD_FONTS |
450 sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
451 ;;
452 esac
453
454 AC_SUBST(FC_FONTPATH)
455
456 #
457 # Set default cache directory path
458 #
459 AC_ARG_WITH(cache-dir, [ --with-cache-dir=DIR Use DIR to store cache files (default /var/cache/fontconfig)], fc_cachedir="$withval", fc_cachedir=yes)
460
461 case $fc_cachedir in
462 no|yes)
463 if test "$os_win32" = "yes"; then
464 fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
465 else
466 fc_cachedir=`eval echo "${localstatedir}/cache/"${PACKAGE}`
467 fi
468 ;;
469 *)
470 ;;
471 esac
472 AC_SUBST(fc_cachedir)
473 FC_CACHEDIR=${fc_cachedir}
474 AC_SUBST(FC_CACHEDIR)
475
476 FC_FONTDATE=`LC_ALL=C date`
477
478 AC_SUBST(FC_FONTDATE)
479
480 AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes)
481
482 #
483 # Set CONFDIR and FONTCONFIG_PATH
484 #
485
486 case "$confdir" in
487 no|yes)
488 confdir='${sysconfdir}'/fonts
489 ;;
490 *)
491 ;;
492 esac
493 AC_SUBST(confdir)
494 CONFDIR=${confdir}
495 AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
496 AC_SUBST(CONFDIR)
497
498 #
499 # Find out what language orthographies are included
500 #
501
502 ORTH_FILES=`cd ${srcdir}/fc-lang && echo *.orth`
503 AC_SUBST(ORTH_FILES)
504
505 #
506 # Let people not build/install docs if they don't have docbook
507 #
508
509 AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
510
511 AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
512
513 default_docs="yes"
514 #
515 # Check if docs exist or can be created
516 #
517 if test x$HASDOCBOOK = xno; then
518 if test -f $srcdir/doc/fonts-conf.5; then
519 :
520 else
521 default_docs="no"
522 fi
523 fi
524
525 AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs)
526
527 AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
528
529 if test "x$enable_docs" = xyes; then
530 DOCSRC="doc"
531 tmp=funcs.$$
532 cat $srcdir/doc/*.fncs | awk '
533 /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
534 /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
535 /^@@/ { done = 0; }' > $tmp
536 DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
537 echo DOCMAN3 $DOCMAN3
538 rm -f $tmp
539 else
540 DOCSRC=""
541 DOCMAN3=""
542 fi
543
544 AC_SUBST(DOCSRC)
545 AC_SUBST(DOCMAN3)
546
547 #
548 # Figure out where to install documentation
549 #
550
551 AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval")
552
553 if test "x$with_docdir" = "x" ; then
554 DOCDIR='${datadir}/doc/fontconfig'
555 else
556 DOCDIR=$with_docdir
557 fi
558
559 AC_SUBST(DOCDIR)
560
561
562 AC_OUTPUT([
563 Makefile
564 fontconfig/Makefile
565 fc-lang/Makefile
566 fc-glyphname/Makefile
567 fc-case/Makefile
568 fc-arch/Makefile
569 src/Makefile
570 conf.d/Makefile
571 fc-cache/Makefile
572 fc-cat/Makefile
573 fc-list/Makefile
574 fc-match/Makefile
575 doc/Makefile
576 doc/version.sgml
577 test/Makefile
578 fontconfig.spec
579 fontconfig.pc
580 fonts.conf
581 fontconfig-zip
582 ])