X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=configure.ac;h=136bb5c312d05ab5bc2267ea2a58acaaec6e5f5c;hb=817e7487ecbca8958844479ae421ac4b32403f0b;hp=313d349a8b28e002e5c28ae7f11af4f5050a0826;hpb=078809d34ea1d7bc46311c99bb5285f1677d0bf3;p=inkscape.git diff --git a/configure.ac b/configure.ac index 313d349a8..136bb5c31 100644 --- a/configure.ac +++ b/configure.ac @@ -1,14 +1,16 @@ dnl Process this file with autoconf to produce a configure script. -AC_PREREQ(2.50) -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 -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.47+devel) + AC_CANONICAL_HOST -AC_CONFIG_SRCDIR(src/main.cpp) +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]), [ @@ -21,37 +23,83 @@ AC_ARG_ENABLE([lsb], AS_HELP_STRING([--enable-lsb], [LSB-compatible build config AM_CONFIG_HEADER(config.h) -AC_PROG_INTLTOOL(0.22) - 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_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 -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 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" -AC_PROG_RANLIB - dnl Verify our GCC version if test "x$GXX" = "xyes"; then AC_MSG_CHECKING([GNU compiler version]) @@ -84,7 +132,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 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" +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 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 th tr uk vi zh_CN zh_TW" AM_GLIB_GNU_GETTEXT AC_PATH_PROG(PKG_CONFIG, pkg-config, no) @@ -96,10 +144,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 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) +fi + dnl ****************************** dnl Check for libpng dnl ****************************** -AC_CHECK_LIB(png, png_read_info, [AC_CHECK_HEADER(png.h, png_ok=yes, png_ok=no)], png_ok=no, -lz -lm) +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 @@ -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,39 +567,44 @@ 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 ****************************** -with_inkboard="no" -with_inkboard_ssl="no" +dnl with_inkboard="no" +dnl with_inkboard_ssl="no" -INKBOARD_CFLAGS="" +dnl 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 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) -if test "x$with_inkboard" = "xyes"; then - with_inkboard="yes" - AC_DEFINE(WITH_INKBOARD,1,[Build in Inkboard support]) +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 - PKG_CHECK_MODULES(INKBOARD, openssl, with_inkboard_ssl=yes, with_inkboard_ssl=no) - if test "x$with_inkboard_ssl" = "xyes"; then +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 - INKBOARD_CFLAGS="$INKBOARD_CFLAGS -DHAVE_SSL" - RELAYTOOL([ssl], INKBOARD_LIBS, INKBOARD_CFLAGS, [inkboard_weak=yes]) - RELAYTOOL([crypto], INKBOARD_LIBS, INKBOARD_CFLAGS, [inkboard_weak=yes]) - AC_DEFINE(WITH_INKBOARD_SSL,1,[Build in SSL support for Inkboard]) - fi -else - with_inkboard="no" -fi - -AM_CONDITIONAL(WITH_INKBOARD, test "x$with_inkboard" = "xyes") -AC_SUBST(INKBOARD_LIBS) -AC_SUBST(INKBOARD_CFLAGS) +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") +dnl AC_SUBST(INKBOARD_LIBS) +dnl AC_SUBST(INKBOARD_CFLAGS) dnl ****************************** dnl Check for libwpg for extension @@ -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 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 @@ -606,12 +678,27 @@ 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"], 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" @@ -751,21 +838,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 -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 - 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 -AC_DEFINE(WITH_MODULES, 1, [Use experimental module support]) - dnl ****************************** dnl libinkscape dnl ****************************** @@ -833,33 +910,9 @@ fi AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes) -dnl Figure out where the datadir actually is -dnl http://autoconf-archive.cryp.to/ac_define_dir.html -prefix_NONE= -exec_prefix_NONE= -test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix -test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix -dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn -dnl refers to ${prefix}. Thus we have to use `eval' twice. -eval runtime_datadir="${datadir}" -eval runtime_datadir="${runtime_datadir}" -test "$prefix_NONE" && prefix=NONE -test "$exec_prefix_NONE" && exec_prefix=NONE - -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 @@ -876,6 +929,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 +952,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,10 +964,20 @@ 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 @@ -955,8 +1018,6 @@ Configuration: Internal Python: ${with_python} Internal Perl: ${with_perl} Enable LittleCms: ${enable_lcms} - Enable Inkboard: ${with_inkboard} - Enable SSL in Inkboard: ${with_inkboard_ssl} Enable Poppler-Cairo: ${enable_poppler_cairo} ImageMagick Magick++: ${magick_ok} Libwpg: ${with_libwpg}