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