[build] Change python path to /usr/bin/env python
[awesome.git] / configure.ac
blob0a45e85061483007c8dd85ed464e1b286adf2cee
1 #                                               -*- Autoconf -*-
2 # Process this file with autoreconf to produce a configure script.
4 AC_PREREQ(2.61)
5 dnl Each time you want an updated version number for your build, you need to
6 dnl (re-)run autoreconf.
7 AC_INIT([awesome window manager],
8         [m4_esyscmd([./build-utils/package-version . version-stamp])],
9         [http://awesome.naquadah.org/bugs/],
10         [awesome])
11 AC_CONFIG_AUX_DIR([auto-aux])
12 AC_CONFIG_SRCDIR([awesome.c])
13 dnl The AC_CONFIG_HEADER and awesome's own config.h are different beasts
14 dnl AC_CONFIG_HEADER([config.h])
15 dnl Other options:
16 dnl    check-news   to check that NEWS has been adapted to current version
17 AM_INIT_AUTOMAKE([
18 -Wall -Werror
19 1.10
20 dist-bzip2
21 filename-length-max=99
22 foreign
23 std-options
24 subdir-objects
27 AC_DEFINE_UNQUOTED([AWESOME_RELEASE], [m4_esyscmd([./build-utils/package-codename . codename-stamp])], [release code name])
29 AC_MSG_CHECKING([package version according to autoconf])
30 AC_MSG_RESULT([${PACKAGE_VERSION}])
31 AC_MSG_CHECKING([package version according to version script])
32 version_script=`"${srcdir}/build-utils/package-version" "${srcdir}" version-stamp`
33 AC_MSG_RESULT([${version_script}])
35 # Checks for programs.
36 AC_PROG_SED
37 AC_PROG_CC
38 AM_PROG_CC_C_O
39 AC_PROG_INSTALL
41 AC_ARG_VAR([ASCIIDOC], [asciidoc doc generation tool])
42 AC_ARG_VAR([XMLTO], [xmlto converter from xml to other formats])
43 AC_ARG_VAR([DOXYGEN], [doxygen source documentation system])
45 test "x$ASCIIDOC" = "x"  && AC_PATH_PROG([ASCIIDOC], [asciidoc], [:])
46 test "x$XMLTO"    = "x"  && AC_PATH_PROG([XMLTO], [xmlto], [:])
47 test "x$DOXYGEN"  = "x"  && AC_PATH_PROG([DOXYGEN], [doxygen], [:])
49 test "x$ASCIIDOC" = "x:" && AC_MSG_WARN([awesome man page generation requires asciidoc])
50 test "x$XMLTO"    = "x:" && AC_MSG_WARN([awesome man page generation requires xmlto])
51 test "x$DOXYGEN"  = "x:" && AC_MSG_WARN([awesome developer doc generation requires doxygen])
53 AM_CONDITIONAL([HAVE_ASCIIDOC], [test "x$ASCIIDOC" != "x:"])
54 AM_CONDITIONAL([HAVE_XMLTO],    [test "x$XMLTO"    != "x:"])
55 AM_CONDITIONAL([HAVE_DOXYGEN],  [test "x$DOXYGEN"  != "x:"])
57 xmlto_man_works=no
58 if test ="x$XMLTO" != "x:"; then dnl try generating an example man page
59         rm -f conf-example.1
60         cat>conf-example.1.xml<<MANEOF
61 <?xml version="1.0" encoding="UTF-8"?>
62 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
63           "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
64 <refentry>
65 <refmeta>
66 <refentrytitle>conf-example</refentrytitle>
67 <manvolnum>1</manvolnum>
68 </refmeta>
69 <refnamediv>
70 <refname>conf-example</refname>
71 <refpurpose>'configure' time test for working 'xmlto man'</refpurpose>
72 </refnamediv>
73 <refsynopsisdiv>
74 <simpara>foo</simpara>
75 </refsynopsisdiv>
76 <refsect1>
77 <title>DESCRIPTION</title>
78 <simpara>bar</simpara>
79 </refsect1>
80 </refentry>
81 MANEOF
82         AC_MSG_CHECKING([whether xmlto can create a man page])
83         if ${XMLTO} man conf-example.1.xml >/dev/null 2>&1 && test -s conf-example.1; then
84                 xmlto_man_works=yes
85                 AC_MSG_RESULT([yes])
86                 rm -f conf-example.1 conf-example.1.xml
87         else
88                 AC_MSG_RESULT([no])
89                 AC_MSG_WARN([awesome man page generation requires 'xmlto man', but it does not work.
90 Do you need to (properly) install http://docbook.sourceforge.net/projects/xsl/?])
91         fi
93 AM_CONDITIONAL([XMLTO_MAN_WORKS], [test "x$xmlto_man_works" = "xyes"])
95 AM_CONDITIONAL([USING_GCC], [test "x$GCC" = "xyes"])
97 AC_CANONICAL_HOST
98 AC_DEFINE_UNQUOTED([AWESOME_COMPILE_MACHINE], ["$host"], [build for this machine])
100 AC_DEFINE_UNQUOTED([AWESOME_COMPILE_HOSTNAME], ["${ac_hostname}"], [build host])
102 AC_ARG_VAR([WHOAMI], [whoami(1) command])
103 AC_PATH_PROG([WHOAMI], [whoami], [false])
104 AS_IF([test "x$WHOAMI" = "xfalse"], [aw_whoami="???"], [aw_whoami=`$WHOAMI`])
105 AC_DEFINE_UNQUOTED([AWESOME_COMPILE_BY], ["$aw_whoami"], [build user])
107 # Checks for libraries.
108 AC_PATH_XTRA
109 PKG_CHECK_MODULES([pangocairo], [pangocairo],,
110    [AC_MSG_ERROR([awesome requires pangocairo.])])
111 PKG_CHECK_MODULES([confuse], [libconfuse >= 2.6],,
112    [AC_MSG_ERROR([awesome requires libconfuse >= 2.6.])])
113 PKG_CHECK_MODULES([xinerama], [xinerama],,
114    [AC_MSG_ERROR([awesome requires Xinerama.])])
115 PKG_CHECK_MODULES([xrandr], [xrandr],,
116    [AC_MSG_ERROR([awesome requires Xrandr.])])
117 PKG_CHECK_MODULES([imlib2], [imlib2],,
118    [AC_MSG_ERROR([awesome requires Imlib2.])])
120 # Checks for header files.
121 AC_PATH_X
122 AC_HEADER_STDC
123 AC_HEADER_SYS_WAIT
124 AC_CHECK_HEADERS([fcntl.h limits.h locale.h stdlib.h string.h sys/socket.h unistd.h])
126 # Checks for typedefs, structures, and compiler characteristics.
127 AC_C_CONST
128 AC_C_INLINE
129 AC_TYPE_SIZE_T
130 AC_TYPE_SSIZE_T
132 # Checks for library functions.
133 AC_FUNC_FORK
134 AC_FUNC_REALLOC
135 AC_FUNC_SELECT_ARGTYPES
136 AC_TYPE_SIGNAL
137 AC_FUNC_VPRINTF
138 AC_CHECK_FUNCS([memchr regcomp select setenv socket strchr strrchr strstr])
140 AC_CONFIG_FILES([Makefile])
141 AC_CONFIG_FILES([awesome.doxygen])
142 AC_OUTPUT