diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 346 |
1 files changed, 346 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..1d97c3d --- /dev/null +++ b/configure.ac @@ -0,0 +1,346 @@ +m4_define([mate_platform], [1]) +m4_define([mate_minor], [5]) +m4_define([mate_micro], [0]) + +m4_define(mate_version, [mate_platform.mate_minor.mate_micro]), + +AC_INIT([mate-desktop], mate_version, [https://github.com/mate-desktop/mate-desktop/]) +AC_CONFIG_SRCDIR([libmate-desktop]) + +AM_INIT_AUTOMAKE([1.9 foreign no-dist-gzip dist-bzip2 tar-ustar]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +AC_CONFIG_HEADERS([config.h]) + +AC_CONFIG_MACRO_DIR([m4]) + +dnl make sure we keep ACLOCAL_FLAGS around for maintainer builds to work +AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}") + +# Before making a release, the LT_VERSION string should be modified. +# The string is of the form C:R:A. +# - If interfaces have been changed or added, but binary compatibility has +# been preserved, change to C+1:0:A+1 +# - If binary compatibility has been broken (eg removed or changed interfaces) +# change to C+1:0:0 +# - If the interface is the same as the previous version, change to C:R+1:A + +LT_VERSION=18:4:1 +AC_SUBST(LT_VERSION) + +AM_MAINTAINER_MODE + +IT_PROG_INTLTOOL([0.40.0]) + +AC_ISC_POSIX +AC_PROG_CC +AC_STDC_HEADERS +AC_LIBTOOL_WIN32_DLL +AC_PROG_LIBTOOL +PKG_PROG_PKG_CONFIG + +MATE_PLATFORM=mate_platform +MATE_MINOR=mate_minor +MATE_MICRO=mate_micro +MATE_DATE=`date +"%Y-%m-%d"` + +MATE_DATE= +MATE_DATE_COMMENT_START="<!--" +MATE_DATE_COMMENT_END="-->" + +AC_SUBST(MATE_PLATFORM) +AC_SUBST(MATE_MINOR) +AC_SUBST(MATE_MICRO) +AC_SUBST(MATE_DATE) +AC_SUBST(MATE_DATE_COMMENT_START) +AC_SUBST(MATE_DATE_COMMENT_END) + +MATE_COMMON_INIT +MATE_DEBUG_CHECK +MATE_COMPILE_WARNINGS([maximum]) +MATE_MAINTAINER_MODE_DEFINES + +# As a special favour for vuntz, support --disable-deprecations + +AC_ARG_ENABLE([deprecations], + [AS_HELP_STRING([--disable-deprecations],[don't warn about deprecated usages])], + [],[enable_deprecations=yes]) +if test "$enable_deprecations" = "no"; then + DISABLE_DEPRECATED="" + AC_SUBST([DISABLE_DEPRECATED]) +fi + +# Should we build mate-about or the shared desktop docs? Useful for people who +# need to build two mate-desktop using two different versions of GTK+ +AC_ARG_ENABLE([mate-about], + [AS_HELP_STRING([--disable-mate-about],[don't build mate-about])], + [],[enable_mate_about=yes]) +AM_CONDITIONAL(MATE_ABOUT_ENABLED, test "x$enable_mate_about" = "xyes") +AC_ARG_ENABLE([desktop-docs], + [AS_HELP_STRING([--disable-desktop-docs],[do not build desktop-wide help documents])], + [],[enable_desktop_docs=yes]) +AM_CONDITIONAL(DESKTOP_DOCS_ENABLED, test "x$enable_desktop_docs" = "xyes") + +# Path to the pnp.ids file -- to know if we use one shipped with another +# package, or an internal file + +AC_ARG_WITH(pnp-ids-path, + [AC_HELP_STRING([--with-pnp-ids-path], + [Specify the path to pnp.ids @<:@default=(internal)@:>@])],, + [with_pnp_ids_path="\${pnpdatadir}/pnp.ids"]) + +AM_CONDITIONAL(USE_INTERNAL_PNP_IDS, test "x$with_pnp_ids_path" = "x\${pnpdatadir}/pnp.ids") +PNP_IDS=$with_pnp_ids_path +AC_SUBST(PNP_IDS) +if test "x$with_pnp_ids_path" = "x\${pnpdatadir}/pnp.ids"; then + EXTERNAL_PNP_IDS="no (internal)" +else + EXTERNAL_PNP_IDS="$with_pnp_ids_path" +fi + +dnl If you add a version number here, you *must* add an AC_SUBST line for +dnl it too, or it will never make it into the spec file! + +dnl ---------------------------------------------------------------------------- +dnl GTK library version +dnl ---------------------------------------------------------------------------- +GTK_API_VERSION=2.0 +GTK_REQUIRED=2.18.0 + +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.18.0 + ;; + 3.0) GTK_API_VERSION=3.0 + GTK_REQUIRED=3.0.0 + ;; +esac + +GDK_PIXBUF_REQUIRED=2.4.0 +GLIB_REQUIRED=2.19.1 +GIO_REQUIRED=2.25.0 +XRANDR_REQUIRED=1.2 + +#AC_SUBST(GTK_REQUIRED) +AC_SUBST(GLIB_REQUIRED) +AC_SUBST(GDK_PIXBUF_REQUIRED) +AC_SUBST(GIO_REQUIRED) +AC_SUBST(XRANDR_REQUIRED) + +dnl ---------------------------------------------------------------------------- +dnl startup notification +dnl ---------------------------------------------------------------------------- +STARTUP_NOTIFICATION_VERSION=0.5 +STARTUP_NOTIFICATION_PACKAGE= + +AC_ARG_ENABLE(startup-notification, + AC_HELP_STRING([--disable-startup-notification], [disable startup notification support]),, enable_startup_notification=auto) + +AC_MSG_CHECKING([Startup notification library >= $STARTUP_NOTIFICATION_VERSION]) + +if $PKG_CONFIG --atleast-version $STARTUP_NOTIFICATION_VERSION libstartup-notification-1.0; then + have_startup_notification=yes +else + have_startup_notification=no +fi + +AC_MSG_RESULT($have_startup_notification) + +if test x$enable_startup_notification = xyes; then + have_startup_notification=yes + echo "startup-notification support forced on" +elif test x$enable_startup_notification = xauto; then + true +else + have_startup_notification=no +fi + +if test x$have_startup_notification = xyes; then + echo "Building with libstartup-notification" + STARTUP_NOTIFICATION_PACKAGE=libstartup-notification-1.0 + AC_DEFINE(HAVE_STARTUP_NOTIFICATION,, [Building with startup notification support]) +else + echo "Building without libstartup-notification" +fi + +AC_SUBST(STARTUP_NOTIFICATION_PACKAGE) + + +dnl we need x11 for MateBG + +PKG_CHECK_MODULES(XLIB, x11, + X11_PACKAGE=x11, + [X11_PACKAGE= + AC_PATH_XTRA + if test "x$no_x" = xyes; then + AC_MSG_ERROR("no (requires X development libraries)") + else + XLIB_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" + XLIB_CFLAGS=$X_CFLAGS + fi]) +AC_SUBST(X11_PACKAGE) +AC_SUBST(XLIB_CFLAGS) +AC_SUBST(XLIB_LIBS) + +dnl Checks for X is RANDR extension + +AC_MSG_CHECKING(for xrandr) +if $PKG_CONFIG --atleast-version $XRANDR_REQUIRED xrandr; then + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_RANDR, 1, + [Define if the xrandr-$XRANDR_REQUIRED library is present]) + have_randr=yes + RANDR_PACKAGE=xrandr +else + AC_MSG_RESULT(no) + have_randr=no + RANDR_PACKAGE= +fi + +AC_SUBST(RANDR_PACKAGE) + +dnl pkg-config dependency checks + +PKG_CHECK_MODULES(MATE_DESKTOP, gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED gtk+-$GTK_API_VERSION >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED gio-2.0 >= $GLIB_REQUIRED gio-2.0 >= $GIO_REQUIRED $STARTUP_NOTIFICATION_PACKAGE $RANDR_PACKAGE) + +PKG_CHECK_MODULES(MATE_ABOUT, gtk+-$GTK_API_VERSION >= $GTK_REQUIRED) +AC_SUBST(MATE_ABOUT_CFLAGS) +AC_SUBST(MATE_ABOUT_LIBS) + +dnl mate-doc-utils stuff + +MATE_DOC_INIT + +dnl Language Support + +GETTEXT_PACKAGE=mate-desktop +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", + [The gettext translation domain]) +AC_SUBST(GETTEXT_PACKAGE) + +AM_GLIB_GNU_GETTEXT + +AC_ARG_ENABLE([gnucat], + [AS_HELP_STRING([--disable-gnucat], [disable the use of gnu cat as logo])], + [disable_gnucat=yes], [disable_gnucat=no]) + +if test "x$disable_gnucat" = "xyes"; then + MATE_ABOUT_CFLAGS="$MATE_ABOUT_CFLAGS -DDISABLE_GNUCAT=1" +fi + +dnl ============================================================================ +dnl | se comprueba unique +dnl | de lo contrario, se intenta utilizar libunique +dnl ============================================================================ +case "$with_gtk" in + 2.0) LIBUNIQUE_VERSION=1.0 + ;; + 3.0) LIBUNIQUE_VERSION=3.0 + ;; +esac + +PKG_CHECK_MODULES(UNIQUE, unique-$LIBUNIQUE_VERSION, enable_libunique=yes, enable_libunique=no) + +AC_SUBST([UNIQUE_CFLAGS]) +AC_SUBST([UNIQUE_LIBS]) + +AC_ARG_ENABLE(unique, [ --enable-unique enable the use of libunique instead of g_application or gtk_application], enable_libunique=yes,) + +if test "x$enable_libunique" = "xyes"; then + UNIQUE_CFLAGS="$UNIQUE_CFLAGS -DUSE_UNIQUE=1" + # fix for deprecated on 2.26 + # unique en la version 1.0, contiene simbolos no definidos a partir de + # glib 2.26, pero puede ser obviado si se utiliza -DG_CONST_RETURN=const + if $PKG_CONFIG --atleast-version 2.26 glib-2.0; then + UNIQUE_CFLAGS="$UNIQUE_CFLAGS -DG_CONST_RETURN=const" + fi +fi + +GLIB_GSETTINGS + +dnl Do not use AC_PROG_AWK since we need the full pathname. +AC_PATH_PROGS(AWK, mawk gawk nawk awk, ) +AC_PATH_PROGS(PERL, perl5 perl) + +dnl define a MAINT-like variable REBUILD which is set if Perl +dnl and awk are found, so autogenerated sources can be rebuilt +AC_ARG_ENABLE(rebuilds, [ --disable-rebuilds disable all source autogeneration rules],,enable_rebuilds=yes) +REBUILD=\# +if test "x$enable_rebuilds" = "xyes" && \ + test -n "$PERL" && \ + $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \ + test -n "$AWK" ; then + REBUILD= +fi +AC_SUBST(REBUILD) + +AC_SEARCH_LIBS([sqrt], [m]) + +# check for gtk-doc +GTK_DOC_CHECK([1.4]) + +AC_CONFIG_FILES([ +Makefile +mate-about/Makefile +mate-about/mate-about.desktop.in +libmate-desktop/Makefile +libmate-desktop/libmate/Makefile +libmate-desktop/libmateui/Makefile +libmate-desktop/mate-desktop-2.0.pc +libmate-desktop/mate-desktop-2.0-uninstalled.pc +docs/Makefile +docs/reference/Makefile +docs/reference/mate-desktop/Makefile +mate-version.xml.in +po/Makefile.in +desktop-docs/Makefile +desktop-docs/fdl/Makefile +desktop-docs/gpl/Makefile +desktop-docs/lgpl/Makefile +schemas/Makefile +man/Makefile +]) + +AC_OUTPUT + +dnl --------------------------------------------------------------------------- +dnl - Show summary +dnl --------------------------------------------------------------------------- + +echo " +mate-desktop $VERSION `echo mate-desktop $VERSION | sed "s/./=/g"` + + prefix: ${prefix} + exec_prefix: ${exec_prefix} + libdir: ${libdir} + bindir: ${bindir} + sbindir: ${sbindir} + sysconfdir: ${sysconfdir} + localstatedir: ${localstatedir} + datadir: ${datadir} + source code location: ${srcdir} + compiler: ${CC} + cflags: ${CFLAGS} + Maintainer mode: ${USE_MAINTAINER_MODE} + Warn about deprecations: ${enable_deprecations} + + Gtk+ version: ${GTK_API_VERSION} + Build mate-about: ${enable_mate_about} + Use libunique: ${enable_libunique} + Build desktop-wide docs: ${enable_desktop_docs} + Use external pnp.ids: ${EXTERNAL_PNP_IDS} + Startup notification support: ${have_startup_notification} + XRandr support: ${have_randr} + Build gtk-doc documentation: ${enable_gtk_doc} + Disable gnucat: ${disable_gnucat} +" |