mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2024-09-08 07:53:17 +02:00
a6c9634748
Create 2 makefile variable to facilitate build on Windows: GENERATED_SOURCES_FILES to match files created by the code generator, and GENERATED_SOURCES_OPTION for the corresponding option to be passed to the compiler. Also adapt the makefile for the valtest sample to use these variables.
315 lines
7.8 KiB
Plaintext
315 lines
7.8 KiB
Plaintext
|
|
AC_INIT(gtk-sharp, 2.99.3)
|
|
|
|
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
|
|
|
|
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=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, gmcs, 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.28.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(GLIB_2_31,
|
|
glib-2.0 >= 2.31,
|
|
HAVE_GLIB_2_31_OR_HIGHER=yes, HAVE_GLIB_2_31_OR_HIGHER=no)
|
|
if test "x$HAVE_GLIB_2_31_OR_HIGHER" = "xno" ; then
|
|
CSFLAGS="$CSFLAGS -define:ENABLE_GTHREAD_INIT"
|
|
fi
|
|
|
|
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")
|
|
|
|
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
|
|
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
|