]> git.wh0rd.org - fontconfig.git/blame - configure.in
Include $(top_srcdir), $(top_srcdir)/src before anything else.
[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
c001a192 36AM_INIT_AUTOMAKE(fontconfig, 2.3.95)
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
44415a07 142AC_C_INLINE
fb9545b1
KP
143AC_TYPE_PID_T
144
145# Checks for library functions.
fb9545b1 146AC_FUNC_VPRINTF
d6217cc6
PL
147AC_FUNC_MMAP
148AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long iconv sysconf ftruncate chsize rand_r])
fb9545b1 149
446bb9c9 150#
20fa60c9 151# Checks for FreeType
fb9545b1 152#
24330d27 153
3910f322 154AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
24330d27 155
20fa60c9
KP
156if test "$freetype_config" = "yes"; then
157 AC_PATH_PROG(ft_config,freetype-config,no)
158 if test "$ft_config" = "no"; then
159 AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/])
160 fi
161else
162 ft_config="$freetype_config"
163fi
24330d27 164
996580dc
KP
165FREETYPE_CFLAGS="`$ft_config --cflags`"
166FREETYPE_LIBS="`$ft_config --libs`"
24330d27 167
20fa60c9
KP
168AC_SUBST(FREETYPE_LIBS)
169AC_SUBST(FREETYPE_CFLAGS)
fb9545b1 170
aefb2c41 171#
79621aa5
KP
172# Check to see whether we have:
173# FT_Get_Next_Char
174# FT_Get_BDF_Property
175# FT_Get_PS_Font_Info
656c69d6 176# FT_Has_PS_Glyph_Names
aefb2c41
KP
177#
178
4f38fa81
KP
179fontconfig_save_libs="$LIBS"
180fontconfig_save_cflags="$CFLAGS"
20fa60c9 181LIBS="$LIBS $FREETYPE_LIBS"
4f38fa81 182CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
537e3d23 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)
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
4f27c1c0 401FC_FONTDATE=`LC_ALL=C date`
20fa60c9
KP
402
403AC_SUBST(FC_FONTDATE)
404
405AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes)
406
407#
408# Set CONFDIR and FONTCONFIG_PATH
409#
410
411case "$confdir" in
412no|yes)
ad9b233c 413 confdir='${sysconfdir}'/fonts
20fa60c9
KP
414 ;;
415*)
416 ;;
417esac
418AC_SUBST(confdir)
ad9b233c 419CONFDIR=${confdir}
20fa60c9
KP
420AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
421AC_SUBST(CONFDIR)
422
423#
424# Find out what language orthographies are included
425#
426
394b2bf0 427ORTH_FILES=`cd ${srcdir}/fc-lang && echo *.orth`
20fa60c9 428AC_SUBST(ORTH_FILES)
446bb9c9 429
9238fc06
KP
430#
431# Let people not build/install docs if they don't have docbook
432#
433
434AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
435
2b45ef3a 436AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
9238fc06 437
2b45ef3a
KP
438default_docs="yes"
439#
440# Check if docs exist or can be created
441#
442if test x$HASDOCBOOK = xno; then
443 if test -f doc/fonts-conf.5; then
444 :
445 else
446 default_docs="no"
447 fi
9238fc06
KP
448fi
449
2b45ef3a
KP
450AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs)
451
9238fc06
KP
452AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
453
2b45ef3a
KP
454if test "x$enable_docs" = xyes; then
455 DOCSRC="doc"
4cbc3ee8
KP
456 tmp=funcs.$$
457 cat $srcdir/doc/*.fncs | awk '
458 /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
459 /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
460 /^@@/ { done = 0; }' > $tmp
461 DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
462 echo DOCMAN3 $DOCMAN3
463 rm -f $tmp
2b45ef3a
KP
464else
465 DOCSRC=""
4cbc3ee8 466 DOCMAN3=""
2b45ef3a
KP
467fi
468
469AC_SUBST(DOCSRC)
4cbc3ee8 470AC_SUBST(DOCMAN3)
2b45ef3a 471
0da305f7
KP
472#
473# Figure out where to install documentation
474#
475
af82b48c 476AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval")
0da305f7
KP
477
478if test "x$with_docdir" = "x" ; then
479 DOCDIR='${datadir}/doc/fontconfig'
480else
481 DOCDIR=$with_docdir
482fi
483
484AC_SUBST(DOCDIR)
485
ea44e218
PL
486#
487# Make /var/cache/fontconfig directory available to source code
488#
489
490pkgcachedir='${localstatedir}/cache/'${PACKAGE}
491AC_SUBST(pkgcachedir)
492
20fa60c9
KP
493AC_OUTPUT([
494Makefile
495fontconfig/Makefile
496fc-lang/Makefile
7769c321 497fc-glyphname/Makefile
192296d8 498fc-case/Makefile
20fa60c9 499src/Makefile
daeed6e0 500src/fontconfig.def
414f7202 501conf.d/Makefile
20fa60c9 502fc-cache/Makefile
f28f090d 503fc-cat/Makefile
20fa60c9 504fc-list/Makefile
440e7054 505fc-match/Makefile
0da305f7 506doc/Makefile
fddb839b 507doc/version.sgml
44d90378 508test/Makefile
20fa60c9
KP
509fontconfig.spec
510fontconfig.pc
511fonts.conf
daeed6e0 512fontconfig-zip
20fa60c9 513])