File: configure.ac

package info (click to toggle)
clutter-sharp 1.0.0~alpha3~git20090817.r1.349dba6-8
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 4,104 kB
  • ctags: 2,193
  • sloc: xml: 23,456; cs: 9,946; sh: 3,393; perl: 1,213; makefile: 270; awk: 50; sed: 13
file content (171 lines) | stat: -rw-r--r-- 4,828 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
AC_PREREQ(2.52)

dnl major.minor follows Clutter API version
m4_define([clutter_sharp_version_major], [1])
m4_define([clutter_sharp_version_minor], [0])

dnl micro is specific to clutter-sharp
m4_define([clutter_sharp_version_micro], [0])

dnl set to 0 when doing a stable/supported release
m4_define([clutter_sharp_version_pre_release], [alpha3])

m4_define([concat], $1$2$3$4)

dnl create base version string
m4_define([clutter_sharp_version], concat(
	clutter_sharp_version_major.,
	clutter_sharp_version_minor.,
	clutter_sharp_version_micro))

dnl create the assembly version
m4_define([clutter_sharp_assembly_version], concat(
	clutter_sharp_version, [.0]))

dnl create the release version
m4_define([clutter_sharp_version],
	m4_if(clutter_sharp_version_pre_release, [0],
		clutter_sharp_version,
		concat(clutter_sharp_version, clutter_sharp_version_pre_release)))

AC_INIT([clutter-sharp], clutter_sharp_version)

AC_CONFIG_SRCDIR([README])
AC_CANONICAL_SYSTEM

AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 tar-ustar])
AM_MAINTAINER_MODE

PKG_PROG_PKG_CONFIG

DISTCHECK_CONFIGURE_FLAGS="--disable-docs"
AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)

ASSEMBLY_VERSION=clutter_sharp_assembly_version
AC_SUBST(ASSEMBLY_VERSION)

dnl check for Mono
dnl 2.4 is required for non-signal VMs that we
dnl get with the in-tree GAPI and GType extensions
PKG_CHECK_MODULES(MONO_RUNTIME, mono >= 2.4)

AC_PATH_PROG(MONO, mono, no)
if test "x$MONO" = "xno"; then
	AC_MSG_ERROR([Cannot find the "mono" runtime in your PATH])
fi

AC_PATH_PROG(MCS, gmcs, no)
if test "x$MCS" = "xno"; then
	AC_MSG_ERROR([Cannot find the "gmcs" compiler in your PATH])
fi

dnl check for GAPI
dnl GAPI from gtk-sharp trunk is now required,
dnl so we are bundling it. Necessary for generating
dnl VM support for non-signal methods
#PKG_CHECK_MODULES(GAPI, gapi-2.0 >= 2.12.9)
#AC_PATH_PROG(GAPI_PARSER, gapi2-parser, no)
#AC_PATH_PROG(GAPI_FIXUP, gapi2-fixup, no)
#AC_PATH_PROG(GAPI_CODEGEN, gapi2-codegen, no)
GAPI_FIXUP="mono \$(top_builddir)/gapi/parser/gapi-fixup.exe"
GAPI_PARSER="mono \$(top_builddir)/gapi/parser/gapi-parser.exe \$(top_srcdir)/gapi/parser/"
GAPI_CODEGEN="mono \$(top_builddir)/gapi/generator/gapi_codegen.exe"
AC_SUBST(GAPI_FIXUP)
AC_SUBST(GAPI_PARSER)
AC_SUBST(GAPI_CODEGEN)

dnl check for Gtk#
PKG_CHECK_MODULES(GTKSHARP, gtk-sharp-2.0 >= 2.12.1)
AC_SUBST(GTKSHARP_LIBS)

dnl check for clutter
PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.0.1)
PKG_CHECK_MODULES(CLUTTER_GTK, clutter-gtk-0.10 >= 0.10.3, enable_gtk=yes, enable_gtk=no)

AM_CONDITIONAL(ENABLE_GTK, test "x$enable_gtk" = "xyes")

CLUTTER_API_VERSION=$($PKG_CONFIG --variable apiversion clutter-1.0)
CLUTTER_GTK_API_VERSION=$($PKG_CONFIG --variable apiversion clutter-gtk-0.10)
CLUTTER_BACKEND=$($PKG_CONFIG --libs clutter-1.0 | egrep -o -- '-lclutter-[[^ ]]+' | sed -re 's/^-lclutter-//; s/-?'"$CLUTTER_API_VERSION"'$//;')
if test -z "$CLUTTER_BACKEND"; then
    CLUTTER_LIBRARY="libclutter-$CLUTTER_API_VERSION.so.0"
else
    CLUTTER_LIBRARY="libclutter-$CLUTTER_BACKEND-$CLUTTER_API_VERSION.so.0"
fi
AC_SUBST(CLUTTER_API_VERSION)
AC_SUBST(CLUTTER_LIBRARY)
AC_SUBST(CLUTTER_GTK_API_VERSION)

dnl check for monodoc
AC_ARG_ENABLE(docs, AC_HELP_STRING([--disable-docs], 
	[Do not build documentation]), enable_docs=$enableval, enable_docs=yes)

if test "x$enable_docs" = "xyes"; then
	AC_PATH_PROG(MONODOCER, monodocer, no)
	if test "x$MONODOCER" = "xno"; then
		AC_MSG_ERROR([You need to install monodoc, or pass --disable-docs to configure to skip documentation installation])
	fi

	AC_PATH_PROG(MDASSEMBLER, mdassembler, no)
	if test "x$MDASSEMBLER" = "xno"; then
		AC_MSG_ERROR([You need to install mdassembler, or pass --disable-docs to configure to skip documentation installation])
	fi

	DOCDIR=`$PKG_CONFIG monodoc --variable=sourcesdir`
	AC_SUBST(DOCDIR)
	AM_CONDITIONAL(BUILD_DOCS, true)
else
	AC_MSG_NOTICE([not building ${PACKAGE} API documentation])
	AM_CONDITIONAL(BUILD_DOCS, false)
fi

AC_OUTPUT([
	Makefile
	
	build/Makefile
	
	docs/Makefile
	docs/clutter-sharp/Makefile
	docs/clutter-gtk-sharp/Makefile
	
	gapi/Makefile
	gapi/parser/Makefile
	gapi/generator/Makefile
	
	glib/Makefile

	clutter/Makefile
	clutter/AssemblyInfo.cs
	clutter/clutter-sharp.pc
	clutter/clutter-sharp.dll.config
	clutter/Clutter/Makefile
	clutter/Cogl/Makefile

	clutter-gtk/Makefile
	clutter-gtk/clutter-gtk-sharp.pc
	clutter-gtk/clutter-gtk-sharp.dll.config
	clutter-gtk/AssemblyInfo.cs

	examples/Makefile
])

cat <<EOF

${PACKAGE}-${VERSION}

  Build Environment
    Install Prefix:    ${prefix}

    Mono C# Compiler:  ${MCS} ${CSFLAGS}
    Mono Runtime:      ${MONO}

  Clutter API Versions
    Core:              ${CLUTTER_API_VERSION}
    GTK:               ${CLUTTER_GTK_API_VERSION}

  Build Features
    GTK Support:       ${enable_gtk}
    API Documentation: ${enable_docs}

EOF