Code

add group code 70 to LWPOLYLINE
[inkscape.git] / configure.ac
index 313d349a8b28e002e5c28ae7f11af4f5050a0826..fb430b24892a6713310e87f0694afbef9591dbf9 100644 (file)
@@ -33,18 +33,62 @@ AC_HEADER_STDC
 dnl These next few lines are needed only while libcroco is in our source tree.
 AC_PROG_CC
 AM_PROG_CC_C_O
-AC_MSG_NOTICE([Testing -Wno-pointer-sign])
 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(AC_LANG_PROGRAM([]), AC_MSG_NOTICE([ compiler supports -Wno-pointer-sign]), CFLAGS="$ink_svd_CFLAGS")
-  CFLAGS="-Wall -Wformat -Werror=format-security -W -D_FORTIFY_SOURCE=2 $CFLAGS"
+  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
+
+  ####
+  # 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
@@ -96,6 +140,21 @@ dnl Find msgfmt.  Without this, po/Makefile fails to set MSGFMT on some platform
 AC_PATH_PROG(MSGFMT, msgfmt, msgfmt)
 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
 
+dnl ******************************
+dnl Check for OpenMP 
+dnl ******************************
+
+AX_OPENMP([openmp_ok=yes],[openmp_ok=no])
+AC_MSG_CHECKING([for OpenMP support])
+dnl a bit odd, but AX_OPENMP does its own check message, so we're not wrapping it at the moment
+AC_MSG_RESULT([$openmp_ok])
+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)
+fi
+
+
 dnl ******************************
 dnl Check for libpng 
 dnl ******************************
@@ -148,7 +207,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([[
@@ -204,7 +263,7 @@ AC_MSG_CHECKING([for Win32 platform])
 case "$host" in
   *-*-mingw*)
     platform_win32=yes
-    INKSCAPE_CFLAGS="$INKSCAPE_CFLAGS -mms-bitfields -DLIBXML_STATIC"
+    WIN32_CFLAGS="-mms-bitfields -DLIBXML_STATIC"
     ;;
   *)
     platform_win32=no
@@ -212,20 +271,22 @@ case "$host" in
 esac
 AC_MSG_RESULT([$platform_win32])
 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
+AC_SUBST(WIN32_CFLAGS)
 
-AC_MSG_CHECKING([for Solaris 2.8 platform])
+AC_MSG_CHECKING([for Solaris platform])
 case "$host" in
-  *-solaris2.8)
-    platform_solaris_2_8=yes
-    CFLAGS="$CFLAGS -DSOLARIS_2_8"
-    CXXFLAGS="$CXXFLAGS -DSOLARIS_2_8"
+  *-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_2_8=no
+    platform_solaris=no
     ;;
 esac
-AC_MSG_RESULT([$platform_solaris_2_8])
-AM_CONDITIONAL(PLATFORM_SOLARIS_2_8, test "$platform_solaris_2_8" = "yes")
+AC_MSG_RESULT([$platform_solaris])
+AM_CONDITIONAL(PLATFORM_SOLARIS, test "$platform_solaris" = "yes")
 
 dnl ******************************
 dnl Xft checking
@@ -237,10 +298,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)
@@ -506,6 +567,11 @@ fi
 AC_SUBST(POPPLER_CFLAGS)
 AC_SUBST(POPPLER_LIBS)
 
+PKG_CHECK_MODULES(POPPLERNEW, poppler >= 0.8.3, popplernew=yes, popplernew=no)
+if test "x$popplernew" = "xyes"; then
+       AC_DEFINE(POPPLER_NEW_GFXFONT, 1, [Poppler version of GfxFont to use (0.8.3 or higher versions of Poppler)])
+fi
+
 dnl ******************************
 dnl Inkboard dependency checking
 dnl ******************************
@@ -557,19 +623,25 @@ dnl ******************************
 dnl Check for ImageMagick Magick++ 
 dnl ******************************
 
-AC_CHECK_LIB(Magick++, InitializeMagick, [AC_CHECK_HEADER(Magick++.h, magick_ok=yes, magick_ok=no)], magick_ok=no, -llcms -lfreetype -ljpeg -lfontconfig -lXext -lSM -lICE -lX11 -lz -lpthread -lm -lpthread)
-
+PKG_CHECK_MODULES(IMAGEMAGICK, ImageMagick++, magick_ok=yes, magick_ok=no)
 if test "x$magick_ok" = "xyes"; then
-       AC_CHECK_PROG(MAGICKPP_CONFIG, Magick++-config, yes, no)
-       if test "x$MAGICKPP_CONFIG" = "xyes"; then
-               IMAGEMAGICK_LIBS=`Magick++-config --libs`
-               AC_SUBST(IMAGEMAGICK_LIBS)
-               AC_DEFINE(WITH_IMAGE_MAGICK,1,[Image Magick++ support for bitmap effects])
-       fi
+      AC_DEFINE(WITH_IMAGE_MAGICK,1,[Image Magick++ support for bitmap effects])
 fi
-
 AM_CONDITIONAL(USE_IMAGE_MAGICK, test "x$magick_ok" = "xyes")
 
+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 ******************************
@@ -580,7 +652,7 @@ if test $cc_vers_major -gt 3; then
 else
   min_sigc_version=2.0.11
 fi
-PKG_CHECK_MODULES(INKSCAPE, gdkmm-2.4  glibmm-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)
+PKG_CHECK_MODULES(INKSCAPE, gdkmm-2.4  glibmm-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
@@ -606,7 +678,11 @@ if test "x$cairo_pdf" = "xyes"; then
 fi
 
 dnl Shouldn't we test for libpng and libz?
-INKSCAPE_LIBS="$INKSCAPE_LIBS -lpng -lz"
+if test "x$openmp_ok" = "xyes"; then
+       INKSCAPE_LIBS="$INKSCAPE_LIBS -lpng -lz -lgomp"
+else
+       INKSCAPE_LIBS="$INKSCAPE_LIBS -lpng -lz"
+fi
 
 AC_CHECK_HEADER(popt.h,
                [INKSCAPE_LIBS="$INKSCAPE_LIBS -lpopt"],
@@ -751,7 +827,8 @@ 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 -Wformat -Werror=format-security -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -D_FORTIFY_SOURCE=2 $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
@@ -876,6 +953,7 @@ src/extension/implementation/makefile
 src/extension/internal/makefile
 src/extension/makefile
 src/extension/script/makefile
+src/filters/makefile
 src/helper/makefile
 src/inkjar/makefile
 src/io/makefile
@@ -898,7 +976,6 @@ 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
@@ -911,7 +988,9 @@ share/examples/Makefile
 share/extensions/Makefile
 share/extensions/alphabet_soup/Makefile
 share/extensions/Barcode/Makefile
+share/extensions/Poly3DObjects/Makefile
 share/extensions/xaml2svg/Makefile
+share/filters/Makefile
 share/fonts/Makefile
 share/gradients/Makefile
 share/icons/Makefile