Updated Arabic, Persian, and Urdu orthographies
[platform/upstream/fontconfig.git] / configure.in
1 dnl 
2 dnl  fontconfig/configure.in
3 dnl 
4 dnl  Copyright © 2003 Keith Packard
5 dnl 
6 dnl  Permission to use, copy, modify, distribute, and sell this software and its
7 dnl  documentation for any purpose is hereby granted without fee, provided that
8 dnl  the above copyright notice appear in all copies and that both that
9 dnl  copyright notice and this permission notice appear in supporting
10 dnl  documentation, and that the name of Keith Packard not be used in
11 dnl  advertising or publicity pertaining to distribution of the software without
12 dnl  specific, written prior permission.  Keith Packard makes no
13 dnl  representations about the suitability of this software for any purpose.  It
14 dnl  is provided "as is" without express or implied warranty.
15 dnl 
16 dnl  THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17 dnl  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18 dnl  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19 dnl  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20 dnl  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21 dnl  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22 dnl  PERFORMANCE OF THIS SOFTWARE.
23 dnl
24 dnl Process this file with autoconf to create configure.
25
26 AC_INIT(fonts.dtd)
27
28 dnl ==========================================================================
29 dnl                               Versioning              
30 dnl ==========================================================================
31
32 dnl This is the package version number, not the shared library
33 dnl version.  This same version number must appear in fontconfig/fontconfig.h
34 dnl Yes, it is a pain to synchronize version numbers.  Unfortunately, it's
35 dnl not possible to extract the version number here from fontconfig.h
36 AM_INIT_AUTOMAKE(fontconfig, 2.7.2)
37 AM_MAINTAINER_MODE
38
39 dnl libtool versioning
40
41 dnl bump revision when fixing bugs
42 dnl bump current and age, reset revision to zero when adding APIs
43 dnl bump current, leave age, reset revision to zero when changing/removing APIS
44 LIBT_CURRENT=5
45 LIBT_REVISION=2
46 AC_SUBST(LIBT_CURRENT)
47 AC_SUBST(LIBT_REVISION)
48 LIBT_AGE=4
49
50 LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
51 AC_SUBST(LIBT_VERSION_INFO)
52
53 LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
54 AC_SUBST(LIBT_CURRENT_MINUS_AGE)
55
56 dnl ==========================================================================
57
58 AM_CONFIG_HEADER(config.h)
59
60 AC_PROG_CC
61 AC_PROG_INSTALL
62 AC_PROG_LN_S
63 AC_LIBTOOL_WIN32_DLL
64 AM_PROG_LIBTOOL
65 DOLT
66 AC_PROG_MAKE_SET
67
68 dnl ==========================================================================
69
70 case "$host" in
71   *-*-mingw*)
72     os_win32=yes
73     ;;
74   *)
75     os_win32=no
76 esac
77 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
78
79 if test "$os_win32" = "yes"; then
80   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
81 fi
82 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
83
84 WARN_CFLAGS=""
85 if 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])
91 fi
92 AC_SUBST(WARN_CFLAGS)
93
94
95 dnl ==========================================================================
96
97 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
98
99 dnl ==========================================================================
100
101 # Setup for compiling build tools (fc-glyphname, etc)
102 AC_MSG_CHECKING([for a C compiler for build tools])
103 if test $cross_compiling = yes; then
104   AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
105 else
106   CC_FOR_BUILD=$CC
107 fi
108 AC_MSG_RESULT([$CC_FOR_BUILD])
109 AC_SUBST(CC_FOR_BUILD)
110
111 AC_MSG_CHECKING([for suffix of executable build tools])
112 if test $cross_compiling = yes; then
113   cat >conftest.c <<\_______EOF
114 int
115 main ()
116 {
117   exit (0);
118 }
119 _______EOF
120   for i in .exe ""; do
121     compile="$CC_FOR_BUILD conftest.c -o conftest$i"
122     if AC_TRY_EVAL(compile); then
123       if (./conftest) 2>&AC_FD_CC; then
124         EXEEXT_FOR_BUILD=$i
125         break
126       fi
127     fi
128   done
129   rm -f conftest*
130   if test "${EXEEXT_FOR_BUILD+set}" != set; then
131     AC_MSG_ERROR([Cannot determine suffix of executable build tools])
132   fi
133 else
134   EXEEXT_FOR_BUILD=$EXEEXT
135 fi
136 AC_MSG_RESULT([$EXEEXT_FOR_BUILD])
137 AC_SUBST(EXEEXT_FOR_BUILD)
138
139 dnl ==========================================================================
140
141 AC_ARG_WITH(arch,      [  --with-arch=ARCH      Force architecture to ARCH], arch="$withval", arch=auto)
142
143 if test $cross_compiling = yes; then
144         case "$arch" in
145         auto)
146                 AC_MSG_ERROR([Cannot autodetect architecture in cross compile environment]
147                              [Use --with-arch=ARCH to specify architecture])
148                 ;;
149         esac
150 fi
151
152 ARCHITECTURE=$arch
153 AC_SUBST(ARCHITECTURE)
154
155 dnl ==========================================================================
156
157 # Checks for header files.
158 AC_HEADER_DIRENT
159 AC_HEADER_STDC
160 AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
161
162 # Checks for typedefs, structures, and compiler characteristics.
163 AC_C_CONST
164 AC_C_INLINE
165 AC_TYPE_PID_T
166
167 # Checks for library functions.
168 AC_FUNC_VPRINTF
169 AC_FUNC_MMAP
170 AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48])
171
172 #
173 # Checks for iconv
174 #
175 AC_MSG_CHECKING([for a usable iconv])
176 ICONV_LIBS=""
177 AC_TRY_LINK([#include <iconv.h>],
178             [iconv_open ("from", "to");],
179             [use_iconv=1],
180             [use_iconv=0])
181 if test x$use_iconv = x1; then
182         AC_MSG_RESULT([libc])
183 else
184         # try using libiconv
185         fontconfig_save_libs="$LIBS"
186         LIBS="$LIBS -liconv"
187
188         AC_TRY_LINK([#include <iconv.h>],
189                     [iconv_open ("from", "to");],
190                     [use_iconv=1],
191                     [use_iconv=0])
192         
193         if test x$use_iconv = x1; then
194                 ICONV_LIBS="-liconv"
195                 AC_MSG_RESULT([libiconv])
196         else
197                 AC_MSG_RESULT([no])
198         fi
199
200         LIBS="$fontconfig_save_libs"
201 fi
202 AC_SUBST(ICONV_LIBS)
203 AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
204
205 #
206 # Checks for FreeType
207 #
208
209 AC_ARG_WITH(freetype-config, [  --with-freetype-config=PROG   Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
210
211 if test "$freetype_config" = "yes"; then 
212         AC_PATH_PROG(ft_config,freetype-config,no)
213         if test "$ft_config" = "no"; then
214                 AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/])
215         fi
216 else
217         ft_config="$freetype_config"
218 fi
219
220 FREETYPE_CFLAGS="`$ft_config --cflags`"
221 FREETYPE_LIBS="`$ft_config --libs`"
222
223 AC_SUBST(FREETYPE_LIBS)
224 AC_SUBST(FREETYPE_CFLAGS)
225
226 fontconfig_save_libs="$LIBS"
227 fontconfig_save_cflags="$CFLAGS"
228 LIBS="$LIBS $FREETYPE_LIBS"
229 CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
230 AC_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)
231 AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
232                 HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
233                 HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
234 [#include <ft2build.h>
235 #include FT_FREETYPE_H])
236 AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
237                    [FT_Bitmap_Size structure includes y_ppem field])
238 CFLAGS="$fontconfig_save_cflags"
239 LIBS="$fontconfig_save_libs"
240
241 #
242 # Check expat configuration
243 #
244
245 AC_ARG_WITH(expat,             [  --with-expat=DIR              Use Expat in DIR], expat=$withval, expat=yes)
246 AC_ARG_WITH(expat-includes,    [  --with-expat-includes=DIR     Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes)
247 AC_ARG_WITH(expat-lib,         [  --with-expat-lib=DIR          Use Expat library in DIR], expat_lib=$withval, expat_lib=yes)
248
249 if test "$enable_libxml2" != "yes"; then
250         case "$expat" in
251         no)
252         ;;
253         *)
254                 case "$expat_includes" in
255                 yes)
256                         case "$expat" in
257                         yes)
258                                 ;;
259                         *)
260                                 EXPAT_CFLAGS="-I$expat/include"
261                                 ;;
262                         esac
263                         ;;
264                 no)
265                         EXPAT_CFLAGS=""
266                         ;;
267                 *)
268                         EXPAT_CFLAGS="-I$expat_includes"
269                         ;;
270                 esac
271                 case "$expat_lib" in
272                 yes)
273                         case "$expat" in
274                         yes)
275                                 EXPAT_LIBS="-lexpat"
276                                 ;;
277                         *)
278                                 EXPAT_LIBS="-L$expat/lib -lexpat"
279                                 ;;
280                         esac
281                         ;;
282                 no)
283                         ;;
284                 *)
285                         EXPAT_LIBS="-L$expat_lib -lexpat"
286                         ;;
287                 esac
288
289                 expatsaved_CPPFLAGS="$CPPFLAGS"
290                 CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS"
291                 expatsaved_LIBS="$LIBS"
292                 LIBS="$LIBS $EXPAT_LIBS"
293
294                 AC_CHECK_HEADER(expat.h)
295                 case "$ac_cv_header_expat_h" in
296                 no)
297                         AC_CHECK_HEADER(xmlparse.h)
298                         case "$ac_cv_header_xmlparse_h" in
299                         no)
300                                 have_expat_header=no;
301                                 ;;
302                         yes)
303                                 HAVE_XMLPARSE_H=1
304                                 AC_SUBST(HAVE_XMLPARSE_H)
305                                 AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H,
306                                 [Use xmlparse.h instead of expat.h])
307                                 have_expat_header=yes
308                                 ;;
309                         esac
310                         ;;
311                 yes)
312                         have_expat_header=yes
313                         ;;
314                 esac
315                 case "$have_expat_header" in
316                 no)
317                         expat=no
318                         ;;
319                 yes)
320                         AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler)
321                         case "$ac_cv_func_XML_SetDoctypeDeclHandler" in
322                         yes)
323                                 HAVE_EXPAT=1
324                                 AC_SUBST(HAVE_EXPAT)
325                                 AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT,
326                                 [Found a useable expat library])
327                                 ;;
328                         *)
329                                 expat=no
330                                 ;;
331                         esac
332                         ;;
333                 esac
334                 CPPFLAGS="$expatsaved_CPPFLAGS"
335                 LIBS="$expatsaved_LIBS"
336                 ;;
337         esac
338         
339         AC_SUBST(EXPAT_CFLAGS)
340         AC_SUBST(EXPAT_LIBS)
341
342         case "$expat" in
343         no)
344                 EXPAT_CFLAGS=""
345                 EXPAT_LIBS=""
346
347                 AC_MSG_WARN([Cannot find usable expat library. Trying to use libxml2 as fallback.])
348                 ;;
349         esac
350 fi
351
352 #
353 # Check libxml2 configuration
354 #
355
356 AC_ARG_ENABLE(libxml2,         [  --enable-libxml2              Use libxml2 instead of Expat])
357
358 PKG_PROG_PKG_CONFIG
359
360 if test "$enable_libxml2" = "yes" -o "$expat" = "no"; then
361     PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
362     AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
363
364     AC_SUBST(LIBXML2_CFLAGS)
365     AC_SUBST(LIBXML2_LIBS)
366 fi
367
368 #
369 # Set default font directory
370 #
371
372 AC_ARG_WITH(default-fonts,     [  --with-default-fonts=DIR      Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes)
373
374 case "$default_fonts" in
375 yes)
376         if test "$os_win32" = "yes"; then
377                 FC_DEFAULT_FONTS="WINDOWSFONTDIR"
378                 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", 
379                                    [Windows font directory])
380         else
381                 FC_DEFAULT_FONTS="/usr/share/fonts"
382                 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", 
383                                    [System font directory])
384         fi
385         ;;
386 *)
387         FC_DEFAULT_FONTS="$default_fonts"
388         AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts",
389                            [System font directory])
390         ;;
391 esac
392
393 AC_SUBST(FC_DEFAULT_FONTS)
394
395 #
396 # Add more fonts if available.  By default, add only the directories
397 # with outline fonts; those with bitmaps can be added as desired in
398 # local.conf or ~/.fonts.conf
399 #
400 AC_ARG_WITH(add-fonts,        [  --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes)
401
402 case "$add_fonts" in
403 yes)
404         FC_ADD_FONTS=""
405         for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do
406                 case x"$FC_ADD_FONTS" in
407                 x)
408                         sub="$dir/fonts"
409                         if test -d "$sub"; then
410                                 case x$FC_ADD_FONTS in
411                                 x)
412                                         FC_ADD_FONTS="$sub"
413                                         ;;
414                                 *)
415                                         FC_ADD_FONTS="$FC_ADD_FONTS,$sub"
416                                         ;;
417                                 esac
418                         fi
419                         ;;
420                 esac
421         done
422         AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
423         ;;
424 no)
425         FC_ADD_FONTS=""
426         ;;
427 *)
428         FC_ADD_FONTS="$add_fonts"
429         AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories])
430         ;;
431 esac
432
433 AC_SUBST(FC_ADD_FONTS)
434
435 FC_FONTPATH=""
436
437 case "$FC_ADD_FONTS" in
438 "")
439         ;;
440 *)
441         FC_FONTPATH=`echo $FC_ADD_FONTS | 
442                         sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'`
443         ;;
444 esac
445
446 AC_SUBST(FC_FONTPATH)
447
448 #
449 # Set default cache directory path
450 #
451 AC_ARG_WITH(cache-dir,         [ --with-cache-dir=DIR           Use DIR to store cache files (default /var/cache/fontconfig)], fc_cachedir="$withval", fc_cachedir=yes)
452
453 case $fc_cachedir in
454 no|yes)
455         if test "$os_win32" = "yes"; then
456                 fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
457         else
458                 fc_cachedir='${localstatedir}/cache/${PACKAGE}'
459         fi
460         ;;
461 *)
462         ;;
463 esac
464 AC_SUBST(fc_cachedir)
465 FC_CACHEDIR=${fc_cachedir}
466 AC_SUBST(FC_CACHEDIR)
467
468 FC_FONTDATE=`LC_ALL=C date`
469
470 AC_SUBST(FC_FONTDATE)
471
472 AC_ARG_WITH(confdir,           [  --with-confdir=DIR            Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes)
473
474 #
475 # Set CONFDIR and FONTCONFIG_PATH
476 #
477
478 case "$confdir" in
479 no|yes)
480         confdir='${sysconfdir}'/fonts
481         ;;
482 *)
483         ;;
484 esac
485 AC_SUBST(confdir)
486 CONFDIR=${confdir}
487 AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory])
488 AC_SUBST(CONFDIR)
489
490 #
491 # Let people not build/install docs if they don't have docbook
492 #
493
494 AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no)
495
496 AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes)
497
498 default_docs="yes"
499 #
500 # Check if docs exist or can be created
501 #
502 if test x$HASDOCBOOK = xno; then
503         if test -f $srcdir/doc/fonts-conf.5; then
504                 :
505         else
506                 default_docs="no"
507         fi
508 fi
509
510 AC_ARG_ENABLE(docs,           [  --disable-docs                Don't build and install documentation],,enable_docs=$default_docs)
511
512 AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes)
513
514 if test "x$enable_docs" = xyes; then
515         DOCSRC="doc"
516         tmp=funcs.$$
517         cat $srcdir/doc/*.fncs | awk '
518         /^@TITLE@/      { if (!done) { printf ("%s\n", $2); done = 1; } }
519         /^@FUNC@/       { if (!done) { printf ("%s\n", $2); done = 1; } }
520         /^@@/           { done = 0; }' > $tmp
521         DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'`
522         echo DOCMAN3 $DOCMAN3
523         rm -f $tmp
524 else
525         DOCSRC=""
526         DOCMAN3=""
527 fi
528
529 AC_SUBST(DOCSRC)
530 AC_SUBST(DOCMAN3)
531
532 #
533 # Figure out where to install documentation
534 #
535
536 AC_ARG_WITH(docdir,           [  --with-docdir=DIR             Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval")
537
538 if test "x$with_docdir" = "x" ; then
539   DOCDIR='${datadir}/doc/fontconfig'
540 else
541   DOCDIR=$with_docdir
542 fi
543
544 AC_SUBST(DOCDIR)
545
546
547 AC_OUTPUT([
548 Makefile 
549 fontconfig/Makefile
550 fc-lang/Makefile
551 fc-glyphname/Makefile
552 fc-case/Makefile
553 fc-arch/Makefile
554 src/Makefile
555 conf.d/Makefile
556 fc-cache/Makefile
557 fc-cat/Makefile
558 fc-list/Makefile
559 fc-match/Makefile
560 fc-query/Makefile
561 fc-scan/Makefile
562 doc/Makefile
563 doc/version.sgml
564 test/Makefile
565 fontconfig.spec
566 fontconfig.pc
567 fontconfig-zip
568 ])