Code

share/extensions/*.py: Use gettext for (many) error messages.
[inkscape.git] / configure.ac
index b818faefda93c5551b4c1f82a9f1939eb312d41c..00cffd4a74299e0337b0f2c72f205fc804c44267 100644 (file)
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.50)
-AC_INIT(inkscape, 0.45+devel)
+AC_INIT(inkscape, 0.46+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
@@ -9,7 +9,7 @@ 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_CANONICAL_HOST
 AC_CONFIG_SRCDIR(src/main.cpp)
-AM_INIT_AUTOMAKE
+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
@@ -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-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
@@ -84,7 +128,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 bg bn ca ca@valencia cs da de dz el en_AU en_CA en_GB en_US@piglatin eo es_MX es et eu fi fr ga gl he hr hu id it ja km ko lt mk mn nb ne nl nn pa pl pt_BR pt ro ru rw sk sl sq sr@Latn sr sv th tr uk vi 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 fi fr ga gl he hr hu 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 th tr uk vi zh_CN zh_TW"
 AM_GLIB_GNU_GETTEXT
 
 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
@@ -449,15 +493,11 @@ 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)
 
@@ -561,19 +601,15 @@ 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   Unconditional dependencies
 dnl ******************************
@@ -584,7 +620,22 @@ 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
+AC_MSG_CHECKING([for Mac OS X Carbon support])
+AC_TRY_CPP([
+#include <Carbon/Carbon.h>
+#include <CoreServices/CoreServices.h>
+], 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)]))
@@ -740,7 +791,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-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
@@ -856,6 +908,7 @@ src/Makefile
 src/check-header-compile
 src/algorithms/makefile
 src/application/makefile
+src/bind/makefile
 src/debug/makefile
 src/dialogs/makefile
 src/display/makefile
@@ -897,7 +950,9 @@ 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/xaml2svg/Makefile
 share/fonts/Makefile
 share/gradients/Makefile