1
2AC_INIT(libdbusmenu, 16.04.0, ted@canonical.com)
3AC_COPYRIGHT([Copyright 2009-2016 Canonical])
4
5AC_PREREQ(2.62)
6
7AM_CONFIG_HEADER(config.h)
8AM_INIT_AUTOMAKE(libdbusmenu, 16.04.0, [-Wno-portability])
9
10AM_MAINTAINER_MODE
11
12IT_PROG_INTLTOOL([0.35.0])
13AC_ISC_POSIX
14AC_PROG_CC
15AM_PROG_CC_C_O
16AC_STDC_HEADERS
17AC_PROG_LIBTOOL
18
19AC_SUBST(VERSION)
20AC_CONFIG_MACRO_DIR([m4])
21
22m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
23
24AC_PATH_PROG([GLIB_MKENUMS], [glib-mkenums])
25
26###########################
27# GTK Doc
28###########################
29
30GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
31
32###########################
33# Dependencies - GLib
34###########################
35
36GLIB_REQUIRED_VERSION=2.35.4
37
38PKG_CHECK_MODULES(DBUSMENUGLIB, glib-2.0 >= $GLIB_REQUIRED_VERSION
39                                gio-2.0 >= $GLIB_REQUIRED_VERSION)
40
41AC_SUBST(DBUSMENUGLIB_CFLAGS)
42AC_SUBST(DBUSMENUGLIB_LIBS)
43
44###########################
45# Dependencies - GTK
46###########################
47
48GTK_REQUIRED_VERSION=2.16
49GTK3_REQUIRED_VERSION=2.91
50
51AC_ARG_ENABLE([gtk],
52	AC_HELP_STRING([--disable-gtk], [Disable libdbusmenu-gtk library]),
53	[enable_gtk=$enableval], [enable_gtk=auto])
54AM_CONDITIONAL([WANT_LIBDBUSMENUGTK], [test "x$enable_gtk" != "xno"])
55
56AC_ARG_WITH([gtk],
57  [AS_HELP_STRING([--with-gtk],
58    [Which version of gtk to use @<:@default=3@:>@])],
59  [],
60  [with_gtk=3])
61AM_CONDITIONAL([USE_GTK3], [test "x$with_gtk" = "x3"])
62
63AS_IF([test "x$enable_gtk" != "xno"],[
64AS_IF([test "x$with_gtk" = x3],
65        [PKG_CHECK_MODULES(DBUSMENUGTK,  gtk+-3.0 >= $GTK3_REQUIRED_VERSION
66                                         atk
67                                         glib-2.0 >= $GLIB_REQUIRED_VERSION,
68                                         [have_gtk=yes]
69)
70        ],
71      [test "x$with_gtk" = x2],
72        [PKG_CHECK_MODULES(DBUSMENUGTK,  gtk+-2.0 >= $GTK_REQUIRED_VERSION
73                                         atk
74                                         glib-2.0 >= $GLIB_REQUIRED_VERSION,
75                                         [have_gtk=yes]
76)
77        ],
78      [AC_MSG_FAILURE([Value for --with-gtk was neither 2 nor 3])]
79)
80])
81AC_SUBST(DBUSMENUGTK_CFLAGS)
82AC_SUBST(DBUSMENUGTK_LIBS)
83
84###########################
85# Dependencies - dumper
86###########################
87
88X11_REQUIRED_VERSION=1.3
89
90AC_ARG_ENABLE([dumper],
91	AC_HELP_STRING([--disable-dumper], [Disable dbusmenudumper tool]),
92	[enable_dumper=$enableval], [enable_dumper=auto])
93AM_CONDITIONAL([WANT_DBUSMENUDUMPER], [test "x$enable_dumper" != "xno"])
94
95AS_IF([test "x$enable_dumper" != "xno"],[
96PKG_CHECK_MODULES(DBUSMENUDUMPER, gtk+-2.0 >= $GTK_REQUIRED_VERSION
97                                  x11 >= $X11_REQUIRED_VERSION,
98                                  [have_dumper=yes]
99)
100])
101
102AC_SUBST(DBUSMENUDUMPER_CFLAGS)
103AC_SUBST(DBUSMENUDUMPER_LIBS)
104
105###########################
106# Dependencies - Testing
107###########################
108
109JSON_GLIB_REQUIRED_VERSION=0.13.4
110GIO_UNIX_REQUIRED_VERSION=2.24
111
112AC_ARG_ENABLE([tests],
113	AC_HELP_STRING([--disable-tests], [Disable tests]),
114	[enable_tests=$enableval], [enable_tests=auto])
115AM_CONDITIONAL([WANT_TESTS], [test "x$enable_tests" != "xno"])
116
117AS_IF([test "x$enable_tests" != "xno"],[
118PKG_CHECK_MODULES(DBUSMENUTESTS,  json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
119                                  gio-unix-2.0  >= $GIO_UNIX_REQUIRED_VERSION,
120                                  [have_tests=yes]
121)
122PKG_CHECK_MODULES(DBUSMENUTESTSVALGRIND, valgrind, have_valgrind=yes, have_valgrind=no)
123AM_CONDITIONAL([HAVE_VALGRIND], [test "x$have_valgrind" = "xyes"])
124])
125
126AC_SUBST(DBUSMENUTESTS_CFLAGS)
127AC_SUBST(DBUSMENUTESTS_LIBS)
128
129###########################
130# GObject Introspection
131###########################
132
133GOBJECT_INTROSPECTION_CHECK([0.6.7])
134
135PKG_CHECK_EXISTS([gobject-introspection-1.0 >= 0.10],
136				 introspection_ten=yes,
137				 introspection_ten=no)
138
139AM_CONDITIONAL(INTROSPECTION_TEN, [test "x$introspection_ten" = "xyes"])
140
141if test "$enable_introspection" = "yes"; then
142	# Redefine introspection dirs using proper prefixes
143
144	INTROSPECTION_GIRDIR=`$PKG_CONFIG --define-variable=datadir=${datadir} --variable=girdir gobject-introspection-1.0`
145	AC_SUBST(INTROSPECTION_GIRDIR)
146
147	INTROSPECTION_TYPELIBDIR=`$PKG_CONFIG --define-variable=libdir=${libdir} --variable=typelibdir gobject-introspection-1.0`
148	AC_SUBST(INTROSPECTION_TYPELIBDIR)
149fi
150
151###########################
152# Vala API Generation
153###########################
154
155AC_ARG_ENABLE([vala],
156	AC_HELP_STRING([--disable-vala], [Disable vala]),
157	[enable_vala=$enableval], [enable_vala=auto])
158
159AS_IF([test "x$enable_vala" != "xno"],[
160	AM_COND_IF([HAVE_INTROSPECTION],,[
161		AC_MSG_ERROR([Vala bindings require introspection support, please --enable-introspection])
162	])
163AC_PATH_PROG([VALA_API_GEN], [vapigen])
164])
165AM_CONDITIONAL([HAVE_VALA], [test -n "$VALA_API_GEN"])
166
167###########################
168# XSLT Processor
169###########################
170
171AC_PATH_PROG([XSLT_PROC], [xsltproc])
172
173###########################
174# Lib versioning
175###########################
176
177LIBDBUSMENU_CURRENT=4
178LIBDBUSMENU_REVISION=12
179LIBDBUSMENU_AGE=0
180
181AC_SUBST(LIBDBUSMENU_CURRENT)
182AC_SUBST(LIBDBUSMENU_REVISION)
183AC_SUBST(LIBDBUSMENU_AGE)
184
185###########################
186# Internationalization
187###########################
188
189GETTEXT_PACKAGE=libdbusmenu
190AC_SUBST(GETTEXT_PACKAGE)
191AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Name of the default gettext domain])
192
193AM_GLIB_GNU_GETTEXT
194
195###########################
196# Massive Debugging
197###########################
198
199with_massivedebugging="no"
200AC_ARG_ENABLE(massivedebugging, AS_HELP_STRING([--enable-massivedebugging], [Print out so much information your brain will hurt]), with_massivedebugging=$enableval, with_massivedebugging=no)
201if test "x$with_massivedebugging" = "xyes"; then
202	AC_DEFINE([MASSIVEDEBUGGING], [1], [Print everyting])
203fi
204
205###########################
206# gcov coverage reporting
207###########################
208
209m4_include([m4/gcov.m4])
210AC_TDD_GCOV
211AM_CONDITIONAL([HAVE_GCOV], [test "x$ac_cv_check_gcov" = xyes])
212AM_CONDITIONAL([HAVE_LCOV], [test "x$ac_cv_check_lcov" = xyes])
213AM_CONDITIONAL([HAVE_GCOVR], [test "x$ac_cv_check_gcovr" = xyes])
214AC_SUBST(COVERAGE_CFLAGS)
215AC_SUBST(COVERAGE_LDFLAGS)
216
217###########################
218# Files
219###########################
220
221AC_OUTPUT([
222Makefile
223po/Makefile.in
224libdbusmenu-glib/Makefile
225libdbusmenu-glib/dbusmenu-glib-0.4.pc
226libdbusmenu-gtk/Makefile
227libdbusmenu-gtk/dbusmenu-gtk-0.4.pc
228libdbusmenu-gtk/dbusmenu-gtk3-0.4.pc
229tools/Makefile
230tools/testapp/Makefile
231tests/Makefile
232tests/dbusmenu-jsonloader-0.4.pc
233docs/Makefile
234docs/libdbusmenu-glib/Makefile
235docs/libdbusmenu-glib/reference/Makefile
236docs/libdbusmenu-glib/reference/version.xml
237docs/libdbusmenu-gtk/Makefile
238docs/libdbusmenu-gtk/reference/Makefile
239docs/libdbusmenu-gtk/reference/version.xml
240])
241
242###########################
243# Results
244###########################
245
246AC_MSG_NOTICE([
247
248libdbusmenu Configuration:
249
250	Prefix:                 $prefix
251	Massive Debugging:      $with_massivedebugging
252	GTK+ Version:           $with_gtk
253])
254
255AS_IF([test "x$have_tests" = "xyes"],
256	AC_MSG_NOTICE([	Tests:                  yes]),
257	AC_MSG_NOTICE([	Tests:                  no])
258)
259
260AS_IF([test "x$enable_gtk" = "xno"],
261	AC_MSG_NOTICE([	Gtk:                    no]),
262	AC_MSG_NOTICE([	Gtk:                    yes (gtk$with_gtk)])
263)
264
265AM_COND_IF([HAVE_VALA],
266	AC_MSG_NOTICE([	Vala bindings:          yes]),
267	AC_MSG_NOTICE([	Vala bindings           no])
268)
269
270AS_IF([test "x$have_dumper" = "xyes"],
271   AC_MSG_NOTICE([	Dumper:                 yes]),
272   AC_MSG_NOTICE([	Dumper:                 no])
273)
274
275AS_IF([test "x$use_gcov" = "xyes"],
276	AC_MSG_NOTICE([	Coverage reporting:     yes]),
277	AC_MSG_NOTICE([	Coverage reporting:     no])
278)
279