Warn if no <test> nor <edit> elements in <match>
[platform/upstream/fontconfig.git] / configure.ac
index 803084c..4478914 100644 (file)
@@ -24,7 +24,6 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.61)
-AC_INIT(fonts.dtd)
 
 dnl ==========================================================================
 dnl                               Versioning              
@@ -34,7 +33,8 @@ dnl This is the package version number, not the shared library
 dnl version.  This same version number must appear in fontconfig/fontconfig.h
 dnl Yes, it is a pain to synchronize version numbers.  Unfortunately, it's
 dnl not possible to extract the version number here from fontconfig.h
-AM_INIT_AUTOMAKE(fontconfig, 2.10.2)
+AC_INIT([fontconfig], [2.11.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig])
+AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2])
 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
 dnl libtool versioning
@@ -42,11 +42,11 @@ dnl libtool versioning
 dnl bump revision when fixing bugs
 dnl bump current and age, reset revision to zero when adding APIs
 dnl bump current, leave age, reset revision to zero when changing/removing APIS
-LIBT_CURRENT=7
-LIBT_REVISION=2
+LIBT_CURRENT=9
+LIBT_REVISION=0
 AC_SUBST(LIBT_CURRENT)
 AC_SUBST(LIBT_REVISION)
-LIBT_AGE=6
+LIBT_AGE=8
 
 LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
 AC_SUBST(LIBT_VERSION_INFO)
@@ -54,6 +54,9 @@ AC_SUBST(LIBT_VERSION_INFO)
 LIBT_CURRENT_MINUS_AGE=`expr $LIBT_CURRENT - $LIBT_AGE`
 AC_SUBST(LIBT_CURRENT_MINUS_AGE)
 
+PKGCONFIG_REQUIRES=
+PKGCONFIG_REQUIRES_PRIVATELY=
+
 dnl ==========================================================================
 
 AC_CONFIG_HEADERS(config.h)
@@ -68,6 +71,10 @@ AC_LIBTOOL_WIN32_DLL
 AM_PROG_LIBTOOL
 AC_PROG_MAKE_SET
 PKG_PROG_PKG_CONFIG
+m4_ifdef([PKG_INSTALLDIR], [PKG_INSTALLDIR], AC_SUBST([pkgconfigdir], ${libdir}/pkgconfig))
+
+AM_MISSING_PROG([GIT], [git])
+AM_MISSING_PROG([GPERF], [gperf])
 
 AC_MSG_CHECKING([for RM macro])
 _predefined_rm=`make -p -f /dev/null 2>/dev/null|grep '^RM ='|sed -e 's/^RM = //'`
@@ -141,7 +148,7 @@ AC_TYPE_PID_T
 # Checks for library functions.
 AC_FUNC_VPRINTF
 AC_FUNC_MMAP
-AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp mkostemp _mktemp_s strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat])
+AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat])
 
 dnl AC_CHECK_FUNCS doesn't check for header files.
 dnl posix_fadvise() may be not available in older libc.
