use bool def from stdbool.h or define it if it does not exist
[psensor.git] / configure.ac
1 #                                               -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 AC_PREREQ([2.64])
5 AC_INIT([psensor], [0.7.0.x],[jeanfi@gmail.com],[psensor],[http://wpitchoune.net/psensor])
6
7 AM_INIT_AUTOMAKE([-Wall -Werror gnu])
8
9 AC_CONFIG_SRCDIR([src/compat.h])
10 AC_CONFIG_HEADERS([config.h])
11
12 # Checks for programs.
13 AC_PROG_CC
14 AM_PROG_CC_C_O
15
16 # Checks lib build
17 AC_PROG_RANLIB
18
19 # Checks for header files.
20 AC_PATH_X
21 AC_CHECK_HEADERS([stdbool.h])
22
23 # Checks for typedefs, structures, and compiler characteristics.
24 AC_TYPE_SIZE_T
25 AC_TYPE_SSIZE_T
26
27 # Checks for library functions.
28 AC_FUNC_MALLOC
29 AC_FUNC_REALLOC
30 AC_CHECK_FUNCS([gettimeofday memmove socket strdup strtol])
31
32 AM_GNU_GETTEXT_VERSION([0.16])
33 AM_GNU_GETTEXT([external])
34
35 # Gconf
36 AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
37
38 if test x"$GCONFTOOL" = xno; then
39   AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf])
40 fi
41
42 AM_GCONF_SOURCE_2
43
44 ############### common 
45
46 # Checks sensors, required by psensor and psensor-server
47 AC_CHECK_LIB(sensors, sensors_init)
48 AC_CHECK_HEADERS([sensors/sensors.h sensors/errors.h])
49 SENSORS_LIBS=-lsensors
50 AC_SUBST(SENSORS_LIBS)
51
52 ############### psensor 
53
54 ### Required
55
56 PKG_CHECK_MODULES(X11, x11)
57 AC_SUBST(X11_CFLAGS)
58 AC_SUBST(X11_LIBS)
59
60 PKG_CHECK_MODULES(XEXT, xext)
61 AC_SUBST(XEXT_CFLAGS)
62 AC_SUBST(XEXT_LIBS)
63
64 # Checks GTK+ 3.0
65 PKG_CHECK_MODULES(GTK, gtk+-3.0)                
66 # ensure that only allowed headers are included
67 GTK_CFLAGS+=" -DGTK_DISABLE_SINGLE_INCLUDES "
68 # ensure that no gtk deprecated symbols are used
69 GTK_CFLAGS+=" -DGDK_DISABLE_DEPRECATED "
70 GTK_CFLAGS+=" -DGTK_DISABLE_DEPRECATED "
71 # ensure use of accessors
72 GTK_CFLAGS+=" -DGSEAL_ENABLE "
73 AC_SUBST(GTK_CFLAGS)
74 AC_SUBST(GTK_LIBS)
75
76 # Check GCONF
77 PKG_CHECK_MODULES(GCONF, gconf-2.0)
78 AC_SUBST(GCONF_CFLAGS)
79 AC_SUBST(GCONF_LIBS)
80
81 ### Optional
82
83 # check libatasmart
84 PKG_CHECK_MODULES(ATASMART, libatasmart,
85                   [AC_DEFINE([HAVE_ATASMART],[1],[Use libatasmart])],
86                   [AC_MSG_WARN("Library atasmart not present")])
87
88 AM_CONDITIONAL(ATASMART, test -n "$ATASMART_LIBS")
89 AC_SUBST(ATASMART_CFLAGS)
90 AC_SUBST(ATASMART_LIBS)
91
92 # Check libnotify
93 LIBNOTIFY_LIBS=
94 PKG_CHECK_MODULES(LIBNOTIFY, 
95   libnotify, 
96   [AC_DEFINE([HAVE_LIBNOTIFY],[1],[Use desktop notification])], 
97   [AC_MSG_WARN("Desktop notification disabled")])
98 AM_CONDITIONAL(LIBNOTIFY, test -n "$LIBNOTIFY_LIBS")
99 AC_SUBST(LIBNOTIFY_CFLAGS)
100 AC_SUBST(LIBNOTIFY_LIBS)
101
102 # Checks AppIndicator 
103 APPINDICATOR_LIBS=
104
105 PKG_CHECK_MODULES(APPINDICATOR, appindicator3-0.1,
106      [AC_DEFINE([HAVE_APPINDICATOR],[1],[Use AppIndicator3-0.1])],
107      [AC_MSG_WARN(AppIndicator 3-0.1 not present")])
108
109 if test "$APPINDICATOR_LIBS" == ""; then
110    PKG_CHECK_MODULES(APPINDICATOR, 
111      appindicator-0.1 <= 0.2.9 , 
112      [AC_DEFINE([HAVE_APPINDICATOR],[1],[Use AppIndicator 0.2.9])
113       AC_DEFINE([HAVE_APPINDICATOR_029],[1],[Use AppIndicator 0.2.9])
114      ],
115      [AC_MSG_WARN(AppIndicator 0.2.9 not present")])
116 fi
117
118 if test "$APPINDICATOR_LIBS" == ""; then
119    PKG_CHECK_MODULES(APPINDICATOR, 
120      appindicator-0.1 > 0.2.9, 
121      [AC_DEFINE([HAVE_APPINDICATOR],[1],[Use AppIndicator > 0.2.9])], 
122      [AC_MSG_WARN("AppIndicator > 0.2.9 not present")])
123 fi
124 AM_CONDITIONAL(APPINDICATOR, test -n "$APPINDICATOR_LIBS")
125 AC_SUBST(APPINDICATOR_CFLAGS)
126 AC_SUBST(APPINDICATOR_LIBS)
127
128 # Check CURL, needed for remote monitoring
129 CURL_LIBS=
130 PKG_CHECK_MODULES(CURL, 
131   libcurl, 
132   [AC_DEFINE([HAVE_CURL],[1],[Use CURL])], 
133   [AC_MSG_WARN("Remote monitoring disabled, curl missing")])
134 AM_CONDITIONAL(CURL, test -n "$CURL_LIBS")
135 AC_SUBST(CURL_CFLAGS)
136 AC_SUBST(CURL_LIBS)
137
138 # Check JSON, needed for remote monitoring
139 JSON_LIBS=
140 PKG_CHECK_MODULES(JSON, 
141   json, 
142   [AC_DEFINE([HAVE_JSON],[1],[Use JSON])], 
143   [AC_MSG_WARN("Remote monitoring disabled, json missing")])
144 AM_CONDITIONAL(JSON, test -n "$JSON_LIBS")
145 AC_SUBST(JSON_CFLAGS)
146 AC_SUBST(JSON_LIBS)
147
148 # Enables remote monitoring if JSON and CURL is present
149 if test -n "$JSON_LIBS"; then
150    if test -n "$CURL_LIBS"; then
151    AC_DEFINE([HAVE_REMOTE_SUPPORT],[1],[Remote monitoring enabled])
152    fi
153 fi
154
155 # Checks NVIDIA
156 # following code from sensors-applet
157 # sensors-applet.sourceforge.net/
158 AC_CHECK_HEADERS(NVCtrl/NVCtrl.h NVCtrl/NVCtrlLib.h, 
159                  [ HAVE_NVIDIA=true ], [], 
160                  [ 
161                   #include <X11/Xlib.h>
162                  ])
163 if test -n "${X11_LIBS}"; then
164 LIBS="${LIBS} -lX11 -lXext"
165
166 if test "${HAVE_NVIDIA}" = "true"; then
167   AC_CHECK_LIB(XNVCtrl,XNVCTRLQueryExtension, 
168                  [NVIDIA_LIBS="-lXNVCtrl -lX11 -lXext" 
169                   AC_DEFINE(HAVE_NVIDIA,1,[NVidia support enabled])
170                  ])                     
171 fi
172 fi
173 AM_CONDITIONAL(NVIDIA, test -n "$NVIDIA_LIBS")
174 AC_SUBST(NVIDIA_CFLAGS)
175 AC_SUBST(NVIDIA_LIBS)
176
177 # Checks Unity
178 PKG_CHECK_MODULES(UNITY, 
179                   unity >= 3.4.2,
180                   [AC_DEFINE([HAVE_UNITY],[1],[Use Unity])], 
181                   [AC_MSG_WARN(Unity not present)])
182 AC_SUBST(UNITY_CFLAGS)
183 AC_SUBST(UNITY_LIBS)
184 AM_CONDITIONAL(UNITY, test -n "$UNITY_LIBS")
185
186 # libatiadl
187 AC_ARG_WITH(libatiadl,
188 [  --with-libatiadl[=DIR]   use libatiadlxx in DIR],[
189                    ATIADL_DIR=${withval}
190                    CPPFLAGS="${CPPFLAGS} -I${ATIADL_DIR}/include"
191                    LIBS="$LIBS -L/usr/lib/fglrx -L/usr/lib64/fglrx -L/usr/lib/catalyst -L/usr/lib64/catalyst"
192                   ]
193 )
194
195 AC_CHECK_HEADERS(adl_defines.h,
196         AC_CHECK_LIB(atiadlxx,ADL_Main_Control_Refresh,
197                 [
198                         AC_DEFINE(HAVE_LIBATIADL,1,[libatiadl is available])
199                         LIBATIADL_CFLAGS="-I${ATIADL_DIR}/include"
200                         LIBATIADL_LIBS="-L/usr/lib/fglrx -L/usr/lib64/fglrx -L/usr/lib/catalyst -L/usr/lib64/catalyst -latiadlxx -ldl"
201                 ]))
202
203 AM_CONDITIONAL(LIBATIADL, test -n "$LIBATIADL_LIBS")
204 AC_SUBST(LIBATIADL_CFLAGS)
205 AC_SUBST(LIBATIADL_LIBS)
206
207 ############### psensor-server
208
209 # libmicrohttpd, mandatory for psensor-server
210 LIBMICROHTTPD_LIBS=
211 PKG_CHECK_MODULES(LIBMICROHTTPD, 
212   libmicrohttpd, 
213   [AC_DEFINE([HAVE_LIBMICROHTTPD],[1],[Use libmicrohttpd])], 
214   [AC_MSG_WARN("libmicrohttpd not present, psensor-server will NOT be built")])
215 AM_CONDITIONAL(LIBMICROHTTPD, test -n "$LIBMICROHTTPD_LIBS")
216 AC_SUBST(LIBMICROHTTPD_CFLAGS)
217 AC_SUBST(LIBMICROHTTPD_LIBS)
218
219 # GTop, optional
220
221 AC_ARG_WITH(gtop,
222 [  --with-gtop[=yes|no]   use gtop],[
223         with_gtop=$withval],[
224         with_gtop="yes"
225 ])
226
227 GTOP_LIBS=
228 if test "$with_gtop" = "yes"; then
229 PKG_CHECK_MODULES(GTOP, 
230   libgtop-2.0, 
231   [AC_DEFINE([HAVE_GTOP],[1],[Use GTOP])], 
232   [AC_MSG_WARN("gtop not present, CPU/Memory information will NOT be available")])
233 fi
234 AM_CONDITIONAL(GTOP, test -n "$GTOP_LIBS")
235 AC_SUBST(GTOP_CFLAGS)
236 AC_SUBST(GTOP_LIBS)
237
238 AC_CONFIG_FILES([
239  Makefile
240  src/Makefile
241  src/glade/Makefile
242  src/lib/Makefile
243  src/server/Makefile
244  icons/hicolor/scalable/Makefile
245  icons/hicolor/14x14/Makefile
246  icons/hicolor/16x16/Makefile
247  icons/hicolor/22x22/Makefile
248  icons/hicolor/24x24/Makefile
249  icons/hicolor/32x32/Makefile
250  icons/hicolor/48x48/Makefile
251  icons/hicolor/64x64/Makefile
252  icons/ubuntu-mono-dark/status/22/Makefile
253  icons/ubuntu-mono-light/status/22/Makefile
254  icons/ubuntu-mono-dark/apps/22/Makefile
255  www/Makefile
256  po/Makefile.in
257  tests/Makefile
258 ])
259
260 AC_CHECK_PROGS([HELP2MAN], [help2man])
261
262 AC_OUTPUT