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