dnl Process this file with autoconf to create configure. AC_PREREQ(2.54) dnl ========================================================================== dnl Versioning dnl ========================================================================== dnl Making releases: dnl PANGO_MICRO_VERSION += 1; dnl PANGO_INTERFACE_AGE += 1; dnl PANGO_BINARY_AGE += 1; dnl if any functions have been added, set PANGO_INTERFACE_AGE to 0. dnl if backwards compatibility has been broken, dnl set PANGO_BINARY_AGE _and_ PANGO_INTERFACE_AGE to 0. dnl dnl We do the version number components as m4 macros dnl so that we can base configure --help output off dnl of them. dnl dnl The triplet m4_define([pango_major_version], [1]) m4_define([pango_minor_version], [8]) m4_define([pango_micro_version], [0]) m4_define([pango_version], [pango_major_version.pango_minor_version.pango_micro_version]) dnl The X.Y in -lpango-X.Y line. This is expected to stay 1.0 until Pango 2. m4_define([pango_api_version], [1.0]) dnl Number of releases since we've added interfaces m4_define([pango_interface_age], [0]) dnl Number of releases since we've broken binary compatibility. m4_define([pango_binary_age], [m4_eval(100 * pango_minor_version + pango_micro_version)]) dnl This is the last version with which we have compatibility with dnl with the modules for; it isn't the same as dnl PANGO_API_VERSION.'PANGO_MICRO_VERSION - PANGO_BINARY_AGE' since we have dnl engine only API m4_define([pango_module_version], [1.4.0]) AC_INIT(pango, [pango_version], [http://bugzilla.gnome.org/enter_bug.cgi?product=pango]) AC_CONFIG_SRCDIR([ChangeLog]) AM_INIT_AUTOMAKE AM_CONFIG_HEADER([config.h]) PANGO_MAJOR_VERSION=pango_major_version() PANGO_MINOR_VERSION=pango_minor_version() PANGO_MICRO_VERSION=pango_micro_version() PANGO_VERSION=pango_version() PANGO_API_VERSION=pango_api_version() PANGO_INTERFACE_AGE=pango_interface_age() PANGO_BINARY_AGE=pango_binary_age() PANGO_MODULE_VERSION=pango_module_version() AC_SUBST(PANGO_MAJOR_VERSION) AC_SUBST(PANGO_MINOR_VERSION) AC_SUBST(PANGO_VERSION) AC_SUBST(PANGO_API_VERSION) AC_SUBST(PANGO_MICRO_VERSION) AC_SUBST(PANGO_INTERFACE_AGE) AC_SUBST(PANGO_BINARY_AGE) AC_SUBST(PANGO_MODULE_VERSION) dnl libtool versioning m4_define([lt_current], [m4_eval(100 * pango_minor_version + pango_micro_version - pango_interface_age)]) m4_define([lt_revision], [pango_interface_age]) m4_define([lt_age], [m4_eval(pango_binary_age - pango_interface_age)]) LT_VERSION_INFO="lt_current():lt_revision():lt_age()" LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age) AC_SUBST(LT_VERSION_INFO) AC_SUBST(LT_CURRENT_MINUS_AGE) dnl ========================================================================== AC_MSG_CHECKING([for native Win32]) case "$host" in *-*-mingw*) pango_os_win32=yes ;; *) pango_os_win32=no ;; esac AC_MSG_RESULT([$pango_os_win32]) AM_CONDITIONAL(OS_WIN32, test "$pango_os_win32" = "yes") AC_PROG_CC dnl dnl Check for a working C++ compiler, but do not bail out, if none is found. dnl We use this for an automated test for C++ header correctness. dnl AC_CHECK_PROGS(CXX, [$CCC c++ g++ gcc CC cxx cc++ cl], gcc) AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE(,[class a { int b; } c;], ,CXX=) AM_CONDITIONAL(HAVE_CXX, test "$CXX" != "") AC_LANG_RESTORE AC_LIBTOOL_WIN32_DLL AM_DISABLE_STATIC if test "$pango_os_win32" = "yes"; then if test x$enable_static = xyes -o x$enable_static = x; then AC_MSG_WARN([Disabling static library build, must build as DLL on Windows.]) enable_static=no fi if test x$enable_shared = xno; then AC_MSG_WARN([Enabling shared library build, must build as DLL on Windows.]) fi enable_shared=yes fi AM_PROG_LIBTOOL AC_MSG_CHECKING([for some Win32 platform]) case "$host" in *-*-mingw*|*-*-cygwin*) pango_platform_win32=yes ;; *) pango_platform_win32=no ;; esac AC_MSG_RESULT([$pango_platform_win32]) AM_CONDITIONAL(PLATFORM_WIN32, test "$pango_platform_win32" = "yes") if test "$pango_os_win32" = "yes"; then AC_CHECK_PROG(ms_librarian, lib.exe, yes, no) fi AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) changequote(,)dnl if test "x$GCC" = "xyes"; then case " $CFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wall" ;; esac fi changequote([,])dnl dnl declare --enable-* args and collect ac_help strings m4_define([debug_default], m4_if(m4_eval(pango_minor_version() % 2), [1], [yes], [minimum])) AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@], [turn on debugging @<:@default=debug_default()@:>@]),, enable_debug=debug_default()) if test "x$enable_debug" = "xyes"; then PANGO_DEBUG_FLAGS="-DPANGO_ENABLE_DEBUG" else PANGO_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS" if test "x$enable_debug" = "xno"; then PANGO_DEBUG_FLAGS="$GLIB_DEBUG_FLAGS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS" fi fi AC_SUBST(PANGO_DEBUG_FLAGS) AC_ARG_ENABLE(rebuilds, [AC_HELP_STRING([--disable-rebuilds], [disable all source autogeneration rules])],, [enable_rebuilds=yes]) AM_CONDITIONAL(CROSS_COMPILING, [test $cross_compiling = yes]) # define a MAINT-like variable REBUILD which is set if Perl # is found, so autogenerated sources can be rebuilt AC_CHECK_PROGS(PERL, perl5 perl) REBUILD=\# if test "x$enable_rebuilds" = "xyes" && \ test -n "$PERL" && \ $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then REBUILD= fi AC_SUBST(REBUILD) AC_PATH_XTRA if test x$no_x = xyes ; then AC_MSG_WARN([X development libraries not found]) have_x=false else X_LIBS="$X_LIBS -lX11" have_x=true AC_DEFINE(HAVE_X, 1, [Have X libraries]) fi AM_CONDITIONAL(HAVE_X, $have_x) # # Check for fontconfig # have_fontconfig=false have_freetype=false have_xft=false PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= 1.0.1, have_fontconfig=true, :) if $have_fontconfig ; then # # Checks for FreeType # FREETYPE_LIBS= FREETYPE_CFLAGS= AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) if test "x$FREETYPE_CONFIG" != "xno" ; then FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags` FREETYPE_LIBS=`$FREETYPE_CONFIG --libs` pango_save_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS $FREETYPE_LIBS" AC_CHECK_LIB(freetype, FT_Get_Next_Char, have_freetype=true, :) LDFLAGS=$pango_save_ldflags fi FREETYPE_LIBS="$FONTCONFIG_LIBS $FREETYPE_LIBS" FREETYPE_CFLAGS="$FONTCONFIG_CFLAGS $FREETYPE_CFLAGS" AC_SUBST(FREETYPE_LIBS) AC_SUBST(FREETYPE_CFLAGS) # # Checks for Xft/XRender # if $have_x && $have_freetype ; then PKG_CHECK_MODULES(XFT, xft >= 2.0.0, have_xft=true, :) fi AC_SUBST(XFT_LIBS) AC_SUBST(XFT_CFLAGS) else AC_MSG_WARN([No fontconfig found, skipping tests for FreeType and Xft]) fi AM_CONDITIONAL(HAVE_FREETYPE, $have_freetype) AM_CONDITIONAL(HAVE_XFT, $have_xft) # # Checks for Cairo # have_cairo=false have_cairo_freetype=false PKG_CHECK_MODULES(CAIRO, cairo >= 0.2.0, have_cairo=true, :) if $have_cairo ; then pango_save_ldflags=$LDFLAGS LDFLAGS="$LDFLAGS $CAIRO_LIBS" AC_CHECK_LIB(cairo, cairo_ft_font_face, have_cairo_freetype=true, :) LDFLAGS=$pango_save_ldflags if $have_cairo_freetype ; then AC_DEFINE(HAVE_CAIRO_FREETYPE, 1, [Whether Cairo uses FreeType for fonts]) else AC_MSG_WARN([Disabling Cairo support, no known font system]) have_cairo=false fi fi AM_CONDITIONAL(HAVE_CAIRO, $have_cairo) AM_CONDITIONAL(HAVE_CAIRO_FREETYPE, $have_cairo_freetype) # # Checks for Win32 GDI # have_win32=false WIN32_LIBS="" WIN32_CFLAGS="" # The following doesn't work with autoconf-2.13, so we check $host instead # AC_CHECK_LIB(gdi32, GetTextMetricsA@8, have_win32=true, : ) case "$host" in *-*-mingw*|*-*-cygwin*) have_win32=true ;; esac if test $have_win32 = true; then WIN32_LIBS="-lgdi32" fi AC_SUBST(WIN32_LIBS) AM_CONDITIONAL(HAVE_WIN32, $have_win32) # # We must have some backend defined, in order for the pango-querymodules # rule in pango/Makefile.am to work correctly. If you are up to writing # a new Pango backend outside of Pango, you are up to sending the necessary # patch to fix that rule. :-) # if $have_freetype || $have_x || $have_xft || $have_win32 ; then : ; else AC_MSG_ERROR([*** Didn't find any of FreeType, X11, or Win32. *** Must have at least one backend to build Pango.]) fi # # Checks for GLib # GLIB_REQUIRED_VERSION=2.5.7 AM_PATH_GLIB_2_0($GLIB_REQUIRED_VERSION, :, AC_MSG_ERROR([ *** Glib $GLIB_REQUIRED_VERSION or better is required. The latest version of *** Glib is always available from ftp://ftp.gtk.org/.]), gobject gmodule-no-export) GLIB_CFLAGS=`$PKG_CONFIG --cflags gmodule-no-export-2.0 gthread-2.0` AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_CFLAGS) # # The OpenType test programs aren't particularly portable # have_varargs=no pango_saved_cppflags=$CPPFLAGS CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS" AC_MSG_CHECKING(Whether to build OpenType test programs) AC_EGREP_CPP(pango_configure_test_yes, [ #include #if defined(G_HAVE_ISO_VARARGS) || defined(G_HAVE_GNUC_VARARGS) pango_configure_test_yes #endif ],have_varargs=yes) AC_MSG_RESULT($have_varargs) AM_CONDITIONAL(BUILD_OT_TESTS, test $have_varargs = yes) CPPFLAGS=$pango_saved_cppflags # # Allow building some or all modules included # AC_MSG_CHECKING(modules to link statically) dnl I would use AC_HELP_STRING here, but due to some bugs in m4_text_wrap, dnl it interprets the commas incorrectly ... dnl AC_HELP_STRING([--with-included-modules=MODULE1 MODULE2 ...], dnl [build the given modules into Pango]) AC_ARG_WITH(included_modules, [ --with-included-modules=MODULE1,MODULE2,... build the given modules into Pango]) arabic_modules="arabic-fc" basic_modules="basic-fc,basic-win32,basic-x" hangul_modules="hangul-fc" hebrew_modules="hebrew-fc" indic_modules="indic-fc" syriac_modules="syriac-fc" thai_modules="thai-fc" tibetan_modules="tibetan-fc" all_modules="$arabic_modules,$basic_modules,$hangul_modules,$hebrew_modules,$indic_modules,$syriac_modules,$thai_modules,$tibetan_modules" included_modules="" if test "x$with_included_modules" != xno || test "x$with_included_modules" = x ; then # If no modules specified, include all modules if test "x$with_included_modules" = xyes ; then included_modules="$all_modules" else included_modules="$with_included_modules" fi fi AC_MSG_RESULT($included_modules) AM_CONDITIONAL(HAVE_INCLUDED_MODULES, test "x$included_modules" != x) INCLUDED_X_MODULES= INCLUDED_FC_MODULES= INCLUDED_WIN32_MODULES= IFS="${IFS= }"; pango_save_ifs="$IFS"; IFS="," for module in $included_modules; do if echo $indic_modules | egrep "(^| )$module(\$| )" > /dev/null; then dir=indic else dir=`echo $module | sed "s/-.*//"` fi if echo $module | egrep -- "-fc($|,)" > /dev/null; then INCLUDED_FC_MODULES="$INCLUDED_FC_MODULES \$(top_builddir)/modules/$dir/libpango-$module.la" elif echo $module | egrep -- "-x($|,)" > /dev/null; then INCLUDED_X_MODULES="$INCLUDED_X_MODULES \$(top_builddir)/modules/$dir/libpango-$module.la" elif echo $module | egrep -- "-win32($|,)" > /dev/null; then INCLUDED_WIN32_MODULES="$INCLUDED_WIN32_MODULES \$(top_builddir)/modules/$dir/libpango-$module.la" else AC_MSG_ERROR([the specified module $module does not exist]) fi done IFS="$pango_save_ifs" AC_SUBST(INCLUDED_X_MODULES) AC_SUBST(INCLUDED_FC_MODULES) AC_SUBST(INCLUDED_WIN32_MODULES) AM_CONDITIONAL(INCLUDE_ARABIC_FC,echo $included_modules | egrep '(^|,)arabic-fc($|,)' > /dev/null) AM_CONDITIONAL(INCLUDE_BASIC_FC,echo $included_modules | egrep '(^|,)basic-fc($|,)' > /dev/null) AM_CONDITIONAL(INCLUDE_BASIC_WIN32,echo $included_modules | egrep '(^|,)basic-win32($|,)' > /dev/null) AM_CONDITIONAL(INCLUDE_BASIC_X,echo $included_modules | egrep '(^|,)basic-x($|,)' > /dev/null) AM_CONDITIONAL(INCLUDE_HANGUL_FC,echo $included_modules | egrep '(^|,)hangul-fc($|,)' > /dev/null) AM_CONDITIONAL(INCLUDE_HEBREW_FC,echo $included_modules | egrep '(^|,)hebrew-fc($|,)' > /dev/null) AM_CONDITIONAL(INCLUDE_INDIC_FC,echo $included_modules | egrep '(^|,)indic-fc($|,)' > /dev/null) AM_CONDITIONAL(INCLUDE_SYRIAC_FC,echo $included_modules | egrep '(^|,)syriac-fc($|,)' > /dev/null) AM_CONDITIONAL(INCLUDE_THAI_FC,echo $included_modules | egrep '(^|,)thai-fc($|,)' > /dev/null) AM_CONDITIONAL(INCLUDE_TIBETAN_FC,echo $included_modules | egrep '(^|,)tibetan-fc($|,)' > /dev/null) # # We use flockfile to implement pango_getline() - should be moved to GLib # strtok_r isn't present on some systems # AC_CHECK_FUNCS(flockfile strtok_r) # # Check for the Uniscribe header usp10.h for Win32 # AC_ARG_WITH(usp10, [AC_HELP_STRING([--with-usp10=DIRECTORY], [where to find the usp10.h header file for Win32 (typically the Include directory in the Platform SDK)])]) USP10_H=no if test "${with_usp10+set}" = set && test "$with_usp10" != no; then AC_MSG_CHECKING([for usp10.h]) if test -f "$with_usp10"/usp10.h; then USP10_H="$with_usp10"/usp10.h elif test -f "$with_usp10"/include/usp10.h; then USP10_H="$with_usp10"/include/usp10.h fi if test "x$USP10_H" != "xno" ; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_USP10_H, 1, [Have the usp10.h header file for Win32]) else AC_MSG_RESULT(no) fi fi AC_SUBST(USP10_H) AM_CONDITIONAL(HAVE_USP10_H, test "$USP10_H" != no) dnl ************************** dnl *** Checks for gtk-doc *** dnl ************************** GTK_DOC_CHECK([1.0]) AC_ARG_ENABLE(man, [AC_HELP_STRING([--enable-man], [regenerate man pages from Docbook [default=no]])],enable_man=yes, enable_man=no) if test "x$enable_man" != xno ; then dnl dnl Check for xsltproc dnl AC_PATH_PROG([XSLTPROC], [xsltproc]) if test -z "$XSLTPROC"; then enable_man=no fi fi if test "x$enable_man" != xno ; then dnl check for DocBook DTD and stylesheets in the local catalog. JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN], [DocBook XML DTD V4.1.2],,enable_man=no) JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl], [DocBook XSL Stylesheets],,enable_man=no) fi AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno) dnl ******************************************************** dnl * See whether we need to load our modules as .la files * dnl ******************************************************** use_la_modules=false case $host in *-aix*) use_la_modules=true esac if $use_la_modules ; then AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly]) fi dnl ****************************************************** dnl * See whether to include shared library dependencies * dnl ****************************************************** AC_ARG_ENABLE(explicit-deps, [ --enable-explicit-deps=[yes/no/auto] use explicit dependencies in .pc files [default=auto]], enable_explicit_deps="$enableval", enable_explicit_deps=auto) AC_MSG_CHECKING([Whether to write dependencies into .pc files]) case $enable_explicit_deps in auto) deplib_check_method=`(./libtool --config; echo eval echo \\$deplib_check_method) | sh` if test "X$deplib_check_method" = Xnone || test "x$enable_static" = xyes ; then enable_explicit_deps=yes else enable_explicit_deps=no fi ;; yes|no) ;; *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto]) ;; esac AC_MSG_RESULT($enable_explicit_deps) PKGCONFIG_X_LIBS= PKGCONFIG_XFT_LIBS= PKGCONFIG_FREETYPE_LIBS= PKGCONFIG_MATH_LIBS= PKGCONFIG_CAIRO_LIBS= if test $enable_explicit_deps = yes ; then PKGCONFIG_X_LIBS="$X_LIBS $X_EXTRA_LIBS" PKGCONFIG_XFT_LIBS=$XFT_LIBS PKGCONFIG_FREETYPE_LIBS=$FREETYPE_LIBS PKGCONFIG_MATH_LIBS=-lm PKGCONFIG_CAIRO_LIBS=$FREETYPE_LIBS if $have_cairo_freetype ; then PKGCONFIG_CAIRO_REQUIRES=pangoft2 fi fi AC_SUBST(PKGCONFIG_X_LIBS) AC_SUBST(PKGCONFIG_XFT_LIBS) AC_SUBST(PKGCONFIG_FREETYPE_LIBS) AC_SUBST(PKGCONFIG_MATH_LIBS) AC_SUBST(PKGCONFIG_CAIRO_LIBS) AC_SUBST(PKGCONFIG_CAIRO_REQUIRES) AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no) AC_CONFIG_COMMANDS([pango/module-defs.h], [ cat > pango/module-defs.h <> pango/module-defs.h < pango/module-defs-x.c <@ = { EOTEXT IFS="${IFS= }"; pango_save_ifs="$IFS"; IFS="," for module in $included_modules; do if echo $module | egrep -- "-x($|,)" > /dev/null; then module_c=`echo $module | sed s/-/_/` cat >> pango/module-defs-x.c <> pango/module-defs-x.c < pango/module-defs-fc.c <@ = { EOTEXT IFS="${IFS= }"; pango_save_ifs="$IFS"; IFS="," for module in $included_modules; do if echo $module | egrep -- "-fc($|,)" > /dev/null; then module_c=`echo $module | sed s/-/_/` cat >> pango/module-defs-fc.c <> pango/module-defs-fc.c < pango/module-defs-win32.c <@ = { EOTEXT IFS="${IFS= }"; pango_save_ifs="$IFS"; IFS="," for module in $included_modules; do if echo $module | egrep -- "-win32($|,)" > /dev/null; then module_c=`echo $module | sed s/-/_/` cat >> pango/module-defs-win32.c <> pango/module-defs-win32.c <