]> git.wh0rd.org - fontconfig.git/blame - configure.in
Add SEE ALSO section (bug 2085)
[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
d5346181 36AM_INIT_AUTOMAKE(fontconfig, 2.2.98)
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
205 yes|no)
20fa60c9 206 EXPAT_CFLAGS=""
fb9545b1
KP
207 ;;
208 *)
20fa60c9 209 EXPAT_CFLAGS="-I$expat_includes"
fb9545b1
KP
210 ;;
211 esac
212 case "$expat_lib" in
213 yes)
214 case "$expat" in
fa244f3d 215 yes)
20fa60c9 216 EXPAT_LIBS="-lexpat"
fb9545b1
KP
217 ;;
218 *)
20fa60c9 219 EXPAT_LIBS="-L$expat/lib -lexpat"
fb9545b1
KP
220 ;;
221 esac
222 ;;
24330d27 223 no)
24330d27
KP
224 ;;
225 *)
20fa60c9 226 EXPAT_LIBS="-L$expat_lib -lexpat"
fb9545b1
KP
227 ;;
228 esac
229
20fa60c9
KP
230 expatsaved_CPPFLAGS="$CPPFLAGS"
231 CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
232 expatsaved_LIBS="$LIBS"
233 LIBS="$LIBS $EXPAT_LIBS"
fb9545b1
KP
234
235 AC_CHECK_HEADER(expat.h)
236 case "$ac_cv_header_expat_h" in
237 no)
238 AC_CHECK_HEADER(xmlparse.h)
239 case "$ac_cv_header_xmlparse_h" in
240 no)
241 have_expat_header=no;
242 ;;
243 yes)
244 HAVE_XMLPARSE_H=1
245 AC_SUBST(HAVE_XMLPARSE_H)
20fa60c9
KP
246 AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
247 [Use xmlparse.h instead of expat.h])
fb9545b1
KP
248 have_expat_header=yes
249 ;;
250 esac
251 ;;
252 yes)
253 have_expat_header=yes
254 ;;
255 esac
256 case "$have_expat_header" in
257 no)
fb9545b1
KP
258 expat=no
259 ;;
260 yes)
700a4128 261 AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
a6a66da0 262 case "$ac_cv_func_XML_SetDoctypeDeclHandler" in
fb9545b1
KP
263 yes)
264 HAVE_EXPAT=1
265 AC_SUBST(HAVE_EXPAT)
20fa60c9
KP
266 AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT,
267 [Found a useable expat library])
fb9545b1 268 ;;
a6a66da0
NL
269 *)
270 expat=no
271 ;;
fb9545b1 272 esac
24330d27
KP
273 ;;
274 esac
8eb4a52e
NL
275 CPPFLAGS="$expatsaved_CPPFLAGS"
276 LIBS="$expatsaved_LIBS"
24330d27
KP
277 ;;
278esac
20fa60c9
KP
279AC_SUBST(EXPAT_LIBS)
280AC_SUBST(EXPAT_CFLAGS)
fb9545b1 281
fa244f3d
KP
282case "$expat" in
283no)
700a4128 284 AC_MSG_ERROR([Cannot find usable expat library. This could mean that your version is too old.])
fb9545b1
KP
285 ;;
286esac
24330d27 287
20fa60c9
KP
288#
289# Set default font directory
290#
291
3910f322 292AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes)
20fa60c9
KP
293
294case "$default_fonts" in
295yes)
ee1d8125
TL
296 if test "$os_win32" = "yes"; then
297 FC_DEFAULT_FONTS="WINDOWSFONTDIR"
298 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR",
299 [Windows font directory])
300 else
301 FC_DEFAULT_FONTS="/usr/share/fonts"
302 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts",
303 [System font directory])
304 fi
20fa60c9
KP
305 ;;
306*)
307 FC_DEFAULT_FONTS="$default_fonts"
308 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
309 [System font directory])
310 ;;
311esac
312
313AC_SUBST(FC_DEFAULT_FONTS)
314
315#
af82b48c
KP
316# Add more fonts if available. By default, add only the directories
317# with outline fonts; those with bitmaps can be added as desired in
318# local.conf or ~/.fonts.conf
20fa60c9 319#
3910f322 320AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
20fa60c9 321
af82b48c 322case "$add_fonts" in
20fa60c9 323yes)
af82b48c 324 FC_ADD_FONTS=""
bf0093b7 325 for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
af82b48c 326 case x"$FC_ADD_FONTS" in
20fa60c9 327 x)
2d9c79c0
KP
328 sub="$dir/fonts"
329 if test -d "$sub"; then
330 case x$FC_ADD_FONTS in
331 x)
332 FC_ADD_FONTS="$sub"
333 ;;
334 *)
335 FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
336 ;;
337 esac
20fa60c9
KP
338 fi
339 ;;
340 esac
341 done
af82b48c 342 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
20fa60c9
KP
343 ;;
344no)
af82b48c 345 FC_ADD_FONTS=""
20fa60c9
KP
346 ;;
347*)
af82b48c
KP
348 FC_ADD_FONTS="$add_fonts"
349 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
20fa60c9
KP
350 ;;
351esac
352
af82b48c 353AC_SUBST(FC_ADD_FONTS)
20fa60c9
KP
354
355FC_FONTPATH=""
356
af82b48c 357case "$FC_ADD_FONTS" in
20fa60c9
KP
358"")
359 ;;
360*)
af82b48c
KP
361 FC_FONTPATH=`echo $FC_ADD_FONTS |
362 sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
20fa60c9
KP
363 ;;
364esac
365
366AC_SUBST(FC_FONTPATH)
367
4f27c1c0 368FC_FONTDATE=`LC_ALL=C date`
20fa60c9
KP
369
370AC_SUBST(FC_FONTDATE)
371
372AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes)
373
374#
375# Set CONFDIR and FONTCONFIG_PATH
376#
377
378case "$confdir" in
379no|yes)
ad9b233c 380 confdir='${sysconfdir}'/fonts
20fa60c9
KP
381 ;;
382*)
383 ;;
384esac
385AC_SUBST(confdir)
ad9b233c 386CONFDIR=${confdir}
20fa60c9
KP
387AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
388AC_SUBST(CONFDIR)
389
390#
391# Find out what language orthographies are included
392#
393
394b2bf0 394ORTH_FILES=`cd ${srcdir}/fc-lang && echo *.orth`
20fa60c9 395AC_SUBST(ORTH_FILES)
446bb9c9 396
9238fc06
KP
397#
398# Let people not build/install docs if they don't have docbook
399#
400
401AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
402
2b45ef3a 403AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
9238fc06 404
2b45ef3a
KP
405default_docs="yes"
406#
407# Check if docs exist or can be created
408#
409if test x$HASDOCBOOK = xno; then
410 if test -f doc/fonts-conf.5; then
411 :
412 else
413 default_docs="no"
414 fi
9238fc06
KP
415fi
416
2b45ef3a
KP
417AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs)
418
9238fc06
KP
419AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
420
2b45ef3a
KP
421if test "x$enable_docs" = xyes; then
422 DOCSRC="doc"
4cbc3ee8
KP
423 tmp=funcs.$$
424 cat $srcdir/doc/*.fncs | awk '
425 /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
426 /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } }
427 /^@@/ { done = 0; }' > $tmp
428 DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
429 echo DOCMAN3 $DOCMAN3
430 rm -f $tmp
2b45ef3a
KP
431else
432 DOCSRC=""
4cbc3ee8 433 DOCMAN3=""
2b45ef3a
KP
434fi
435
436AC_SUBST(DOCSRC)
4cbc3ee8 437AC_SUBST(DOCMAN3)
2b45ef3a 438
0da305f7
KP
439#
440# Figure out where to install documentation
441#
442
af82b48c 443AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval")
0da305f7
KP
444
445if test "x$with_docdir" = "x" ; then
446 DOCDIR='${datadir}/doc/fontconfig'
447else
448 DOCDIR=$with_docdir
449fi
450
451AC_SUBST(DOCDIR)
452
20fa60c9
KP
453AC_OUTPUT([
454Makefile
455fontconfig/Makefile
456fc-lang/Makefile
7769c321 457fc-glyphname/Makefile
192296d8 458fc-case/Makefile
20fa60c9 459src/Makefile
daeed6e0 460src/fontconfig.def
20fa60c9
KP
461fc-cache/Makefile
462fc-list/Makefile
440e7054 463fc-match/Makefile
0da305f7 464doc/Makefile
fddb839b 465doc/version.sgml
44d90378 466test/Makefile
20fa60c9
KP
467fontconfig.spec
468fontconfig.pc
469fonts.conf
daeed6e0 470fontconfig-zip
20fa60c9 471])