configure.ac revision b09479dc
1dnl 2dnl fontconfig/configure.in 3dnl 4dnl Copyright © 2003 Keith Packard 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 the author(s) not be used in 11dnl advertising or publicity pertaining to distribution of the software without 12dnl specific, written prior permission. The authors make 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 THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 17dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 18dnl EVENT SHALL THE AUTHOR(S) 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. 23dnl 24dnl Process this file with autoconf to create configure. 25 26AC_PREREQ(2.61) 27 28dnl ========================================================================== 29dnl Versioning 30dnl ========================================================================== 31 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 36AC_INIT([fontconfig], [2.11.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) 37AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2]) 38m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) 39 40dnl ========================================================================== 41 42AC_CONFIG_HEADERS(config.h) 43AC_CONFIG_MACRO_DIR([m4]) 44 45AC_PROG_CC 46AC_USE_SYSTEM_EXTENSIONS 47AC_SYS_LARGEFILE 48AC_PROG_INSTALL 49AC_PROG_LN_S 50AC_PROG_MAKE_SET 51PKG_PROG_PKG_CONFIG 52m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/pkgconfig)) 53 54AM_MISSING_PROG([GIT], [git]) 55AM_MISSING_PROG([GPERF], [gperf]) 56 57AC_MSG_CHECKING([for RM macro]) 58_predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'` 59if test "x$_predefined_rm" = "x"; then 60 AC_MSG_RESULT([no predefined RM]) 61 AC_CHECK_PROG(RM, rm, [rm -f]) 62else 63 AC_MSG_RESULT($_predefined_rm) 64fi 65 66dnl Initialize libtool 67LT_PREREQ([2.2]) 68LT_INIT([disable-static win32-dll]) 69 70dnl libtool versioning 71 72dnl bump revision when fixing bugs 73dnl bump current and age, reset revision to zero when adding APIs 74dnl bump current, leave age, reset revision to zero when changing/removing APIS 75LIBT_CURRENT=9 76LIBT_REVISION=0 77AC_SUBST(LIBT_CURRENT) 78AC_SUBST(LIBT_REVISION) 79LIBT_AGE=8 80 81LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE" 82AC_SUBST(LIBT_VERSION_INFO) 83 84LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE` 85AC_SUBST(LIBT_CURRENT_MINUS_AGE) 86 87PKGCONFIG_REQUIRES= 88PKGCONFIG_REQUIRES_PRIVATELY= 89 90dnl ========================================================================== 91 92case "$host" in 93 *-*-mingw*) 94 os_win32=yes 95 ;; 96 *) 97 os_win32=no 98esac 99AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") 100 101if test "$os_win32" = "yes"; then 102 AC_CHECK_PROG(ms_librarian, lib.exe, yes, no) 103fi 104AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) 105 106WARN_CFLAGS="" 107if test "x$GCC" = "xyes"; then 108 WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ 109 -Wmissing-prototypes -Wmissing-declarations \ 110 -Wnested-externs -fno-strict-aliasing" 111 AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1, 112 [Can use #warning in C files]) 113fi 114AC_SUBST(WARN_CFLAGS) 115 116 117dnl ========================================================================== 118 119AX_CC_FOR_BUILD() 120AC_ARG_VAR(CC_FOR_BUILD, [build system C compiler]) 121AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes) 122AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = "yes") 123 124dnl ========================================================================== 125 126AC_ARG_WITH(arch, 127 [AC_HELP_STRING([--with-arch=ARCH], 128 [Force architecture to ARCH])], 129 arch="$withval", arch=auto) 130 131if test "x$arch" != xauto; then 132 AC_DEFINE_UNQUOTED([FC_ARCHITECTURE], "$arch", [Architecture prefix to use for cache file names]) 133fi 134 135 136dnl ========================================================================== 137 138# Checks for header files. 139AC_HEADER_DIRENT 140AC_HEADER_STDC 141AC_CHECK_HEADERS([fcntl.h regex.h stdlib.h string.h unistd.h sys/statvfs.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h]) 142AX_CREATE_STDINT_H([src/fcstdint.h]) 143 144# Checks for typedefs, structures, and compiler characteristics. 145AC_C_CONST 146AC_C_INLINE 147AC_C_FLEXIBLE_ARRAY_MEMBER 148AC_TYPE_PID_T 149 150# Checks for library functions. 151AC_FUNC_VPRINTF 152AC_FUNC_MMAP 153AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r readlink regcomp regerror regexec regfree fstatvfs fstatfs lstat]) 154 155dnl AC_CHECK_FUNCS doesn't check for header files. 156dnl posix_fadvise() may be not available in older libc. 157AC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_posix_fadvise=0]) 158AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadivse' function.]) 159if test "$os_win32" = "no"; then 160 AC_MSG_CHECKING([for scandir]) 161 fc_saved_CFLAGS="$CFLAGS" 162 CFLAGS="$CFLAGS $WARN_CFLAGS -Werror" 163 AC_TRY_COMPILE([ 164 #include <dirent.h> 165 int main(void); 166 ], [ 167 int (* comp) (const struct dirent **, const struct dirent **) = 0; 168 struct dirent **d; 169 return scandir(".", &d, 0, comp) >= 0; 170 ], [ 171 AC_MSG_RESULT([yes]) 172 AC_DEFINE([HAVE_SCANDIR], [1], [Define to 1 if you have the 'scandir' function.]) 173 ], [ 174 AC_TRY_COMPILE([ 175 #include <dirent.h> 176 int main(void); 177 ], [ 178 int (* comp) (const void *, const void *) = 0; 179 struct dirent **d; 180 return scandir(".", &d, 0, comp) >= 0; 181 ], [ 182 AC_MSG_RESULT([yes]) 183 AC_DEFINE([HAVE_SCANDIR_VOID_P], [1], [Define to 1 if you have the 'scandir' function with int (* compar)(const void *, const void *)]) 184 ],[ 185 AC_MSG_ERROR([ 186*** No scandir function available.]) 187 ]) 188 ]) 189fi 190CFLAGS="$fc_saved_CFLAGS" 191 192# 193if test "x$ac_cv_func_fstatvfs" = "xyes"; then 194 AC_CHECK_MEMBERS([struct statvfs.f_basetype, struct statvfs.f_fstypename],,, 195 [#include <sys/statvfs.h>]) 196fi 197if test "x$ac_cv_func_fstatfs" = "xyes"; then 198 AC_CHECK_MEMBERS([struct statfs.f_flags, struct statfs.f_fstypename],,, [ 199#ifdef HAVE_SYS_VFS_H 200#include <sys/vfs.h> 201#endif 202#ifdef HAVE_SYS_STATFS_H 203#include <sys/statfs.h> 204#endif 205#ifdef HAVE_SYS_PARAM_H 206#include <sys/param.h> 207#endif 208#ifdef HAVE_SYS_MOUNT_H 209#include <sys/mount.h> 210#endif]) 211fi 212AC_CHECK_MEMBERS([struct dirent.d_type],,, 213 [#include <dirent.h>]) 214# 215# regex 216# 217if test "x$ac_cv_func_regcomp" = "xyes" -a "x$ac_cv_func_regerror" = "xyes" -a "x$ac_cv_func_regexec" = "xyes" -a "x$ac_cv_func_regfree"; then 218 AC_DEFINE(USE_REGEX,,[Use regex]) 219fi 220 221# 222# Checks for iconv 223# 224AC_ARG_ENABLE(iconv, 225 [AC_HELP_STRING([--enable-iconv], 226 [Use iconv to support non-Unicode SFNT name])], 227 ,enable_iconv=no) 228AC_ARG_WITH(libiconv, 229 [AC_HELP_STRING([--with-libiconv=DIR], 230 [Use libiconv in DIR])], 231 [if test "x$withval" = "xyes"; then 232 libiconv_prefix=$prefix 233 else 234 libiconv_prefix=$withval 235 fi], 236 [libiconv_prefix=auto]) 237AC_ARG_WITH(libiconv-includes, 238 [AC_HELP_STRING([--with-libiconv-includes=DIR], 239 [Use libiconv includes in DIR])], 240 [libiconv_includes=$withval], 241 [libiconv_includes=auto]) 242AC_ARG_WITH(libiconv-lib, 243 [AC_HELP_STRING([--with-libiconv-lib=DIR], 244 [Use libiconv library in DIR])], 245 [libiconv_lib=$withval], 246 [libiconv_lib=auto]) 247 248# if no libiconv,libiconv-includes,libiconv-lib are specified, 249# libc's iconv has a priority. 250if test "$libiconv_includes" != "auto" -a -r ${libiconv_includes}/iconv.h; then 251 libiconv_cflags="-I${libiconv_includes}" 252elif test "$libiconv_prefix" != "auto" -a -r ${libiconv_prefix}/include/iconv.h; then 253 libiconv_cflags="-I${libiconv_prefix}/include" 254else 255 libiconv_cflags="" 256fi 257libiconv_libs="" 258if test "x$libiconv_cflags" != "x"; then 259 if test "$libiconv_lib" != "auto" -a -d ${libiconv_lib}; then 260 libiconv_libs="-L${libiconv_lib} -liconv" 261 elif test "$libiconv_prefix" != "auto" -a -d ${libiconv_prefix}/lib; then 262 libiconv_libs="-L${libiconv_prefix}/lib -liconv" 263 else 264 libiconv_libs="-liconv" 265 fi 266fi 267 268use_iconv=0 269if test "x$enable_iconv" != "xno"; then 270 AC_MSG_CHECKING([for a usable iconv]) 271 if test "x$libiconv_cflags" != "x" -o "x$libiconv_libs" != "x"; then 272 iconvsaved_CFLAGS="$CFLAGS" 273 iconvsaved_LIBS="$LIBS" 274 CFLAGS="$CFLAGS $libiconv_cflags" 275 LIBS="$LIBS $libiconv_libs" 276 277 AC_TRY_LINK([#include <iconv.h>], 278 [iconv_open ("from", "to");], 279 [iconv_type="libiconv" 280 use_iconv=1 281 ICONV_CFLAGS="$libiconv_cflags" 282 ICONV_LIBS="$libiconv_libs" 283 ], 284 [use_iconv=0]) 285 286 CFLAGS="$iconvsaved_CFLAGS" 287 LIBS="$iconvsaved_LIBS" 288 fi 289 if test "x$use_iconv" = "x0"; then 290 AC_TRY_LINK([#include <iconv.h>], 291 [iconv_open ("from", "to");], 292 [iconv_type="libc" 293 use_iconv=1], 294 [iconv_type="not found" 295 use_iconv=0]) 296 fi 297 298 AC_MSG_RESULT([$iconv_type]) 299 AC_SUBST(ICONV_CFLAGS) 300 AC_SUBST(ICONV_LIBS) 301fi 302AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.]) 303# 304# Checks for FreeType 305# 306PKG_CHECK_MODULES(FREETYPE, freetype2) 307PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2" 308 309AC_SUBST(FREETYPE_LIBS) 310AC_SUBST(FREETYPE_CFLAGS) 311 312fontconfig_save_libs="$LIBS" 313fontconfig_save_cflags="$CFLAGS" 314LIBS="$LIBS $FREETYPE_LIBS" 315CFLAGS="$CFLAGS $FREETYPE_CFLAGS" 316AC_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) 317AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem, 318 HAVE_FT_BITMAP_SIZE_Y_PPEM=1, 319 HAVE_FT_BITMAP_SIZE_Y_PPEM=0, 320[#include <ft2build.h> 321#include FT_FREETYPE_H]) 322AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM, 323 [FT_Bitmap_Size structure includes y_ppem field]) 324CFLAGS="$fontconfig_save_cflags" 325LIBS="$fontconfig_save_libs" 326 327# 328# Check expat configuration 329# 330AC_ARG_WITH(expat, 331 [AC_HELP_STRING([--with-expat=DIR], 332 [Use Expat in DIR])], 333 [expat_prefix=$withval], 334 [expat_prefix=auto]) 335AC_ARG_WITH(expat-includes, 336 [AC_HELP_STRING([--with-expat-includes=DIR], 337 [Use Expat includes in DIR])], 338 [expat_includes=$withval], 339 [expat_includes=auto]) 340AC_ARG_WITH(expat-lib, 341 [AC_HELP_STRING([--with-expat-lib=DIR])], 342 [expat_lib=$withval], 343 [expat_lib=auto]) 344 345if test "$enable_libxml2" != "yes"; then 346 use_pkgconfig_for_expat=yes 347 if test "$expat_prefix" = "auto" -a "$expat_includes" = "auto" -a "$expat_lib" = "auto"; then 348 PKG_CHECK_MODULES(EXPAT, expat,,use_pkgconfig_for_expat=no) 349 else 350 use_pkgconfig_for_expat=no 351 fi 352 if test "x$use_pkgconfig_for_expat" = "xno"; then 353 if test "$expat_includes" != "auto" -a -r ${expat_includes}/expat.h; then 354 EXPAT_CFLAGS="-I${expat_includes}" 355 elif test "$expat_prefix" != "auto" -a -r ${expat_prefix}/include/expat.h; then 356 EXPAT_CFLAGS="-I${expat_prefix}/include" 357 else 358 EXPAT_CFLAGS="" 359 fi 360 if test "$expat_lib" != "auto"; then 361 EXPAT_LIBS="-L${expat_lib} -lexpat" 362 elif test "$expat_prefix" != "auto"; then 363 EXPAT_LIBS="-L${expat_prefix}/lib -lexpat" 364 else 365 EXPAT_LIBS="-lexpat" 366 fi 367 else 368 PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat" 369 fi 370 371 expatsaved_CPPFLAGS="$CPPFLAGS" 372 expatsaved_LIBS="$LIBS" 373 CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS" 374 LIBS="$LIBS $EXPAT_LIBS" 375 376 AC_CHECK_HEADER(expat.h) 377 if test "$ac_cv_header_expat_h" = "no"; then 378 AC_CHECK_HEADER(xmlparse.h) 379 if test "$ac_cv_header_xmlparse_h" = "yes"; then 380 HAVE_XMLPARSE_H=1 381 AC_SUBST(HAVE_XMLPARSE_H) 382 AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H, 383 [Use xmlparse.h instead of expat.h]) 384 else 385 AC_MSG_ERROR([ 386*** expat is required. or try to use --enable-libxml2]) 387 fi 388 fi 389 AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler) 390 if test "$ac_cv_func_XML_SetDoctypeDeclHandler" = "no"; then 391 AC_MSG_ERROR([ 392*** expat is required. or try to use --enable-libxml2]) 393 fi 394 CPPFLAGS="$expatsaved_CPPFLAGS" 395 LIBS="$expatsaved_LIBS" 396 397 AC_SUBST(EXPAT_CFLAGS) 398 AC_SUBST(EXPAT_LIBS) 399fi 400 401# 402# Check libxml2 configuration 403# 404AC_ARG_ENABLE(libxml2, 405 [AC_HELP_STRING([--enable-libxml2], 406 [Use libxml2 instead of Expat])]) 407 408if test "$enable_libxml2" = "yes"; then 409 PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6]) 410 PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0" 411 AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat]) 412 413 AC_SUBST(LIBXML2_CFLAGS) 414 AC_SUBST(LIBXML2_LIBS) 415 416 fc_saved_CFLAGS="$CFLAGS" 417 CFLAGS="$CFLAGS $LIBXML2_CFLAGS" 418 AC_MSG_CHECKING([SAX1 support in libxml2]) 419 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ 420 #include <libxml/xmlversion.h> 421 #if !defined(LIBXML_SAX1_ENABLED) 422 # include "error: No SAX1 support in libxml2" 423 #endif 424 ]])], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([ 425*** SAX1 support in libxml2 is required. enable it or use expat instead.])]) 426 CFLAGS="$fc_saved_CFLAGS" 427fi 428 429# 430# Set default font directory 431# 432 433AC_ARG_WITH(default-fonts, 434 [AC_HELP_STRING([--with-default-fonts=DIR], 435 [Use fonts from DIR when config is busted])], 436 default_fonts="$withval", default_fonts=yes) 437 438case "$default_fonts" in 439yes) 440 if test "$os_win32" = "yes"; then 441 FC_DEFAULT_FONTS="WINDOWSFONTDIR" 442 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", 443 [Windows font directory]) 444 else 445 FC_DEFAULT_FONTS="/usr/share/fonts" 446 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", 447 [System font directory]) 448 fi 449 ;; 450*) 451 FC_DEFAULT_FONTS="$default_fonts" 452 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts", 453 [System font directory]) 454 ;; 455esac 456 457AC_SUBST(FC_DEFAULT_FONTS) 458 459# 460# Add more fonts if available. By default, add only the directories 461# with outline fonts; those with bitmaps can be added as desired in 462# local.conf or ~/.fonts.conf 463# 464AC_ARG_WITH(add-fonts, 465 [AC_HELP_STRING([--with-add-fonts=DIR1,DIR2,...], 466 [Find additional fonts in DIR1,DIR2,... ])], 467 add_fonts="$withval", add_fonts=yes) 468 469case "$add_fonts" in 470yes) 471 FC_ADD_FONTS="" 472 for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do 473 case x"$FC_ADD_FONTS" in 474 x) 475 sub="$dir/fonts" 476 if test -d "$sub"; then 477 case x$FC_ADD_FONTS in 478 x) 479 FC_ADD_FONTS="$sub" 480 ;; 481 *) 482 FC_ADD_FONTS="$FC_ADD_FONTS,$sub" 483 ;; 484 esac 485 fi 486 ;; 487 esac 488 done 489 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories]) 490 ;; 491no) 492 FC_ADD_FONTS="" 493 ;; 494*) 495 FC_ADD_FONTS="$add_fonts" 496 AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories]) 497 ;; 498esac 499 500AC_SUBST(FC_ADD_FONTS) 501 502FC_FONTPATH="" 503 504case "$FC_ADD_FONTS" in 505"") 506 ;; 507*) 508 FC_FONTPATH=`echo $FC_ADD_FONTS | 509 sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'` 510 ;; 511esac 512 513AC_SUBST(FC_FONTPATH) 514 515# 516# Set default cache directory path 517# 518AC_ARG_WITH(cache-dir, 519 [AC_HELP_STRING([--with-cache-dir=DIR], 520 [Use DIR to store cache files [default=LOCALSTATEDIR/cache/fontconfig]])], 521 fc_cachedir="$withval", fc_cachedir=yes) 522 523case $fc_cachedir in 524no|yes) 525 if test "$os_win32" = "yes"; then 526 fc_cachedir="LOCAL_APPDATA_FONTCONFIG_CACHE" 527 else 528 fc_cachedir='${localstatedir}/cache/${PACKAGE}' 529 fi 530 ;; 531*) 532 ;; 533esac 534AC_SUBST(fc_cachedir) 535FC_CACHEDIR=${fc_cachedir} 536AC_SUBST(FC_CACHEDIR) 537 538FC_FONTDATE=`LC_ALL=C date` 539 540AC_SUBST(FC_FONTDATE) 541 542# 543# Set configuration paths 544# 545 546AC_ARG_WITH(templatedir, 547 [AC_HELP_STRING([--with-templatedir=DIR], 548 [Use DIR to store the configuration template files [default=DATADIR/fontconfig/conf.avail]])], 549 [templatedir="$withval"], 550 [templatedir=yes]) 551AC_ARG_WITH(baseconfigdir, 552 [AC_HELP_STRING([--with-baseconfigdir=DIR], 553 [Use DIR to store the base configuration files [default=SYSCONFDIR/fonts]])], 554 [baseconfigdir="$withval"], 555 [baseconfigdir=yes]) 556AC_ARG_WITH(configdir, 557 [AC_HELP_STRING([--with-configdir=DIR], 558 [Use DIR to store active configuration files [default=BASECONFIGDIR/conf.d]])], 559 [configdir="$withval"], 560 [configdir=yes]) 561AC_ARG_WITH(xmldir, 562 [AC_HELP_STRING([--with-xmldir=DIR], 563 [Use DIR to store XML schema files [default=DATADIR/xml/fontconfig]])], 564 [xmldir="$withval"], 565 [xmldir=yes]) 566 567case "$templatedir" in 568no|yes) 569 templatedir='${datadir}'/fontconfig/conf.avail 570 ;; 571*) 572 ;; 573esac 574case "$baseconfigdir" in 575no|yes) 576 baseconfigdir='${sysconfdir}'/fonts 577 ;; 578*) 579 ;; 580esac 581case "$configdir" in 582no|yes) 583 configdir='${BASECONFIGDIR}'/conf.d 584 ;; 585*) 586 ;; 587esac 588case "$xmldir" in 589no|yes) 590 xmldir='${datadir}'/xml/fontconfig 591 ;; 592*) 593 ;; 594esac 595 596TEMPLATEDIR=${templatedir} 597BASECONFIGDIR=${baseconfigdir} 598CONFIGDIR=${configdir} 599XMLDIR=${xmldir} 600AC_SUBST(TEMPLATEDIR) 601AC_SUBST(BASECONFIGDIR) 602AC_SUBST(CONFIGDIR) 603AC_SUBST(XMLDIR) 604 605 606dnl =========================================================================== 607 608# 609# Thread-safety primitives 610# 611 612AC_CACHE_CHECK([for Intel atomic primitives], fc_cv_have_intel_atomic_primitives, [ 613 fc_cv_have_intel_atomic_primitives=false 614 AC_TRY_LINK([ 615 void memory_barrier (void) { __sync_synchronize (); } 616 int atomic_add (int *i) { return __sync_fetch_and_add (i, 1); } 617 int mutex_trylock (int *m) { return __sync_lock_test_and_set (m, 1); } 618 void mutex_unlock (int *m) { __sync_lock_release (m); } 619 ], [], fc_cv_have_intel_atomic_primitives=true 620 ) 621]) 622if $fc_cv_have_intel_atomic_primitives; then 623 AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives]) 624fi 625 626AC_CACHE_CHECK([for Solaris atomic operations], fc_cv_have_solaris_atomic_ops, [ 627 fc_cv_have_solaris_atomic_ops=false 628 AC_TRY_LINK([ 629 #include <atomic.h> 630 /* This requires Solaris Studio 12.2 or newer: */ 631 #include <mbarrier.h> 632 void memory_barrier (void) { __machine_rw_barrier (); } 633 int atomic_add (volatile unsigned *i) { return atomic_add_int_nv (i, 1); } 634 void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, void *newval) { return atomic_cas_ptr (target, cmp, newval); } 635 ], [], fc_cv_have_solaris_atomic_ops=true 636 ) 637]) 638if $fc_cv_have_solaris_atomic_ops; then 639 AC_DEFINE(HAVE_SOLARIS_ATOMIC_OPS, 1, [Have Solaris __machine_*_barrier and atomic_* operations]) 640fi 641 642if test "$os_win32" = no && ! $have_pthread; then 643 AC_CHECK_HEADERS(sched.h) 644 AC_SEARCH_LIBS(sched_yield,rt,AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield])) 645fi 646 647have_pthread=false 648if test "$os_win32" = no; then 649 AX_PTHREAD([have_pthread=true]) 650fi 651if $have_pthread; then 652 LIBS="$PTHREAD_LIBS $LIBS" 653 CFLAGS="$CFLAGS $PTHREAD_CFLAGS" 654 CC="$PTHREAD_CC" 655 AC_DEFINE(HAVE_PTHREAD, 1, [Have POSIX threads]) 656fi 657AM_CONDITIONAL(HAVE_PTHREAD, $have_pthread) 658 659 660dnl =========================================================================== 661 662# 663# Let people not build/install docs if they don't have docbook 664# 665 666AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no) 667 668AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes) 669 670default_docs="yes" 671# 672# Check if docs exist or can be created 673# 674if test x$HASDOCBOOK = xno; then 675 if test -f $srcdir/doc/fonts-conf.5; then 676 : 677 else 678 default_docs="no" 679 fi 680fi 681 682AC_ARG_ENABLE(docs, 683 [AC_HELP_STRING([--disable-docs], 684 [Don't build and install documentation])], 685 , 686 enable_docs=$default_docs) 687 688AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes) 689 690if test "x$enable_docs" = xyes; then 691 tmp=funcs.$$ 692 cat $srcdir/doc/*.fncs | awk ' 693 /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } } 694 /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } } 695 /^@@/ { done = 0; }' > $tmp 696 DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'` 697 echo DOCMAN3 $DOCMAN3 698 rm -f $tmp 699else 700 DOCMAN3="" 701fi 702AC_SUBST(DOCMAN3) 703 704 705dnl Figure out what cache format suffix to use for this architecture 706AC_C_BIGENDIAN 707AC_CHECK_SIZEOF([void *]) 708AC_CHECK_ALIGNOF([double]) 709 710dnl include the header file for workaround of miscalculating size on autoconf 711dnl particularly for fat binaries 712AH_BOTTOM([#include "config-fixups.h"]) 713 714dnl 715dnl 716AC_SUBST(PKGCONFIG_REQUIRES) 717AC_SUBST(PKGCONFIG_REQUIRES_PRIVATELY) 718 719dnl 720AC_CONFIG_FILES([ 721Makefile 722fontconfig/Makefile 723fc-lang/Makefile 724fc-glyphname/Makefile 725fc-case/Makefile 726src/Makefile 727conf.d/Makefile 728fc-cache/Makefile 729fc-cat/Makefile 730fc-list/Makefile 731fc-match/Makefile 732fc-pattern/Makefile 733fc-query/Makefile 734fc-scan/Makefile 735fc-validate/Makefile 736doc/Makefile 737doc/version.sgml 738test/Makefile 739fontconfig.spec 740fontconfig.pc 741fontconfig-zip 742]) 743AC_OUTPUT 744