]> git.wh0rd.org - fontconfig.git/blame - configure.in
Fix multi-arch cache files: compute the position for the block to be added
[fontconfig.git] / configure.in
CommitLineData
20fa60c9
KP
1dnl
2dnl $Id$
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
10dnl documentation, and that the name of Keith Packard not be used in
11dnl advertising or publicity pertaining to distribution of the software without
12dnl specific, written prior permission. Keith Packard makes 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 KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18dnl EVENT SHALL KEITH PACKARD 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.
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
f28f090d 36AM_INIT_AUTOMAKE(fontconfig, 2.3.90)
6ae6acf3 37AM_MAINTAINER_MODE
24330d27 38
20fa60c9
KP
39dnl libtool versioning
40
ff3f1f98
KP
41LT_CURRENT=1
42LT_REVISION=4
daeed6e0
TL
43AC_SUBST(LT_CURRENT)
44AC_SUBST(LT_REVISION)
ff3f1f98
KP
45LT_AGE=0
46
47LT_VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE"
48AC_SUBST(LT_VERSION_INFO)
20fa60c9 49
daeed6e0
TL
50LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
51AC_SUBST(LT_CURRENT_MINUS_AGE)
52
20fa60c9
KP
53dnl ==========================================================================
54
20fa60c9 55AM_CONFIG_HEADER(config.h)
fb9545b1 56
24330d27 57AC_PROG_CC
24330d27 58AC_PROG_INSTALL
24330d27 59AC_PROG_LN_S
daeed6e0 60AC_LIBTOOL_WIN32_DLL
20fa60c9
KP
61AM_PROG_LIBTOOL
62AC_PROG_MAKE_SET
63
daeed6e0
TL
64dnl ==========================================================================
65
66case "$host" in
67 *-*-mingw*)
68 os_win32=yes
69 ;;
70 *)
71 os_win32=no
72esac
73AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
74
75if test "$os_win32" = "yes"; then
76 AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
77fi
78AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
79
6ae6acf3
KP
80WARN_CFLAGS=""
81
82if test "x$GCC" = "xyes"; then
83 WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
84 -Wmissing-prototypes -Wmissing-declarations \
85 -Wnested-externs -fno-strict-aliasing"
86fi
87AC_SUBST(WARN_CFLAGS)
88
daeed6e0
TL
89dnl ==========================================================================
90
d8ae9c92
KP
91AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
92
93dnl ==========================================================================
94
95# Setup for compiling build tools (fc-glyphname, etc)
96AC_MSG_CHECKING([for a C compiler for build tools])
97if test $cross_compiling = yes; then
98 AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
99else
100 CC_FOR_BUILD=$CC
101fi
102AC_MSG_RESULT([$CC_FOR_BUILD])
103AC_SUBST(CC_FOR_BUILD)
104
105AC_MSG_CHECKING([for suffix of executable build tools])
106if test $cross_compiling = yes; then
107 cat >conftest.c <<\_______EOF
108int
109main ()
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
127else
128 EXEEXT_FOR_BUILD=$EXEEXT
129fi
130AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
131AC_SUBST(EXEEXT_FOR_BUILD)
132
133dnl ==========================================================================
134
fb9545b1
KP
135# Checks for header files.
136AC_HEADER_DIRENT
137AC_HEADER_STDC
4f27c1c0 138AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h iconv.h])
fb9545b1
KP
139
140# Checks for typedefs, structures, and compiler characteristics.
141AC_C_CONST
142AC_TYPE_PID_T
143
144# Checks for library functions.
fb9545b1 145AC_FUNC_VPRINTF
4f27c1c0 146AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long iconv])
fb9545b1 147
446bb9c9 148#
20fa60c9 149# Checks for FreeType
fb9545b1 150#
24330d27 151
3910f322 152AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
24330d27 153
20fa60c9
KP
154if test "$freetype_config" = "yes"; then
155 AC_PATH_PROG(ft_config,freetype-config,no)
156 if test "$ft_config" = "no"; then
157 AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/])
158 fi
159else
160 ft_config="$freetype_config"
161fi
24330d27 162
996580dc
KP
163FREETYPE_CFLAGS="`$ft_config --cflags`"
164FREETYPE_LIBS="`$ft_config --libs`"
24330d27 165
20fa60c9
KP
166AC_SUBST(FREETYPE_LIBS)
167AC_SUBST(FREETYPE_CFLAGS)
fb9545b1 168
aefb2c41 169#
79621aa5
KP
170# Check to see whether we have:
171# FT_Get_Next_Char
172# FT_Get_BDF_Property
173# FT_Get_PS_Font_Info
656c69d6 174# FT_Has_PS_Glyph_Names
aefb2c41
KP
175#
176
4f38fa81
KP
177fontconfig_save_libs="$LIBS"
178fontconfig_save_cflags="$CFLAGS"
20fa60c9 179LIBS="$LIBS $FREETYPE_LIBS"
4f38fa81 180CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
537e3d23 181AC_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)
208a720f
KP
182AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
183 HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
184 HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
4f38fa81
KP
185[#include <ft2build.h>
186#include FT_FREETYPE_H])
4f38fa81
KP
187AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
188 [FT_Bitmap_Size structure includes y_ppem field])
6ae6acf3
KP
189CFLAGS="$fontconfig_save_cflags"
190LIBS="$fontconfig_save_libs"
fb9545b1 191
fa244f3d
KP
192#
193# Check expat configuration
194#
24330d27 195
20fa60c9 196AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR], expat=$withval, expat=yes)
3910f322
KP
197AC_ARG_WITH(expat-includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes)
198AC_ARG_WITH(expat-lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes)
20fa60c9 199
fb9545b1 200case "$expat" in
24330d27 201no)
24330d27 202 ;;
fb9545b1
KP
203*)
204 case "$expat_includes" in
59e149e7
KP
205 yes)
206 case "$expat" in
207 yes)
208 ;;
209 *)
210 EXPAT_CFLAGS="-I$expat/include"
211 ;;
212 esac
213 ;;
214 no)
20fa60c9 215 EXPAT_CFLAGS=""
fb9545b1
KP
216 ;;
217 *)
20fa60c9 218 EXPAT_CFLAGS="-I$expat_includes"
fb9545b1
KP
219 ;;
220 esac
221 case "$expat_lib" in
222 yes)
223 case "$expat" in
fa244f3d 224 yes)
20fa60c9 225 EXPAT_LIBS="-lexpat"
fb9545b1
KP
226 ;;
227 *)
20fa60c9 228 EXPAT_LIBS="-L$expat/lib -lexpat"
fb9545b1
KP
229 ;;
230 esac
231 ;;
24330d27 232 no)
24330d27
KP
233 ;;
234 *)
20fa60c9 235 EXPAT_LIBS="-L$expat_lib -lexpat"
fb9545b1
KP
236 ;;
237 esac
238
20fa60c9
KP
239 expatsaved_CPPFLAGS="$CPPFLAGS"
240 CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
241 expatsaved_LIBS="$LIBS"
242 LIBS="$LIBS $EXPAT_LIBS"
fb9545b1
KP
243
244 AC_CHECK_HEADER(expat.h)
245 case "$ac_cv_header_expat_h" in
246 no)
247 AC_CHECK_HEADER(xmlparse.h)
248 case "$ac_cv_header_xmlparse_h" in
249 no)
250 have_expat_header=no;
251 ;;
252 yes)
253 HAVE_XMLPARSE_H=1
254 AC_SUBST(HAVE_XMLPARSE_H)
20fa60c9
KP
255 AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
256 [Use xmlparse.h instead of expat.h])
fb9545b1
KP
257 have_expat_header=yes
258 ;;
259 esac
260 ;;
261 yes)
262 have_expat_header=yes
263 ;;
264 esac
265 case "$have_expat_header" in
266 no)
fb9545b1
KP
267 expat=no
268 ;;
269 yes)
700a4128 270 AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
a6a66da0 271 case "$ac_cv_func_XML_SetDoctypeDeclHandler" in
fb9545b1
KP
272 yes)
273 HAVE_EXPAT=1
274 AC_SUBST(HAVE_EXPAT)
20fa60c9
KP
275 AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT,
276 [Found a useable expat library])
fb9545b1 277 ;;
a6a66da0
NL
278 *)
279 expat=no
280 ;;
fb9545b1 281 esac
24330d27
KP
282 ;;
283 esac
8eb4a52e
NL
284 CPPFLAGS="$expatsaved_CPPFLAGS"
285 LIBS="$expatsaved_LIBS"
24330d27
KP
286 ;;
287esac
20fa60c9
KP
288AC_SUBST(EXPAT_LIBS)
289AC_SUBST(EXPAT_CFLAGS)
fb9545b1 290
fa244f3d
KP
291case "$expat" in
292no)
700a4128 293 AC_MSG_ERROR([Cannot find usable expat library. This could mean that your version is too old.])
fb9545b1
KP
294 ;;
295esac
24330d27 296
20fa60c9
KP
297#
298# Set default font directory
299#
300
3910f322 301AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes)
20fa60c9
KP
302
303case "$default_fonts" in
304yes)
ee1d8125
TL
305 if test "$os_win32" = "yes"; then
306 FC_DEFAULT_FONTS="WINDOWSFONTDIR"
307 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR",
308 [Windows font directory])
309 else
310 FC_DEFAULT_FONTS="/usr/share/fonts"
311 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts",
312 [System font directory])
313 fi
20fa60c9
KP
314 ;;
315*)
316 FC_DEFAULT_FONTS="$default_fonts"
317 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
318 [System font directory])
319 ;;
320esac
321
322AC_SUBST(FC_DEFAULT_FONTS)
323
324#
af82b48c
KP
325# Add more fonts if available. By default, add only the directories
326# with outline fonts; those with bitmaps can be added as desired in
327# local.conf or ~/.fonts.conf
20fa60c9 328#
3910f322 329AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
20fa60c9 330
af82b48c 331case "$add_fonts" in
20fa60c9 332yes)
af82b48c 333 FC_ADD_FONTS=""
bf0093b7 334 for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
af82b48c 335 case x"$FC_ADD_FONTS" in
20fa60c9 336 x)
2d9c79c0
KP
337 sub="$dir/fonts"
338 if test -d "$sub"; then
339 case x$FC_ADD_FONTS in
340 x)
341 FC_ADD_FONTS="$sub"
342 ;;
343 *)
344 FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
345 ;;
346 esac
20fa60c9
KP
347 fi
348 ;;
349 esac
350 done
af82b48c 351 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
20fa60c9
KP
352 ;;
353no)
af82b48c 354 FC_ADD_FONTS=""
20fa60c9
KP
355 ;;
356*)
af82b48c
KP
357 FC_ADD_FONTS="$add_fonts"
358 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
20fa60c9
KP
359 ;;
360esac
361
af82b48c 362AC_SUBST(FC_ADD_FONTS)
20fa60c9
KP
363
364FC_FONTPATH=""
365
af82b48c 366case "$FC_ADD_FONTS" in
20fa60c9
KP
367"")
368 ;;
369*)
af82b48c
KP
370 FC_FONTPATH=`echo $FC_ADD_FONTS |
371 sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
20fa60c9
KP
372 ;;
373esac
374
375AC_SUBST(FC_FONTPATH)
376
4f27c1c0 377FC_FONTDATE=`LC_ALL=C date`
20fa60c9
KP
378
379AC_SUBST(FC_FONTDATE)
380
381AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes)
382
383#
384# Set CONFDIR and FONTCONFIG_PATH
385#
386
387case "$confdir" in
388no|yes)
ad9b233c 389 confdir='${sysconfdir}'/fonts
20fa60c9
KP
390 ;;
391*)
392 ;;
393esac
394AC_SUBST(confdir)
ad9b233c 395CONFDIR=${confdir}
20fa60c9
KP
396AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
397AC_SUBST(CONFDIR)
398
399#
400# Find out what language orthographies are included
401#
402
394b2bf0 403ORTH_FILES=`cd ${srcdir}/fc-lang && echo *.orth`
20fa60c9 404AC_SUBST(ORTH_FILES)
446bb9c9 405
9238fc06
KP
406#
407# Let people not build/install docs if they don't have docbook
408#
409
410AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
411
2b45ef3a 412AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
9238fc06 413
2b45ef3a
KP
414default_docs="yes"
415#
416# Check if docs exist or can be created
417#
418if test x$HASDOCBOOK = xno; then
419 if test -f doc/fonts-conf.5; then
420 :
421 else
422 default_docs="no"
423 fi
9238fc06
KP
424fi
425
2b45ef3a
KP
426AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs)
427
9238fc06
KP
428AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
429
2b45ef3a
KP
430if test "x$enable_docs" = xyes; then
431 DOCSRC="doc"
4cbc3ee8
KP
432 tmp=funcs.$$
433 cat $srcdir/doc/*.fncs | awk '
434 /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
435 /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
436 /^@@/ { done = 0; }' > $tmp
437 DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
438 echo DOCMAN3 $DOCMAN3
439 rm -f $tmp
2b45ef3a
KP
440else
441 DOCSRC=""
4cbc3ee8 442 DOCMAN3=""
2b45ef3a
KP
443fi
444
445AC_SUBST(DOCSRC)
4cbc3ee8 446AC_SUBST(DOCMAN3)
2b45ef3a 447
0da305f7
KP
448#
449# Figure out where to install documentation
450#
451
af82b48c 452AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval")
0da305f7
KP
453
454if test "x$with_docdir" = "x" ; then
455 DOCDIR='${datadir}/doc/fontconfig'
456else
457 DOCDIR=$with_docdir
458fi
459
460AC_SUBST(DOCDIR)
461
20fa60c9
KP
462AC_OUTPUT([
463Makefile
464fontconfig/Makefile
465fc-lang/Makefile
7769c321 466fc-glyphname/Makefile
192296d8 467fc-case/Makefile
20fa60c9 468src/Makefile
daeed6e0 469src/fontconfig.def
414f7202 470conf.d/Makefile
20fa60c9 471fc-cache/Makefile
f28f090d 472fc-cat/Makefile
20fa60c9 473fc-list/Makefile
440e7054 474fc-match/Makefile
0da305f7 475doc/Makefile
fddb839b 476doc/version.sgml
44d90378 477test/Makefile
20fa60c9
KP
478fontconfig.spec
479fontconfig.pc
480fonts.conf
daeed6e0 481fontconfig-zip
20fa60c9 482])