1AC_INIT(keybinder, 0.3.1,
2    [])
3AC_CONFIG_SRCDIR(libkeybinder/bind.c)
4AC_CONFIG_MACRO_DIR([m4])
5
6AC_PREREQ(2.62)
7AM_INIT_AUTOMAKE([-Wno-portability])
8
9# Libtool version
10# For any change: increment revision
11# If interfaces are added/changed/removed: increment current, reset revision
12# If library changed but is backwards-compatible: increment age
13# If library changed backwards-incompatibly: reset age
14m4_define([keybinder_lt_current],  [1])
15m4_define([keybinder_lt_revision], [0])
16m4_define([keybinder_lt_age],      [1])
17LT_CURRENT=keybinder_lt_current
18LT_REVISION=keybinder_lt_revision
19LT_AGE=keybinder_lt_age
20AC_SUBST(LT_CURRENT)
21AC_SUBST(LT_REVISION)
22AC_SUBST(LT_AGE)
23
24GNOME_COMMON_INIT
25
26AM_MAINTAINER_MODE
27AM_DISABLE_STATIC
28AM_PROG_LIBTOOL
29AC_SUBST(ACLOCAL_AMFLAGS, "$ACLOCAL_FLAGS -I m4")
30AC_PROG_CC
31
32dnl ****************************************************************************
33dnl * Enable Automake 1.11 silent rules
34dnl ****************************************************************************
35m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
36
37dnl ****************************************************************************
38dnl * Pkg-Config
39dnl ****************************************************************************
40AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, yes, no)
41if test "x$HAVE_PKGCONFIG" = "xno"; then
42  AC_MSG_ERROR(you need to have pkgconfig installed !)
43fi
44
45dnl ****************************************************************************
46dnl * Write the values of various paths in defs.py
47dnl ****************************************************************************
48AC_SUBST(VERSION)
49PACKAGE=$PACKAGE_NAME
50PACKAGE_TARNAME=$PACKAGE_NAME
51AC_SUBST(PACKAGE)
52AC_SUBST(PACKAGE_TARNAME)
53
54AS_AC_EXPAND(DATADIR, $datarootdir)
55AC_SUBST(DATADIR)
56
57AS_AC_EXPAND(LIBDIR, $libdir)
58AC_SUBST(LIBDIR)
59
60dnl ****************************************************************************
61dnl * GTK
62dnl ****************************************************************************
63gtk_version="gtk+-2.0"
64PKG_CHECK_MODULES(GTK, [gtk+-2.0	>= 2.20])
65
66AC_SUBST(GTK_CFLAGS)
67AC_SUBST(GTK_LIBS)
68
69
70dnl **
71dnl * Required gtk package (for keybinder.pc)
72dnl **
73AS_AC_EXPAND(GTKPACKAGEDEP, $gtk_version)
74AC_SUBST(GTKPACKAGEDEP)
75
76dnl * gobject-introspection
77GOBJECT_INTROSPECTION_CHECK([0.6.7])
78
79dnl ***********************************
80dnl * Require XKB
81dnl ***********************************
82X_LIBS="`$PKG_CONFIG --libs x11 xext xrender`"
83X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
84old_cflags="$CFLAGS"
85CFLAGS="$CFLAGS $X_CFLAGS"
86LIBS="$X_LIBS $LIBS"
87
88AC_CHECK_FUNC(XkbQueryExtension, [], AC_MSG_ERROR(Could not find XKB))
89
90CFLAGS="$old_cflags"
91
92X_LDFLAGS="$X_LIBS"
93
94AC_SUBST(X_CFLAGS)
95AC_SUBST(X_LDFLAGS)
96
97dnl ****************************************************************************
98dnl * Python
99dnl ****************************************************************************
100AC_ARG_ENABLE(python,
101             AS_HELP_STRING([--disable-python],
102                            [disable python bindings [default=yes]]),
103			    ,
104                            [enable_python=yes])
105
106AC_ARG_ENABLE(lua,
107             AS_HELP_STRING([--disable-lua],
108                            [disable lua bindings [default=if found]]),
109			    [enable_lua=no],
110                            [enable_lua=yes])
111
112if test "x$enable_python" != "xno"; then
113	dnl ****************************************************************************
114	dnl * Python 2.5
115	dnl ****************************************************************************
116	have_python="yes"
117	AM_PATH_PYTHON(2.5)
118	AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)])
119
120	PKG_CHECK_MODULES(PYGTK,
121		pygtk-2.0				>= 2.12
122		pygobject-2.0			>= 2.15.3
123	)
124	AC_SUBST(PYGTK_CFLAGS)
125	AC_SUBST(PYGTK_LIBS)
126
127	dnl ******************
128	dnl * Python modules
129	dnl ******************
130	AM_CHECK_PYMOD(glib)
131	AM_CHECK_PYMOD(gobject)
132	AM_CHECK_PYMOD(gtk)
133	AM_CHECK_PYMOD(gtk.gdk)
134
135	dnl Python violates C99 rules, by casting between incompatible
136	dnl pointer types. GCC may generate bad code as a result of that,
137	dnl so use -fno-strict-aliasing if supported.
138	AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
139	ac_save_cc="$CC"
140	CC="$CC -fno-strict-aliasing"
141	AC_CACHE_VAL(ac_cv_no_strict_aliasing_ok,
142	  AC_TRY_COMPILE([],[],
143	  ac_cv_no_strict_aliasing_ok=yes,
144	  ac_cv_no_strict_aliasing_ok=no))
145	CC="$ac_save_cc"
146	AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
147	if test $ac_cv_no_strict_aliasing_ok = yes
148	then
149	  PYEXTRAFLAGS="-fno-strict-aliasing"
150	fi
151
152	AC_SUBST(PYEXTRAFLAGS)
153
154
155	dnl ****************************************************************************
156	dnl * PyGTK Codegen and defs files
157	dnl ****************************************************************************
158	AC_PATH_PROG(PYGOBJECT_CODEGEN, pygobject-codegen-2.0, no)
159	if test "x$PYGOBJECT_CODEGEN" = xno; then
160	  AC_MSG_ERROR(could not find pygobject-codegen-2.0 script)
161	fi
162
163	AC_MSG_CHECKING(for pygtk defs)
164	PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
165	AC_SUBST(PYGTK_DEFSDIR)
166	AC_MSG_RESULT($PYGTK_DEFSDIR)
167else
168	have_python="no"
169fi
170
171AM_CONDITIONAL(HAVE_PYTHON, test "x$enable_python" != "xno")
172
173dnl ****************************************************************************
174dnl  Check for Lua 5.1
175dnl ****************************************************************************
176
177if test "x$enable_lua" != "xno"; then
178  AX_LUA_HEADERS
179  if test "x$ac_cv_header_lua_h" = "xyes" ; then
180    AX_LUA_LIB_VERSION([501], [502])
181    LUA_VERSION=[5.1]
182    AC_SUBST(LUA_VERSION)
183    AC_SUBST(LUA_INCLUDE)
184    have_lua="yes"
185  else
186    have_lua="no"
187  fi
188else
189  have_lua="no"
190fi
191AM_CONDITIONAL(HAVE_LUA, test "x$have_lua" = "xyes")
192
193dnl ***
194dnl * GTK DOC
195dnl ***
196
197GTK_DOC_CHECK([1.14], [--flavour no-tmpl])
198
199dnl ****************************************************************************
200dnl * --------------------------------------------------------------------------
201dnl ****************************************************************************
202AC_OUTPUT([
203Makefile
204libkeybinder/Makefile
205libkeybinder/$PACKAGE_NAME.pc
206lua-keybinder/Makefile
207python-keybinder/__init__.py
208python-keybinder/Makefile
209docs/Makefile
210docs/version.info
211])
212
213echo
214echo $PACKAGE v$VERSION
215echo
216
217echo Prefix............... : $prefix
218echo GTK version ......... : $gtk_version
219echo libkeybinder ........ : yes
220echo gobject-introspection : $found_introspection
221echo gtk-doc ............. : $enable_gtk_doc
222echo python-keybinder .... : $have_python
223echo lua-keybinder ....... : $have_lua
224echo
225
226echo "Now type make to compile"
227echo "Then su to root and type: make install"
228echo
229