]> git.wh0rd.org - fontconfig.git/blame_incremental - configure.in
Bump version
[fontconfig.git] / configure.in
... / ...
CommitLineData
1dnl
2dnl fontconfig/configure.in
3dnl
4dnl Copyright © 2003 Keith Packard
5dnl
6dnl Permission to use, copy, modify, distribute, and sell this software and its
7dnl documentation for any purpose is hereby granted without fee, provided that
8dnl the above copyright notice appear in all copies and that both that
9dnl copyright notice and this permission notice appear in supporting
10dnl documentation, and that the name of the author(s) not be used in
11dnl advertising or publicity pertaining to distribution of the software without
12dnl specific, written prior permission. The authors make no
13dnl representations about the suitability of this software for any purpose. It
14dnl is provided "as is" without express or implied warranty.
15dnl
16dnl THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18dnl EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22dnl PERFORMANCE OF THIS SOFTWARE.
23dnl
24dnl Process this file with autoconf to create configure.
25
26AC_INIT(fonts.dtd)
27
28dnl ==========================================================================
29dnl Versioning
30dnl ==========================================================================
31
32dnl This is the package version number, not the shared library
33dnl version. This same version number must appear in fontconfig/fontconfig.h
34dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's
35dnl not possible to extract the version number here from fontconfig.h
36AM_INIT_AUTOMAKE(fontconfig, 2.8.90)
37m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
38AM_MAINTAINER_MODE
39
40dnl libtool versioning
41
42dnl bump revision when fixing bugs
43dnl bump current and age, reset revision to zero when adding APIs
44dnl bump current, leave age, reset revision to zero when changing/removing APIS
45LIBT_CURRENT=5
46LIBT_REVISION=4
47AC_SUBST(LIBT_CURRENT)
48AC_SUBST(LIBT_REVISION)
49LIBT_AGE=4
50
51LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
52AC_SUBST(LIBT_VERSION_INFO)
53
54LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
55AC_SUBST(LIBT_CURRENT_MINUS_AGE)
56
57dnl ==========================================================================
58
59AC_CONFIG_HEADERS(config.h)
60
61AC_PROG_CC
62AC_PROG_INSTALL
63AC_PROG_LN_S
64AC_LIBTOOL_WIN32_DLL
65AM_PROG_LIBTOOL
66AC_PROG_MAKE_SET
67
68dnl ==========================================================================
69
70case "$host" in
71 *-*-mingw*)
72 os_win32=yes
73 ;;
74 *)
75 os_win32=no
76esac
77AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
78
79if test "$os_win32" = "yes"; then
80 AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
81fi
82AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
83
84WARN_CFLAGS=""
85if 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])
91fi
92AC_SUBST(WARN_CFLAGS)
93
94
95dnl ==========================================================================
96
97AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
98
99dnl ==========================================================================
100
101AC_ARG_WITH(arch, [ --with-arch=ARCH Force architecture to ARCH], arch="$withval", arch=auto)
102
103if test "x$arch" != xauto; then
104 AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names])
105fi
106
107
108dnl ==========================================================================
109
110# Checks for header files.
111AC_HEADER_DIRENT
112AC_HEADER_STDC
113AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
114
115# Checks for typedefs, structures, and compiler characteristics.
116AC_C_CONST
117AC_C_INLINE
118AC_TYPE_PID_T
119
120# Checks for library functions.
121AC_FUNC_VPRINTF
122AC_FUNC_MMAP
123AC_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#
128AC_MSG_CHECKING([for a usable iconv])
129ICONV_LIBS=""
130AC_TRY_LINK([#include <iconv.h>],
131 [iconv_open ("from", "to");],
132 [use_iconv=1],
133 [use_iconv=0])
134if test x$use_iconv = x1; then
135 AC_MSG_RESULT([libc])
136else
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"
154fi
155AC_SUBST(ICONV_LIBS)
156AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
157
158#
159# Checks for FreeType
160#
161
162AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
163
164if 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
169else
170 ft_config="$freetype_config"
171fi
172
173FREETYPE_CFLAGS="`$ft_config --cflags`"
174FREETYPE_LIBS="`$ft_config --libs`"
175
176AC_SUBST(FREETYPE_LIBS)
177AC_SUBST(FREETYPE_CFLAGS)
178
179fontconfig_save_libs="$LIBS"
180fontconfig_save_cflags="$CFLAGS"
181LIBS="$LIBS $FREETYPE_LIBS"
182CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
183AC_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)
184AC_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])
189AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
190 [FT_Bitmap_Size structure includes y_ppem field])
191CFLAGS="$fontconfig_save_cflags"
192LIBS="$fontconfig_save_libs"
193
194#
195# Check expat configuration
196#
197
198AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR], expat=$withval, expat=yes)
199AC_ARG_WITH(expat-includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes)
200AC_ARG_WITH(expat-lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes)
201
202if 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
303fi
304
305#
306# Check libxml2 configuration
307#
308
309AC_ARG_ENABLE(libxml2, [ --enable-libxml2 Use libxml2 instead of Expat])
310
311PKG_PROG_PKG_CONFIG
312
313if 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)
319fi
320
321#
322# Set default font directory
323#
324
325AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes)
326
327case "$default_fonts" in
328yes)
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 ;;
344esac
345
346AC_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#
353AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
354
355case "$add_fonts" in
356yes)
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 ;;
377no)
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 ;;
384esac
385
386AC_SUBST(FC_ADD_FONTS)
387
388FC_FONTPATH=""
389
390case "$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 ;;
397esac
398
399AC_SUBST(FC_FONTPATH)
400
401#
402# Set default cache directory path
403#
404AC_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
406case $fc_cachedir in
407no|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 ;;
416esac
417AC_SUBST(fc_cachedir)
418FC_CACHEDIR=${fc_cachedir}
419AC_SUBST(FC_CACHEDIR)
420
421FC_FONTDATE=`LC_ALL=C date`
422
423AC_SUBST(FC_FONTDATE)
424
425AC_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
431case "$confdir" in
432no|yes)
433 confdir='${sysconfdir}'/fonts
434 ;;
435*)
436 ;;
437esac
438AC_SUBST(confdir)
439CONFDIR=${confdir}
440AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
441AC_SUBST(CONFDIR)
442
443#
444# Let people not build/install docs if they don't have docbook
445#
446
447AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
448
449AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
450
451default_docs="yes"
452#
453# Check if docs exist or can be created
454#
455if test x$HASDOCBOOK = xno; then
456 if test -f $srcdir/doc/fonts-conf.5; then
457 :
458 else
459 default_docs="no"
460 fi
461fi
462
463AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs)
464
465AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
466
467if 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
477else
478 DOCSRC=""
479 DOCMAN3=""
480fi
481
482AC_SUBST(DOCSRC)
483AC_SUBST(DOCMAN3)
484
485
486dnl Figure out what cache format suffix to use for this architecture
487AC_C_BIGENDIAN
488AC_CHECK_SIZEOF([void *])
489AC_CHECK_ALIGNOF([double])
490
491
492
493AC_OUTPUT([
494Makefile
495fontconfig/Makefile
496fc-lang/Makefile
497fc-glyphname/Makefile
498fc-case/Makefile
499src/Makefile
500conf.d/Makefile
501fc-cache/Makefile
502fc-cat/Makefile
503fc-list/Makefile
504fc-match/Makefile
505fc-pattern/Makefile
506fc-query/Makefile
507fc-scan/Makefile
508doc/Makefile
509doc/version.sgml
510test/Makefile
511fontconfig.spec
512fontconfig.pc
513fontconfig-zip
514])