Revert "add Tizen tv profile only configuration"
[platform/upstream/fontconfig.git] / configure.ac
index fed8b2a..fb8af46 100644 (file)
@@ -33,30 +33,10 @@ 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
-AC_INIT([fontconfig], [2.11.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig])
+AC_INIT([fontconfig], [2.13.1], [https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/new])
 AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2])
 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
-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=9
-LIBT_REVISION=0
-AC_SUBST(LIBT_CURRENT)
-AC_SUBST(LIBT_REVISION)
-LIBT_AGE=8
-
-LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
-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)
@@ -67,8 +47,6 @@ AC_USE_SYSTEM_EXTENSIONS
 AC_SYS_LARGEFILE
 AC_PROG_INSTALL
 AC_PROG_LN_S
-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))
@@ -85,8 +63,31 @@ else
        AC_MSG_RESULT($_predefined_rm)
 fi
 
-dnl ==========================================================================
+dnl Initialize libtool
+LT_PREREQ([2.2])
+LT_INIT([disable-static win32-dll])
+
+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=13
+LIBT_REVISION=0
+AC_SUBST(LIBT_CURRENT)
+AC_SUBST(LIBT_REVISION)
+LIBT_AGE=12
+
+LIBT_VERSION_INFO="$LIBT_CURRENT:$LIBT_REVISION:$LIBT_AGE"
+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 ==========================================================================
 case "$host" in
   *-*-mingw*)
     os_win32=yes
@@ -96,16 +97,36 @@ case "$host" in
 esac
 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
 
+dnl ==========================================================================
+dnl gettext stuff
+dnl ==========================================================================
+GETTEXT_PACKAGE=$PACKAGE
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package])
+
+AM_GNU_GETTEXT_VERSION([0.19.8])
+AM_GNU_GETTEXT([external])
+
+dnl ==========================================================================
+
 if test "$os_win32" = "yes"; then
   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
 fi
 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
 
+AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
 WARN_CFLAGS=""
+WARNING_CPP_DIRECTIVE="no"
 if test "x$GCC" = "xyes"; then
        WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
        -Wmissing-prototypes -Wmissing-declarations \
        -Wnested-externs -fno-strict-aliasing"
+       WARNING_CPP_DIRECTIVE="yes"
+elif test "x$SUNCC" = "xyes"; then
+       WARN_CFLAGS="-v -fd"
+       WARNING_CPP_DIRECTIVE="yes"
+fi
+if test "x$WARNING_CPP_DIRECTIVE" = "xyes"; then
        AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1,
        [Can use #warning in C files])
 fi
@@ -136,7 +157,7 @@ dnl ==========================================================================
 # Checks for header files.
 AC_HEADER_DIRENT
 AC_HEADER_STDC
-AC_CHECK_HEADERS([fcntl.h regex.h stdlib.h string.h unistd.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h])
+AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h sys/statvfs.h sys/vfs.h sys/statfs.h sys/param.h sys/mount.h])
 AX_CREATE_STDINT_H([src/fcstdint.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
@@ -148,46 +169,15 @@ AC_TYPE_PID_T
 # Checks for library functions.
 AC_FUNC_VPRINTF
 AC_FUNC_MMAP
-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])
+AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r readlink fstatvfs fstatfs lstat strerror strerror_r])
 
 dnl AC_CHECK_FUNCS doesn't check for header files.
 dnl posix_fadvise() may be not available in older libc.
 AC_CHECK_SYMBOL([posix_fadvise], [fcntl.h], [fc_func_posix_fadvise=1], [fc_func_posix_fadvise=0])
-AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadivse' function.])
-fc_saved_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $WARN_CFLAGS -Werror"
-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"
+AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if you have the 'posix_fadvise' function.])
+
+#
+AC_CHECK_MEMBERS([struct stat.st_mtim],,, [#include <sys/stat.h>])
 
 #
 if test "x$ac_cv_func_fstatvfs" = "xyes"; then
@@ -211,12 +201,26 @@ if test "x$ac_cv_func_fstatfs" = "xyes"; then
 fi
 AC_CHECK_MEMBERS([struct dirent.d_type],,,
        [#include <dirent.h>])
-#
-# regex
-#
-if 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
-       AC_DEFINE(USE_REGEX,,[Use regex])
-fi
+
+# Check the argument type of the gperf hash/lookup function
+AC_MSG_CHECKING([The type of len parameter of gperf hash/lookup function])
+fc_gperf_test="$(echo 'foo' | gperf -L ANSI-C)"
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #include <string.h>
+
+       const char *in_word_set(register const char *, register size_t);
+       $fc_gperf_test
+       ]])], [FC_GPERF_SIZE_T=size_t],
+       [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+               #include <string.h>
+
+               const char *in_word_set(register const char *, register unsigned int);
+               $fc_gperf_test
+       ]])], [FC_GPERF_SIZE_T="unsigned int"],
+       [AC_MSG_ERROR([Unable to determine the type of the len parameter of the gperf hash/lookup function])]
+)])
+AC_DEFINE_UNQUOTED(FC_GPERF_SIZE_T, $FC_GPERF_SIZE_T, [The type of len parameter of the gperf hash/lookup function])
+AC_MSG_RESULT($FC_GPERF_SIZE_T)
 
 #
 # Checks for iconv
@@ -303,8 +307,9 @@ AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv,[Use iconv.])
 #
 # Checks for FreeType
 #
-PKG_CHECK_MODULES(FREETYPE, freetype2)
-PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2"
+dnl See http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/VERSIONS.TXT for versioning in freetype
+PKG_CHECK_MODULES(FREETYPE, freetype2 >= 21.0.15)
+PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2 >= 21.0.15"
 
 AC_SUBST(FREETYPE_LIBS)
 AC_SUBST(FREETYPE_CFLAGS)
@@ -313,16 +318,52 @@ fontconfig_save_libs="$LIBS"
 fontconfig_save_cflags="$CFLAGS"
 LIBS="$LIBS $FREETYPE_LIBS"
 CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
-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)
-AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem,
-               HAVE_FT_BITMAP_SIZE_Y_PPEM=1,
-               HAVE_FT_BITMAP_SIZE_Y_PPEM=0,
-[#include <ft2build.h>
-#include FT_FREETYPE_H])
-AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
-                  [FT_Bitmap_Size structure includes y_ppem field])
-CFLAGS="$fontconfig_save_cflags"
+AC_CHECK_FUNCS(FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format FT_Done_MM_Var)
+
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+       #include <ft2build.h>
+       #include FT_CONFIG_OPTIONS_H
+       #ifndef PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
+       #  error "No pcf long family names support"
+       #endif
+       ]])], [have_pcf_long_family_names=yes], [have_pcf_long_family_names=no])
+AM_CONDITIONAL(FREETYPE_PCF_LONG_FAMILY_NAMES, test "x$have_pcf_long_family_names" = xyes)
+
 LIBS="$fontconfig_save_libs"
