X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=configure.ac;h=5b66ddc2c82a173f88ee72116c56228912733352;hb=6302669b796eadd6994ecdc2e70f0119b29194dd;hp=48d7afe3c2d18a6168fcb0956334cccf8716798c;hpb=6290dbda9962af1127b69ca9eef3218da7a82ffa;p=inkscape.git diff --git a/configure.ac b/configure.ac index 48d7afe3c..5b66ddc2c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,54 +1,113 @@ dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.50) -AC_INIT(inkscape, 0.43+devel) -dnl N.B. After 0.40, please change to `0.40+cvs' instead of `0.41cvs'. -dnl Rationale: (i) placate simple version comparison software such as -dnl `dpkg --compare-versions'. (ii) We don't always know what the next -dnl version is going to be called until about the time we release it -dnl (whereas we always know what the previous version was called). +AC_PREREQ(2.53) + +# Always use 0.xx+devel instead of 0.xxdevel for the version, e.g. 0.46+devel. +# Rationale: (i) placate simple version comparison software such as +# `dpkg --compare-versions'. (ii) We don't always know what the next +# version is going to be called until about the time we release it +# (whereas we always know what the previous version was called). +AC_INIT(inkscape, 0.48+devel) + AC_CANONICAL_HOST -AC_CONFIG_SRCDIR(src/main.cpp) -AM_INIT_AUTOMAKE +AC_CONFIG_SRCDIR([src/main.cpp]) +AM_INIT_AUTOMAKE([dist-zip dist-bzip2 tar-pax]) + +AC_ARG_ENABLE([lsb], AS_HELP_STRING([--enable-lsb], [LSB-compatible build configuration]), [ + prefix=/opt/inkscape + PATH="/opt/lsb/bin:$PATH" + CC=lsbcc + CXX=lsbc++ + export CC CXX +]) AM_CONFIG_HEADER(config.h) +AC_LANG(C++) +AC_ISC_POSIX +AC_PROG_CXX +AM_PROG_CC_STDC +AM_PROG_AS +AC_PROG_RANLIB AC_PROG_INTLTOOL(0.22) +AC_PROG_LIBTOOL +AC_HEADER_STDC +INK_BZR_SNAPSHOT_BUILD + +dnl If automake 1.11 shave the output to look nice +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) dnl These next few lines are needed only while libcroco is in our source tree. AC_PROG_CC AM_PROG_CC_C_O if test "$GCC" = "yes"; then # Enable some warnings from gcc. + AC_LANG_PUSH(C) + + #### + # Generic cpp flags... + + # What is just plain "-W" ? + # Fortify source requires -O2 or higher, which is handled with newer autoconf + CPPFLAGS="-W -D_FORTIFY_SOURCE=2 $CPPFLAGS" + # Enable format and format security warnings + CPPFLAGS="-Wformat -Wformat-security $CPPFLAGS" + # Enable all default warnings + CPPFLAGS="-Wall $CPPFLAGS" + + # Test for -Werror=... (introduced some time post-4.0) + # If we hit a format error -- it should be fatal. + AC_MSG_CHECKING([compiler support for -Werror=format-security]) + ink_svd_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="-Werror=format-security $CPPFLAGS" + AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]), [ink_opt_ok=yes], [ink_opt_ok=no]) + AC_MSG_RESULT([$ink_opt_ok]) + if test "x$ink_opt_ok" != "xyes"; then + CPPFLAGS="$ink_svd_CPPFLAGS" + fi + + #### + # C-specific flags... # -Wno-pointer-sign is probably new in gcc 4.0; certainly it isn't accepted # by gcc 2.95. + AC_MSG_CHECKING([compiler support for -Wno-pointer-sign]) ink_svd_CFLAGS="$CFLAGS" CFLAGS="-Wno-pointer-sign $CFLAGS" - AC_COMPILE_IFELSE([int dummy; -], , CFLAGS="$ink_svd_CFLAGS",) - CFLAGS="-Wall -W $CFLAGS" -fi + AC_COMPILE_IFELSE(AC_LANG_PROGRAM([]), [ink_opt_ok=yes], [ink_opt_ok=no]) + AC_MSG_RESULT([$ink_opt_ok]) + if test "x$ink_opt_ok" != "xyes"; then + CFLAGS="$ink_svd_CFLAGS" + fi -AC_LANG(C++) -AC_ISC_POSIX -AC_PROG_CXX -AM_PROG_CC_STDC -AM_PROG_AS -AC_HEADER_STDC + #### + # Linker flags... + + # Have linker produce read-only relocations, if it knows how + AC_MSG_CHECKING([linker tolerates -z relro]) + ink_svd_LDFLAGS="$LDFLAGS" + LDFLAGS="-Wl,-z,relro $LDFLAGS" + AC_LINK_IFELSE(AC_LANG_PROGRAM([]), [ink_opt_ok=yes], [ink_opt_ok=no]) + AC_MSG_RESULT([$ink_opt_ok]) + if test "x$ink_opt_ok" != "xyes"; then + LDFLAGS="$ink_svd_LDFLAGS" + fi + + AC_LANG_POP + + # C++-specific flags are defined further below. Look for CXXFLAGS... +fi dnl Honor aclocal flags ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" -dnl RANLIB is outdated now -dnl AC_PROG_RANLIB -AM_PROG_LIBTOOL - dnl Verify our GCC version if test "x$GXX" = "xyes"; then AC_MSG_CHECKING([GNU compiler version]) - cc_version=["`$CXX $CXXFLAGS -v 2>&1 &1 +int main() { + std::tr1::unordered_set i, j; + i = j; + return 0; +} +], [unordered_set_works=yes], [unordered_set_works=no]) +if test "x$unordered_set_works" = "xyes"; then + AC_MSG_RESULT([ok]) + AC_DEFINE(HAVE_TR1_UNORDERED_SET, 1, [Has working standard TR1 unordered_set]) +else + AC_MSG_RESULT([not working]) +fi +AC_CHECK_HEADER([boost/unordered_set.hpp], [AC_DEFINE(HAVE_BOOST_UNORDERED_SET, 1, [Boost unordered_set (Boost >= 1.36)])], []) +AC_CHECK_HEADER([ext/hash_set], [AC_DEFINE(HAVE_EXT_HASH_SET, 1, [Legacy GNU ext/hash_set])], []) + +# Test whether GCC emits a spurious warning when using boost::optional +# If yes, turn off strict aliasing warnings to reduce noise +# and allow the legitimate warnings to stand out +AC_MSG_CHECKING([for overzealous strict aliasing warnings]) +ignore_strict_aliasing=no +CXXFLAGS_SAVE=$CXXFLAGS +CXXFLAGS="$CXXFLAGS -Werror=strict-aliasing" +AC_COMPILE_IFELSE([ +#include +boost::optional x; +int func() { + return *x; +} +], [ignore_strict_aliasing=no], [ignore_strict_aliasing=yes]) +AC_MSG_RESULT($ignore_strict_aliasing) +CXXFLAGS=$CXXFLAGS_SAVE +if test "x$ignore_strict_aliasing" = "xyes"; then + CXXFLAGS="$CXXFLAGS -Wno-strict-aliasing" +fi + dnl ****************************** dnl Gettext stuff dnl ****************************** @@ -74,7 +172,7 @@ GETTEXT_PACKAGE="AC_PACKAGE_NAME" AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Translation domain used]) dnl Add the languages which your application supports here. -ALL_LINGUAS="am az be ca cs da de el es es_MX et eu fr ga gl hu it ja ko lt mk nb nl nn pa pl pt pt_BR ru sk sl sr sr@Latn sv tr uk zh_CN zh_TW" +ALL_LINGUAS="am ar az be bg bn br ca ca@valencia cs da de dz el en_AU en_CA en_GB en_US@piglatin eo es_MX es et eu fa fi fr ga gl he hr hu hy id it ja km ko lt mk mn nb ne nl nn pa pl pt_BR pt ro ru rw sk sl sq sr@latin sr sv te_IN th tr uk vi zh_CN zh_TW" AM_GLIB_GNU_GETTEXT AC_PATH_PROG(PKG_CONFIG, pkg-config, no) @@ -82,7 +180,26 @@ if test "x$PKG_CONFIG" = "xno"; then AC_MSG_ERROR(You have to install pkg-config to compile inkscape.) fi -AC_CHECK_LIB(png, png_read_info, [AC_CHECK_HEADER(png.h, png_ok=yes, png_ok=no)], png_ok=no, -lz -lm) +dnl Find msgfmt. Without this, po/Makefile fails to set MSGFMT on some platforms. +AC_PATH_PROG(MSGFMT, msgfmt, msgfmt) +AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + +dnl ****************************** +dnl Check for OpenMP +dnl Replace this with AC_OPENMP once Autoconf 2.62 is widespread +dnl ****************************** +AX_OPENMP([openmp_ok=yes],[openmp_ok=no]) +if test "x$openmp_ok" = "xyes"; then + dnl We have it, now set up the flags + CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS" + AC_CHECK_HEADER(omp.h) + AC_DEFINE(HAVE_OPENMP, 1, [Use OpenMP]) +fi + +dnl ****************************** +dnl Check for libpng +dnl ****************************** +AC_CHECK_LIB(png, png_read_info, [AC_CHECK_HEADER(png.h, png_ok=yes, png_ok=yes)], png_ok=no, -lz -lm) if test "x$png_ok" != "xyes"; then AC_MSG_ERROR([libpng >= 1.2 is needed to compile inkscape]) fi @@ -131,7 +248,7 @@ AC_CHECK_HEADERS([gc.h gc/gc.h], break], [gc_ok=no], [$gc_libs]) break], [gc_ok=no]) -if test "x$gc_ok" = "xyes"; then +if test "x$gc_ok" = "xyes" && test "x$cross_compiling" = "xno" ; then AC_MSG_CHECKING([libgc version 6.4+]) AC_RUN_IFELSE( [AC_LANG_SOURCE([[ @@ -157,6 +274,10 @@ if test "x$gc_ok" != "xyes"; then AC_MSG_ERROR([libgc (the Boehm Conservative Collector) 6.4+, is needed to compile inkscape -- http://www.hpl.hp.com/personal/Hans_Boehm/gc]) fi +dnl This check is to get a FIONREAD definition on Solaris 8 +AC_CHECK_HEADERS([sys/filio.h]) + + AC_CHECK_HEADERS([malloc.h]) AC_CHECK_FUNCS([mallinfo], [ AC_CHECK_MEMBERS([struct mallinfo.usmblks, @@ -179,18 +300,34 @@ AC_SUBST(FREETYPE_LIBS) dnl ****************************** dnl Win32 dnl ****************************** -AC_MSG_CHECKING([for native Win32]) +AC_MSG_CHECKING([for Win32 platform]) case "$host" in *-*-mingw*) - os_win32=yes - INKSCAPE_CFLAGS="$INKSCAPE_CFLAGS -mms-bitfields -DLIBXML_STATIC" + platform_win32=yes + WIN32_CFLAGS="-mms-bitfields -DLIBXML_STATIC" ;; *) - os_win32=no + platform_win32=no ;; esac -AC_MSG_RESULT([$os_win32]) -AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") +AC_MSG_RESULT([$platform_win32]) +AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes") +AC_SUBST(WIN32_CFLAGS) + +AC_MSG_CHECKING([for Solaris platform]) +case "$host" in + *-solaris2.*) + platform_solaris=yes + solaris_version=`echo $host|sed -e 's/^.*-solaris2\.//' -e s'/\..*$//'` + CFLAGS="$CFLAGS -DSOLARIS=$solaris_version" + CXXFLAGS="$CXXFLAGS -DSOLARIS=$solaris_version" + ;; + *) + platform_solaris=no + ;; +esac +AC_MSG_RESULT([$platform_solaris]) +AM_CONDITIONAL(PLATFORM_SOLARIS, test "$platform_solaris" = "yes") dnl ****************************** dnl Xft checking @@ -202,10 +339,10 @@ AC_ARG_WITH(xft, if test "x$with_xft" != "xno" ; then dnl Test fontconfig package - PKG_CHECK_MODULES(XFT, xft, xft_ok=yes, xft_ok=no) + PKG_CHECK_MODULES(XFT, fontconfig, xft_ok=yes, xft_ok=no) if test "x$xft_ok" != "xyes"; then dnl test xft package - PKG_CHECK_MODULES(XFT, fontconfig, xft_ok=yes, xft_ok=no) + PKG_CHECK_MODULES(XFT, xft, xft_ok=yes, xft_ok=no) if test "x$xft_ok" != "xyes"; then dnl Have to test xft presence AC_CHECK_HEADER(X11/Xft/Xft.h, xft_ok=yes, xft_ok=no) @@ -245,39 +382,6 @@ if test "x$xft_ok" = "xyes"; then fi fi -dnl ****************************** -dnl GnomePrint checking -dnl ****************************** - -AC_ARG_WITH(gnome-print, - AC_HELP_STRING([--with-gnome-print], [use gnome print font database and spooler frontend]), - [with_gp=$withval], [with_gp=auto]) - -if test "x$with_gp" = "xyes"; then - dnl Have to test gnome-print presence - PKG_CHECK_MODULES(GNOME_PRINT, libgnomeprint-2.2 >= 1.116.0 libgnomeprintui-2.2 >= 1.116.0, gp=yes, gp=no) - if test "x$gp" != "xyes"; then - dnl No gnome-print found - if test "x$with_gp" = "xyes"; then - dnl Gnome-print was explicitly asked, so stop - AC_MSG_ERROR([--with-gnome-print was specified, but appropriate libgnomeprint development packages could not be found]) - else - # gp is no, tell us for the log file - AC_MSG_RESULT($gp) - fi - fi -else - dnl Asked to ignore gnome-print - gp=no -fi - -AC_SUBST(GNOME_PRINT_CFLAGS) -AC_SUBST(GNOME_PRINT_LIBS) - -AM_CONDITIONAL(USE_GNOME_PRINT, test "x$gp" = "xyes") -if test "x$gp" = "xyes"; then - AC_DEFINE(WITH_GNOME_PRINT, 1, [Use gnome print font database and spooler frontend]) -fi dnl ****************************** dnl gnome vfs checking @@ -342,7 +446,7 @@ dnl ****************************** AC_MSG_CHECKING(for Perl development environment) AC_ARG_WITH(perl, - AC_HELP_STRING([--with-perl], [use Perl for embedded scripting]), + AC_HELP_STRING([--with-perl], [use Perl for embedded scripting (EXPERIMENTAL)]), [with_perl=$withval], [with_perl=skipped]) if test "x$with_perl" = "xyes"; then @@ -385,7 +489,7 @@ dnl ****************************** AC_MSG_CHECKING(for Python development environment) AC_ARG_WITH(python, - AC_HELP_STRING([--with-python], [use Python for embedded scripting]), + AC_HELP_STRING([--with-python], [use Python for embedded scripting (EXPERIMENTAL)]), [with_python=$withval], [with_python=skipped]) if test "x$with_python" = "xyes"; then @@ -427,15 +531,15 @@ dnl LittleCms checking dnl ****************************** AC_ARG_ENABLE(lcms, - AC_HELP_STRING([--enable-lcms], [enable LittleCms for color management (disabled by default)]), - [enable_lcms=$enableval], [enable_lcms=no]) + AC_HELP_STRING([--enable-lcms], [enable LittleCms for color management]), + [enable_lcms=$enableval], [enable_lcms=yes]) if test "x$enable_lcms" = "xno"; then dnl Asked to ignore LittleCms lcms=no else dnl Have to test LittleCms presence - PKG_CHECK_MODULES(LCMS, lcms >= 1.14, lcms=yes, lcms=no) + PKG_CHECK_MODULES(LCMS, lcms >= 1.13, lcms=yes, lcms=no) if test "x$lcms" != "xyes"; then dnl No lcms found if test "x$enable_lcms" = "xyes"; then @@ -447,63 +551,276 @@ else fi else dnl Working lcms - LCMS_LIBS="-llcms " + LIBS="$LIBS $LCMS_LIBS" + AC_DEFINE(ENABLE_LCMS, 1, [Use LittleCms color management]) fi fi -if test "x$lcms" = "xyes"; then - LIBS="$LIBS $LCMS_LIBS" - AC_DEFINE(ENABLE_LCMS, 1, [Use LittleCms color management]) -fi -AM_CONDITIONAL(USE_LCMS, test "x$lcms" = "xyes") AC_SUBST(LCMS_CFLAGS) AC_SUBST(LCMS_LIBS) +dnl ****************************** +dnl Libpoppler checking +dnl ****************************** + +AC_ARG_ENABLE(poppler-cairo, + AC_HELP_STRING([--enable-poppler-cairo], [Enable libpoppler-cairo for rendering PDF preview]), + [enable_poppler_cairo=$enableval], [enable_poppler_cairo=yes]) + +POPPLER_CFLAGS="" +PKG_CHECK_MODULES(POPPLER, poppler >= 0.5.9, poppler=yes, poppler=no) + +if test "x$poppler" = "xyes"; then + dnl Working libpoppler + dnl Have to test libpoppler-glib presence + PKG_CHECK_MODULES(POPPLER_GLIB, poppler-glib >= 0.5.9, poppler_glib=yes, poppler_glib=no) + if test "x$poppler_glib" = "xyes"; then + dnl Working libpoppler-glib found + dnl Check whether the Cairo SVG backend is available + PKG_CHECK_MODULES(CAIRO_SVG, cairo-svg, cairo_svg=yes, cairo_svg=no) + if test "x$cairo_svg" = "xyes"; then + POPPLER_LIBS="$POPPLER_LIBS $POPPLER_GLIB_LIBS " + fi + fi + if test "x$enable_poppler_cairo" = "xyes"; then + dnl Have to test libpoppler-cairo presence for PDF preview + dnl AC_CHECK_HEADER(Magick++.h, magick_ok=yes, magick_ok=no) + PKG_CHECK_MODULES(POPPLER_CAIRO, poppler-cairo >= 0.5.9, poppler_cairo=yes, poppler_cairo=no) + if test "x$poppler_glib" = "xyes" -a "x$poppler_cairo" = "xyes" -a \ + "x$cairo_svg" = "xno" + then + POPPLER_LIBS="$POPPLER_LIBS $POPPLER_CAIRO_LIBS " + fi + fi +fi + +if test "x$poppler" = "xyes"; then + LIBS="$LIBS $POPPLER_LIBS" + AC_DEFINE(HAVE_POPPLER, 1, [Use libpoppler for direct PDF import]) +fi +if test "x$poppler_cairo" = "xyes" -a "x$poppler_glib" = "xyes"; then + AC_DEFINE(HAVE_POPPLER_CAIRO, 1, [Use libpoppler-cairo for rendering PDF preview]) +fi +if test "x$poppler_glib" = "xyes" -a "x$cairo_svg" = "xyes"; then + AC_DEFINE(HAVE_POPPLER_GLIB, 1, [Use libpoppler-glib and Cairo-SVG for PDF import]) +fi +AC_SUBST(POPPLER_CFLAGS) +AC_SUBST(POPPLER_LIBS) + +PKG_CHECK_MODULES(POPPLER_GFXFONT, poppler >= 0.8.3, popplernew=yes, popplernew=no) +if test "x$popplernew" = "xyes"; then + AC_DEFINE(POPPLER_NEW_GFXFONT, 1, [Use GfxFont from Poppler >= 0.8.3]) +fi + +ink_svd_CPPFLAGS=$CPPFLAGS +ink_svd_LIBS=$LIBS +CPPFLAGS="$CPPFLAGS $POPPLER_CFLAGS" +LIBS="$LIBS $POPPLER_LIBS" + +AC_MSG_CHECKING(for new color space API in Poppler) +popplercolor="no" +AC_COMPILE_IFELSE([ +#include + +int main() { + typedef GfxColorSpace *(*parse_p)(Object *, Gfx *); + parse_p p; + p = &GfxColorSpace::parse; + return 0; +} +], [popplercolor=yes]) +if test "x$popplercolor" = "xyes"; then + AC_DEFINE(POPPLER_NEW_COLOR_SPACE_API, 1, [Use color space API from Poppler >= 0.12.2]) + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) +fi + +# Poppler's b604a008 commit changes this +AC_MSG_CHECKING([whether Poppler's GfxPatch no longer uses GfxColor]) +popplergfxcolor="no" +AC_COMPILE_IFELSE([ +#include + +int main() { + GfxPatch::ColorValue color = {c: {0}}; + GfxPatch patch; + patch.color[[0]][[0]] = color; + return 0; +} +], [popplergfxcolor=yes]) +if test "x$popplergfxcolor" = "xyes"; then + AC_DEFINE(POPPLER_NEW_GFXPATCH, 1, [GfxPatch no longer uses GfxColor in >= 0.15.1]) + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) +fi + +CPPFLAGS=$ink_svd_CPPFLAGS +LIBS=$ink_svd_LIBS + dnl ****************************** dnl Inkboard dependency checking dnl ****************************** -with_inkboard="no" +dnl with_inkboard="no" +dnl with_inkboard_ssl="no" + +dnl INKBOARD_CFLAGS="" + +dnl AC_ARG_ENABLE(inkboard, +dnl AS_HELP_STRING([--enable-inkboard], [enable Inkboard online whiteboard facility (disabled by default)]), +dnl with_inkboard=$enableval,with_inkboard=no) + +dnl if test "x$with_inkboard" = "xyes"; then +dnl with_inkboard="yes" +dnl AC_DEFINE(WITH_INKBOARD,1,[Build in Inkboard support]) + + dnl Test for OpenSSL +dnl PKG_CHECK_MODULES(INKBOARD, openssl, with_inkboard_ssl=yes, with_inkboard_ssl=no) +dnl if test "x$with_inkboard_ssl" = "xyes"; then + dnl OpenSSL found; enable SSL support in Pedro +dnl INKBOARD_CFLAGS="$INKBOARD_CFLAGS -DHAVE_SSL" +dnl RELAYTOOL([ssl], INKBOARD_LIBS, INKBOARD_CFLAGS, [inkboard_weak=yes]) +dnl RELAYTOOL([crypto], INKBOARD_LIBS, INKBOARD_CFLAGS, [inkboard_weak=yes]) +dnl AC_DEFINE(WITH_INKBOARD_SSL,1,[Build in SSL support for Inkboard]) +dnl fi +dnl else +dnl with_inkboard="no" +dnl fi + +dnl AM_CONDITIONAL(WITH_INKBOARD, test "x$with_inkboard" = "xyes") -AC_MSG_CHECKING(for loudmouth-1.0+) +INKBOARD_CFLAGS="" +INKBOARD_LIBS="" +AC_SUBST(INKBOARD_LIBS) +AC_SUBST(INKBOARD_CFLAGS) -AC_ARG_ENABLE(inkboard, - AS_HELP_STRING([--enable-inkboard], [enable Inkboard online whiteboard facility (disabled by default)]), - with_inkboard=$enableval,with_inkboard=no) +dnl ****************************** +dnl Check for libwpg for extension +dnl ****************************** -if test "x$with_inkboard" = "xyes"; then - PKG_CHECK_MODULES(LIBLOUDMOUTH, loudmouth-1.0, loudmouth_ok=yes, loudmouth_ok=no) - if test "x$loudmouth_ok" = "xyes"; then - with_inkboard="yes" - AC_DEFINE(WITH_INKBOARD,1,[Build in Inkboard support]) - else - with_inkboard="no" +PKG_CHECK_MODULES(LIBWPG, libwpg-0.1 libwpg-stream-0.1, with_libwpg=yes, with_libwpg=no) +if test "x$with_libwpg" = "xyes"; then + AC_DEFINE(WITH_LIBWPG,1,[Build in libwpg]) +fi +AM_CONDITIONAL(WITH_LIBWPG, test "x$with_libwpg" = "xyes") + +AC_SUBST(LIBWPG_LIBS) +AC_SUBST(LIBWPG_CFLAGS) + +dnl ****************************** +dnl Support doing a local install +dnl (mostly for distcheck) +dnl ****************************** + +with_localinstall="no" +AC_ARG_ENABLE(localinstall, AS_HELP_STRING([--enable-localinstall], [install system files in the local path (for distcheck)]), with_localinstall=$enableval, with_localinstall=no) + +dnl ****************************** +dnl Check for dbus functionality +dnl ****************************** + +AC_ARG_ENABLE(dbusapi, + [ --enable-dbusapi compile with support for DBus interface], + enable_dbusapi=$enableval,enable_dbusapi=no) + +with_dbus="no" +if test "x$enable_dbusapi" = "xyes"; then + PKG_CHECK_MODULES(DBUS, dbus-glib-1, with_dbus=yes, with_dbus=no) + if test "x$with_dbus" = "xyes"; then + if test "x$with_localinstall" = "xyes"; then + DBUSSERVICEDIR="${datadir}/dbus-1/services/" + else + DBUSSERVICEDIR=`$PKG_CONFIG --variable=session_bus_services_dir dbus-1` + fi + AC_SUBST(DBUSSERVICEDIR) + AC_DEFINE(WITH_DBUS,1,[Build in dbus]) fi -else - with_inkboard="no" fi +AC_SUBST(DBUS_LIBS) +AC_SUBST(DBUS_CFLAGS) +AM_CONDITIONAL(WITH_DBUS, test "x$with_dbus" = "xyes") + +dnl ****************************** +dnl Check for ImageMagick Magick++ +dnl ****************************** + +PKG_CHECK_MODULES(IMAGEMAGICK, ImageMagick++, magick_ok=yes, magick_ok=no) +if test "x$magick_ok" = "xyes"; then + AC_DEFINE(WITH_IMAGE_MAGICK,1,[Image Magick++ support for bitmap effects]) +fi +AM_CONDITIONAL(USE_IMAGE_MAGICK, test "x$magick_ok" = "xyes") -AC_MSG_RESULT($with_inkboard) -AM_CONDITIONAL(WITH_INKBOARD, test "x$with_inkboard" = "xyes") -AC_SUBST(LIBLOUDMOUTH_CFLAGS) -AC_SUBST(LIBLOUDMOUTH_LIBS) +AC_SUBST(IMAGEMAGICK_LIBS) +AC_SUBST(IMAGEMAGICK_CFLAGS) + +dnl *********************************************************************************************************** +dnl Check for a Cairo version that implements user-fonts feature (with a stable API, that is cairo > 1.7.6), +dnl so that we conditionally add SVGFonts support +dnl *********************************************************************************************************** + +PKG_CHECK_MODULES(CAIRO_USER_FONTS, cairo > 1.7.6, cairouserfonts=yes, cairouserfonts=no) +if test "x$cairouserfonts" = "xyes"; then + AC_DEFINE(ENABLE_SVG_FONTS, 1, [SVG Fonts should be used]) +fi dnl ****************************** dnl Unconditional dependencies dnl ****************************** -dnl *** NOTE: when we move to gtk 2.6 or later, we can remove the -dnl ********* the override for g_ascii_strtod below... dnl sigc++-2.0 >= 2.0.12: using "visit_each" not available in 2.0.10 -PKG_CHECK_MODULES(INKSCAPE, gdkmm-2.4 glibmm-2.4 gtkmm-2.4 gtk+-2.0 >= 2.4.0 libxml-2.0 >= 2.6.11 libxslt >= 1.0.15 sigc++-2.0 >= 2.0.12 $ink_spell_pkg gthread-2.0 >= 2.0) +if test $cc_vers_major -gt 3; then + min_sigc_version=2.0.12 +else + min_sigc_version=2.0.11 +fi +PKG_CHECK_MODULES(INKSCAPE, gdkmm-2.4 glibmm-2.4 giomm-2.4 gtkmm-2.4 >= 2.10.0 gtk+-2.0 libxml-2.0 >= 2.6.11 libxslt >= 1.0.15 cairo sigc++-2.0 >= $min_sigc_version $ink_spell_pkg gthread-2.0 >= 2.0 libpng >= 1.2 gsl) + +# Check for Apple Mac OS X Carbon framework +carbon_ok=no +AC_MSG_CHECKING([for Mac OS X Carbon support]) +AC_COMPILE_IFELSE([ +#include +#include +], [carbon_ok=yes]) +AC_MSG_RESULT($carbon_ok) +if test "x$carbon_ok" = "xyes"; then + AC_DEFINE(HAVE_CARBON, 1, [define to 1 if Carbon is available]) + CARBON_LDFLAGS="-framework Carbon" + AC_SUBST(CARBON_LDFLAGS) +fi +AM_CONDITIONAL(HAVE_CARBON, test "x$carbon_ok" = "xyes") + +# Check for some boost header files +AC_CHECK_HEADERS([boost/concept_check.hpp], [], AC_MSG_ERROR([You need the boost package (e.g. libboost-dev)])) + +PKG_CHECK_MODULES(CAIRO_PDF, cairo-pdf, cairo_pdf=yes, cairo_pdf=no) +if test "x$cairo_pdf" = "xyes"; then + AC_DEFINE(HAVE_CAIRO_PDF, 1, [Whether the Cairo PDF backend is available]) +fi dnl Shouldn't we test for libpng and libz? -INKSCAPE_LIBS="$INKSCAPE_LIBS -lpng -lz" +INKSCAPE_LIBS="$INKSCAPE_LIBS -lpng -lz -lX11 -lxml2 -ldl" +if test "x$openmp_ok" = "xyes"; then + INKSCAPE_LIBS="$INKSCAPE_LIBS -lgomp" +fi AC_CHECK_HEADER(popt.h, [INKSCAPE_LIBS="$INKSCAPE_LIBS -lpopt"], AC_MSG_ERROR([libpopt is required])) +dnl ************************** +dnl Check for aspell +dnl ****************************** +AC_CHECK_LIB(aspell, new_aspell_config, [AC_CHECK_HEADER(aspell.h, aspell_ok=yes, aspell_ok=no)], aspell_ok=no, -lz -lm) +if test "x$aspell_ok" = "xyes"; then + AC_DEFINE(HAVE_ASPELL, 1, [Use aspell for built-in spellchecker]) + INKSCAPE_LIBS="$INKSCAPE_LIBS -laspell" +else + AC_MSG_CHECKING([Aspell not found, spell checker will be disabled]) +fi + dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in. sp_save_LIBS=$LIBS LIBS="$LIBS $INKSCAPE_LIBS" @@ -560,7 +877,7 @@ elif test "$enable_binreloc" = "auto"; then elif test "$enable_binreloc" = "no"; then AC_MSG_RESULT(no) else - AC_MSG_RESULT(no (unknown value "$enable_binreloc")) + AC_MSG_RESULT([no (unknown value "$enable_binreloc")]) enable_binreloc=no fi AC_DEFINE(BR_PTHREADS,[0],[Use binreloc thread support?]) @@ -575,13 +892,6 @@ if test "$enable_osxapp" = "yes"; then AC_DEFINE(ENABLE_OSX_APP_LOCATIONS,,[Build with OSX .app data dir paths?]) fi -dnl ****************************** -dnl Boost graph library is required for graphlayout functions -dnl ****************************** -AC_CHECK_HEADER([boost/graph/adjacency_list.hpp], - [AC_DEFINE([HAVE_BOOST_GRAPH_LIB],[],[Will enable connector network layout])], - [AC_MSG_WARN([Boost graph lib not found, can't include connector network layout functionality.])]) - dnl ****************************** dnl Reported by autoscan dnl ****************************** @@ -650,34 +960,11 @@ if test "$GXX" = "yes"; then # programmer deliberately has an unused parameter (e.g. because it's used # as a callback or similar function pointer use). - CXXFLAGS="-Wall -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch $CXXFLAGS" + # Add even more stuff + CXXFLAGS="-Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch $CXXFLAGS" - dnl Test for arch-specific situations. - case "$host_cpu" in - mips|mipsel) - dnl Symbol tables can get too large: this uses alternate tables - dnl See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=283476 - CXXFLAGS="$CXXFLAGS -Wa,-xgot" - CFLAGS="$CFLAGS -Wa,-xgot" - ;; - esac fi -dnl ****************************** -dnl Plugin Support -dnl ****************************** -dnl -dnl UPDATE: This is unconditional now (Lauris) -dnl -dnl AC_ARG_WITH(modules, AC_HELP_STRING([--with-modules], [Compile with plugin support (experimental)]), [mod=$withval], [mod=yes]) -dnl -dnl AM_CONDITIONAL(USE_MODULES, test "x$mod" = "xyes") -dnl if test "x$mod" = "xyes"; then -dnl AC_DEFINE(WITH_MODULES, 1, [Use experimental module support]) -dnl fi - -AC_DEFINE(WITH_MODULES, 1, [Use experimental module support]) - dnl ****************************** dnl libinkscape dnl ****************************** @@ -690,96 +977,15 @@ dnl AC_SUBST(INKSCAPE_CFLAGS) AC_SUBST(INKSCAPE_LIBS) -# -# Checks to see if we should compile in MMX support (there will be -# a runtime test when the code is actually run to see if it should -# be used - this just checks if we can compile it.) -# -# This code is partially taken from Mesa -# -dnl Let people disable the MMX optimization -AC_ARG_ENABLE(mmx, [ --disable-mmx Don't use MMX optimization [default=auto]], enable_mmx="$enableval", enable_mmx=auto) - -AC_MSG_CHECKING(for x86 platform) -case $host_cpu in - i386|i486|i586|i686|i786|k6|k7) - use_x86_asm=yes - ;; - *) - use_x86_asm=no -esac -AC_MSG_RESULT($use_x86_asm) - -dnl Are we going to use MMX extensions -use_mmx_asm=no - -AC_MSG_CHECKING(compiler support for MMX) - -if test x$enable_mmx = xauto ; then - if test $use_x86_asm = yes; then - save_ac_ext=$ac_ext - ac_ext=S - - cp $srcdir/src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.S conftest.S - if AC_TRY_EVAL(ac_compile); then - use_mmx_asm=yes - fi - dnl rm -f conftest.[oS] - - ac_ext=$save_ac_ext - fi - -dnl Enforce usage of MMX extensions -elif test x$enable_mmx = xyes ; then - use_mmx_asm=yes -else - use_mmx_asm=no -fi - -if test $use_mmx_asm = yes; then - AC_DEFINE(WITH_MMX, 1, [Use MMX optimizations, if CPU supports it]) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes) - -dnl Override the default g_ascii_strtod -AC_DEFINE(g_ascii_strtod, fixed_g_ascii_strtod, [Pre-1.107 gstrfuncs.c version of g_ascii_strtod is broken]) - -dnl Figure out where the datadir actually is -if test "x${datadir}" = 'x${prefix}/share'; then - if test "x${prefix}" = "xNONE"; then - runtime_datadir="${ac_default_prefix}/share" - else - runtime_datadir="${prefix}/share" - fi -else - runtime_datadir="${datadir}" -fi - -inkscape_sharedir="${runtime_datadir}/${PACKAGE_NAME}" - dnl Define our data paths for config.h -AC_SUBST(INKSCAPE_DATADIR) -AC_DEFINE_UNQUOTED([INKSCAPE_DATADIR], "${runtime_datadir}", - [Base data directory -- only path-prefix.h should use it!]) -AC_SUBST(PACKAGE_LOCALE_DIR) -AC_DEFINE_UNQUOTED([PACKAGE_LOCALE_DIR], "${runtime_datadir}/locale", - [Localization directory]) -AC_SUBST(INKSCAPE_LIBDIR) -AC_DEFINE_UNQUOTED([INKSCAPE_LIBDIR], "${prefix}/lib", - [Base library directory -- only path-prefix.h should use it!]) - -dnl Have to add module makefiles (lauris) +AC_DEFINE_DIR([INKSCAPE_DATADIR], [datadir], [Base data directory]) +AC_DEFINE_DIR([PACKAGE_LOCALE_DIR], [localedir], [Locatization directory]) AC_CONFIG_FILES([ Makefile src/Makefile src/check-header-compile -src/algorithms/makefile -src/application/makefile +src/bind/makefile src/debug/makefile src/dialogs/makefile src/display/makefile @@ -787,38 +993,54 @@ src/dom/makefile src/extension/implementation/makefile src/extension/internal/makefile src/extension/makefile -src/extension/plugin/makefile src/extension/script/makefile +src/extension/dbus/wrapper/inkdbus.pc +src/filters/makefile src/helper/makefile -src/inkjar/makefile src/io/makefile src/libcroco/makefile +src/libgdl/makefile src/libnr/makefile src/libnrtype/makefile src/libavoid/makefile src/livarot/makefile +src/live_effects/makefile +src/live_effects/parameter/makefile +src/pedro/makefile src/jabber_whiteboard/makefile -src/removeoverlap/makefile src/svg/makefile src/trace/makefile -src/traits/makefile +src/ui/cache/makefile src/ui/dialog/makefile src/ui/makefile src/ui/view/makefile src/ui/widget/makefile -src/utest/makefile src/util/makefile src/widgets/makefile src/xml/makefile +src/2geom/makefile doc/Makefile po/Makefile.in share/Makefile share/clipart/Makefile share/examples/Makefile share/extensions/Makefile +share/extensions/alphabet_soup/Makefile +share/extensions/Barcode/Makefile +share/extensions/Poly3DObjects/Makefile +share/extensions/test/Makefile +share/extensions/xaml2svg/Makefile +share/filters/Makefile share/fonts/Makefile share/gradients/Makefile share/icons/Makefile +share/icons/application/Makefile +share/icons/application/16x16/Makefile +share/icons/application/22x22/Makefile +share/icons/application/24x24/Makefile +share/icons/application/32x32/Makefile +share/icons/application/48x48/Makefile +share/icons/application/256x256/Makefile share/keys/Makefile share/markers/Makefile share/palettes/Makefile @@ -852,13 +1074,15 @@ Configuration: LDFLAGS: ${LDFLAGS} Use Xft font database: ${xft_ok} - Use gnome-print: ${gp} - Use gnome-vfs: ${gnome_vfs} + Use gnome-vfs: ${gnome_vfs} Use openoffice files: ${ij} - Use MMX optimizations: ${use_mmx_asm} Use relocation support: ${enable_binreloc} - Use Python extensions: ${with_python} - Use Perl extensions: ${with_perl} - Enable LittleCms: ${enable_lcms} - Enable Inkboard: ${with_inkboard} + Internal Python: ${with_python} + Internal Perl: ${with_perl} + Enable LittleCms: ${enable_lcms} + Enable DBUS: ${with_dbus} + Enable Poppler-Cairo: ${enable_poppler_cairo} + ImageMagick Magick++: ${magick_ok} + Libwpg: ${with_libwpg} + Doing Local Install: ${with_localinstall} "