]> git.wh0rd.org - fontconfig.git/blame - configure.in
Make fc-arch stuff cross-compiling-safe
[fontconfig.git] / configure.in
CommitLineData
20fa60c9 1dnl
e690fbb2 2dnl fontconfig/configure.in
20fa60c9 3dnl
46b51147 4dnl Copyright © 2003 Keith Packard
20fa60c9
KP
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
5aaf466d 10dnl documentation, and that the name of the author(s) not be used in
20fa60c9 11dnl advertising or publicity pertaining to distribution of the software without
5aaf466d 12dnl specific, written prior permission. The authors make no
20fa60c9
KP
13dnl representations about the suitability of this software for any purpose. It
14dnl is provided "as is" without express or implied warranty.
15dnl
3074a73b 16dnl THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
20fa60c9 17dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
3074a73b 18dnl EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
20fa60c9
KP
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.
fb9545b1 23dnl
20fa60c9 24dnl Process this file with autoconf to create configure.
24330d27 25
8fc10a72
KP
26AC_INIT(fonts.dtd)
27
20fa60c9
KP
28dnl ==========================================================================
29dnl Versioning
30dnl ==========================================================================
fa244f3d 31
ff3f1f98
KP
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
4a3bef8a 36AM_INIT_AUTOMAKE(fontconfig, 2.8.0)
247c4f3d 37m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
6ae6acf3 38AM_MAINTAINER_MODE
24330d27 39
20fa60c9
KP
40dnl libtool versioning
41
4984242e
KP
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
50d937b0 45LIBT_CURRENT=5
2e44cbe1 46LIBT_REVISION=4
19d124dc
KP
47AC_SUBST(LIBT_CURRENT)
48AC_SUBST(LIBT_REVISION)
50d937b0 49LIBT_AGE=4
ff3f1f98 50
19d124dc
KP
51LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
52AC_SUBST(LIBT_VERSION_INFO)
20fa60c9 53
19d124dc
KP
54LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
55AC_SUBST(LIBT_CURRENT_MINUS_AGE)
daeed6e0 56
20fa60c9
KP
57dnl ==========================================================================
58
d1a0fca3 59AC_CONFIG_HEADERS(config.h)
fb9545b1 60
24330d27 61AC_PROG_CC
24330d27 62AC_PROG_INSTALL
24330d27 63AC_PROG_LN_S
daeed6e0 64AC_LIBTOOL_WIN32_DLL
20fa60c9
KP
65AM_PROG_LIBTOOL
66AC_PROG_MAKE_SET
67
daeed6e0
TL
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
6ae6acf3 84WARN_CFLAGS=""
6ae6acf3
KP
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"
5b8e43a4
KP
89 AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1,
90 [Can use #warning in C files])
6ae6acf3
KP
91fi
92AC_SUBST(WARN_CFLAGS)
93
5b8e43a4 94
daeed6e0
TL
95dnl ==========================================================================
96
d8ae9c92
KP
97AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
98
99dnl ==========================================================================
100
2b629781
KP
101AC_ARG_WITH(arch, [ --with-arch=ARCH Force architecture to ARCH], arch="$withval", arch=auto)
102
d1a0fca3
BE
103if test "x$arch" != xauto; then
104 AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names])
2b629781
KP
105fi
106
2b629781
KP
107
108dnl ==========================================================================
109
fb9545b1
KP
110# Checks for header files.
111AC_HEADER_DIRENT
112AC_HEADER_STDC
73775d8f 113AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
fb9545b1
KP
114
115# Checks for typedefs, structures, and compiler characteristics.
116AC_C_CONST
44415a07 117AC_C_INLINE
fb9545b1
KP
118AC_TYPE_PID_T
119
120# Checks for library functions.
fb9545b1 121AC_FUNC_VPRINTF
d6217cc6 122AC_FUNC_MMAP
cc104e6a 123AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48])
73775d8f
PL
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");],
34918278
KP
143 [use_iconv=1],
144 [use_iconv=0])
73775d8f
PL
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.])
fb9545b1 157
446bb9c9 158#
20fa60c9 159# Checks for FreeType
fb9545b1 160#
24330d27 161
3910f322 162AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
24330d27 163
20fa60c9
KP
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
24330d27 172
996580dc
KP
173FREETYPE_CFLAGS="`$ft_config --cflags`"
174FREETYPE_LIBS="`$ft_config --libs`"
24330d27 175
20fa60c9
KP
176AC_SUBST(FREETYPE_LIBS)
177AC_SUBST(FREETYPE_CFLAGS)
fb9545b1 178
4f38fa81
KP
179fontconfig_save_libs="$LIBS"
180fontconfig_save_cflags="$CFLAGS"
20fa60c9 181LIBS="$LIBS $FREETYPE_LIBS"
4f38fa81 182CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
00c0972a 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)
208a720f
KP
184AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
185 HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
186 HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
4f38fa81
KP
187[#include <ft2build.h>
188#include FT_FREETYPE_H])
4f38fa81
KP
189AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
190 [FT_Bitmap_Size structure includes y_ppem field])
6ae6acf3
KP
191CFLAGS="$fontconfig_save_cflags"
192LIBS="$fontconfig_save_libs"
fb9545b1 193
fa244f3d
KP
194#
195# Check expat configuration
196#
24330d27 197
20fa60c9 198AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR], expat=$withval, expat=yes)
3910f322
KP
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)
20fa60c9 201
e99f0f0a
PL
202if test "$enable_libxml2" != "yes"; then
203 case "$expat" in
204 no)
24330d27 205 ;;
e99f0f0a
PL
206 *)
207 case "$expat_includes" in
59e149e7 208 yes)
e99f0f0a
PL
209 case "$expat" in
210 yes)
211 ;;
212 *)
213 EXPAT_CFLAGS="-I$expat/include"
214 ;;
215 esac
216 ;;
217 no)
218 EXPAT_CFLAGS=""
59e149e7
KP
219 ;;
220 *)
e99f0f0a 221 EXPAT_CFLAGS="-I$expat_includes"
59e149e7
KP
222 ;;
223 esac
e99f0f0a 224 case "$expat_lib" in
fa244f3d 225 yes)
e99f0f0a
PL
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)
fb9545b1
KP
236 ;;
237 *)
e99f0f0a 238 EXPAT_LIBS="-L$expat_lib -lexpat"
fb9545b1
KP
239 ;;
240 esac
fb9545b1 241
e99f0f0a
PL
242 expatsaved_CPPFLAGS="$CPPFLAGS"
243 CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
244 expatsaved_LIBS="$LIBS"
245 LIBS="$LIBS $EXPAT_LIBS"
fb9545b1 246
e99f0f0a
PL
247 AC_CHECK_HEADER(expat.h)
248 case "$ac_cv_header_expat_h" in
fb9545b1 249 no)
e99f0f0a
PL
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
fb9545b1
KP
263 ;;
264 yes)
fb9545b1
KP
265 have_expat_header=yes
266 ;;
267 esac
e99f0f0a
PL
268 case "$have_expat_header" in
269 no)
a6a66da0
NL
270 expat=no
271 ;;
e99f0f0a
PL
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 ;;
fb9545b1 286 esac
e99f0f0a
PL
287 CPPFLAGS="$expatsaved_CPPFLAGS"
288 LIBS="$expatsaved_LIBS"
24330d27
KP
289 ;;
290 esac
fb9545b1 291
e99f0f0a
PL
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
b17cf498
PL
311PKG_PROG_PKG_CONFIG
312
e99f0f0a
PL
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
24330d27 320
20fa60c9
KP
321#
322# Set default font directory
323#
324
3910f322 325AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes)
20fa60c9
KP
326
327case "$default_fonts" in
328yes)
ee1d8125
TL
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
20fa60c9
KP
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#
af82b48c
KP
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
20fa60c9 352#
3910f322 353AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
20fa60c9 354
af82b48c 355case "$add_fonts" in
20fa60c9 356yes)
af82b48c 357 FC_ADD_FONTS=""
bf0093b7 358 for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
af82b48c 359 case x"$FC_ADD_FONTS" in
20fa60c9 360 x)
2d9c79c0
KP
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
20fa60c9
KP
371 fi
372 ;;
373 esac
374 done
af82b48c 375 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
20fa60c9
KP
376 ;;
377no)
af82b48c 378 FC_ADD_FONTS=""
20fa60c9
KP
379 ;;
380*)
af82b48c
KP
381 FC_ADD_FONTS="$add_fonts"
382 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
20fa60c9
KP
383 ;;
384esac
385
af82b48c 386AC_SUBST(FC_ADD_FONTS)
20fa60c9
KP
387
388FC_FONTPATH=""
389
af82b48c 390case "$FC_ADD_FONTS" in
20fa60c9
KP
391"")
392 ;;
393*)
af82b48c
KP
394 FC_FONTPATH=`echo $FC_ADD_FONTS |
395 sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
20fa60c9
KP
396 ;;
397esac
398
399AC_SUBST(FC_FONTPATH)
400
7410e40b
PL
401#
402# Set default cache directory path
403#
36ae1d95 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)
7410e40b
PL
405
406case $fc_cachedir in
407no|yes)
8a3dc488
TL
408 if test "$os_win32" = "yes"; then
409 fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
410 else
c08216c6 411 fc_cachedir='${localstatedir}/cache/${PACKAGE}'
8a3dc488 412 fi
7410e40b
PL
413 ;;
414*)
415 ;;
416esac
417AC_SUBST(fc_cachedir)
418FC_CACHEDIR=${fc_cachedir}
419AC_SUBST(FC_CACHEDIR)
420
4f27c1c0 421FC_FONTDATE=`LC_ALL=C date`
20fa60c9
KP
422
423AC_SUBST(FC_FONTDATE)
424
36ae1d95 425AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default SYSCONFDIR/fonts)], confdir="$withval", confdir=yes)
20fa60c9
KP
426
427#
428# Set CONFDIR and FONTCONFIG_PATH
429#
430
431case "$confdir" in
432no|yes)
ad9b233c 433 confdir='${sysconfdir}'/fonts
20fa60c9
KP
434 ;;
435*)
436 ;;
437esac
438AC_SUBST(confdir)
ad9b233c 439CONFDIR=${confdir}
20fa60c9
KP
440AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
441AC_SUBST(CONFDIR)
442
9238fc06
KP
443#
444# Let people not build/install docs if they don't have docbook
445#
446
447AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
448
2b45ef3a 449AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
9238fc06 450
2b45ef3a
KP
451default_docs="yes"
452#
453# Check if docs exist or can be created
454#
455if test x$HASDOCBOOK = xno; then
2cae0512 456 if test -f $srcdir/doc/fonts-conf.5; then
2b45ef3a
KP
457 :
458 else
459 default_docs="no"
460 fi
9238fc06
KP
461fi
462
2b45ef3a
KP
463AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs)
464
9238fc06
KP
465AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
466
2b45ef3a
KP
467if test "x$enable_docs" = xyes; then
468 DOCSRC="doc"
4cbc3ee8
KP
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
2b45ef3a
KP
477else
478 DOCSRC=""
4cbc3ee8 479 DOCMAN3=""
2b45ef3a
KP
480fi
481
482AC_SUBST(DOCSRC)
4cbc3ee8 483AC_SUBST(DOCMAN3)
2b45ef3a 484
d1a0fca3
BE
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
20fa60c9 493AC_OUTPUT([
d1a0fca3 494Makefile
20fa60c9
KP
495fontconfig/Makefile
496fc-lang/Makefile
7769c321 497fc-glyphname/Makefile
192296d8 498fc-case/Makefile
20fa60c9 499src/Makefile
414f7202 500conf.d/Makefile
20fa60c9 501fc-cache/Makefile
f28f090d 502fc-cat/Makefile
20fa60c9 503fc-list/Makefile
440e7054 504fc-match/Makefile
ba7b50ab 505fc-pattern/Makefile
77c0d8bc 506fc-query/Makefile
6bffe1a9 507fc-scan/Makefile
0da305f7 508doc/Makefile
fddb839b 509doc/version.sgml
44d90378 510test/Makefile
20fa60c9
KP
511fontconfig.spec
512fontconfig.pc
daeed6e0 513fontconfig-zip
20fa60c9 514])