+CFLAGS="$fontconfig_save_cflags"
+
+#
+# Check for uuid
+#
+if test "$os_win32" != "yes"; then
+       use_pkgconfig_for_uuid=yes
+       if test -n "${UUID_LIBS}"; then
+               save_UUID_LIBS=$UUID_LIBS
+       fi
+       PKG_CHECK_MODULES([UUID], [uuid],
+                         [use_pkgconfig_for_uuid=yes],
+                         [use_pkgconfig_for_uuid=no])
+       if test "x$use_pkgconfig_for_uuid" = "xno"; then
+               AC_MSG_CHECKING([where uuid functions comes from])
+               AC_TRY_LINK([#include <uuid/uuid.h>],
+                       [uuid_t a; uuid_generate(a);],
+                       [AC_MSG_RESULT([builtin])
+                        UUID_CFLAGS=""
+                        UUID_LIBS=""
+                       ],[AC_MSG_ERROR([
+*** uuid is required. install util-linux.
+                       ])])
+       else
+               if test -z "${save_UUID_LIBS+x}" && test "x${UUID_LIBS}" != "x"; then
+                       PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY uuid"
+               fi
+       fi
+else
+       UUID_CFLAGS=""
+       UUID_LIBS=""
+fi
+AC_SUBST(UUID_CFLAGS)
+AC_SUBST(UUID_LIBS)
 
 #
 # Check expat configuration
@@ -364,8 +405,12 @@ if test "$enable_libxml2" != "yes"; then
                else
                        EXPAT_LIBS="-lexpat"
                fi
+               PKG_EXPAT_CFLAGS=$EXPAT_CFLAGS
+               PKG_EXPAT_LIBS=$EXPAT_LIBS
        else
                PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY expat"
+               PKG_EXPAT_CFLAGS=
+               PKG_EXPAT_LIBS=
        fi
 
        expatsaved_CPPFLAGS="$CPPFLAGS"
@@ -396,6 +441,8 @@ if test "$enable_libxml2" != "yes"; then
 
        AC_SUBST(EXPAT_CFLAGS)
        AC_SUBST(EXPAT_LIBS)
+       AC_SUBST(PKG_EXPAT_CFLAGS)
+       AC_SUBST(PKG_EXPAT_LIBS)
 fi
 
 #
@@ -407,7 +454,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"
+    PKGCONFIG_REQUIRES_PRIVATELY="$PKGCONFIG_REQUIRES_PRIVATELY libxml-2.0 >= 2.6"
     AC_DEFINE_UNQUOTED(ENABLE_LIBXML2,1,[Use libxml2 instead of Expat])
 
     AC_SUBST(LIBXML2_CFLAGS)
@@ -427,6 +474,34 @@ if test "$enable_libxml2" = "yes"; then
 fi
 
 #
+# Check json-c
+#
+PKG_CHECK_MODULES([JSONC], [json-c], [use_jsonc=yes], [use_jsonc=no])
+
+AM_CONDITIONAL(ENABLE_JSONC, test "x$use_jsonc" = "xyes")
+AC_SUBST(JSONC_CFLAGS)
+AC_SUBST(JSONC_LIBS)
+
+#
+# Set default hinting
+#
+
+AC_ARG_WITH(default-hinting,
+       [AC_HELP_STRING([--with-default-hinting=NAME],
+                       [Enable your preferred hinting configuration (none/slight/medium/full) [default=slight]])],
+       preferred_hinting="$withval", preferred_hinting=slight)
+
+case "$preferred_hinting" in
+none|slight|medium|full)
+       PREFERRED_HINTING="$preferred_hinting"
+       AC_SUBST(PREFERRED_HINTING)
+       ;;
+*)
+       AC_MSG_ERROR([Invalid hinting. please choose one of none, slight, medium, or full])
+       ;;
+esac
+
+#
 # Set default font directory
 #
 
@@ -523,7 +598,7 @@ AC_ARG_WITH(cache-dir,
 case $fc_cachedir in
 no|yes)
        if test "$os_win32" = "yes"; then
-               fc_cachedir="WINDOWSTEMPDIR_FONTCONFIG_CACHE"
+               fc_cachedir="LOCAL_APPDATA_FONTCONFIG_CACHE"
        else
                fc_cachedir='${localstatedir}/cache/${PACKAGE}'
        fi
@@ -706,6 +781,7 @@ dnl Figure out what cache format suffix to use for this architecture
 AC_C_BIGENDIAN
 AC_CHECK_SIZEOF([void *])
 AC_CHECK_ALIGNOF([double])
+AC_CHECK_ALIGNOF([void *])
 
 dnl include the header file for workaround of miscalculating size on autoconf
 dnl particularly for fat binaries
@@ -721,12 +797,12 @@ AC_CONFIG_FILES([
 Makefile
 fontconfig/Makefile
 fc-lang/Makefile
-fc-glyphname/Makefile
 fc-case/Makefile
 src/Makefile
 conf.d/Makefile
 fc-cache/Makefile
 fc-cat/Makefile
+fc-conflist/Makefile
 fc-list/Makefile
 fc-match/Makefile
 fc-pattern/Makefile
@@ -735,6 +811,9 @@ fc-scan/Makefile
 fc-validate/Makefile
 doc/Makefile
 doc/version.sgml
+its/Makefile
+po/Makefile.in
+po-conf/Makefile.in
 test/Makefile
 fontconfig.spec
 fontconfig.pc