1 2AC_INIT([gtk-sharp], [2.12.45]) 3AC_CONFIG_SRCDIR(README) 4AC_CANONICAL_SYSTEM 5AC_CONFIG_HEADERS(config.h) 6AM_INIT_AUTOMAKE 7AM_MAINTAINER_MODE 8 9API_VERSION=2.12.0.0 10AC_SUBST(API_VERSION) 11POLICY_VERSIONS="2.4 2.6 2.8 2.10" 12AC_SUBST(POLICY_VERSIONS) 13 14PACKAGE_VERSION=gtk-sharp-2.0 15AC_SUBST(PACKAGE_VERSION) 16 17WIN64DEFINES= 18 19case "$host" in 20 x86_64-*-mingw*|x86_64-*-cygwin*) 21 WIN64DEFINES="-define:WIN64LONGS" 22 platform_win32=yes 23 AC_DEFINE(PLATFORM_WIN32,1,[Platform is Win32]) 24 if test "x$cross_compiling" = "xno"; then 25 CC="gcc -g" 26 HOST_CC="gcc" 27 fi 28 ;; 29 *-*-mingw*|*-*-cygwin*) 30 platform_win32=yes 31 AC_DEFINE(PLATFORM_WIN32,1,[Platform is Win32]) 32 if test "x$cross_compiling" = "xno"; then 33 CC="gcc -g" 34 HOST_CC="gcc" 35 fi 36 ;; 37 *) 38 platform_win32=no 39 ;; 40esac 41 42AM_CONDITIONAL(PLATFORM_WIN32, test x$platform_win32 = xyes) 43 44AC_CHECK_TOOL(CC, gcc, gcc) 45AC_PROG_CC 46AC_PROG_INSTALL 47 48dnl may require a specific autoconf version 49dnl AC_PROG_CC_FOR_BUILD 50dnl CC_FOR_BUILD not automatically detected 51CC_FOR_BUILD=$CC 52BUILD_EXEEXT= 53if test "x$cross_compiling" = "xyes"; then 54 CC_FOR_BUILD=cc 55 BUILD_EXEEXT="" 56fi 57AC_SUBST(CC_FOR_BUILD) 58AC_SUBST(HOST_CC) 59AC_SUBST(BUILD_EXEEXT) 60 61# Set STDC_HEADERS 62AC_HEADER_STDC 63AC_LIBTOOL_WIN32_DLL 64AM_PROG_LIBTOOL 65 66# not 64 bit clean in cross-compile 67AC_CHECK_SIZEOF(void *, 4) 68 69CFLAGS="${CFLAGS} -g -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wshadow -Wpointer-arith -Wno-cast-qual -Wcast-align -Wwrite-strings" 70 71if test "x$enable_maintainer_mode" = "xyes"; then 72DEBUG_FLAGS='-debug:pdbonly' 73else 74DEBUG_FLAGS= 75AC_ARG_ENABLE(debug, [ --enable-debug Build debugger (.mdb) files for dlls], 76 DEBUG_FLAGS='-debug' 77) 78fi 79 80enable_msi="no" 81if test "x$platform_win32" = "xyes"; then 82 AC_PATH_PROG(WIX, candle, no) 83 if test "x$WIX" != "xno" ; then 84 enable_msi="yes" 85 fi 86fi 87 88CSDEFINES='-define:GTK_SHARP_2_6 -define:GTK_SHARP_2_8 -define:GTK_SHARP_2_10 -define:GTK_SHARP_2_12' 89 90GTK_SHARP_VERSION_CFLAGS='-DGTK_SHARP_2_6 -DGTK_SHARP_2_8 -DGTK_SHARP_2_10 -DGTK_SHARP_2_12' 91AC_SUBST(GTK_SHARP_VERSION_CFLAGS) 92 93AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 94if test "x$PKG_CONFIG" = "xno"; then 95 AC_MSG_ERROR([You need to install pkg-config]) 96fi 97 98dnl for use on the build system 99BUILD_GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0` 100BUILD_GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0` 101AC_SUBST(BUILD_GTK_CFLAGS) 102AC_SUBST(BUILD_GTK_LIBS) 103 104AC_CHECK_SIZEOF(off_t) 105OFF_T_FLAGS="-define:OFF_T_$ac_cv_sizeof_off_t" 106AC_SUBST(OFF_T_FLAGS) 107 108MONO_REQUIRED_VERSION=1.0 109FIRST_MONO_VERSION_WITH_NET_4_6_SUPPORT=4.4 110PKG_CHECK_MODULES(MONO_DEPENDENCY, mono >= $MONO_REQUIRED_VERSION, has_mono=true, has_mono=false) 111if test "x$has_mono" = "xfalse" ; then 112 PKG_CHECK_MODULES(MONO_DEPENDENCY, mono-2 >= $MONO_REQUIRED_VERSION, has_mono=true, has_mono=false) 113 if test "x$has_mono" = "xtrue" ; then 114 PKG_CHECK_MODULES(MONO_DEPENDENCY, mono-2 >= $FIRST_MONO_VERSION_WITH_NET_4_6_SUPPORT, NET_4_6_SUPPORT=true, NET_4_6_SUPPORT=false) 115 fi 116else 117 PKG_CHECK_MODULES(MONO_DEPENDENCY, mono >= $FIRST_MONO_VERSION_WITH_NET_4_6_SUPPORT, NET_4_6_SUPPORT=true, NET_4_6_SUPPORT=false) 118fi 119 120if test "x$platform_win32" = "xyes"; then 121 NET_4_6_SUPPORT=true 122fi 123 124AC_PATH_PROG(GACUTIL, gacutil, no) 125if test "x$GACUTIL" = "xno" ; then 126 AC_MSG_ERROR([No gacutil tool found. You need to install either the mono or .Net SDK.]) 127fi 128 129AC_PATH_PROG([AL], al, no) 130if test "x$AL" = "xno" ; then 131 AC_MSG_ERROR([No al tool found. You need to install either the mono or .Net SDK.]) 132fi 133 134if test "x$has_mono" = "xtrue"; then 135GACUTIL_FLAGS='-package $(PACKAGE_VERSION) -gacdir $(DESTDIR)$(prefix)/lib' 136GENERATED_SOURCES=generated/*.cs 137AC_PATH_PROG(RUNTIME, mono, no) 138 139# If mono is found, it's in the path. Require it to be in the path at runtime as well 140if test "x$RUNTIME" != "xno" ; then 141 RUNTIME=mono 142fi 143 144AC_PATH_PROG([CSC], mcs, no) 145if test `uname -s` = "Darwin"; then 146 LIB_PREFIX= 147 LIB_SUFFIX=.dylib 148else 149 LIB_PREFIX=.so 150 LIB_SUFFIX= 151fi 152SDCHECK="`$GACUTIL -l |grep ^System.Drawing, | head -n1 |cut -f1 -d','`" 153if test "x$SDCHECK" = "xSystem.Drawing"; then 154 enable_dotnet=yes 155else 156 enable_dotnet=no 157fi 158else 159AC_PATH_PROG(CSC, csc.exe, no) 160GACUTIL_FLAGS= 161GENERATED_SOURCES=generated\\\\*.cs 162enable_dotnet=yes 163 164if test x$CSC = "xno"; then 165 AC_MSG_ERROR([You need to install either mono or .Net]) 166else 167RUNTIME= 168LIB_PREFIX= 169LIB_SUFFIX=.dylib 170fi 171fi 172 173CS="C#" 174if test "x$CSC" = "xno" ; then 175 AC_MSG_ERROR([No $CS compiler found]) 176fi 177 178AL="\"$AL\"" 179AC_SUBST(RUNTIME) 180AC_SUBST(CSC) 181AC_SUBST(GACUTIL) 182AC_SUBST(GACUTIL_FLAGS) 183AC_SUBST(LIB_PREFIX) 184AC_SUBST(LIB_SUFFIX) 185AC_SUBST(GENERATED_SOURCES) 186 187PKG_CHECK_MODULES(MONO_CAIRO, mono-cairo >= $MONO_REQUIRED_VERSION, enable_mono_cairo=no, enable_mono_cairo=yes) 188AC_SUBST(MONO_CAIRO_LIBS) 189 190GTK_REQUIRED_VERSION=2.12.0 191 192PKG_CHECK_MODULES(GLIB, gobject-2.0 >= $GTK_REQUIRED_VERSION) 193AC_SUBST(GLIB_CFLAGS) 194AC_SUBST(GLIB_LIBS) 195 196PKG_CHECK_MODULES(PANGO, pango) 197AC_SUBST(PANGO_CFLAGS) 198AC_SUBST(PANGO_LIBS) 199 200PKG_CHECK_MODULES(ATK, atk) 201AC_SUBST(ATK_CFLAGS) 202AC_SUBST(ATK_LIBS) 203 204PKG_CHECK_MODULES(GTK, gtk+-2.0 >= $GTK_REQUIRED_VERSION) 205AC_SUBST(GTK_CFLAGS) 206AC_SUBST(GTK_LIBS) 207 208GLADE_REQUIRED_VERSION=2.3.6 209PKG_CHECK_MODULES(GLADE, libglade-2.0 >= $GLADE_REQUIRED_VERSION, enable_glade=yes, enable_glade=no) 210AC_SUBST(GLADE_CFLAGS) 211AC_SUBST(GLADE_LIBS) 212 213GDK_BACKEND=`pkg-config --variable=target gtk+-2.0` 214AC_SUBST(GDK_BACKEND) 215 216AC_PATH_PROG(MDASSEMBLER, mdassembler, no) 217AC_PATH_PROG(MONODOCER, monodocer, no) 218if test "x$MONODOCER" = "xno" -o "x$MDASSEMBLER" = "xno"; then 219 enable_monodoc=no 220 doc_sources_dir= 221else 222 enable_monodoc=yes 223 doc_sources_dir="`pkg-config --variable=sourcesdir monodoc`" 224fi 225AC_SUBST(MDASSEMBLER) 226AC_SUBST(MONODOCER) 227 228AM_CONDITIONAL(ENABLE_MONO_CAIRO, test "x$enable_mono_cairo" = "xyes") 229AM_CONDITIONAL(ENABLE_GLADE, test "x$enable_glade" = "xyes") 230AM_CONDITIONAL(ENABLE_DOTNET, test "x$enable_dotnet" = "xyes") 231AM_CONDITIONAL(ENABLE_MONODOC, test "x$enable_monodoc" = "xyes") 232AM_CONDITIONAL(ENABLE_MSI, test "x$enable_msi" = "xyes") 233AM_CONDITIONAL(ENABLE_MONOGETOPTIONS, test "x$has_mono" = "xtrue") 234 235CSFLAGS="$DEBUG_FLAGS $CSDEFINES $WIN64DEFINES -unsafe" 236 237if test "x$NET_4_6_SUPPORT" = "xtrue" ; then 238 CSFLAGS="$CSFLAGS -define:HAVE_NET_4_6" 239fi 240PKG_CHECK_MODULES(GLIB_2_31, 241 glib-2.0 >= 2.31, 242 HAVE_GLIB_2_31_OR_HIGHER=yes, HAVE_GLIB_2_31_OR_HIGHER=no) 243 244if test "x$HAVE_GLIB_2_31_OR_HIGHER" = "xyes" ; then 245 CFLAGS="$CFLAGS -DDISABLE_GTHREAD_CHECK" 246 CSFLAGS="$CSFLAGS -define:DISABLE_GTHREAD_CHECK" 247fi 248 249AC_SUBST(CSFLAGS) 250AC_SUBST(CFLAGS) 251 252AC_OUTPUT([ 253AssemblyInfo.cs 254Makefile 255policy.config 256msi/gtk-sharp-2.0.wxs 257msi/Makefile 258msi/unmanaged/Makefile 259msi/unmanaged/custom/Makefile 260msi/unmanaged/custom/etc/Makefile 261msi/unmanaged/custom/etc/gtk-2.0/Makefile 262msi/unmanaged/custom/share/Makefile 263msi/unmanaged/custom/share/icons/Makefile 264msi/unmanaged/custom/share/icons/hicolor/Makefile 265sources/Makefile 266parser/Makefile 267parser/gapi-2.0.pc 268parser/gapi2-fixup 269parser/gapi2-parser 270generator/Makefile 271generator/gapi2-codegen 272glib/Makefile 273glib/glib-sharp-2.0.pc 274glib/glib-sharp.dll.config 275glib/glue/Makefile 276cairo/Makefile 277pango/Makefile 278pango/pango-sharp.dll.config 279pango/glue/Makefile 280atk/Makefile 281atk/atk-sharp.dll.config 282atk/glue/Makefile 283gdk/Makefile 284gdk/gdk-sharp.dll.config 285gdk/glue/Makefile 286gtk/Makefile 287gtk/gtk-sharp-2.0.pc 288gtk/gtk-sharp.dll.config 289gtk/glue/Makefile 290glade/Makefile 291glade/glade-sharp.dll.config 292glade/glade-sharp-2.0.pc 293glade/glue/Makefile 294gtkdotnet/Makefile 295gtkdotnet/gtk-dotnet.dll.config 296gtkdotnet/gtk-dotnet-2.0.pc 297doc/Makefile 298sample/GtkDemo/Makefile 299sample/Makefile 300sample/pixmaps/Makefile 301sample/test/Makefile 302sample/valtest/Makefile 303sample/valtest/valtest.exe.config 304sample/opaquetest/Makefile 305sample/opaquetest/opaquetest.exe.config 306]) 307 308if test x$platform_win32 = xyes; then 309 # Get rid of 'cyg' prefixes in library names 310 sed -e "s/\/cyg\//\/\//" libtool > libtool.new; mv libtool.new libtool; chmod 755 libtool 311fi 312 313echo "---" 314echo "Configuration summary" 315echo "" 316echo " * Installation prefix = $prefix" 317echo " * $CS compiler: $CSC $CSFLAGS" 318echo "" 319echo " Optional assemblies included in the build:" 320echo "" 321echo " * glade-sharp.dll: $enable_glade" 322echo " * gtk-dotnet.dll: $enable_dotnet " 323if test "x$enable_mono_cairo" = "xyes"; then 324 echo " * Mono.Cairo.dll: building local assembly" 325else 326 echo " * Mono.Cairo.dll: using system assembly" 327fi 328echo "" 329echo " NOTE: if any of the above say 'no' you may install the" 330echo " corresponding development packages for them, rerun" 331echo " autogen.sh to include them in the build." 332echo "" 333echo " * Documentation build enabled: $enable_monodoc " 334if test "x$enable_monodoc" = "xyes" -a "x$doc_sources_dir" != "x$prefix/lib/monodoc/sources"; then 335 echo " WARNING: The install prefix is different than the monodoc prefix." 336 echo " Monodoc will not be able to load the documentation." 337fi 338echo "---" 339