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