dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.63.2) m4_define(pluma_major_version, 1) m4_define(pluma_minor_version, 7) m4_define(pluma_micro_version, 1) m4_define(pluma_version, pluma_major_version.pluma_minor_version.pluma_micro_version) AC_INIT([pluma], [pluma_version], [https://github.com/mate-desktop/pluma/issues], [pluma], [http://mate-desktop.org]) AC_CONFIG_HEADERS(config.h) AC_CONFIG_SRCDIR(pluma/pluma.c) AC_CONFIG_MACRO_DIR([m4]) AC_DEFINE(PLUMA_MAJOR_VERSION, pluma_major_version, [Pluma major version]) AC_SUBST(PLUMA_MAJOR_VERSION, pluma_major_version) AC_DEFINE(PLUMA_MINOR_VERSION, pluma_minor_version, [Pluma minor version]) AC_SUBST(PLUMA_MINOR_VERSION, pluma_minor_version) AC_DEFINE(PLUMA_MICRO_VERSION, pluma_micro_version, [Pluma micro version]) AC_SUBST(PLUMA_MICRO_VERSION, pluma_micro_version) AM_INIT_AUTOMAKE([1.10 dist-xz no-dist-gzip -Wno-portability]) AM_MAINTAINER_MODE m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) # Checks for programs AC_PROG_CC AC_PROG_INSTALL AC_PROG_MAKE_SET AC_SYS_LARGEFILE PKG_PROG_PKG_CONFIG # needed on osx AC_PROG_OBJC # Initialize libtool LT_PREREQ([2.2.6]) LT_INIT(disable-static) #unused (maybe) PLUMA_API_VERSION=2.20 AC_SUBST(PLUMA_API_VERSION) GTK_DOC_CHECK([1.0],[--flavour=no-tmpl]) AC_CHECK_FUNC(sigaction) AC_CHECK_LIB(m, floor) dnl make sure we keep ACLOCAL_FLAGS around for maintainer builds to work AC_SUBST(ACLOCAL_AMFLAGS, "$ACLOCAL_FLAGS -I m4") dnl active plugins for GSettings schema ACTIVE_PLUGINS="'docinfo', 'modelines', 'filebrowser', 'spell', 'time'" AC_SUBST(ACTIVE_PLUGINS) dnl toolbar style for GSettings schemas TOOLBAR_STYLE="PLUMA_TOOLBAR_SYSTEM" AC_SUBST(TOOLBAR_STYLE) dnl check for win32 platform AC_MSG_CHECKING([for Win32 platform]) case "$host" in *-*-mingw*|*-*-cygwin*) platform_win32=yes TOOLBAR_STYLE="PLUMA_TOOLBAR_ICONS" ;; *) platform_win32=no ;; esac AC_MSG_RESULT([$platform_win32]) AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes") AC_MSG_CHECKING([for native Win32]) case "$host" in *-*-mingw*) os_win32=yes AC_CHECK_TOOL(WINDRES, windres) ACTIVE_PLUGINS="${ACTIVE_PLUGINS}, 'checkupdate'" ;; *) os_win32=no ;; esac AC_MSG_RESULT([$os_win32]) AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") dnl check for osx platform AC_MSG_CHECKING([for Mac OS X platform]) case "$host" in *-*-darwin*) platform_osx=yes ;; *) platform_osx=no ;; esac AC_MSG_RESULT([$platform_osx]) AM_CONDITIONAL(PLATFORM_OSX, test "$platform_osx" = "yes") dnl check for native osx gdk_windowing=`$PKG_CONFIG --variable=target gdk-2.0` AC_MSG_CHECKING([for native Mac OS X]) if test "$gdk_windowing" = "quartz"; then os_osx=yes ACTIVE_PLUGINS="${ACTIVE_PLUGINS}, 'checkupdate'" else os_osx=no fi AC_MSG_RESULT([$os_osx]) AM_CONDITIONAL(OS_OSX, test "$os_osx" = "yes") if test "$platform_osx" = "yes"; then AC_DEFINE([PLATFORM_OSX],[1],[Defined if platform is Mac OSX]) fi AC_SUBST(DEFAULT_FONT) AC_SUBST(DEFAULT_PRINT_FONT) if test "$os_osx" = "yes"; then AC_DEFINE([OS_OSX],[1],[Defined if os is Mac OSX]) PKG_CHECK_MODULES(IGE_MAC, ige-mac-integration) AC_SUBST(IGE_MAC_CFLAGS) AC_SUBST(IGE_MAC_LIBS) fi dnl =============================================================== dnl Expanded dirs dnl =============================================================== # This macro expands DIR and assigns it to RET. # If DIR is NONE, then it's replaced by DEFAULT. # Based on AC_DEFINE_DIR AC_DEFUN([PLUMA_FULLPATH], [ test "x$prefix" = xNONE && prefix="$ac_default_prefix" test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' ac_expand=[$]$1 test "x$ac_expand" = xNONE && ac_expand="[$]$2" ac_expand=`eval echo [$]ac_expand` $3=`eval echo [$]ac_expand` ]) dnl FULL_LIBEXECDIR is used for X-MATE-Bugzilla-ExtraInfoScript expansion dnl in data/pluma.desktop.in.in PLUMA_FULLPATH(libexecdir, NONE, FULL_LIBEXECDIR) AC_SUBST(FULL_LIBEXECDIR) dnl ================================================================ dnl Gettext stuff. dnl ================================================================ IT_PROG_INTLTOOL([0.40.0]) GETTEXT_PACKAGE=pluma AC_SUBST([GETTEXT_PACKAGE]) AM_GNU_GETTEXT_VERSION([0.17]) AM_GLIB_GNU_GETTEXT AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Define to the Gettext package name]) dnl ================================================================ dnl Use gvfs metadata or the old xml file store. dnl ================================================================ if test "x$os_osx" != "xno" || test "x$os_win32" != "xno"; then gvfs_metadata_default="no" else gvfs_metadata_default="yes" fi AC_ARG_ENABLE([gvfs-metadata], AS_HELP_STRING([--enable-gvfs-metadata], [Enable using gvfs to store metadata]), [enable_gvfs_metadata=$enableval], [enable_gvfs_metadata=$gvfs_metadata_default]) AM_CONDITIONAL(ENABLE_GVFS_METADATA, test "x$enable_gvfs_metadata" != "xno") if test "x$enable_gvfs_metadata" != "xno"; then AC_DEFINE([ENABLE_GVFS_METADATA], [1], [Define to enable using gvfs metadata]) fi dnl ================================================================ dnl check update plugin dnl ================================================================ AC_ARG_ENABLE([updater], AS_HELP_STRING([--disable-updater],[Disable check update plugin (default: enabled)]), [enable_updater=$enableval], [enable_updater=yes]) if test "x$enable_updater" != "xno"; then PKG_CHECK_MODULES(LIBSOUP, \ libsoup-2.4, have_libsoup=yes, have_libsoup=no) if test "x$have_libsoup" = "xyes"; then if test "x$os_win32" = "xyes"; then enable_updater=yes elif test "x$os_osx" = "xyes"; then enable_updater=yes else enable_updater=no fi else enable_updater=no fi fi AM_CONDITIONAL(ENABLE_UPDATER, test x"$enable_updater" = "xyes") dnl ================================================================ dnl spell plugins checks: enchant and iso-codes dnl ================================================================ ENCHANT_REQUIRED=1.2.0 ISO_CODES_REQUIRED=0.35 AC_ARG_ENABLE([spell], AS_HELP_STRING([--disable-spell],[Disable spell plugin (default: enabled)]), [enable_enchant=$enableval], [enable_enchant=yes]) if test "x$enable_enchant" = "xyes" ; then PKG_CHECK_MODULES(ENCHANT, enchant >= $ENCHANT_REQUIRED, \ have_enchant=yes, have_enchant=no) if test "x$have_enchant" = "xyes"; then PKG_CHECK_EXISTS([iso-codes >= $ISO_CODES_REQUIRED], [have_iso_codes=yes],[have_iso_codes=no]) if test "x$have_iso_codes" = "xyes"; then AC_MSG_CHECKING([whether iso-codes has iso-639 and iso-3166 domains]) if $PKG_CONFIG --variable=domains iso-codes | grep 639 > /dev/null && \ $PKG_CONFIG --variable=domains iso-codes | grep 3166 > /dev/null ; then result=yes else result=no have_iso_codes=no fi AC_MSG_RESULT([$result]) fi if test "x$have_iso_codes" = "xyes"; then AC_DEFINE_UNQUOTED([ISO_CODES_PREFIX],["`$PKG_CONFIG --variable=prefix iso-codes`"],[ISO codes prefix]) AC_DEFINE([HAVE_ISO_CODES],[1],[Define if you have the iso-codes package]) else AC_MSG_ERROR([iso-codes is required to build the spell plugin. Use --disable-spell to build without spell plugin.]) fi else enable_enchant=no AC_MSG_ERROR([Enchant library not found or too old. Use --disable-spell to build without spell plugin.]) fi fi AM_CONDITIONAL(ENABLE_ENCHANT, test x"$enable_enchant" = "xyes") dnl ================================================================ dnl libsocket checks - needed for bacon-connection on solaris. dnl ================================================================ AC_SEARCH_LIBS(bind, socket) dnl ================================================================ dnl Start of pkg-config checks dnl ================================================================ AC_MSG_CHECKING([which gtk+ version to compile against]) AC_ARG_WITH([gtk], [AS_HELP_STRING([--with-gtk=2.0|3.0],[which gtk+ version to compile against (default: 2.0)])], [case "$with_gtk" in 2.0|3.0) ;; *) AC_MSG_ERROR([invalid gtk version specified]) ;; esac], [with_gtk=2.0]) AC_MSG_RESULT([$with_gtk]) case "$with_gtk" in 2.0) GTK_API_VERSION=2.0 GTK_REQUIRED=2.20.0 ;; 3.0) GTK_API_VERSION=3.0 GTK_REQUIRED=3.0.0 ;; esac PKG_CHECK_MODULES(GMODULE,gmodule-2.0,[GMODULE_ADD="gmodule-2.0"],[GMODULE_ADD=""]) PKG_CHECK_MODULES(PLUMA, [ libxml-2.0 >= 2.5.0 glib-2.0 >= 2.32.0 $GMODULE_ADD gthread-2.0 >= 2.13.0 gio-2.0 >= 2.26.0 gtk+-$GTK_API_VERSION >= $GTK_REQUIRED gtksourceview-$GTK_API_VERSION >= 2.9.7 ]) if test "$os_osx" = "no" && test "$os_win32" = "no"; then PKG_CHECK_MODULES(X11, [ x11 ]) else X11_CFLAGS= X11_LIBS= fi PLUMA_CFLAGS="$PLUMA_CFLAGS $X11_CFLAGS" PLUMA_LIBS="$PLUMA_LIBS $X11_LIBS" AC_SUBST(PLUMA_CFLAGS) AC_SUBST(PLUMA_LIBS) dnl FIXME: Remove this when removing pluma-message-area if $PKG_CONFIG --atleast-version 2.17.1 gtk+-$GTK_API_VERSION; then gtkatleast= else gtkatleast=no fi AM_CONDITIONAL(BUILD_MESSAGE_AREA, test "$gtkatleast" = "no") dnl FIXME: Remove this when removing pluma-spinner if $PKG_CONFIG --atleast-version 2.19.0 gtk+-$GTK_API_VERSION; then gtkatleast= else gtkatleast=no fi AM_CONDITIONAL(BUILD_SPINNER, test "$gtkatleast" = "no") if test "$gtkatleast" = "no"; then AC_DEFINE([BUILD_SPINNER],[1],[Whether to use PlumaSpinner instead of GtkSpinner]) fi if test "$os_osx" = "no" && test "$os_win32" = "no"; then PKG_CHECK_MODULES(EGG_SMCLIENT, [ sm >= 1.0.0 ]) else EGG_SMCLIENT_CFLAGS= EGG_SMCLIENT_LIBS= fi AC_SUBST(EGG_SMCLIENT_CFLAGS) AC_SUBST(EGG_SMCLIENT_LIBS) dnl ================================================================ dnl GSettings related settings dnl ================================================================ GLIB_GSETTINGS dnl ================================================================ dnl Python dnl ================================================================ AC_MSG_CHECKING([whether Python support is requested]) AC_ARG_ENABLE([python], AS_HELP_STRING([--enable-python],[Enable python support]), [enable_python=$enableval have_python=$enableval], [enable_python=autodetect have_python=yes]) AC_MSG_RESULT([$enable_python]) if test "x$have_python" != "xno"; then AM_PATH_PYTHON([2.5],[],[no]) if test "x$PYTHON" = "x:"; then have_python=no fi fi if test "x$have_python" != "xno"; then AM_CHECK_PYTHON_HEADERS([],[have_python=no]) fi if test "x$have_python" != "xno"; then PY_EXEC_PREFIX=`$PYTHON -c 'import sys ; print sys.exec_prefix'` PYTHON_LIBS="-lpython$PYTHON_VERSION" if test "$os_win32" = yes; then PYTHON_LIBS=`echo $PYTHON_LIBS | sed 's/\.//g'` PYTHON_LIB_LOC="-I$PY_EXEC_PREFIX/libs" PYTHON_CFLAGS="-I$PY_EXEC_PREFIX/include" PYTHON_EXTRA_LIBS= else PY_PREFIX=`$PYTHON -c 'import sys ; print sys.prefix'` PYTHON_LIB_LOC="-L$libdir/python$PYTHON_VERSION/config" PYTHON_CFLAGS="-I$PY_PREFIX/include/python$PYTHON_VERSION" PYTHON_MAKEFILE="$libdir/python$PYTHON_VERSION/config/Makefile" PYTHON_BASEMODLIBS=`sed -n -e 's/^BASEMODLIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_OTHER_LIBS=`sed -n -e 's/^LIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_EXTRA_LIBS="$PYTHON_BASEMODLIBS $PYTHON_OTHER_LIBS" fi AC_SUBST([PYTHON_LIBS]) AC_SUBST([PYTHON_LIB_LOC]) AC_SUBST([PYTHON_CFLAGS]) AC_SUBST([PYTHON_EXTRA_LIBS]) fi if test "x$have_python" != "xyes"; then if test "x$enable_python" = "xyes"; then AC_MSG_ERROR([Python not found]) elif test "x$enable_python" = "xautodetect"; then enable_python=no AC_MSG_WARN([Python not found, disabling python support]) fi fi if test "x$have_python" != "xno"; then PYGOBJECT_REQUIRED=2.15.4 PYGTK_REQUIRED=2.12.0 PYGTKSOURCEVIEW_REQUIRED=2.9.2 PKG_CHECK_MODULES([PYGTK], [ pygobject-2.0 >= $PYGOBJECT_REQUIRED pygtk-2.0 >= $PYGTK_REQUIRED pygtksourceview-2.0 >= $PYGTKSOURCEVIEW_REQUIRED], [], [ have_python=no if test "x$enable_python" = "xyes"; then AC_MSG_ERROR([$PYGTK_PKG_ERRORS]) elif test "x$enable_python" = "xautodetect"; then enable_python=no AC_MSG_WARN([$PYGTK_PKG_ERRORS]) AC_MSG_WARN([Disabling python support]) fi ]) fi if test "x$have_python" != "xno"; then AC_MSG_CHECKING([for pygtk defs]) PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0` AC_MSG_RESULT([$PYGTK_DEFSDIR]) AC_MSG_CHECKING([for pygobject defs]) PYGOBJECT_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygobject-2.0` AC_MSG_RESULT([$PYGOBJECT_DEFSDIR]) AC_MSG_CHECKING([for pygtk codegen]) PYGTK_CODEGEN="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/codegen.py" AC_MSG_RESULT([$PYGTK_CODEGEN]) AC_MSG_CHECKING([for pygtk h2def]) PYGTK_H2DEF="$PYTHON `$PKG_CONFIG --variable=codegendir pygtk-2.0`/h2def.py" AC_MSG_RESULT([$PYGTK_H2DEF]) AC_SUBST([PYGTK_DEFSDIR]) AC_SUBST([PYGOBJECT_DEFSDIR]) AC_SUBST([PYGTK_CODEGEN]) AC_SUBST([PYGTK_H2DEF]) dnl Check for -fno-strict-aliasing FLAGS="-fno-strict-aliasing" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $FLAGS" AC_MSG_CHECKING([whether [$]CC understands $FLAGS]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[compiler_has_option=yes],[compiler_has_option=no]) CFLAGS="$save_CFLAGS" AC_MSG_RESULT($compiler_has_option) if test $compiler_has_option = yes; then NO_STRICT_ALIASING_CFLAGS="$FLAGS" fi AC_SUBST([NO_STRICT_ALIASING_CFLAGS]) fi if test "x$have_python" != "xno" -a "x$enable_python" != "xno"; then enable_python=yes AC_DEFINE([ENABLE_PYTHON],[1],[Define to compile with python support]) fi AM_CONDITIONAL([ENABLE_PYTHON],[test "x$enable_python" = "xyes"]) dnl This allows the bug-report script to know whether python has been enabled AC_SUBST(enable_python) dnl ================================================================ dnl Misc dnl ================================================================ AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums) MATE_COMPILE_WARNINGS(yes) AC_ARG_ENABLE(deprecations, [AS_HELP_STRING([--enable-deprecations], [warn about deprecated usages [default=no]])],, [enable_deprecations=no]) if test "x$enable_deprecations" = "xyes"; then DISABLE_DEPRECATED_CFLAGS="\ -DG_DISABLE_DEPRECATED \ -DGDK_DISABLE_DEPRECATED \ -DGTK_DISABLE_DEPRECATED \ -DGDK_PIXBUF_DISABLE_DEPRECATED \ -DMATE_DISABLE_DEPRECATED" AC_SUBST(DISABLE_DEPRECATED_CFLAGS) fi # on win32 plugins must be able to resolve all symbols at link time # so we create a lib if test "$platform_win32" = yes; then PLUMA_IMPLIB="-lpluma" PLUGIN_LIBTOOL_FLAGS="-module -avoid-version -no-undefined -Wl,\$(top_builddir)/pluma/libpluma.a" LOADER_LIBTOOL_FLAGS="-module -avoid-version -no-undefined -Wl,\$(top_builddir)/pluma/libpluma.a" if test "$os_win32" = yes; then PLUGIN_LIBTOOL_FLAGS="${PLUGIN_LIBTOOL_FLAGS} -mwindows" LOADER_LIBTOOL_FLAGS="${LOADER_LIBTOOL_FLAGS} -mwindows" fi else PLUMA_IMPLIB="" PLUGIN_LIBTOOL_FLAGS="-module -avoid-version" LOADER_LIBTOOL_FLAGS="-module -avoid-version" fi AC_SUBST(PLUMA_IMPLIB) AC_SUBST(PLUGIN_LIBTOOL_FLAGS) AC_SUBST(LOADER_LIBTOOL_FLAGS) PLUMA_PLUGINS_DATA_DIR="$datadir/pluma/plugins" AC_SUBST(PLUMA_PLUGINS_DATA_DIR) PLUMA_PLUGINS_LIBS_DIR="$libdir/pluma/plugins" AC_SUBST(PLUMA_PLUGINS_LIBS_DIR) YELP_HELP_INIT AC_CONFIG_FILES([ Makefile data/pluma.desktop.in data/pluma-bugreport.sh data/pluma.pc data/Makefile docs/Makefile docs/reference/Makefile pluma/dialogs/Makefile pluma/smclient/Makefile pluma/osx/Makefile pluma/Makefile help/Makefile pixmaps/Makefile plugin-loaders/Makefile plugin-loaders/c/Makefile plugin-loaders/python/Makefile plugin-loaders/python/bindings/Makefile plugins/Makefile plugins/changecase/Makefile plugins/checkupdate/Makefile plugins/docinfo/Makefile plugins/externaltools/data/Makefile plugins/externaltools/Makefile plugins/externaltools/scripts/Makefile plugins/externaltools/tools/Makefile plugins/filebrowser/Makefile plugins/modelines/Makefile plugins/pythonconsole/Makefile plugins/pythonconsole/pythonconsole/Makefile plugins/quickopen/Makefile plugins/quickopen/quickopen/Makefile plugins/snippets/data/lang/Makefile plugins/snippets/data/Makefile plugins/snippets/Makefile plugins/snippets/snippets/Makefile plugins/sort/Makefile plugins/spell/Makefile plugins/taglist/Makefile plugins/time/Makefile po/Makefile.in tests/Makefile win32/pluma.iss win32/Makefile osx/Info.plist osx/Makefile]) AC_OUTPUT echo " Configuration: Source code location: ${srcdir} Compiler: ${CC} GTK API version: $GTK_API_VERSION Python Plugins Support: $enable_python Spell Plugin enabled: $enable_enchant Gvfs metadata enabled: $enable_gvfs_metadata " if expr ${PLUMA_MINOR_VERSION} % 2 > /dev/null; then stable_version=`expr ${PLUMA_MINOR_VERSION} - 1` cat << EOF *** IMPORTANT *** This is an unstable version of pluma. It is for test purposes only. Please, DO NOT use it in a production environment. It will probably crash and you will lose your data. If you are looking for a stable release of pluma, either download it from: http://pub.mate-desktop.org/release/1.${stable_version}/ Or checkout the 1.${stable_version} branch of the pluma module from: git://github.com/mate-desktop/pluma.git Thanks, The pluma team *** END OF WARNING *** EOF fi