1#                                               -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
4AC_INIT(bamf, 0.5.4, dx-team@canonical.com)
5AC_PREREQ(2.69)
6AC_SUBST(LIBBAMF_VER, 3)
7AC_SUBST(LIBBAMF_SONAME, 2:0:0)
8
9AC_CONFIG_SRCDIR(src/main.c)
10AC_CONFIG_HEADERS(config.h)
11
12AM_INIT_AUTOMAKE([foreign tar-pax])
13AM_SILENT_RULES([yes])
14
15AC_CONFIG_MACRO_DIR([m4])
16
17GNOME_COMMON_INIT
18GNOME_COMPILE_WARNINGS(maximum)
19
20AM_MAINTAINER_MODE
21AM_DISABLE_STATIC
22AM_PROG_LIBTOOL
23AC_ISC_POSIX
24AC_SUBST(ACLOCAL_AMFLAFS, "$ACLOCAL_FLAGS -I m4")
25
26PKG_PROG_PKG_CONFIG
27if test "x$PKG_CONFIG" = "x"; then AC_MSG_ERROR([You need to install pkg-config]); fi
28
29# Checks for programs.
30AC_PROG_CC
31AM_PROG_CC_C_O
32AC_PROG_INSTALL
33AC_HEADER_STDC
34
35SHAMROCK_EXPAND_LIBDIR
36SHAMROCK_EXPAND_BINDIR
37SHAMROCK_EXPAND_DATADIR
38
39#
40# pkg-config
41#
42PKG_PROG_PKG_CONFIG
43
44#
45# glib
46#
47PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.32.0 gio-2.0 >= 2.30.0 gio-unix-2.0)
48
49#
50# gdbus-codegen
51#
52AC_PATH_PROG([GDBUS_CODEGEN], [gdbus-codegen])
53if test -z "$GDBUS_CODEGEN"; then AC_MSG_ERROR([gdbus-codegen is required but was not found]); fi
54
55#
56# libwnck
57#
58PKG_CHECK_MODULES(WNCK, libwnck-3.0 >= 3.4.7)
59
60#
61# libgtop
62#
63PKG_CHECK_MODULES(GTOP, libgtop-2.0)
64
65#
66# libsn
67#
68PKG_CHECK_MODULES(SN, libstartup-notification-1.0)
69
70#
71# x11
72#
73PKG_CHECK_MODULES(X, x11)
74
75#
76# DbusMenu
77#
78AC_ARG_ENABLE([export-actions-menu],
79              AS_HELP_STRING([--enable-export-actions-menu=@<:@no/yes@:>@],[export window actions menus (requires dbusmenu) @<:@default=no@:>@]),,
80              [enable_export_actions_menu=no])
81
82AM_CONDITIONAL([EXPORT_ACTIONS_MENU],[test "x$enable_export_actions_menu" != "xno"])
83
84if test "x$enable_export_actions_menu" = "xyes"; then
85  PKG_CHECK_MODULES(DBUSMENU, [dbusmenu-glib-0.4, dbusmenu-gtk3-0.4])
86fi
87
88###########################
89# GObject Introspection
90###########################
91
92GOBJECT_INTROSPECTION_CHECK([0.10.2])
93
94###########################
95# Vala API Generation
96###########################
97
98if test "$enable_introspection" = "yes"; then
99  AC_PATH_PROG([VALA_API_GEN], [vapigen])
100  if test -z "$VALA_API_GEN"; then
101    AC_MSG_ERROR([vapigen is needed to build introspection])
102    HAVE_INTROSPECTION=0
103    enable_introspection="no"
104  fi
105fi
106
107###########################
108# GTK-DOC
109###########################
110GTK_DOC_CHECK(1.0)
111
112###########################
113# gtester2xunit checks    #
114###########################
115
116AC_PATH_PROG([PYTHON],[python])
117AC_MSG_CHECKING(for gtester2xunit dependencies)
118if !($PYTHON -c "import libxslt, libxml2" 2> /dev/null); then
119  AC_MSG_RESULT([no])
120  AC_MSG_ERROR([You need to install python-libxslt1 and python-libxml2]);
121fi
122AC_MSG_RESULT([yes])
123
124###########################
125# Headless tests
126###########################
127AC_ARG_ENABLE([headless-tests],
128              AS_HELP_STRING([--enable-headless-tests=@<:@no/yes@:>@],[enable headless test suite (requires Xvfb) @<:@default=no@:>@]),,
129              [enable_headless_tests=no])
130
131AM_CONDITIONAL([ENABLE_HEADLESS_TESTS],[test "x$enable_headless_tests" != "xno"])
132
133if test "x$enable_headless_tests" = "xyes"; then
134  AC_PATH_PROG([XVFB],[Xvfb])
135  AC_PATH_PROG([DBUS_RUN_SESSION],[dbus-run-session])
136
137  if test -z "$XVFB" -o -z "$DBUS_RUN_SESSION"; then
138    AC_MSG_ERROR([Xvfb and dbus-run-session are needed for headless-tests])
139  fi
140fi
141
142###########################
143# gcov coverage reporting
144###########################
145AC_TDD_GCOV
146AM_CONDITIONAL([HAVE_GCOV], [test "x$ac_cv_check_gcov" = xyes])
147AM_CONDITIONAL([HAVE_LCOV], [test "x$ac_cv_check_lcov" = xyes])
148AM_CONDITIONAL([HAVE_GCOVR], [test "x$ac_cv_check_gcovr" = xyes])
149AC_SUBST(COVERAGE_CFLAGS)
150AC_SUBST(COVERAGE_LDFLAGS)
151
152#
153# Gnome/GTK checks
154#
155AM_PATH_GTK_3_0
156
157dnl CFLAGS
158CFLAGS="$CFLAGS -Wall -Werror -Wno-error=deprecated-declarations -Wempty-body -Wformat-security -Winit-self -Warray-bounds -Wimplicit-function-declaration -lm"
159
160AC_SUBST(BAMFDAEMON_CFLAGS)
161AC_SUBST(BAMFDAEMON_LIBS)
162
163origgiomodulesdir=`pkg-config --variable=giomoduledir gio-2.0`
164# Make giomodulesdir honour 'prefix', so that distcheck works.
165giomodulesdir=`echo "$origgiomodulesdir" | sed 's|/usr|${prefix}|'`
166AC_SUBST(giomodulesdir)
167
168AC_OUTPUT([
169Makefile
170lib/libbamf-private/Makefile
171lib/libbamf/Makefile
172lib/libbamf/libbamf3.pc
173src/Makefile
174tests/Makefile
175tests/bamfdaemon/Makefile
176tests/libbamf/Makefile
177data/Makefile
178doc/Makefile
179doc/reference/Makefile
180doc/reference/libbamf/Makefile
181])
182
183cat <<EOF
184
185${PACKAGE}-${VERSION}
186
187  Build Environment
188    Install Prefix:       ${prefix}
189    Introspection:        ${enable_introspection}
190    Headless tests:       ${enable_headless_tests}
191    Coverage Reporting:   ${use_gcov}
192    Export actions menus: ${enable_export_actions_menu}
193
194EOF
195