@@ -157,6 +164,37 @@ AC_LINK_IFELSE([AC_LANG_SOURCE([[
                AC_MSG_RESULT([yes])
                AC_DEFINE([HAVE_POSIX_FADVISE], [1], [Define to 1 if you have the 'posix_fadvise' function.])
        ],[AC_MSG_RESULT([no])])
+if test "$os_win32" = "no"; then
+       AC_MSG_CHECKING([for scandir])
+       AC_LINK_IFELSE([AC_LANG_SOURCE([[
+               #include <dirent.h>
+               int comp(const struct dirent **, const struct dirent **);
+               int comp(const struct dirent **a, const struct dirent **b) { return 0; }
+               int main(void) {
+                   struct dirent **d;
+                   return scandir(".", &d, 0, &comp) >= 0;
+               }
+               ]])],[
+                       AC_MSG_RESULT([yes])
+                       AC_DEFINE([HAVE_SCANDIR], [1], [Define to 1 if you have the 'scandir' function.])
+               ],[
+                       AC_LINK_IFELSE([AC_LANG_SOURCE([[
+                               #include <dirent.h>
+                               int comp(const void *, const void *);
+                               int comp(const void *a, const void *b) { return 0; }
+                               int main(void) {
+                                   struct dirent **d;
+                                   return scandir(".", &d, 0, &comp) >= 0;
+                               }
+                       ]])],[
+                               AC_MSG_RESULT([yes])
+                               AC_DEFINE([HAVE_SCANDIR_VOID_P], [1], [Define to 1 if you have the 'scandir' function with int (* compar)(const void *, const void *)])
+                       ],[
+                               AC_MSG_ERROR([
+*** No scandir function available.])
+                       ])
+               ])
+fi
 CFLAGS="$fc_saved_CFLAGS"
 
 #
@@ -247,13 +285,14 @@ if test "x$enable_iconv" != "xno"; then
                AC_TRY_LINK([#include <iconv.h>],
                        [iconv_open ("from", "to");],
                        [iconv_type="libiconv"
-                        use_iconv=1],
+                        use_iconv=1
+                        ICONV_CFLAGS="$libiconv_cflags"
+                        ICONV_LIBS="$libiconv_libs"
+                        ],
                        [use_iconv=0])
 
                CFLAGS="$iconvsaved_CFLAGS"
                LIBS="$iconvsaved_LIBS"
-               ICONV_CFLAGS="$libiconv_cflags"
-               ICONV_LIBS="$libiconv_libs"
        fi
        if test "x$use_iconv" = "x0"; then
                AC_TRY_LINK([#include <iconv.h>],
@@ -273,6 +312,7 @@ AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
 # Checks for FreeType
 #
 PKG_CHECK_MODULES(FREETYPE, freetype2)
+PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2"
 
 AC_SUBST(FREETYPE_LIBS)
 AC_SUBST(FREETYPE_CFLAGS)
@@ -332,6 +372,8 @@ if test "$enable_libxml2" != "yes"; then
                else
                        EXPAT_LIBS="-lexpat"
                fi
+       else
+               PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat"
        fi
 
        expatsaved_CPPFLAGS="$CPPFLAGS"
@@ -373,6 +415,7 @@ AC_ARG_ENABLE(libxml2,
 
 if test "$enable_libxml2" = "yes"; then
     PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
+    PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0"
     AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
 
     AC_SUBST(LIBXML2_CFLAGS)
@@ -545,7 +588,7 @@ no|yes)
 esac
 case "$configdir" in
 no|yes)
-       configdir='${baseconfigdir}'/conf.d
+       configdir='${BASECONFIGDIR}'/conf.d
        ;;
 *)
        ;;
@@ -562,13 +605,9 @@ TEMPLATEDIR=${templatedir}
 BASECONFIGDIR=${baseconfigdir}
 CONFIGDIR=${configdir}
 XMLDIR=${xmldir}
-AC_SUBST(templatedir)
 AC_SUBST(TEMPLATEDIR)
-AC_SUBST(baseconfigdir)
 AC_SUBST(BASECONFIGDIR)
-AC_SUBST(configdir)
 AC_SUBST(CONFIGDIR)
-AC_SUBST(xmldir)
 AC_SUBST(XMLDIR)
 
 
@@ -592,8 +631,26 @@ if $fc_cv_have_intel_atomic_primitives; then
        AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, [Have Intel __sync_* atomic primitives])
 fi
 
-AC_CHECK_HEADERS(sched.h)
-AC_CHECK_FUNCS(sched_yield)
+AC_CACHE_CHECK([for Solaris atomic operations], fc_cv_have_solaris_atomic_ops, [
+       fc_cv_have_solaris_atomic_ops=false
+       AC_TRY_LINK([
+               #include <atomic.h>
+               /* This requires Solaris Studio 12.2 or newer: */
+               #include <mbarrier.h>
+               void memory_barrier (void) { __machine_rw_barrier (); }
+               int atomic_add (volatile unsigned *i) { return atomic_add_int_nv (i, 1); }
+               void *atomic_ptr_cmpxchg (volatile void **target, void *cmp, void *newval) { return atomic_cas_ptr (target, cmp, newval); }
+               ], [], fc_cv_have_solaris_atomic_ops=true
+       )
+])
+if $fc_cv_have_solaris_atomic_ops; then
+       AC_DEFINE(HAVE_SOLARIS_ATOMIC_OPS, 1, [Have Solaris __machine_*_barrier and atomic_* operations])
+fi
+
+if test "$os_win32" = no && ! $have_pthread; then
+       AC_CHECK_HEADERS(sched.h)
+       AC_SEARCH_LIBS(sched_yield,rt,AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield]))
+fi
 
 have_pthread=false
 if test "$os_win32" = no; then
@@ -662,7 +719,13 @@ dnl include the header file for workaround of miscalculating size on autoconf
 dnl particularly for fat binaries
 AH_BOTTOM([#include "config-fixups.h"])
 
-AC_OUTPUT([
+dnl
+dnl
+AC_SUBST(PKGCONFIG_REQUIRES)
+AC_SUBST(PKGCONFIG_REQUIRES_PRIVATELY)
+
+dnl
+AC_CONFIG_FILES([
 Makefile
 fontconfig/Makefile
 fc-lang/Makefile
@@ -677,6 +740,7 @@ fc-match/Makefile
 fc-pattern/Makefile
 fc-query/Makefile
 fc-scan/Makefile
+fc-validate/Makefile
 doc/Makefile
 doc/version.sgml
 test/Makefile
@@ -684,3 +748,4 @@ fontconfig.spec
 fontconfig.pc
 fontconfig-zip
 ])
+AC_OUTPUT