Blame configure.ac

Packit 371ed6
## Copyright (c) 2009-2014  Openismus GmbH  <http://www.openismus.com/>
Packit 371ed6
##
Packit 371ed6
## This file is part of gtkmm.
Packit 371ed6
##
Packit 371ed6
## gtkmm is free software: you can redistribute it and/or modify it
Packit 371ed6
## under the terms of the GNU Lesser General Public License as published
Packit 371ed6
## by the Free Software Foundation, either version 2.1 of the License,
Packit 371ed6
## or (at your option) any later version.
Packit 371ed6
##
Packit 371ed6
## gtkmm is distributed in the hope that it will be useful, but
Packit 371ed6
## WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 371ed6
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Packit 371ed6
## See the GNU Lesser General Public License for more details.
Packit 371ed6
##
Packit 371ed6
## You should have received a copy of the GNU Lesser General Public License
Packit 371ed6
## along with this library.  If not, see <http://www.gnu.org/licenses/>.
Packit 371ed6
Packit 371ed6
AC_INIT([gtkmm], [3.22.2],
Packit 371ed6
        [http://bugzilla.gnome.org/enter_bug.cgi?product=gtkmm],
Packit 371ed6
        [gtkmm], [http://www.gtkmm.org/])
Packit 371ed6
AC_PREREQ([2.59])
Packit 371ed6
Packit 371ed6
AC_CONFIG_SRCDIR([gtk/gtkmm.h])
Packit 371ed6
AC_CONFIG_AUX_DIR([build])
Packit 371ed6
AC_CONFIG_MACRO_DIR([build])
Packit 371ed6
AC_CONFIG_HEADERS([config.h gdk/gdkmmconfig.h gtk/gtkmmconfig.h])
Packit 371ed6
Packit 371ed6
AM_INIT_AUTOMAKE([1.9 -Wno-portability check-news no-dist-gzip dist-xz tar-ustar no-define nostdinc])
Packit 371ed6
# Support silent build rules.
Packit 371ed6
# Disable by either passing --disable-silent-rules to configure or passing V=1 to make.
Packit 371ed6
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
Packit 371ed6
AM_MAINTAINER_MODE
Packit 371ed6
AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I <macro dir>])
Packit 371ed6
Packit 371ed6
MM_PREREQ([0.9.10])
Packit 371ed6
MM_INIT_MODULE([gdkmm-3.0])
Packit 371ed6
MM_INIT_MODULE([gtkmm-3.0])
Packit 371ed6
Packit 371ed6
# Copy the mm-common .pl scripts into docs/,
Packit 371ed6
# and use them from there,
Packit 371ed6
# so we can dist them to avoid a tarball-build dependency.
Packit 371ed6
MM_CONFIG_DOCTOOL_DIR([docs])
Packit 371ed6
Packit 371ed6
# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
Packit 371ed6
AC_SUBST([LIBGTKMM_SO_VERSION], [2:0:1])
Packit 371ed6
Packit 371ed6
AC_PROG_CXX
Packit 371ed6
MM_AX_CXX_COMPILE_STDCXX([11], [noext],[mandatory])
Packit 371ed6
Packit 371ed6
AC_DISABLE_STATIC
Packit 371ed6
LT_INIT([win32-dll])
Packit 371ed6
Packit 371ed6
PKG_CHECK_MODULES([GTK], [gtk+-3.0])
Packit 371ed6
gdk_target_win32=no
Packit 371ed6
gdk_target_quartz=no
Packit 371ed6
gdk_target_x11=no
Packit 371ed6
gdk_target_wayland=no
Packit 371ed6
gdk_target_broadway=no
Packit 371ed6
backends=`$PKG_CONFIG --variable=targets gtk+-3.0`
Packit 371ed6
m4_foreach([mytarget], [[win32], [quartz], [x11], [wayland], [broadway]], [
Packit 371ed6
    AC_ARG_ENABLE(mytarget-backend,
Packit 371ed6
                  AS_HELP_STRING([--enable-mytarget-backend@<:@=yes|no|check@:>@], [enable mytarget gdk target @<:@default=check@:>@]),
Packit 371ed6
                  [], [enableval=check])
Packit 371ed6
    if test x$enableval != xno; then
Packit 371ed6
        for target in $backends; do
Packit 371ed6
            if test x$target = [x]mytarget; then
Packit 371ed6
                [gdk_target_]mytarget=yes
Packit 371ed6
            fi
Packit 371ed6
        done
Packit 371ed6
        if test x$enableval = xyes && test x$[gdk_target_]mytarget = xno; then
Packit 371ed6
            AC_MSG_ERROR([Requested mytarget backend not supported by installed gdk])
Packit 371ed6
        fi
Packit 371ed6
    fi
Packit 371ed6
])
Packit 371ed6
AM_CONDITIONAL([GDK_TARGET_WIN32], [test "x$gdk_target_win32" = xyes])
Packit 371ed6
AM_CONDITIONAL([GDK_TARGET_QUARTZ], [test "x$gdk_target_quartz" = xyes])
Packit 371ed6
AM_CONDITIONAL([GDK_TARGET_X11], [test "x$gdk_target_x11" = xyes])
Packit 371ed6
AM_CONDITIONAL([GDK_TARGET_BROADWAY], [test "x$gdk_target_broadway" = xyes])
Packit 371ed6
AM_CONDITIONAL([GDK_TARGET_WAYLAND], [test "x$gdk_target_wayland" = xyes])
Packit 371ed6
Packit 371ed6
if test "x$gdk_target_win32" = xyes ; then
Packit 371ed6
   AC_MSG_CHECKING([for native Windows host])
Packit 371ed6
   AS_CASE([$host_os], [mingw*], [gtkmm_host_windows=yes], [gtkmm_host_windows=no])
Packit 371ed6
   AC_MSG_RESULT([$gtkmm_host_windows])
Packit 371ed6
else
Packit 371ed6
   gtkmm_host_windows=no
Packit 371ed6
fi
Packit 371ed6
AM_CONDITIONAL([HOST_WINDOWS_NATIVE], [test "x$gtkmm_host_windows" = xyes])
Packit 371ed6
Packit 371ed6
# TODO: What exactly does this do?  If both static and shared libraries
Packit 371ed6
# are built, both builds will have this macro defined!
Packit 371ed6
AS_IF([test "x$enable_static" = xyes],
Packit 371ed6
      [AC_DEFINE([GTKMM_STATIC_LIB], [1], [Define when building gtkmm as a static library])])
Packit 371ed6
Packit 371ed6
# gdkmm really does need GTK+, because part of Gdk::DragContext is in GTK+.
Packit 371ed6
# The extra cairomm-1.0 check is because gdkmm requires a newer cairomm than pangomm requires.
Packit 371ed6
# The extra gdk-pixbuf-2.0 check is because gdkmm requires a newer gdk-pixbuf than gtk+-3.0 requires.
Packit 371ed6
AC_SUBST([GDKMM_MODULES], ['giomm-2.4 >= 2.49.1 pangomm-1.4 >= 2.38.2 gtk+-3.0 >= 3.22.0 cairomm-1.0 >= 1.12.0 gdk-pixbuf-2.0 >= 2.35.5'])
Packit 371ed6
Packit 371ed6
AS_IF([test "x$gtkmm_host_windows" = xyes],
Packit 371ed6
      [GTKMM_MODULES=$GDKMM_MODULES],
Packit 371ed6
      [GTKMM_MODULES="$GDKMM_MODULES gtk+-unix-print-3.0"])
Packit 371ed6
Packit 371ed6
# Offer the ability to omit some API from the library, to reduce the code size.
Packit 371ed6
# Note that there are other options in glibmm, which affect gtkmm.
Packit 371ed6
GTKMM_ARG_ENABLE_API_ATKMM
Packit 371ed6
Packit 371ed6
AS_IF([test "x$gtkmm_enable_api_atkmm" != xno],
Packit 371ed6
      [GTKMM_MODULES="atkmm-1.6 >= 2.24.2 $GTKMM_MODULES"])
Packit 371ed6
AC_SUBST([GTKMM_MODULES])
Packit 371ed6
Packit 371ed6
AC_SUBST([GTKMM_DEMOS_EXTRA_MODULES], ['epoxy >= 1.2'])
Packit 371ed6
Packit 371ed6
PKG_CHECK_MODULES([GDKMM], [$GDKMM_MODULES])
Packit 371ed6
PKG_CHECK_MODULES([GTKMM], [$GTKMM_MODULES])
Packit 371ed6
PKG_CHECK_MODULES([GTKMM_DEMOS_EXTRA], [$GTKMM_DEMOS_EXTRA_MODULES])
Packit 371ed6
Packit 371ed6
MM_PKG_CONFIG_SUBST([GTHREAD_CFLAGS], [--cflags-only-other gthread-2.0])
Packit 371ed6
MM_PKG_CONFIG_SUBST([GTHREAD_LIBS], [--libs gthread-2.0])
Packit 371ed6
MM_PKG_CONFIG_SUBST([GMMPROC_DIR], [--variable=gmmprocdir glibmm-2.4])
Packit 371ed6
MM_PKG_CONFIG_SUBST([GMMPROC_EXTRA_M4_DIR], [--variable=gmmprocm4dir pangomm-1.4 atkmm-1.6])
Packit 371ed6
Packit 371ed6
MM_ARG_DISABLE_DEPRECATED_API([GDKMM GTKMM])
Packit 371ed6
Packit 371ed6
MM_ARG_ENABLE_DOCUMENTATION
Packit 371ed6
MM_ARG_WITH_TAGFILE_DOC([libstdc++.tag], [mm-common-libstdc++])
Packit 371ed6
MM_ARG_WITH_TAGFILE_DOC([libsigc++-2.0.tag], [sigc++-2.0])
Packit 371ed6
MM_ARG_WITH_TAGFILE_DOC([glibmm-2.4.tag], [glibmm-2.4])
Packit 371ed6
MM_ARG_WITH_TAGFILE_DOC([cairomm-1.0.tag], [cairomm-1.0])
Packit 371ed6
MM_ARG_WITH_TAGFILE_DOC([pangomm-1.4.tag], [pangomm-1.4])
Packit 371ed6
MM_ARG_WITH_TAGFILE_DOC([atkmm-1.6.tag], [atkmm-1.6])
Packit 371ed6
Packit 371ed6
# glib-compile-resources and C compiler are needed to generate and compile
Packit 371ed6
# resource files in demo programs.
Packit 371ed6
AC_SUBST(GLIB_COMPILE_RESOURCES, [`$PKG_CONFIG --variable=glib_compile_resources gio-2.0`])
Packit 371ed6
AC_PROG_CC
Packit 371ed6
Packit 371ed6
AC_LANG([C++])
Packit 371ed6
AC_CHECK_FUNCS([mkfifo])
Packit 371ed6
Packit 371ed6
# Evaluate the --enable-warnings=level option.
Packit 371ed6
MM_ARG_ENABLE_WARNINGS([GTKMM_WXXFLAGS],
Packit 371ed6
                       [-Wall],
Packit 371ed6
                       [-pedantic -Wall -Wextra -Wformat-security -Wshadow -Wsuggest-override -Wno-long-long -DGSEAL_ENABLE],
Packit 371ed6
                       [G PANGO ATK GDK GDK_PIXBUF GTK GLIBMM ATKMM PANGOMM CAIROMM SIGCXX])
Packit 371ed6
Packit 371ed6
AC_CONFIG_FILES([Makefile
Packit 371ed6
                 tools/Makefile
Packit 371ed6
                 gdk/${GDKMM_MODULE_NAME}.pc:gdk/gdkmm.pc.in
Packit 371ed6
                 gdk/${GDKMM_MODULE_NAME}-uninstalled.pc:gdk/gdkmm-uninstalled.pc.in
Packit 371ed6
                 gdk/src/Makefile
Packit 371ed6
                 gdk/gdkmm/Makefile
Packit 371ed6
                 gtk/${GTKMM_MODULE_NAME}.pc:gtk/gtkmm.pc.in
Packit 371ed6
                 gtk/${GTKMM_MODULE_NAME}-uninstalled.pc:gtk/gtkmm-uninstalled.pc.in
Packit 371ed6
                 gtk/src/Makefile
Packit 371ed6
                 gtk/gtkmm/Makefile
Packit 371ed6
                 tests/Makefile
Packit 371ed6
                 demos/Makefile
Packit 371ed6
                 docs/Makefile
Packit 371ed6
                 docs/reference/Doxyfile
Packit 371ed6
                 MSVC_Net2013/gdkmm/gdkmm.rc
Packit 371ed6
                 MSVC_Net2013/gtkmm/gtkmm.rc
Packit 371ed6
                 win32_installer/gtkmm-installer.nsi])
Packit 371ed6
Packit 371ed6
# Copy the generated configuration headers into the MSVC project directories.
Packit 371ed6
AC_CONFIG_COMMANDS([MSVC_Net2013/gdkmm/gdkmmconfig.h],
Packit 371ed6
                   [cp -f gdk/gdkmmconfig.h MSVC_Net2013/gdkmm/gdkmmconfig.h])
Packit 371ed6
AC_CONFIG_COMMANDS([MSVC_Net2013/gtkmm/gtkmmconfig.h],
Packit 371ed6
                   [cp -f gtk/gtkmmconfig.h MSVC_Net2013/gtkmm/gtkmmconfig.h])
Packit 371ed6
AC_CONFIG_COMMANDS([win32_installer/lgpl.txt],
Packit 371ed6
                   [cp -f COPYING win32_installer/lgpl.txt])
Packit 371ed6
AC_OUTPUT