2007-11-13 05:37:24 -05:00
|
|
|
# Configure.in
|
|
|
|
#
|
|
|
|
# This file tests for various compiler features needed to configure
|
|
|
|
# the gtkmm package. Original skeleton was provided by Stephan Kulow.
|
|
|
|
# All tests were written by Tero Pulkkinen, Mirko Streckenbach, and
|
|
|
|
# Karl Nelson.
|
|
|
|
#
|
|
|
|
# NOTE! IF YOU DO CHANGES HERE, CHECK IF YOU NEED TO MODIFY .m4 TOO!!!
|
|
|
|
#
|
|
|
|
# Copyright 2001 Free Software Foundation
|
|
|
|
# Copyright 1999 gtkmm Development Team
|
|
|
|
# Copyright 1998 Stephan Kulow
|
|
|
|
#
|
|
|
|
AC_INIT(glib/glibmmconfig.h.in)
|
|
|
|
AC_PREREQ(2.50)
|
|
|
|
|
|
|
|
#########################################################################
|
|
|
|
# Version and initialization
|
|
|
|
#########################################################################
|
|
|
|
GLIBMM_MAJOR_VERSION=2
|
2007-12-18 01:05:55 -05:00
|
|
|
GLIBMM_MINOR_VERSION=14
|
|
|
|
GLIBMM_MICRO_VERSION=2
|
2007-11-13 05:37:24 -05:00
|
|
|
GLIBMM_VERSION=$GLIBMM_MAJOR_VERSION.$GLIBMM_MINOR_VERSION.$GLIBMM_MICRO_VERSION
|
|
|
|
GLIBMM_RELEASE=$GLIBMM_MAJOR_VERSION.$GLIBMM_MINOR_VERSION
|
|
|
|
AC_DEFINE_UNQUOTED([GLIBMM_MAJOR_VERSION], $GLIBMM_MAJOR_VERSION, [Major Version])
|
|
|
|
AC_DEFINE_UNQUOTED([GLIBMM_MINOR_VERSION], $GLIBMM_MINOR_VERSION, [Minor Version])
|
|
|
|
AC_DEFINE_UNQUOTED([GLIBMM_MICRO_VERSION], $GLIBMM_MICRO_VERSION, [Micro Version])
|
|
|
|
AC_SUBST(GLIBMM_MAJOR_VERSION)
|
|
|
|
AC_SUBST(GLIBMM_MINOR_VERSION)
|
|
|
|
AC_SUBST(GLIBMM_MICRO_VERSION)
|
|
|
|
AC_SUBST(GLIBMM_VERSION)
|
|
|
|
AC_SUBST(GLIBMM_RELEASE)
|
|
|
|
|
|
|
|
#
|
|
|
|
# +1 : ? : +1 == new interface that does not break old one
|
|
|
|
# +1 : ? : 0 == new interface that breaks old one
|
|
|
|
# ? : ? : 0 == no new interfaces, but breaks apps
|
|
|
|
# ? :+1 : ? == just some internal changes, nothing breaks but might work
|
|
|
|
# better
|
|
|
|
# CURRENT : REVISION : AGE
|
|
|
|
LIBGLIBMM_SO_VERSION=1:24:0
|
|
|
|
AC_SUBST(LIBGLIBMM_SO_VERSION)
|
|
|
|
|
|
|
|
AC_CONFIG_AUX_DIR(scripts)
|
|
|
|
|
|
|
|
dnl For automake.
|
|
|
|
VERSION=$GLIBMM_VERSION
|
|
|
|
PACKAGE=glibmm
|
|
|
|
|
|
|
|
dnl Initialize automake stuff
|
|
|
|
AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
|
|
|
|
|
|
|
|
dnl Specify a configuration file (no autoheader)
|
|
|
|
AM_CONFIG_HEADER(config.h glib/glibmmconfig.h)
|
|
|
|
AM_MAINTAINER_MODE
|
|
|
|
AL_ACLOCAL_INCLUDE(scripts)
|
|
|
|
|
|
|
|
|
|
|
|
#########################################################################
|
|
|
|
# Configure arguments
|
|
|
|
#########################################################################
|
|
|
|
|
|
|
|
#########################################################################
|
|
|
|
# Environment Checks
|
|
|
|
#########################################################################
|
|
|
|
AC_PROG_CC
|
|
|
|
AC_PROG_CPP
|
|
|
|
AC_PROG_MAKE_SET
|
|
|
|
AC_CANONICAL_BUILD
|
|
|
|
AC_CANONICAL_HOST
|
|
|
|
|
|
|
|
dnl Used for enabling the "-no-undefined" flag while generating DLLs
|
|
|
|
dnl Copied from the official gtk+-2 configure.in
|
|
|
|
AC_MSG_CHECKING([for some Win32 platform])
|
|
|
|
case "$host" in
|
|
|
|
*-*-mingw*|*-*-cygwin*)
|
|
|
|
platform_win32=yes
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
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
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
os_win32=no
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
AC_MSG_RESULT([$os_win32])
|
|
|
|
AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
|
|
|
|
|
|
|
|
AC_DISABLE_STATIC
|
|
|
|
AC_LIBTOOL_WIN32_DLL
|
|
|
|
AC_PROG_LIBTOOL
|
|
|
|
|
|
|
|
AL_PROG_GNU_M4(AC_MSG_ERROR([dnl
|
|
|
|
SUN m4 does not work for building gtkmm.
|
|
|
|
Please install GNU m4.]))
|
|
|
|
|
|
|
|
AL_PROG_GNU_MAKE(AC_MSG_ERROR([dnl
|
|
|
|
SUN make does not work for building gtkmm.
|
|
|
|
Please install GNU make.]))
|
|
|
|
|
|
|
|
GLIBMM_CHECK_PERL([5.6.0])
|
|
|
|
|
|
|
|
#########################################################################
|
|
|
|
# Function checks
|
|
|
|
#########################################################################
|
|
|
|
|
|
|
|
# functions used in demos/gtk-demo. Undefined in config.h !
|
|
|
|
AC_CHECK_FUNCS([flockfile funlockfile getc_unlocked mkfifo])
|
|
|
|
|
|
|
|
#########################################################################
|
|
|
|
# Dependancy checks
|
|
|
|
#########################################################################
|
|
|
|
gtkmm_min_sigc_version=2.0.0
|
2007-12-18 01:05:55 -05:00
|
|
|
gtkmm_min_glib_version=2.14.0
|
2007-11-13 05:37:24 -05:00
|
|
|
|
2008-03-17 10:30:05 -04:00
|
|
|
#
|
|
|
|
#
|
|
|
|
# !!! Ardour note: we don't need to look for sigc++
|
|
|
|
# because it is inside our tree and handled by SCons.
|
|
|
|
# We do, however, need to check on glib
|
|
|
|
#
|
|
|
|
#
|
|
|
|
#PKG_CHECK_MODULES(GLIBMM, sigc++-2.0 >= ${gtkmm_min_sigc_version} glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version})
|
|
|
|
#AC_SUBST(GLIBMM_CFLAGS)
|
|
|
|
#AC_SUBST(GLIBMM_LIBS)
|
|
|
|
|
|
|
|
PKG_CHECK_MODULES(GLIBMM, glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version})
|
2007-11-13 05:37:24 -05:00
|
|
|
AC_SUBST(GLIBMM_CFLAGS)
|
|
|
|
AC_SUBST(GLIBMM_LIBS)
|
|
|
|
|
|
|
|
# gthread isn't a requirement, but we should use its CFLAGS if available.
|
|
|
|
PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= ${gtkmm_min_glib_version},[],[GTHREAD_CFLAGS=''; GTHREAD_LIBS=''])
|
|
|
|
AC_SUBST(GTHREAD_CFLAGS)
|
|
|
|
AC_SUBST(GTHREAD_LIBS)
|
|
|
|
|
|
|
|
|
|
|
|
#########################################################################
|
|
|
|
# C++ checks
|
|
|
|
#########################################################################
|
|
|
|
AC_PROG_CXX
|
|
|
|
|
|
|
|
# Check for the SUN Forte compiler, and define GLIBMM_COMPILER_SUN_FORTE in the header.
|
|
|
|
GLIBMM_PROG_CXX_SUN
|
|
|
|
|
|
|
|
# Ensure MSVC-compatible struct packing convention is used when
|
|
|
|
# compiling for Win32 with gcc.
|
|
|
|
# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
|
|
|
|
# gcc2 uses "-fnative-struct".
|
|
|
|
if test x"$os_win32" = xyes; then
|
|
|
|
if test x"$GCC" = xyes -a x"$GXX" = xyes; then
|
|
|
|
msnative_struct=''
|
|
|
|
AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
|
|
|
|
if test -z "$ac_cv_prog_CC"; then
|
|
|
|
our_gcc="$CC"
|
|
|
|
else
|
|
|
|
our_gcc="$ac_cv_prog_CC"
|
|
|
|
fi
|
|
|
|
case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
|
|
|
|
2.)
|
|
|
|
if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
|
|
|
|
msnative_struct='-fnative-struct'
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
|
|
|
|
msnative_struct='-mms-bitfields'
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
if test x"$msnative_struct" = x ; then
|
|
|
|
AC_MSG_RESULT([no way])
|
|
|
|
AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
|
|
|
|
else
|
|
|
|
CXXFLAGS="$CXXFLAGS $msnative_struct"
|
|
|
|
AC_MSG_RESULT([${msnative_struct}])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_LANG_CPLUSPLUS
|
|
|
|
|
|
|
|
AC_CXX_BOOL(,config_error=yes)
|
|
|
|
AC_CXX_NAMESPACES(,config_error=yes)
|
|
|
|
AC_CXX_MUTABLE(,config_error=yes)
|
|
|
|
|
|
|
|
AC_MSG_CHECKING(if C++ environment provides all required features)
|
|
|
|
if test "x$config_error" = xyes ; then
|
|
|
|
AC_MSG_RESULT([no])
|
|
|
|
AC_MSG_ERROR([Your compiler is not powerful enough to compile gtkmm. If it should be, see config.log for more information of why it failed.])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT([yes])
|
|
|
|
|
|
|
|
GLIBMM_CXX_HAS_NAMESPACE_STD()
|
|
|
|
GLIBMM_CXX_HAS_STD_ITERATOR_TRAITS()
|
|
|
|
GLIBMM_CXX_HAS_SUN_REVERSE_ITERATOR()
|
|
|
|
GLIBMM_CXX_HAS_TEMPLATE_SEQUENCE_CTORS()
|
|
|
|
GLIBMM_CXX_MEMBER_FUNCTIONS_MEMBER_TEMPLATES()
|
|
|
|
GLIBMM_CXX_CAN_DISAMBIGUATE_CONST_TEMPLATE_SPECIALIZATIONS()
|
|
|
|
GLIBMM_CXX_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION()
|
|
|
|
GLIBMM_CXX_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS()
|
|
|
|
GLIBMM_CXX_CAN_USE_NAMESPACES_INSIDE_EXTERNC()
|
|
|
|
GLIBMM_CXX_ALLOWS_STATIC_INLINE_NPOS()
|
2007-12-18 01:05:55 -05:00
|
|
|
GLIBMM_C_STD_TIME_T_IS_NOT_INT32()
|
2007-11-13 05:37:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
# Create a list of input directories for Doxygen.
|
|
|
|
GTKMM_DOXYGEN_INPUT_SUBDIRS([glib])
|
|
|
|
|
|
|
|
# Check whether to build the full docs into the generated source.
|
|
|
|
# This will be much slower.
|
|
|
|
GTKMM_ARG_ENABLE_FULLDOCS()
|
|
|
|
|
|
|
|
# Check whether --enable-debug-refcounting was given.
|
|
|
|
GLIBMM_ARG_ENABLE_DEBUG_REFCOUNTING()
|
|
|
|
|
|
|
|
# Evaluate the --enable-warnings=level option.
|
|
|
|
GTKMM_ARG_ENABLE_WARNINGS()
|
|
|
|
|
|
|
|
# Add an --enable-use-deprecations configure option:
|
|
|
|
AC_ARG_ENABLE(deprecations,
|
|
|
|
[AC_HELP_STRING([--enable-use-deprecations],
|
|
|
|
[warn about deprecated usages [default=no]])],,
|
|
|
|
[enable_deprecations=no])
|
|
|
|
|
|
|
|
if test "x$enable_use_deprecations" = "xyes"; then
|
|
|
|
DISABLE_DEPRECATED_CFLAGS="-DG_DISABLE_DEPRECATED"
|
|
|
|
AC_SUBST(DISABLE_DEPRECATED_CFLAGS)
|
|
|
|
fi
|
|
|
|
|
|
|
|
#Offer the ability to omit some API from the library,
|
|
|
|
#to reduce the code size:
|
|
|
|
GLIBMM_ARG_ENABLE_API_DEPRECATED()
|
|
|
|
GLIBMM_ARG_ENABLE_API_EXCEPTIONS()
|
|
|
|
GLIBMM_ARG_ENABLE_API_PROPERTIES()
|
|
|
|
GLIBMM_ARG_ENABLE_API_VFUNCS()
|
|
|
|
|
|
|
|
# Offer the ability to omit some API from the library,
|
|
|
|
# to reduce the code size:
|
|
|
|
GLIBMM_ARG_ENABLE_API_DEFAULT_SIGNAL_HANDLERS()
|
|
|
|
|
|
|
|
# Dummy conditional just to make automake-1.4 happy.
|
|
|
|
# We need an always-false condition in docs/Makefile.am.
|
|
|
|
AM_CONDITIONAL(GTKMM_FALSE,[false])
|
|
|
|
|
|
|
|
# HACK: Assign a dummy in order to prevent execution of autoheader by the
|
|
|
|
# maintainer-mode rules. That would fail since we aren't using autoheader.
|
|
|
|
AUTOHEADER=':'
|
|
|
|
|
|
|
|
|
|
|
|
AC_CONFIG_FILES([
|
|
|
|
Makefile
|
|
|
|
|
|
|
|
glib/Makefile
|
|
|
|
glib/glibmm-2.4.pc
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_OUTPUT()
|
|
|
|
|