Annotation of embedaddon/bmon/configure.ac, revision 1.1.1.1
1.1 misho 1: #
2: # configure.in Configure Script
3: #
4: # Copyright (c) 2001-2005 Thomas Graf <tgraf@suug.ch>
5: #
6: # Permission is hereby granted, free of charge, to any person obtaining a
7: # copy of this software and associated documentation files (the "Software"),
8: # to deal in the Software without restriction, including without limitation
9: # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10: # and/or sell copies of the Software, and to permit persons to whom the
11: # Software is furnished to do so, subject to the following conditions:
12: #
13: # The above copyright notice and this permission notice shall be included
14: # in all copies or substantial portions of the Software.
15: #
16: # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17: # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18: # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19: # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20: # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21: # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22: # DEALINGS IN THE SOFTWARE.
23:
24: AC_INIT(bmon, 2.1.0, tgraf@suug.ch)
25: AC_CONFIG_HEADER(include/bmon/defs.h)
26:
27: AC_CANONICAL_SYSTEM
28:
29: save_CFLAGS="${CFLAGS}"
30: save_LDFLAGS="${LDFLAGS}"
31: save_CPPFLAGS="${CPPFLAGS}"
32:
33: AC_ISC_POSIX
34: AC_PROG_CC
35: AC_PROG_CC_STDC
36: AC_PROG_CPP
37: AC_PROG_MAKE_SET
38: AC_PROG_INSTALL
39:
40: AC_C_CONST
41: AC_C_INLINE
42:
43: AC_HEADER_TIME
44: AC_HEADER_DIRENT
45:
46: AC_TYPE_SIZE_T
47: AC_TYPE_SIGNAL
48: AC_TYPE_PID_T
49:
50: AC_FUNC_FORK
51:
52: AC_CHECK_HEADERS(getopt.h ncurses/ncurses.h ncurses.h curses.h)
53: AC_CHECK_HEADERS(dirent.h sys/utsname.h sys/sockio.h netinet6/in6.h)
54: AC_CHECK_HEADERS(rrd.h fcntl.h netdb.h netinet/in.h sysctl/ioctl.h)
55: AC_CHECK_HEADERS(sys/param.h sys/socket.h)
56:
57: AC_CHECK_TYPES(suseconds_t)
58:
59: AC_CHECK_FUNCS(atexit gettimeofday memset pow socket strcasecmp)
60: AC_CHECK_FUNCS(strchr strdup strerror strncasecmp strstr strtol)
61: AC_CHECK_FUNCS(uname)
62:
63: #
64: # Check if -lsocket is needed
65: #
66: AC_CHECK_FUNC(connect,,[
67: AC_CHECK_LIB(socket,connect,LIB_INET="${LIB_INET} -lsocket")
68: ])
69:
70: #
71: # Check if -lnsl is needed
72: #
73: AC_CHECK_FUNC(gethostbyname,,[
74: AC_CHECK_LIB(nsl,gethostbyname,LIB_INET="${LIB_INET} -lnsl")
75: ])
76:
77: #
78: # Check if -lresolv is needed
79: #
80: AC_CHECK_FUNC(inet_aton,,[
81: AC_CHECK_LIB(resolv, inet_aton,LIB_INET="${LIB_INET} -lresolv")
82: ])
83:
84: AC_CHECK_FUNC(fcloseall,[
85: AC_DEFINE_UNQUOTED(HAVE_FCLOSEALL, "1", [have fcloseall])
86: ])
87:
88:
89: #####################################################################
90: ##
91: ## libcurses check
92: ##
93: #####################################################################
94: CURSES="No "
95: AC_CHECK_LIB(ncurses, initscr, [
96: AC_DEFINE_UNQUOTED(HAVE_NCURSES, "1", [have ncurses])
97: LCURSES="ncurses"
98: CURSES="Yes"
99: ],[
100: AC_CHECK_LIB(curses,initscr, [
101: AC_DEFINE_UNQUOTED(HAVE_CURSES, "1", [have curses])
102: LCURSES="curses"
103: CURSES="Yes"
104: ],[
105: echo
106: echo "*** Warning: Building bmon w/o curses support ***"
107: echo
108: ])
109: ])
110:
111: LIBCURSES="-l$LCURSES"
112:
113: AC_CHECK_LIB($LCURSES, redrawwin, [
114: AC_DEFINE_UNQUOTED(HAVE_REDRAWWIN, "1", [have redrawwin])
115: ])
116:
117: AC_CHECK_LIB($LCURSES, use_default_colors, [
118: AC_DEFINE_UNQUOTED(HAVE_USE_DEFAULT_COLORS, "1", [have udc])
119: ])
120:
121: #####################################################################
122: ##
123: ## librrd check
124: ##
125: #####################################################################
126: RRD="No "
127: AC_CHECK_LIB(rrd, rrd_create, [
128: AC_DEFINE_UNQUOTED(HAVE_RRD, "1", [have rrd])
129: LIBRRD="-lrrd"
130: RRD="Yes"
131: ],[
132: echo
133: echo "*** Warning: Building bmon w/o rrd support ***"
134: echo
135: ])
136:
137: #####################################################################
138: ##
139: ## libdbi check
140: ##
141: #####################################################################
142: DBI="No "
143: AC_CHECK_LIB(dbi, dbi_initialize, [
144: AC_DEFINE_UNQUOTED(HAVE_DBI, "1", [have dbi])
145: LIBDBI="-ldbi"
146: DBI="Yes"
147: ],[
148: echo
149: echo "*** Warning: Building bmon w/o DBI support ***"
150: echo
151: ])
152:
153: #####################################################################
154: ##
155: ## libasound check
156: ##
157: #####################################################################
158: ASOUND="No "
159: AC_CHECK_LIB(asound, snd_seq_open, [
160: AC_DEFINE_UNQUOTED(HAVE_ASOUND, "1", [have asound])
161: LIBASOUND="-lasound"
162: ASOUND="Yes"
163: ],[
164: echo
165: echo "*** Warning: Building bmon w/o libasound support ***"
166: echo
167: ])
168:
169: #####################################################################
170: ##
171: ## libkstat check
172: ##
173: #####################################################################
174: KSTAT="No "
175: AC_CHECK_LIB(kstat, kstat_open, [
176: AC_DEFINE_UNQUOTED(HAVE_KSTAT, "1", [have kstat])
177: LIBKSTAT="-lkstat"
178: KSTAT="Yes"
179: ],[
180: case ${target_os} in
181: *solaris*)
182: echo
183: echo "*** Warning: Building bmon on SunOS w/o libkstat ***"
184: echo
185: ;;
186: esac
187: ])
188:
189: #####################################################################
190: ##
191: ## libnl check
192: ##
193: #####################################################################
194: NL="No "
195: AC_CHECK_LIB(nl, nl_connect, [
196: AC_DEFINE_UNQUOTED(HAVE_NL, "1", [have libnl])
197: LIBNL="-lnl"
198: NL="Yes"
199: ],[
200: case ${target_os} in
201: *linux*)
202: echo
203: echo "*** Warning: Building bmon on Linuxx w/o libnl ***"
204: echo
205: ;;
206: esac
207: ])
208:
209: #####################################################################
210: ##
211: ## libm check
212: ##
213: #####################################################################
214: M="No "
215: AC_CHECK_LIB(m, pow, [
216: LIBM="-lm"
217: M="Yes"
218: ],[
219: echo
220: echo "*** Error: libm required ***"
221: echo
222: exit
223: ])
224:
225: #####################################################################
226: ##
227: ## interface counter overflow workaround
228: ##
229: #####################################################################
230: AC_ARG_ENABLE(cnt-workaround,
231: [ --disable-cnt-workaround Disables interface counter overflow workaround],[
232: if test x$enableval = xno; then
233: AC_DEFINE_UNQUOTED(DISABLE_OVERFLOW_WORKAROUND,"1",[no overflow workaround])
234: fi
235: ])
236:
237: #####################################################################
238: ##
239: ## librrd
240: ##
241: #####################################################################
242: AC_ARG_ENABLE(rrd,
243: [ --disable-rrd Disables rrd output],[
244: if test x$enableval = xno; then
245: RRD="No "
246: fi
247: ])
248:
249: #####################################################################
250: ##
251: ## libasound
252: ##
253: #####################################################################
254: AC_ARG_ENABLE(asound,
255: [ --disable-asound Disables asound output],[
256: if test x$enableval = xno; then
257: ASOUND="No "
258: fi
259: ])
260:
261: #####################################################################
262: ##
263: ## libdbi
264: ##
265: #####################################################################
266: AC_ARG_ENABLE(dbi,
267: [ --disable-dbi Disables DBI output],[
268: if test x$enableval = xno; then
269: DBI="No "
270: fi
271: ])
272:
273: #####################################################################
274: ##
275: ## curses
276: ##
277: #####################################################################
278: AC_ARG_ENABLE(curses,
279: [ --disable-curses Disables curses output],[
280: if test x$enableval = xno; then
281: CURSES="No "
282: fi
283: ])
284:
285: #####################################################################
286: ##
287: ## debug check
288: ##
289: #####################################################################
290: DEBUG=0
291: AC_ARG_ENABLE(debug,
292: [ --enable-debug Enable debug mode (default disabled)],[
293: if test x$enableval = xyes; then
294: DEBUG=1;
295: fi
296: ])
297:
298: #####################################################################
299: ##
300: ## static check
301: ##
302: #####################################################################
303: STATIC=0
304: AC_ARG_ENABLE(static,
305: [ --enable-static Enable static linking (default disabled)],[
306: if test x$enableval = xyes; then
307: STATIC=1;
308: fi
309: ])
310:
311: #####################################################################
312: ##
313: ## target os eval
314: ##
315: #####################################################################
316: case ${target_os} in
317: linux*)
318: AC_DEFINE_UNQUOTED(SYS_LINUX, "1", [operating system])
319: ;;
320:
321: *solaris*)
322: AC_DEFINE_UNQUOTED(SYS_SUNOS, "1", [operating system])
323: ;;
324:
325: *bsd*)
326: AC_DEFINE_UNQUOTED(SYS_BSD, "1", [operating system])
327: ;;
328:
329: *darwin*)
330: AC_DEFINE_UNQUOTED(SYS_BSD, "1", [operating system])
331: ;;
332:
333: *)
334: AC_DEFINE_UNQUOTED(SYS_OTHER, "1", [operating system])
335: ;;
336: esac
337:
338: #####################################################################
339: ##
340: ## compile decisions
341: ##
342: #####################################################################
343: COMPILE_BMON="Yes "
344: BMON_LIB="$LIB_INET $LIBM"
345: if test x$CURSES = xYes; then
346: BMON_LIB="$BMON_LIB $LIBCURSES"
347: fi;
348:
349: if test x$NL = xYes; then
350: BMON_LIB="$BMON_LIB $LIBNL"
351: fi;
352:
353: if test x$KSTAT = xYes; then
354: BMON_LIB="$BMON_LIB $LIBKSTAT"
355: fi;
356:
357: if test x$RRD = xYes; then
358: BMON_LIB="$BMON_LIB $LIBRRD"
359: fi;
360:
361: if test x$ASOUND = xYes; then
362: BMON_LIB="$BMON_LIB $LIBASOUND"
363: fi;
364:
365: if test x$DBI = xYes; then
366: BMON_LIB="$BMON_LIB $LIBDBI"
367: fi;
368:
369:
370: #####################################################################
371: ##
372: ## export variables
373: ##
374: #####################################################################
375: AC_SUBST(COMPILE_BMON)
376: AC_SUBST(BMON_LIB)
377:
378: AC_SUBST(DEBUG)
379: AC_SUBST(STATIC)
380: AC_SUBST(SYS)
381: AC_SUBST(ARCH)
382:
383: AC_SUBST(CURSES)
384: AC_SUBST(RRD)
385: AC_SUBST(ASOUND)
386: AC_SUBST(DBI)
387:
388: AC_OUTPUT([Makefile.opts])
389:
390: #####################################################################
391: ##
392: ## status report
393: ##
394: #####################################################################
395: echo "
396: ----------------------------------------------------------------------
397: SUMMARY:
398:
399: OS: $target_os
400:
401: Included in Compilation:
402: bmon: $COMPILE_BMON $BMON_LIB
403:
404: Dependencies:
405: bmon:
406: libm $M (required)
407: lib(n)curses $CURSES (suggested)
408: librrd $RRD (suggested)
409: libdbi $DBI (suggested)
410: libasound $ASOUND (toy)"
411: case ${target_os} in
412: *linux*)
413: echo " libnl $NL (suggested)"
414: ;;
415: esac
416: if test x$target_os = xsolaris; then
417: echo " libkstat $KSTAT (required on SunOS)"
418: fi
419: echo "
420: ----------------------------------------------------------------------
421:
422: WARNING:
423: Please do not install the bmon executable as SUID root. This
424: software package was written with portability and configurability
425: in mind and will never fulfill the requirements to be installed
426: as SUID root executable.
427:
428: If you do please be aware that every user will be able to run
429: arbitary commands as root via the key bind interface or by
430: providing a malicious netstat binary.
431:
432: In fact there is no reason to do so, all supported input modules
433: will work fine without superuser privileges. There is probably a
434: good reason if your operating system requires special privileges
435: which is that a normal user is not supposed to read the statistics
436: which should not be worked around using the SUID bit.
437:
438: Thanks.
439: "
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>