3680a39323
Mono 3.2.8 was released way back in February 2014, and is now available in most current distros. With mono, we now only use the "mcs" unified compiler. This also allows us to build on systems where the compatibility script "gmcs" is not available.
319 lines
7.8 KiB
Text
319 lines
7.8 KiB
Text
|
|
AC_INIT(gtk-sharp, 2.99.4)
|
|
|
|
AM_INIT_AUTOMAKE([1.10 no-dist-gzip dist-bzip2 tar-ustar foreign])
|
|
AC_CANONICAL_HOST
|
|
AC_CONFIG_HEADERS(config.h)
|
|
AM_MAINTAINER_MODE
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
|
|
API_VERSION=3.0.0.0
|
|
AC_SUBST(API_VERSION)
|
|
CAIRO_API_VERSION=1.10.0.0
|
|
AC_SUBST(CAIRO_API_VERSION)
|
|
POLICY_VERSIONS=""
|
|
AC_SUBST(POLICY_VERSIONS)
|
|
|
|
PACKAGE_VERSION=gtk-sharp-3.0
|
|
AC_SUBST(PACKAGE_VERSION)
|
|
|
|
WIN64DEFINES=
|
|
|
|
AC_MSG_CHECKING([whether we're on Windows])
|
|
|
|
case "$host" in
|
|
x86_64-*-mingw*|x86_64-*-cygwin*)
|
|
WIN64DEFINES="-define:WIN64LONGS"
|
|
platform_win32=yes
|
|
AC_MSG_RESULT([yes, 64-bit])
|
|
AC_DEFINE(PLATFORM_WIN32,1,[Platform is Win32])
|
|
if test "x$cross_compiling" = "xno"; then
|
|
CC="gcc -g"
|
|
HOST_CC="gcc"
|
|
fi
|
|
;;
|
|
*-*-mingw*|*-*-cygwin*)
|
|
platform_win32=yes
|
|
AC_MSG_RESULT([yes, 32-bit])
|
|
AC_DEFINE(PLATFORM_WIN32,1,[Platform is Win32])
|
|
if test "x$cross_compiling" = "xno"; then
|
|
CC="gcc -g"
|
|
HOST_CC="gcc"
|
|
fi
|
|
;;
|
|
*)
|
|
platform_win32=no
|
|
AC_MSG_RESULT([no])
|
|
;;
|
|
esac
|
|
|
|
AM_CONDITIONAL(PLATFORM_WIN32, test x$platform_win32 = xyes)
|
|
|
|
AC_CHECK_TOOL(CC, gcc, gcc)
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
|
|
dnl may require a specific autoconf version
|
|
dnl AC_PROG_CC_FOR_BUILD
|
|
dnl CC_FOR_BUILD not automatically detected
|
|
CC_FOR_BUILD=$CC
|
|
BUILD_EXEEXT=
|
|
if test "x$cross_compiling" = "xyes"; then
|
|
CC_FOR_BUILD=cc
|
|
BUILD_EXEEXT=""
|
|
fi
|
|
AC_SUBST(CC_FOR_BUILD)
|
|
AC_SUBST(HOST_CC)
|
|
AC_SUBST(BUILD_EXEEXT)
|
|
|
|
# Set STDC_HEADERS
|
|
AC_HEADER_STDC
|
|
AC_LIBTOOL_WIN32_DLL
|
|
AM_PROG_LIBTOOL
|
|
|
|
# not 64 bit clean in cross-compile
|
|
AC_CHECK_SIZEOF(void *, 4)
|
|
|
|
CFLAGS="${CFLAGS} -g -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wshadow -Wpointer-arith -Wno-cast-qual -Wcast-align -Wwrite-strings"
|
|
|
|
if test "x$enable_maintainer_mode" = "xyes"; then
|
|
DEBUG_FLAGS='-debug'
|
|
RUNTIME_DEBUG_FLAGS=' --debug'
|
|
else
|
|
DEBUG_FLAGS=
|
|
RUNTIME_DEBUG_FLAGS=
|
|
AC_ARG_ENABLE(debug, [ --enable-debug Build debugger (.mdb) files for dlls],
|
|
DEBUG_FLAGS='-debug'
|
|
)
|
|
fi
|
|
|
|
enable_msi="no"
|
|
if test "x$platform_win32" = "xyes"; then
|
|
AC_PATH_PROG(WIX, candle, no)
|
|
if test "x$WIX" != "xno" ; then
|
|
enable_msi="yes"
|
|
fi
|
|
fi
|
|
|
|
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
|
if test "x$PKG_CONFIG" = "xno"; then
|
|
AC_MSG_ERROR([You need to install pkg-config])
|
|
fi
|
|
|
|
AC_CHECK_SIZEOF(off_t)
|
|
OFF_T_FLAGS="-define:OFF_T_$ac_cv_sizeof_off_t"
|
|
AC_SUBST(OFF_T_FLAGS)
|
|
|
|
MONO_REQUIRED_VERSION=3.2.8
|
|
PKG_CHECK_MODULES(MONO_DEPENDENCY, mono >= $MONO_REQUIRED_VERSION, has_mono=true, has_mono=false)
|
|
|
|
AC_PATH_PROG(GACUTIL, gacutil, no)
|
|
if test "x$GACUTIL" = "xno" ; then
|
|
AC_MSG_ERROR([No gacutil tool found. You need to install either the mono or .Net SDK.])
|
|
fi
|
|
|
|
AC_PATH_PROG(AL, al, no)
|
|
if test "x$AL" = "xno" ; then
|
|
AC_MSG_ERROR([No al tool found. You need to install either the mono or .Net SDK.])
|
|
fi
|
|
|
|
if test "x$has_mono" = "xtrue"; then
|
|
GACUTIL_FLAGS='/package $(PACKAGE_VERSION) /gacdir $(DESTDIR)$(prefix)/lib'
|
|
GENERATED_SOURCES_FILES=generated/*/*.cs
|
|
GENERATED_SOURCES_OPTION=$GENERATED_SOURCES_FILES
|
|
ASSEMBLYINFO=/AssemblyInfo.cs
|
|
AC_PATH_PROG(RUNTIME, mono, no)
|
|
|
|
# libmono and glib required for gui-thread-check profiler module
|
|
PKG_CHECK_MODULES(PROFILER, mono-2 glib-2.0)
|
|
AM_CONDITIONAL(ENABLE_THREADCHECK, true)
|
|
|
|
# If mono is found, it's in the path. Require it to be in the path at runtime as well
|
|
if test "x$RUNTIME" != "no" ; then
|
|
RUNTIME="mono$RUNTIME_DEBUG_FLAGS"
|
|
fi
|
|
|
|
AC_PATH_PROG(CSC, mcs, no)
|
|
if test `uname -s` = "Darwin"; then
|
|
LIB_PREFIX=
|
|
LIB_SUFFIX=.dylib
|
|
else
|
|
LIB_PREFIX=.so
|
|
LIB_SUFFIX=
|
|
fi
|
|
SDCHECK="`$GACUTIL /l |grep ^System.Drawing, | head -n1 |cut -f1 -d','`"
|
|
if test "x$SDCHECK" = "xSystem.Drawing"; then
|
|
enable_dotnet=yes
|
|
else
|
|
enable_dotnet=no
|
|
fi
|
|
dnl End of has_mono = true
|
|
else
|
|
dnl Check for .NET Framework
|
|
AC_PATH_PROG(CSC, csc.exe, no)
|
|
CSFLAGS="-nologo -platform:x86"
|
|
GACUTIL_FLAGS=
|
|
GENERATED_SOURCES_FILES="generated\\\\*.cs"
|
|
GENERATED_SOURCES_OPTION="-recurse:$GENERATED_SOURCES_FILES"
|
|
ASSEMBLYINFO=\\\\AssemblyInfo.cs
|
|
AM_CONDITIONAL(ENABLE_THREADCHECK, false)
|
|
enable_dotnet=yes
|
|
|
|
RUNTIME=
|
|
LIB_PREFIX=
|
|
LIB_SUFFIX=.dylib
|
|
fi
|
|
|
|
CS="C#"
|
|
if test "x$CSC" = "xno" ; then
|
|
AC_MSG_ERROR([No $CS compiler found. You need to install either mono (>=$MONO_REQUIRED_VERSION) or .Net])
|
|
fi
|
|
|
|
AC_SUBST(RUNTIME)
|
|
AC_SUBST(CSC)
|
|
AC_SUBST(GACUTIL)
|
|
AC_SUBST(GACUTIL_FLAGS)
|
|
AC_SUBST(LIB_PREFIX)
|
|
AC_SUBST(LIB_SUFFIX)
|
|
AC_SUBST(GENERATED_SOURCES_FILES)
|
|
AC_SUBST(GENERATED_SOURCES_OPTION)
|
|
AC_SUBST(ASSEMBLYINFO)
|
|
|
|
GTK_REQUIRED_VERSION=3.0.0
|
|
GLIB_REQUIRED_VERSION=2.32.0
|
|
|
|
PKG_CHECK_MODULES(GLIB, gobject-2.0 >= $GLIB_REQUIRED_VERSION)
|
|
AC_SUBST(GLIB_CFLAGS)
|
|
AC_SUBST(GLIB_LIBS)
|
|
|
|
PKG_CHECK_MODULES(GIO, gio-2.0 >= $GLIB_REQUIRED_VERSION)
|
|
AC_SUBST(GIO_CFLAGS)
|
|
AC_SUBST(GIO_LIBS)
|
|
|
|
CSFLAGS="$CSFLAGS $DEBUG_FLAGS $WIN64DEFINES"
|
|
AC_SUBST(CSFLAGS)
|
|
|
|
PKG_CHECK_MODULES(PANGO, pango)
|
|
AC_SUBST(PANGO_CFLAGS)
|
|
AC_SUBST(PANGO_LIBS)
|
|
|
|
PKG_CHECK_MODULES(ATK, atk)
|
|
AC_SUBST(ATK_CFLAGS)
|
|
AC_SUBST(ATK_LIBS)
|
|
|
|
PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQUIRED_VERSION)
|
|
AC_SUBST(GTK_CFLAGS)
|
|
AC_SUBST(GTK_LIBS)
|
|
|
|
AC_PATH_PROG(MDOC, mdoc, no)
|
|
if test "x$MDOC" = "xno"; then
|
|
enable_monodoc=no
|
|
doc_sources_dir=
|
|
else
|
|
enable_monodoc=yes
|
|
doc_sources_dir="`pkg-config --variable=sourcesdir monodoc`"
|
|
fi
|
|
AC_SUBST(MDOC)
|
|
|
|
AM_CONDITIONAL(ENABLE_DOTNET, test "x$enable_dotnet" = "xyes")
|
|
AM_CONDITIONAL(ENABLE_MONODOC, test "x$enable_monodoc" = "xyes")
|
|
AM_CONDITIONAL(ENABLE_MSI, test "x$enable_msi" = "xyes")
|
|
|
|
AC_SUBST(CFLAGS)
|
|
|
|
AC_OUTPUT([
|
|
AssemblyInfo.cs
|
|
Makefile
|
|
policy.config
|
|
sources/Makefile
|
|
parser/Makefile
|
|
parser/gapi-3.0.pc
|
|
parser/gapi3-parser
|
|
generator/Makefile
|
|
generator/gapi3-codegen
|
|
generator/gapi3-fixup
|
|
glib/Makefile
|
|
glib/glib-sharp-3.0.pc
|
|
glib/glib-sharp.dll.config
|
|
gio/Makefile
|
|
gio/gio-sharp-3.0.pc
|
|
gio/gio-sharp.dll.config
|
|
gio/glue/Makefile
|
|
cairo/AssemblyInfo.cs
|
|
cairo/Makefile
|
|
pango/Makefile
|
|
pango/pango-sharp.dll.config
|
|
pango/glue/Makefile
|
|
atk/Makefile
|
|
atk/atk-sharp.dll.config
|
|
atk/glue/Makefile
|
|
gdk/Makefile
|
|
gdk/gdk-sharp-3.0.pc
|
|
gdk/gdk-sharp.dll.config
|
|
gtk/Makefile
|
|
gtk/gtk-sharp-3.0.pc
|
|
gtk/gtk-sharp.dll.config
|
|
gtk/glue/Makefile
|
|
gtk/gui-thread-check/Makefile
|
|
gtk/gui-thread-check/profiler/Makefile
|
|
gtkdotnet/Makefile
|
|
gtkdotnet/gtk-dotnet.dll.config
|
|
gtkdotnet/gtk-dotnet-3.0.pc
|
|
doc/Makefile
|
|
msi/gtk-sharp-3.0.wxs
|
|
msi/Makefile
|
|
msi/unmanaged/Makefile
|
|
sample/GtkDemo/Makefile
|
|
sample/Makefile
|
|
sample/pixmaps/Makefile
|
|
sample/test/Makefile
|
|
sample/valtest/Makefile
|
|
sample/valtest/valtest.exe.config
|
|
sample/opaquetest/Makefile
|
|
sample/opaquetest/opaquetest.exe.config
|
|
sample/gio/Makefile
|
|
sample/gtk-gio/Makefile
|
|
])
|
|
|
|
if test x$platform_win32 = xyes; then
|
|
# Get rid of 'cyg' prefixes in library names
|
|
sed -e "s/\/cyg\//\/\//" libtool > libtool.new; mv libtool.new libtool; chmod 755 libtool
|
|
fi
|
|
|
|
if test "x$enable_mono_cairo" = "xyes"; then
|
|
cairo_comment="building local copy"
|
|
else
|
|
cairo_comment="using system assembly"
|
|
fi
|
|
|
|
echo "---"
|
|
echo "Configuration summary"
|
|
echo ""
|
|
echo " * Installation prefix = $prefix"
|
|
echo " * $CS compiler: $CSC $CSFLAGS"
|
|
echo ""
|
|
echo " Optional assemblies included in the build:"
|
|
echo ""
|
|
echo " * gtk-dotnet.dll: $enable_dotnet"
|
|
echo ""
|
|
echo " NOTE: if any of the above say 'no' you may install the"
|
|
echo " corresponding development packages for them, rerun"
|
|
echo " autogen.sh to include them in the build."
|
|
echo ""
|
|
echo " * Documentation build enabled: $enable_monodoc "
|
|
if test "x$enable_monodoc" = "xyes" -a "x$doc_sources_dir" != "x$prefix/lib/monodoc/sources"; then
|
|
echo " WARNING: The install prefix is different than the monodoc prefix."
|
|
echo " Monodoc will not be able to load the documentation."
|
|
fi
|
|
echo "---"
|
|
|
|
if test "x$has_mono" = "xtrue"; then
|
|
mono_prefix=`pkg-config --variable=prefix mono`
|
|
mono_prefix_canonical=`readlink -m $mono_prefix`
|
|
if test "x$mono_prefix_canonical" != "x$prefix"; then
|
|
AC_MSG_WARN(Prefix to use ($prefix) is not the same as Mono's ($mono_prefix_canonical).
|
|
Consider using ./configure --prefix=$mono_prefix_canonical
|
|
See the README for more information.
|
|
)
|
|
fi
|
|
fi
|