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