spelling
[monky] / configure.in
1 AC_INIT([Conky],[1.4.0],[brenden1@users.sourceforge.net])
2
3 AM_INIT_AUTOMAKE(conky, 1.4.0)
4 AM_CONFIG_HEADER(src/config.h)
5 AC_PROG_LIBTOOL
6 PKG_PROG_PKG_CONFIG([0.17.2])
7
8
9 AC_CONFIG_FILES(
10         Makefile
11         doc/Makefile
12         src/Makefile
13         )
14
15 uname=`uname`
16
17 case $uname in
18   Linux*)
19     WANT_SYSINFO=yes
20     ;;
21   FreeBSD*)
22     WANT_KVM=yes
23     WANT_DEVSTAT=yes
24     ;;
25 #  NetBSD*)
26 #    WANT_KVM=yes
27 #    WANT_OSSLIB=yes
28 #    ;;
29
30 # Solaris doesn't work at all right now
31 #  SunOS*)
32 #    WANT_KSTAT=yes
33 #    ;;
34
35   *)
36     echo "Your operating system $uname isn't supported"
37     echo "Feel free to help. :P"
38     exit 1
39     ;;
40 esac
41
42 AM_CONDITIONAL(BUILD_LINUX, test x$uname = xLinux)
43 AM_CONDITIONAL(BUILD_SOLARIS, test x$uname = xSunOS)
44 AM_CONDITIONAL(BUILD_FREEBSD, test x$uname = xFreeBSD)
45 AM_CONDITIONAL(BUILD_NETBSD, test x$uname = xNetBSD)
46
47 dnl
48 dnl XFT option
49 dnl
50
51 want_xft=yes
52 AC_ARG_ENABLE(xft,
53 [  --enable-xft            enable if you want to use Xft [[default=yes]]],
54   [want_xft="$enableval"])
55
56 dnl
57 dnl OWN_WINDOW option
58 dnl
59
60 dah=yes
61 AC_ARG_ENABLE(own_window,
62 [  --enable-own-window     enable if you want support for creating own window [[default=yes]]],
63   [dah="$enableval"])
64
65 if test $dah != "no"; then
66   AC_DEFINE(OWN_WINDOW, 1, [Define if you want support for window creating])
67 fi
68
69 dnl
70 dnl PROC_UPTIME option
71 dnl
72
73 dah=yes
74 AC_ARG_ENABLE(proc_uptime,
75 [  --enable-proc-uptime    enable using /proc/uptime for uptime [[default=yes]]],
76   [dah="$enableval"])
77
78 if test $dah = "yes"; then
79   AC_DEFINE(PROC_UPTIME, 1, [Define if you want to use /proc/uptime for uptime])
80 fi
81
82 dnl
83 dnl XMMS (Version 1)
84 dnl
85
86 want_xmms=auto
87 AC_ARG_ENABLE(xmms,
88    [  --enable-xmms           enable xmms (ver. 1) media player support [[default=auto]]],
89    [want_xmms="$enableval"])
90
91 case x$want_xmms in
92     xauto)
93         want_xmms=yes
94         ## its ok to favor the glib 2.0 headers over 1.2 for our purposes ##
95         PKG_CHECK_MODULES([XMMS], [glib-2.0], [], [PKG_CHECK_MODULES([XMMS], [glib-1.2], [], [want_xmms=no])]) 
96
97         if test x$want_xmms = xyes; then
98             AC_CHECK_HEADERS([dlfcn.h], [], [want_xmms=no])
99             if test x$want_xmms = xyes; then
100                 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl"],
101                                          [AC_CHECK_FUNCS(dlopen,[],
102                                                                 [want_xmms=no])])
103                 if test x$want_xmms = xyes; then
104                      CFLAGS="$CFLAGS $XMMS_CFLAGS"
105                      ### if we link to glib 1.2, that means 2.0 wasn't found ###
106                      ### if we link to glib 2.0, that's ok, we will load libglib-1.2.so.0 dynamically ###
107                      LIBS="$LIBS $XMMS_LIBS"
108                      AC_DEFINE(XMMS, 1, [Define for XMMS Ver. 1 support])
109                 fi
110             fi
111         fi
112         ;;
113     xyes)
114         ## its ok to favor the glib 2.0 headers over 1.2 for our purposes ##
115         PKG_CHECK_MODULES([XMMS], [glib-2.0], [], [PKG_CHECK_MODULES([XMMS], [glib-1.2])])
116         CFLAGS="$CFLAGS $XMMS_CFLAGS"
117         ### if we link to glib 1.2, that means 2.0 wasn't found ###
118         ### if we link to glib 2.0, that's ok, we will load libglib-1.2.so.0 dynamically ###
119         LIBS="$LIBS $XMMS_LIBS"
120         AC_CHECK_HEADERS([dlfcn.h], [],
121              [AC_MSG_ERROR(["dlfcn.h not found: dynamic library loading not supported"])])
122         AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl"],
123                                  [AC_CHECK_FUNCS(dlopen,[],
124                                                         [AC_MSG_ERROR([dlopen() not available])])])
125         AC_DEFINE(XMMS, 1, [Define for XMMS Ver. 1 support])
126         ;;
127     xno)
128         ;;
129     *)
130         echo "Error: invalid xmms parameter specified: $want_xmms"
131         exit -1
132         ;;
133 esac
134 AM_CONDITIONAL(BUILD_XMMS, test x$want_xmms = xyes)
135
136 dnl
137 dnl BMP (through 0.9.7.1)
138 dnl
139
140 want_bmp=auto
141 AC_ARG_ENABLE(bmp,
142    [  --enable-bmp            enable beep media media player support [[default=auto]]],
143    [want_bmp="$enableval"])
144
145 case x$want_bmp in
146     xauto)
147         want_bmp=yes
148         PKG_CHECK_MODULES([BMP], [glib-2.0], [], [want_bmp=no])
149         if test x$want_bmp = xyes; then
150             AC_CHECK_HEADERS([dlfcn.h], [], [want_bmp=no])
151             if test x$want_bmp = xyes; then
152                 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl"],
153                                          [AC_CHECK_FUNCS(dlopen,[],
154                                                                 [want_bmp=no])])
155                 if test x$want_bmp = xyes; then
156                      CFLAGS="$CFLAGS $BMP_CFLAGS"
157                      LIBS="$LIBS $BMP_LIBS"
158                      AC_DEFINE(BMP, 1, [Define for Beep Media Player support])
159                 fi
160             fi
161         fi
162         ;;
163     xyes)
164         PKG_CHECK_MODULES([BMP], [glib-2.0 >= 2.0])
165         CFLAGS="$CFLAGS $BMP_CFLAGS"
166         LIBS="$LIBS $BMP_LIBS"
167         AC_CHECK_HEADERS([dlfcn.h], [],
168              [AC_MSG_ERROR(["dlfcn.h not found: dynamic library loading not supported"])])
169         AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl"],
170                                  [AC_CHECK_FUNCS(dlopen,[],
171                                                         [AC_MSG_ERROR([dlopen() not available])])])
172         AC_DEFINE(BMP, 1, [Define for Beep Media Player support])
173         ;;
174     xno)
175         ;;
176     *)
177         echo "Error: invalid bmp parameter specified: $want_bmp"
178         exit -1
179         ;;
180 esac
181 AM_CONDITIONAL(BUILD_BMP, test x$want_bmp = xyes)
182
183 dnl
184 dnl Audacious Media Player
185 dnl
186
187 want_audacious=auto
188 AC_ARG_ENABLE(audacious,
189    [  --enable-audacious      enable audacious player support [[default=auto]]],
190    [want_audacious="$enableval"])
191
192 case x$want_audacious in
193     xauto)
194         want_audacious=yes
195         PKG_CHECK_MODULES([AUDACIOUS], [glib-2.0], [], [want_audacious=no])  
196         if test x$want_audacious = xyes; then
197             AC_CHECK_HEADERS([dlfcn.h], [], [want_audacious=no])
198             if test x$want_audacious = xyes; then
199                 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl"], 
200                                          [AC_CHECK_FUNCS(dlopen,[],
201                                                                 [want_audacious=no])])
202                 if test x$want_audacious = xyes; then
203                      CFLAGS="$CFLAGS $AUDACIOUS_CFLAGS"
204                      LIBS="$LIBS $AUDACIOUS_LIBS"
205                      AC_DEFINE(AUDACIOUS, 1, [Define for Audacious support])
206                 fi
207             fi
208         fi
209         ;;
210     xyes)
211         PKG_CHECK_MODULES([AUDACIOUS], [glib-2.0])
212         CFLAGS="$CFLAGS $AUDACIOUS_CFLAGS"
213         LIBS="$LIBS $AUDACIOUS_LIBS"
214         AC_CHECK_HEADERS([dlfcn.h], [], 
215              [AC_MSG_ERROR(["dlfcn.h not found: dynamic library loading not supported"])])
216         AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl"], 
217                                  [AC_CHECK_FUNCS(dlopen,[], 
218                                                         [AC_MSG_ERROR([dlopen() not available])])])
219         AC_DEFINE(AUDACIOUS, 1, [Define for Audacious support])
220         ;;
221     xno)
222         ;;
223     *)
224         echo "Error: invalid audacious parameter specified: $want_audacious"
225         exit -1
226         ;;
227 esac
228 AM_CONDITIONAL(BUILD_AUDACIOUS, test x$want_audacious = xyes)
229
230 dnl
231 dnl InfoPipe (Version 1.3)
232 dnl
233
234 want_infopipe=yes
235 AC_ARG_ENABLE(infopipe,
236    [  --enable-infopipe       enable xmms/bmp infopipe support [[default=yes]]],
237    [want_infopipe="$enableval"])
238
239 case x$want_infopipe in
240     xyes)
241         AC_DEFINE(INFOPIPE, 1, [Define for InfoPipe support])
242         ;;
243     xno)
244         ;;
245     *)
246         echo "Error: invalid infopipe parameter specified: $want_infopipe"
247         exit -1
248         ;;
249 esac
250 AM_CONDITIONAL(BUILD_INFOPIPE, test x$want_infopipe = xyes)
251
252 dnl
253 dnl BMPx
254 dnl
255
256 want_bmpx=no
257 AC_ARG_ENABLE(bmpx,
258               [  --enable-bmpx           enable if you want BMPx support [[default=no]]],
259               [want_bmpx="$enableval"])
260
261 AM_CONDITIONAL(BUILD_BMPX, test x$want_bmpx = xyes)
262 if test x$want_bmpx = xyes; then
263         PKG_CHECK_MODULES([DBUS], [dbus-1 >= 0.35 dbus-glib-1 >= 0.35])
264         CFLAGS="$CFLAGS $DBUS_CFLAGS"
265         LIBS="$LIBS $DBUS_LIBS"
266         AC_CHECK_HEADERS([bmpx/dbus.h], [], [BMPX_MISSING=yes])
267         if test "x$BMPX_MISSING" = xyes; then
268                 AC_MSG_ERROR([bmpx doesn't seem to be installed, or the headers aren't available])
269         fi
270         AC_DEFINE(BMPX, 1, [Define if you want BMPx support])
271 fi
272
273 dnl
274 dnl Seti@Home
275 dnl
276
277 want_seti=yes
278 AC_ARG_ENABLE(seti,
279 [  --enable-seti           enable if you want SETI at Home stats [[default=yes]]],
280   [want_seti="$enableval"])
281
282 AM_CONDITIONAL(BUILD_SETI, test x$want_seti = xyes)
283 if test x$want_seti = xyes; then
284   AC_DEFINE(SETI, 1, [Define if you want SETI at Home stats])
285 fi
286
287 dnl
288 dnl MPD
289 dnl
290
291 want_mpd=yes
292 AC_ARG_ENABLE(mpd,
293 [  --enable-mpd            enable if you want MPD support [[default=yes]]],
294   [want_mpd="$enableval"])
295
296 AM_CONDITIONAL(BUILD_MPD, test x$want_mpd = xyes)
297 if test x$want_mpd = xyes; then
298   AC_DEFINE(MPD, 1, [Define if you want MPD support])
299 fi
300
301 dnl
302 dnl PORT_MONITORS
303 dnl
304
305 want_portmon=yes
306 AC_ARG_ENABLE(portmon,
307 [  --enable-portmon        enable if you want tcp (ip4) port monitoring [[default=yes]]],
308   [want_portmon="$enableval"])
309
310 AM_CONDITIONAL(BUILD_PORT_MONITORS, test x$want_portmon = xyes)
311 if test x$want_portmon = xyes; then
312   AC_CHECK_HEADERS([netdb.h netinet/in.h netinet/tcp.h sys/socket.h arpa/inet.h], [], [PORT_MONITORS_MISSING=yes])
313   if test "x$PORT_MONITORS_MISSING" = xyes; then
314          AC_MSG_ERROR([missing a needed network header for port monitoring])
315   fi
316   AC_DEFINE(TCP_PORT_MONITOR, 1, [Define if you want tcp port monitoring support])
317 fi
318
319 dnl
320 dnl Cairo
321 dnl
322
323 dnl
324 dnl MLDonkey
325 dnl
326
327 want_mldonkey=no
328 AC_ARG_ENABLE(mldonkey,
329 [  --enable-mldonkey       enable if you want MLDonkey support [[default=no]]],
330   [want_mldonkey="$enableval"])
331
332 AM_CONDITIONAL(BUILD_MLDONKEY, test x$want_mldonkey = xyes)
333 if test x$want_mldonkey = xyes; then
334   AC_DEFINE(MLDONKEY, 1, [Define if you want MLDonkey support])
335 fi
336
337 dnl
338 dnl C Compiler
339 dnl
340
341 AC_PROG_CC
342
343 dnl
344 dnl X
345 dnl
346
347 dah=yes
348 AC_ARG_ENABLE(double_buffer,
349 [  --enable-double-buffer  enable if you want to support flicker-free operation [[default=yes]]],
350   [dah="$enableval"])
351
352 want_x11=yes
353 AC_ARG_ENABLE(x11,
354 [  --enable-x11            enable if you want X11 support [[default=yes]]],
355  [want_x11="$enableval"])
356
357
358 if test "x$want_x11" = "xyes"; then
359         AC_PATH_X
360         AC_PATH_XTRA
361         CFLAGS="$CFLAGS $X_CFLAGS"
362         LIBS="$LIBS $X_LIBS $X11_LIBS"
363         LDFLAGS="$LDFLAGS $LIBS $X_PRE_LIBS"
364         if test "x$X_DISPLAY_MISSING" = xyes; then
365                 AC_MSG_ERROR([something went wrong when checking for X11, you're probably missing headers or it's not installed, either re-run configure with --disable-x11, or fix this])
366         fi
367         AC_DEFINE(X11, 1, [Define if you want to use X11])
368         AC_DEFINE(HAVE_X11, 1, [Define if you have X11])
369         AM_CONDITIONAL(BUILD_X11, true)
370         if test $dah != "no"; then
371                 AC_DEFINE(DOUBLE_BUFFER, 1, [Define if you want support for the DBE extension])
372                 AC_CHECK_LIB(Xext, XdbeQueryExtension, [AC_DEFINE([HAVE_XDBE], 1, [Xdbe]) LIBS="$LIBS -lXext"],
373                      [AC_MSG_ERROR([something went wrong when checking for Xdbe (double buffer extension)])])
374         fi
375 else
376         AM_CONDITIONAL(BUILD_X11, false)
377 fi
378
379 dnl
380 dnl Xft
381 dnl
382
383 if test x$want_xft && test x$want_x11; then
384   AC_PATH_PROG(XFTCONFIG, xft-config)
385   if test x$XFTCONFIG != x; then
386     dnl TODO: needs more checks
387   
388 dnl This won't work for some reason
389 dnl  AC_CHECK_HEADERS([X11/Xft/Xft.h], [], [XFT_MISSING=yes])
390     if test "x$XFT_MISSING" = xyes; then
391       AC_MSG_ERROR([something went wrong when checking for Xft, you're probably missing headers or it's not installed])
392   fi
393
394     AC_DEFINE(XFT, 1, [Define if you are using Xft])
395     CFLAGS="$CFLAGS `$XFTCONFIG --cflags`"
396     XFT_LIBS=`$XFTCONFIG --libs`
397   else
398     want_xft=no
399   fi
400 fi
401
402 dnl
403 dnl KVM
404 dnl
405
406 if test x$WANT_KVM = xyes; then
407   AC_CHECK_LIB(kvm, kvm_open,
408         LIBS="$LIBS -lkvm",
409         AC_MSG_ERROR([Could not find kvm_open in -lkvm.])
410   )
411 fi
412
413 dnl
414 dnl devstat
415 dnl
416
417 if test x$WANT_DEVSTAT = xyes; then
418         AC_CHECK_LIB(devstat, devstat_getversion,
419                      LIBS="$LIBS -ldevstat",
420                      AC_MSG_ERROR([Cound not find devstat_getversion in -ldevstat.])
421         )
422 fi
423
424 dnl
425 dnl OSSLIB for NetBSD
426 dnl
427
428 if test x$WANT_OSSLIB = xyes; then
429     AC_CHECK_LIB(ossaudio, _oss_ioctl,
430         LIBS="$LIBS -lossaudio",
431         AC_MSG_ERROR([Could not find oss_ioctl in -lossaudio.])
432     )
433 fi
434
435 dnl
436 dnl Some random headers
437 dnl
438
439
440 AC_CHECK_HEADERS([signal.h unistd.h sys/utsname.h sys/stat.h linux/soundcard.h dirent.h mcheck.h])
441 AC_CHECK_HEADERS([sys/statfs.h sys/param.h])
442 AC_CHECK_HEADERS([sys/mount.h], [], [],
443                  [#ifdef HAVE_SYS_PARAM_H
444                   #include <sys/param.h>
445                   #endif
446 ])
447
448 dnl
449 dnl Check doc stuff
450 dnl
451
452 AC_CHECK_PROGS(db2x_xsltproc_cmd, db2x_xsltproc)
453 AC_CHECK_PROGS(db2x_manxml_cmd, db2x_manxml)
454 AC_CHECK_PROGS(xsltproc_cmd, xsltproc)
455 if test x$db2x_xsltproc_cmd = "x" -o x$xsltproc_cmd = "x"; then
456         AM_CONDITIONAL(HAVE_DOCSTUFF, false)
457 else
458         AM_CONDITIONAL(HAVE_DOCSTUFF, true)
459 fi
460
461 dnl
462 dnl Check sysinfo()
463 dnl
464
465 if test x$WANT_SYSINFO = xyes; then
466   dah=no
467   AC_MSG_CHECKING(for sysinfo)
468   AC_TRY_COMPILE(
469     [#include <sys/types.h>
470      #include <sys/sysinfo.h>],
471     [struct sysinfo s; sysinfo(&s); (void) s.uptime; ],
472     [AC_MSG_RESULT(yes); dah=yes],
473     [AC_MSG_RESULT(not usable); dah=no])
474
475   if test x$dah = xyes; then
476     AC_DEFINE(HAVE_SYSINFO, 1, [Define if you have sysinfo (Linux)])
477   fi
478 fi
479
480 dnl
481 dnl kstat in Solaris
482 dnl
483
484 if test x$WANT_KSTAT = xyes; then
485   dah=no
486   AC_CHECK_LIB([kstat], [kstat_open], [dah=yes], [])
487
488   if test x$dah = xyes; then
489     AC_DEFINE(HAVE_KSTAT, 1, [Define if you have kstat (Solaris)])
490     LDFLAGS="$LDFLAGS -lkstat"
491   fi
492 fi
493
494 AC_DEFUN([AM_LANGINFO_CODESET],
495 [
496   AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
497     [AC_TRY_LINK([#include <langinfo.h>],
498       [char* cs = nl_langinfo(CODESET);],
499       am_cv_langinfo_codeset=yes,
500       am_cv_langinfo_codeset=no)
501     ])
502   if test $am_cv_langinfo_codeset = yes; then
503     AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
504       [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
505   fi
506 ])
507
508 dnl
509 dnl Check getloadavg
510 dnl
511
512 AC_MSG_CHECKING(for getloadavg)
513 AC_TRY_COMPILE(
514   [#include <stdlib.h>],
515   [double v[3]; getloadavg(v, 3);],
516   [AC_MSG_RESULT(yes)
517    AC_DEFINE(HAVE_GETLOADAVG, 1, [Define if you have getloadavg])],
518   [AC_MSG_RESULT(no)])
519
520 dnl
521 dnl Check popen
522 dnl
523
524 AC_CHECK_FUNCS(popen)
525
526 dnl
527 dnl Da.
528 dnl
529
530 CFLAGS="$CFLAGS -Wall -W"
531
532 AC_SUBST(CFLAGS)
533 AC_SUBST(X11_LIBS)
534 AC_SUBST(XFT_LIBS)
535
536 AC_OUTPUT