1AC_PREREQ([2.63])
2AC_INIT([caribou],
3        [0.4.21],
4        [https://bugzilla.gnome.org/enter_bug.cgi?product=caribou],
5        [caribou])
6
7AC_CONFIG_MACRO_DIR([m4])
8
9AM_PROG_LIBTOOL
10
11# If library source has changed since last release, increment revision
12# If public symbols have been added, removed or changed since last release,
13#  increment current and set revision to 0
14# If public symbols have been added since last release, increment age
15# If public symbols have been removed since last release, set age to 0
16m4_define([libcaribou_lt_current], [0])
17m4_define([libcaribou_lt_revision], [0])
18m4_define([libcaribou_lt_age], [0])
19LT_CURRENT=libcaribou_lt_current
20LT_REVISION=libcaribou_lt_revision
21LT_AGE=libcaribou_lt_age
22AC_SUBST([LT_CURRENT])
23AC_SUBST([LT_REVISION])
24AC_SUBST([LT_AGE])
25
26AM_INIT_AUTOMAKE([1.11 -Wno-portability dist-xz no-dist-gzip])
27AM_MAINTAINER_MODE([enable])
28# Support silent build rules. Disable by either passing --disable-silent-rules
29# to configure or passing V=1 to make
30AM_SILENT_RULES([yes])
31
32dnl http://people.gnome.org/~walters/docs/build-api.txt
33dnl We don't support separate builddir when building from git;
34dnl The automake vala rules run cd srcdir which screws up the
35dnl top_srcdir variable references.
36echo \#buildapi-variable-no-builddir >/dev/null
37
38AM_PATH_GLIB_2_0(2.27.5,,,gobject)
39if test "$GLIB_LIBS" = ""; then
40   AC_MSG_ERROR(GLIB 2.27.5 or later is required to build libcaribou)
41fi
42
43dnl == check for python ==
44AM_PATH_PYTHON(2.4)
45
46dnl == Library dependencies ==
47PYGOBJECT_REQUIRED=2.90.3
48GTK_REQUIRED=3.0.0
49CLUTTER_REQUIRED=1.5.11
50GDK_REQUIRED=3.0.0
51VALADOC_REQUIRED=0.3.1
52
53PKG_CHECK_MODULES(CARIBOU, [
54  pygobject-3.0 >= $PYGOBJECT_REQUIRED,
55  gtk+-3.0      >= $GTK_REQUIRED,
56  clutter-1.0   >= $CLUTTER_REQUIRED,
57  gdk-3.0       >= $GDK_REQUIRED,
58  x11,
59  atspi-2
60  ])
61AC_SUBST(CARIBOU_CFLAGS)
62AC_SUBST(CARIBOU_LIBS)
63
64AM_PROG_VALAC([0.13])
65AC_SUBST(VALAC)
66AC_SUBST(VALAFLAGS)
67
68PKG_CHECK_MODULES(LIBCARIBOU, [
69  gdk-3.0 >= $GDK_REQUIRED,
70  xtst,
71  x11,
72  libxklavier,
73  libxml-2.0,
74  gee-0.8,
75  gio-2.0
76  ])
77AC_SUBST(LIBCARIBOU_CFLAGS)
78AC_SUBST(LIBCARIBOU_LIBS)
79
80dnl == i18n ==
81GETTEXT_PACKAGE=caribou
82AC_SUBST(GETTEXT_PACKAGE)
83AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [The gettext package])
84AM_GLIB_GNU_GETTEXT
85
86dnl == GTK modules ==
87AC_ARG_ENABLE(gtk3_module,
88    AS_HELP_STRING([--enable-gtk3-module],
89                   [Build GTK3 module]),
90    [enable_gtk3_module=$enableval],
91    [enable_gtk3_module=yes]
92)
93AM_CONDITIONAL([ENABLE_GTK3_MODULES], [test x"$enable_gtk3_module" = x"yes"])
94
95if test x"$enable_gtk3_module" = x"yes"; then
96    PKG_CHECK_MODULES(GTK3, [
97        gtk+-3.0
98    ])
99
100    GTK3_MODULES_DIR="$libdir"/gtk-3.0/modules
101    AC_SUBST(GTK3_MODULES_DIR)
102fi
103
104AC_ARG_ENABLE(gtk2_module,
105    AS_HELP_STRING([--enable-gtk2-module],
106                   [Build GTK2 module]),
107    [enable_gtk2_module=$enableval],
108    [enable_gtk2_module=yes]
109)
110AM_CONDITIONAL([ENABLE_GTK2_MODULES], [test x"$enable_gtk2_module" = x"yes"])
111
112if test x"$enable_gtk2_module" = x"yes"; then
113    PKG_CHECK_MODULES(GTK2, [
114        gtk+-2.0
115    ])
116
117    GTK2_MODULES_DIR="$libdir"/gtk-2.0/modules
118    AC_SUBST(GTK2_MODULES_DIR)
119fi
120
121AM_CONDITIONAL([ENABLE_GTK_MODULES], [test x"enable_gtk2_module" = x"yes" -o x"$enable_gtk3_module" = x"yes"])
122
123dnl == GSettings ==
124GLIB_GSETTINGS
125
126dnl == intltool check ==
127IT_PROG_INTLTOOL([0.35.0])
128
129dnl == GObject introspection ==
130GOBJECT_INTROSPECTION_REQUIRE([0.10.7])
131
132dnl == Documentation ==
133AC_ARG_ENABLE([docs],
134              AS_HELP_STRING([--enable-docs],[Enable documentation generation]),
135              [enable_docs=$enableval], [enable_docs=no])
136AM_CONDITIONAL([ENABLE_DOCS], [test x$enable_docs = xyes])
137
138have_valadoc=no
139AS_IF([test x$enable_docs = xyes], [
140  # make sure the library is new enough and the program exists
141  PKG_CHECK_MODULES([VALADOC], [valadoc-1.0 >= $VALADOC_REQUIRED])
142  AC_PATH_PROG([VALADOC], [valadoc], [:])
143  AS_IF([test "$VALADOC" != :], have_valadoc=yes)
144])
145AM_CONDITIONAL([HAVE_VALADOC], [test x$have_valadoc = xyes])
146
147AS_IF([test "x$enable_docs" = "xyes" -a "x$have_valadoc" != "xyes"], [
148    AC_MSG_ERROR([Doc building requested but valadoc not installed.])
149])
150
151dnl == generate makefiles ==
152AC_OUTPUT([
153Makefile
154po/Makefile.in
155caribou/Makefile
156caribou/i18n.py
157caribou/antler/Makefile
158caribou/settings/Makefile
159bin/Makefile
160bin/caribou-preferences
161bin/antler-keyboard
162data/Makefile
163data/antler/Makefile
164data/layouts/Makefile
165data/layouts/touch/Makefile
166data/layouts/scan/Makefile
167data/layouts/fullscale/Makefile
168data/layouts/tablet/Makefile
169libcaribou/Makefile
170libcaribou/caribou-1.0.pc
171modules/Makefile
172modules/gtk3/Makefile
173modules/gtk2/Makefile
174tools/Makefile
175docs/Makefile
176vapi/Makefile
177daemon/Makefile
178])
179