Annotation of fam/configure.in, Revision 1.1.1.1
1.1 trev 1: dnl
2: dnl If you're using this on IRIX, you'll need to get autoconf, automake,
3: dnl libtool, GNU tar, GNU make, and maybe some other stuff, which should
4: dnl be available on your freeware CD or from http://freeware.sgi.com/.
5: dnl
6: dnl At the moment, this file suffers from a number of aesthetic shortcomings.
7: dnl
8: dnl To change compiler flags etc., you should set the CXXFLAGS environment
9: dnl variable before running the configure script.
10: dnl
11: dnl Process this file with autoconf to produce a configure script.
12: dnl The order you want to use is:
13: dnl aclocal (only need to do this once?)
14: dnl autoconf
15: dnl autoheader
16: dnl automake -v --add-missing (you only need the --add-missing once, or
17: dnl configure every time you switch between IRIX & Linux
18: dnl make in the same workarea)
19: dnl
20: dnl THINGS WHICH ARE STILL BROKEN
21: dnl
22: dnl packaging.
23: dnl makedepends. The generated Makefiles don't include the Makedepends
24: dnl files, so I removed the makedepends flags. We should figure out how
25: dnl to fix that & put them back. (g++ I think wants to put each file's
26: dnl dependencies in a separate file.d instead of a single directory-wide
27: dnl Makedepend file, too.)
28: dnl
29:
30:
31: dnl Uncomment to keep from using the cache file. (It was causing problems
32: dnl with GCC and GXX being set to "yes" even when the compilers aren't GNU.)
33: dnl define([AC_CACHE_LOAD], )dnl
34: dnl define([AC_CACHE_SAVE], )dnl
35:
36: AC_INIT(libfam/fam.c++)
37: AM_INIT_AUTOMAKE(fam, 2.6.10)
38:
39: dnl Put configuration #defines in config.h.
40: AM_CONFIG_HEADER(config.h)
41:
42: dnl Initialize libtool
43: dnl AC_PATH_PROG(LIBTOOL, libtool)
44: AM_PROG_LIBTOOL
45:
46: dnl
47: dnl We want to include our header in $(top_srcdir)/include
48: dnl
49: FAMPROTOINC='-I$(top_srcdir)/include'
50: AC_SUBST(FAMPROTOINC)
51:
52: dnl
53: dnl We want everyone to agree on our config file's path & name
54: dnl
55: FAM_CONF=$sysconfdir/fam.conf
56: AC_SUBST(FAM_CONF)
57: dnl I hate autoconf so much.
58: dnl AC_DEFINE_UNQUOTED(FAM_CONF, "${FAM_CONF}")
59: dnl AC_DEFINE_UNQUOTED(FAM_CONF, "`echo ${FAM_CONF} | xargs`")
60: dnl AC_DEFINE_UNQUOTED(FAM_CONF, "`echo ${FAM_CONF} | sed s/\$\{prefix\}/${prefix:-NONE}/ | sed s/^NONE//`")
61:
62: dnl Make our AC_TRY_COMPILE's use C++ instead of C. (It doesn't matter
63: dnl for most of them, though.)
64: AC_LANG_CPLUSPLUS
65:
66: dnl This is sort of a perversion of the AC_ARGS_WITH macro, but I want
67: dnl people to be able to set their CFLAGS on the command line.
68: AC_ARG_WITH(CFLAGS, [ --with-CFLAGS=\"flags\" set CFLAGS and CXXFLAGS to the given value], [CFLAGS=$withval; CXXFLAGS=$withval])
69:
70: dnl
71: dnl Checks for programs.
72: dnl
73: dnl Nuts! On IRIX, we want to use the SGI compilers, not GNU.
74: dnl not necessarily. rusty == bozo.
75: if test `uname` = 'IRIX' || test `uname` = 'IRIX64'; then
76: AC_PATH_PROG(CXX, CC)
77: fi
78: AC_PROG_CXX
79: AC_PROG_CXXCPP
80: AC_PROG_RANLIB
81:
82: AC_PROG_INSTALL
83: dnl I don't know why, but automake wants to use ./mkinstalldirs.
84: dnl AC_PATH_PROG(MKINSTALLDIRS, mkinstalldirs)
85: AC_PROG_MAKE_SET
86:
87:
88: dnl AC_PROG_AWK
89: dnl autoconf/automake expects GNU tar, so find it on IRIX.
90: AC_PATH_PROG(TAR, tar, tar, /usr/freeware/bin:$PATH)
91: AC_PATH_PROG(LDCONFIG, ldconfig)
92:
93:
94: dnl
95: dnl Checks for header files.
96: dnl
97: dnl AC_HEADER_STDC
98: dnl AC_HEADER_DIRENT
99: dnl AC_HEADER_SYS_WAIT
100: dnl AC_CHECK_HEADERS(fcntl.h limits.h sys/time.h syslog.h unistd.h)
101:
102: dnl
103: dnl See if imon is available; if so, is it IRIX or Linux?
104: dnl
105: if test `uname` = 'IRIX' || test `uname` = 'IRIX64'; then
106: have_imon=yes
107: AC_DEFINE(HAVE_IMON, 1)
108: IMON_FUNCS=IMonIrix
109: dnl
110: dnl As long as we're here, check for struct revokdi and IMONIOC_REVOKDI.
111: dnl Old IRIX boxes don't have them.
112: dnl
113: AC_EGREP_HEADER(revokdi, sys/imon.h, AC_DEFINE(HAVE_IMON_REVOKDI))
114: fi
115: if test "$have_imon" != "yes"; then
116: AC_CHECK_HEADER(linux/imon.h, have_imon=yes)
117: if test "$have_imon" = "yes"; then
118: AC_DEFINE(HAVE_IMON, 1)
119: IMON_FUNCS=IMonLinux
120: fi
121: fi
122: if test "$have_imon" != "yes"; then
123: have_imon=no
124: AC_DEFINE(HAVE_IMON, 0)
125: IMON_FUNCS=IMonNone
126: fi
127: AC_SUBST(IMON_FUNCS)
128: echo "Using imon support module $IMON_FUNCS"
129:
130: AC_CHECK_HEADER(sys/statvfs.h, [AC_DEFINE(HAVE_STATVFS, 1) have_statvfs="yes"], [AC_DEFINE(HAVE_STATVFS, 0) have_statvfs="no"])
131: AC_CHECK_HEADER(sys/syssgi.h, AC_DEFINE(HAVE_SYSSGI, 1), AC_DEFINE(HAVE_SYSSGI, 0))
132: AC_CHECK_HEADER(sys/fs/nfs_clnt.h, AC_DEFINE(HAVE_SYS_FS_NFS_CLNT_H, 1), AC_DEFINE(HAVE_SYS_FS_NFS_CLNT_H, 0))
133:
134: dnl Linux has statvfs, but its f_fsid is a struct, and SmallTable can't
135: dnl be instantiated for it because there's no > or < operator for it yet.
136: dnl fam does work without the fs_by_id table, so we'll pretend we don't
137: dnl have statvfs for now. This should be fixed, though.
138: if test `uname` != 'IRIX' && test `uname` != 'IRIX64'; then
139: AC_DEFINE(HAVE_STATVFS, 0)
140: have_statvfs="no"
141: fi
142: dnl dnl
143: dnl dnl If we have statvfs, test for fsid_t.
144: dnl dnl
145: dnl if test "$have_statvfs" = "yes"; then
146: dnl for fsid_t in ulong_t fsid_t __fsid_t; do
147: dnl AC_MSG_CHECKING([sys/statvfs.h for $fsid_t fsid])
148: dnl AC_TRY_COMPILE([#include <sys/statvfs.h>], [struct statvfs s; $fsid_t i = s.f_fsid;], have_fsid_t=yes, have_fsid_t=no)
149: dnl AC_MSG_RESULT($have_fsid_t)
150: dnl if test "$have_fsid_t" = "yes"; then
151: dnl AC_DEFINE_UNQUOTED(CONFIG_FSID_T, $fsid_t)
152: dnl break
153: dnl fi
154: dnl done
155: dnl if test "$have_fsid_t" != "yes"; then
156: dnl AC_MSG_ERROR([Have sys/statvfs.h, but couldn't get statvfs.f_fsid type])
157: dnl fi
158: dnl fi
159:
160: dnl
161: dnl Test for SGI_NOHANG in syssgi.h
162: dnl
163: AC_MSG_CHECKING([SGI_NOHANG])
164: AC_TRY_COMPILE([#include <sys/syssgi.h>], [int i = SGI_NOHANG; ], have_sgi_nohang=yes, have_sgi_nohang=no)
165: if test "$have_sgi_nohang" = "yes"; then
166: AC_DEFINE(HAVE_SGI_NOHANG, 1)
167: else
168: AC_DEFINE(HAVE_SGI_NOHANG, 0)
169: fi
170: AC_MSG_RESULT($have_sgi_nohang)
171:
172: dnl
173: dnl Test for a function to background the fam process
174: dnl
175: AC_CHECK_FUNCS([_daemonize daemon])
176:
177: dnl
178: dnl Test for a function to get a user's groups
179: dnl
180: AC_CHECK_FUNCS([getgrmember getgroups])
181:
182: dnl
183: dnl This section is commented out because HAVE_AUDIT and HAVE_MAC should
184: dnl not be used. HAVE_AUDIT is probably OK (although it doesn't do anything
185: dnl special) but HAVE_MAC is definitely not. (The test is fine, but the
186: dnl code it #ifdef's in isn't.)
187: dnl
188: dnl dnl
189: dnl dnl Test for sys/sat.h, satvwrite(), and _SC_AUDIT.
190: dnl dnl
191: dnl AC_MSG_CHECKING([satvwrite in sat.h])
192: dnl AC_TRY_COMPILE([#include <unistd.h>
193: dnl #include <sat.h>], [sysconf(_SC_AUDIT); satvwrite(SAT_AE_CUSTOM, SAT_FAILURE, "%s", "Denied root root access to jesus"); ], have_audit=yes, have_audit=no)
194: dnl AC_MSG_RESULT($have_audit)
195: dnl if test "$have_audit" = "yes"; then
196: dnl AC_DEFINE(HAVE_AUDIT)
197: dnl fi
198: dnl
199: dnl dnl
200: dnl dnl Test for sys/mac.h and t6net.h, mac_get_file() and tsix_get_mac(),
201: dnl dnl and _SC_MAC and _SC_IP_SECOPTS. These are all squished together into
202: dnl dnl a single test because even if the system has MAC labels, they're no use
203: dnl dnl to us unless we have a way to get them from the client connection (which
204: dnl dnl is what tsix_get_mac is for).
205: dnl dnl
206: dnl dnl On IRIX, install trix_eoe to get t6net.h.
207: dnl dnl
208: dnl AC_MSG_CHECKING([MAC and TSIX (tsix_get_mac and mac_get_file, mostly)])
209: dnl AC_TRY_COMPILE([#include <stdlib.h>
210: dnl #include <unistd.h>
211: dnl #include <sys/mac.h>
212: dnl #include <t6net.h>], [sysconf(_SC_MAC); sysconf(_SC_IP_SECOPTS); mac_get_file("/"); tsix_get_mac(0, (mac_t *)0);], have_mac=yes, have_mac=no)
213: dnl AC_MSG_RESULT($have_mac)
214: dnl if test "$have_mac" = "yes"; then
215: dnl AC_DEFINE(HAVE_MAC)
216: dnl fi
217:
218:
219:
220: dnl
221: dnl Checks for typedefs, structures, and compiler characteristics.
222: dnl
223: dnl (we don't need any of these for the simple tcpmux test... we will need to
224: dnl fix many of these later, though, and comment them in.)
225: dnl
226: dnl Good candidates for this section would be support for bool and namespaces.
227: dnl
228: dnl AC_C_CONST
229: dnl AC_TYPE_UID_T
230: dnl AC_C_INLINE
231: dnl AC_TYPE_MODE_T
232: dnl AC_TYPE_OFF_T
233: dnl AC_TYPE_PID_T
234: dnl AC_TYPE_SIZE_T
235: dnl AC_STRUCT_ST_RDEV
236: dnl AC_HEADER_TIME
237: dnl AC_STRUCT_TM
238:
239: dnl
240: dnl Test for stat.st_fstype member (a char[] on IRIX)
241: dnl
242: AC_CACHE_CHECK([for stat.st_fstype string], fam_cv_stat_st_fstype_is_string, AC_TRY_COMPILE([#include <sys/stat.h>], [struct stat st; char *s = st.st_fstype; ], fam_cv_stat_st_fstype_is_string=yes, fam_cv_stat_st_fstype_is_string=no))
243: if test "$fam_cv_stat_st_fstype_is_string" = "yes"; then
244: AC_DEFINE(HAVE_STAT_ST_FSTYPE_STRING, 1)
245: else
246: AC_DEFINE(HAVE_STAT_ST_FSTYPE_STRING, 0)
247: fi
248:
249: dnl
250: dnl Test for stat.st_ctim.tv_nsec member
251: dnl
252: AC_CACHE_CHECK([for stat.st_ctim.tv_nsec (nanoseconds)],
253: fam_cv_stat_st_ctim_tv_nsec,
254: AC_TRY_COMPILE([#include <sys/stat.h>],
255: [struct stat st; st.st_ctim.tv_nsec = 0; ],
256: fam_cv_stat_st_ctim_tv_nsec=yes, fam_cv_stat_st_ctim_tv_nsec=no))
257: if test "$fam_cv_stat_st_ctim_tv_nsec" = "yes"; then
258: AC_DEFINE(HAVE_STAT_ST_CTIM_TV_NSEC, 1)
259: fi
260:
261:
262: dnl
263: dnl Test for mountlist struct or pointer-to-struct. For now we will assume
264: dnl that if mountlist is a pointer-to-struct, its relevant members are
265: dnl ml_hostname and ml_directory; otherwise we will assume they're ml_host
266: dnl and ml_path.
267: dnl
268: AC_MSG_CHECKING([for mountlist struct])
269: AC_TRY_COMPILE([
270: typedef int fhandle_t;
271: #include <rpc/rpc.h>
272: #include <rpcsvc/mount.h>
273: ], [mountlist ml; char *h = ml.ml_name; ], have_mountlist_struct=yes, have_mountlist_struct=no)
274: AC_MSG_RESULT($have_mountlist_struct)
275: if test "$have_mountlist_struct" = "yes"; then
276: AC_DEFINE(HAVE_MOUNTLIST_STRUCT, 1)
277: AC_DEFINE(HAVE_MOUNTLIST_PTR, 0)
278: else
279: AC_DEFINE(HAVE_MOUNTLIST_STRUCT, 0)
280:
281: AC_MSG_CHECKING([for mountlist pointer])
282: AC_TRY_COMPILE([#include <rpcsvc/mount.h>], [mountlist ml; char *h = ml->ml_hostname; ], have_mountlist_ptr=yes, have_mountlist_ptr=no)
283: AC_MSG_RESULT($have_mountlist_ptr)
284:
285: if test "$have_mountlist_ptr" = "yes"; then
286: AC_DEFINE(HAVE_MOUNTLIST_PTR, 1)
287: else
288: AC_DEFINE(HAVE_MOUNTLIST_PTR, 0)
289: AC_MSG_ERROR([Didn't find mountlist.ml_name or mountlist->ml_hostname in rpcsvc/mount.h])
290: fi
291: fi
292:
293:
294: dnl FAM_DECL_IN_MNTENT(mntent def to check, [action-if-true [,action-if-false]])
295: AC_DEFUN(FAM_DECL_IN_MNTENT, [
296: AC_MSG_CHECKING([mntent.h for $1])
297: AC_TRY_COMPILE([#include <mntent.h>], [const char *foo = $1;], fam_have_decl_in_mntent=yes, fam_have_decl_in_mntent=no)
298: AC_MSG_RESULT($fam_have_decl_in_mntent)
299: if test "$fam_have_decl_in_mntent" = "yes"; then
300: ifelse([$2], , :, [$2])
301: else
302: ifelse([$3], , :, [$3])
303: fi
304: ])
305:
306: dnl
307: dnl Test for MNTTYPE_NFS, MNTTYPE_NFS2, MNTTYPE_NFS3, and MNTTYPE_CACHEFS.
308: dnl If we don't have MNTTYPE_NFS , we croak.
309: dnl
310:
311: FAM_DECL_IN_MNTENT(MNTTYPE_NFS, ,AC_MSG_ERROR(Didn't find MNTTYPE_NFS in mntent.h))
312: FAM_DECL_IN_MNTENT(MNTTYPE_NFS2, AC_DEFINE(HAVE_MNTTYPE_NFS2))
313: FAM_DECL_IN_MNTENT(MNTTYPE_NFS3, AC_DEFINE(HAVE_MNTTYPE_NFS3))
314: FAM_DECL_IN_MNTENT(MNTTYPE_CACHEFS, AC_DEFINE(HAVE_MNTTYPE_CACHEFS))
315:
316: dnl
317: dnl Test for bindresvport() prototype.
318: dnl
319: AC_CACHE_CHECK([netinet/in.h for bindresvport()], fam_cv_bindresvport_in_in_h, AC_TRY_COMPILE([#include <netinet/in.h>], [int p = 0; struct sockaddr_in s; bindresvport(p, &s); ], fam_cv_bindresvport_in_in_h=yes, fam_cv_bindresvport_in_in_h=no))
320: if test "$fam_cv_bindresvport_in_in_h" = "yes"; then
321: AC_DEFINE(HAVE_BINDRESVPORT_PROTO, 1)
322: else
323: AC_DEFINE(HAVE_BINDRESVPORT_PROTO, 0)
324: fi
325:
326: dnl
327: dnl Test for prmap_sgi_t
328: dnl
329: AC_CACHE_CHECK([for prmap_sgi_t], fam_cv_have_prmap_sgi_t, AC_TRY_COMPILE([#include <sys/procfs.h>], [prmap_sgi_t f; f.pr_lockcnt = 0; ], fam_cv_have_prmap_sgi_t=yes, fam_cv_have_prmap_sgi_t=no))
330: if test "$fam_cv_have_prmap_sgi_t" = "yes"; then
331: AC_DEFINE(HAVE_PRMAP_SGI_T, 1)
332: else
333: AC_DEFINE(HAVE_PRMAP_SGI_T, 0)
334: fi
335:
336: dnl
337: dnl Test for socklen_t
338: dnl
339: AC_CACHE_CHECK([for socklen_t], fam_cv_have_socklen_t, AC_TRY_COMPILE([#include <sys/types.h>
340: #include <sys/socket.h>], [socklen_t len; struct sockaddr s; accept(0, &s, &len); ], fam_cv_have_socklen_t=yes, fam_cv_have_socklen_t=no))
341: if test "$fam_cv_have_socklen_t" = "yes"; then
342: AC_DEFINE(CONFIG_SOCKLEN_T, socklen_t)
343: else
344: AC_DEFINE(CONFIG_SOCKLEN_T, int)
345: fi
346:
347: dnl
348: dnl Test for built-in C++ bool type
349: dnl
350: AC_CACHE_CHECK([for built-in bool], fam_cv_have_bool, AC_TRY_COMPILE(, [bool foo = true; if(foo) foo = false; ], fam_cv_have_bool=yes, fam_cv_have_bool=no))
351: if test "$fam_cv_have_bool" = "yes"; then
352: AC_DEFINE(HAVE_BOOL, 1)
353: else
354: AC_DEFINE(HAVE_BOOL, 0)
355: fi
356:
357:
358: dnl
359: dnl Test for C++ namespace support
360: dnl
361: AC_CACHE_CHECK([for C++ namespace support], fam_cv_have_namespace, AC_TRY_RUN([namespace foo { int bar(void) { return 0; } } int main(void) { return foo::bar(); } ], fam_cv_have_namespace=yes, fam_cv_have_namespace=no, fam_cv_have_namespace=no))
362: if test "$fam_cv_have_namespace" = "yes"; then
363: AC_DEFINE(HAVE_NAMESPACE, 1)
364: else
365: AC_DEFINE(HAVE_NAMESPACE, 0)
366: fi
367:
368: dnl
369: dnl Test for IRIX xtab/Linux knfs xtab/no xtab support.
370: dnl
371: dnl AC_MSG_CHECKING([for IRIX xtab support])
372: if test `uname` = 'IRIX' || test `uname` = 'IRIX64'; then
373: AC_DEFINE(HAVE_IRIX_XTAB_VERIFICATION, 1)
374: fi
375: dnl XXX This should test for knfs on Linux, too.
376:
377:
378: dnl dnl
379: dnl dnl This is lame. Here's a list of flags which are different (or where we
380: dnl dnl want different behaviors) depending on whether we're using CC on IRIX
381: dnl dnl or g++ on Linux. And if we're using g++ on IRIX... well, ignore that
382: dnl dnl squeaking sound.
383: dnl dnl
384: dnl if test -n "$GXX"; then
385: dnl dnl WOFF="-Wall -Wtemplate-debugging"
386: dnl WOFF="-Wall"
387: dnl OPTIMIZER="-g"
388: dnl CSTYLE=
389: dnl MKDEPFILE=
390: dnl dnl MKDEPFILE='$(OBJECTS:.o=.d)'
391: dnl MKDEPOPT="-MD"
392: dnl CXXTEMPLATES=
393: dnl dnl CXXTEMPLATES=-Wtemplate-debugging
394: dnl else
395: dnl dnl 1209 - remark - controlling expression (in assertion or loop?) is
396: dnl dnl constant
397: dnl dnl 1355 - remark - extra ";" ignored
398: dnl WOFF="-fullwarn -woff 1209,1355"
399: dnl OPTIMIZER="-g"
400: dnl dnl XXX THE NEXT LINE IS LAME
401: dnl CSTYLE="-mips3 -n32"
402: dnl dnl The Makedepend stuff is pointless because it's not being included
403: dnl dnl in the makefile. How to fix that? You can't just go
404: dnl dnl "sinclude $MKDEPFILE" because the g++ stuff uses a bunch of .d files.
405: dnl dnl (The compiler doesn't actually read the Makedepend file & determine
406: dnl dnl which files it needs to update, right?)
407: dnl MKDEPFILE=Makedepend
408: dnl MKDEPOPT='-MDupdate $(MKDEPFILE)'
409: dnl dnl MKDEPOPT=
410: dnl dnl GCXXINCS='-nostdinc -I$(INCLDIR)/CC -I$(INCLDIR)'
411: dnl CXXTEMPLATES="-ptused"
412: dnl fi
413: AC_SUBST(MKDEPFILE)
414:
415: dnl dnl We will stomp CXXFLAGS here.
416: dnl CXXFLAGS="$WOFF $OPTIMIZER $CSTYLE $MKDEPOPT $CXXTEMPLATES"
417: dnl echo "setting CXXFLAGS = $CXXFLAGS"
418:
419: dnl
420: dnl See if "echo" needs -e flag.
421: dnl
422: AC_PATH_PROG(ECHO, echo)
423: AC_MSG_CHECKING([for echo -e flag])
424: if test "`$ECHO -e foo`" = 'foo'; then
425: ECHO="$ECHO -e"
426: fi
427: AC_SUBST(ECHO)
428: AC_MSG_RESULT($ECHO)
429:
430:
431: dnl
432: dnl Checks for library functions.
433: dnl
434: dnl (we don't need any of these for the simple tcpmux test... we will need to
435: dnl fix many of these later, though, and comment them in.)
436: dnl
437: dnl AC_PROG_GCC_TRADITIONAL
438: dnl AC_HEADER_MAJOR
439: dnl AC_FUNC_STRFTIME
440: dnl AC_FUNC_UTIME_NULL
441: dnl AC_FUNC_VPRINTF
442: dnl AC_CHECK_FUNCS(getcwd gethostname gettimeofday getwd mkdir putenv rmdir select socket strdup strerror strspn strtol strtoul)
443:
444: SUPPORT_OBJS=
445: dnl AC_CHECK_FUNCS(snprintf, have_snprintf=yes, have_snprintf=no)
446: dnl if test "$have_snprintf" = "yes"; then
447: dnl AC_DEFINE(HAVE_SNPRINTF)
448: snprintf_o=
449: dnl else
450: dnl snprintf_o=snprintf.o
451: dnl SUPPORT_OBJS="$SUPPORT_OBJS \$\(top_srcdir\)/support/snprintf.o"
452: dnl fi
453: AC_SUBST(snprintf_o)
454: dnl
455: dnl AC_CHECK_FUNCS(foo, have_foo=yes, have_foo=no)
456: dnl if test "$have_foo" = "yes"; then
457: dnl AC_DEFINE(HAVE_FOO)
458: foo_o=
459: dnl else
460: dnl foo_o=foo.o
461: dnl SUPPORT_OBJS="$SUPPORT_OBJS \$\(top_srcdir\)/support/foo.o"
462: dnl fi
463: AC_SUBST(foo_o)
464:
465:
466:
467: dnl
468: dnl This adds #!gmake as the first line of each of these files. We need this
469: dnl on IRIX to use gmake instead of smake/pmake/etc., which will croak on the
470: dnl gmake Makefiles.
471: dnl
472: AC_OUTPUT_COMMANDS(
473: [
474: if test `uname` = 'IRIX' || test `uname` = 'IRIX64'; then
475: TMPFILE=configure.tmp
476: for f in $CONFIG_FILES; do
477: if test `basename $f` != 'Makefile'; then
478: # echo "skipping $f"
479: continue
480: fi
481: echo "adding #!gmake to $f"
482: if test -s $TMPFILE; then
483: echo "gahh, file $TMPFILE already exists"
484: exit 1
485: fi
486: mv $f $TMPFILE
487: echo '#!gmake' > $f
488: cat $TMPFILE >> $f
489: rm $TMPFILE
490: done
491: fi
492: ])
493:
494: dnl
495: dnl This removes lines starting with ## from fam.conf.
496: dnl
497: AC_OUTPUT_COMMANDS(
498: [
499: TMPFILE=configure.tmp
500: for f in $CONFIG_FILES; do
501: if test `basename $f` != 'fam.conf'; then
502: continue
503: fi
504: echo "removing maintainer comments from $f"
505: if test -s $TMPFILE; then
506: echo "gahh, file $TMPFILE already exists"
507: exit 1
508: fi
509: mv $f $TMPFILE
510: sed -e "/^##/ d" < $TMPFILE > $f
511: rm $TMPFILE
512: done
513: ])
514:
515: dnl
516: dnl This grief is for replacing XXX_FAM_CONF with $FAM_CONF
517: dnl in the fam(1M) man page. (Simply putting @FAM_CONF@ in
518: dnl fam.1m.in puts the string "$sysconfdir/fam.conf" in the
519: dnl man page, which isn't acceptable. Isn't there a way to make
520: dnl autoconf handle this??)
521: dnl
522: dnl While we're at it, we also remove lines starting with .\"##,
523: dnl and fiddle with lines starting with .\"IRIX depending on
524: dnl whether we're building on Linux or IRIX.
525: dnl
526: AC_OUTPUT_COMMANDS(
527: [
528: TMPFILE=configure.tmp
529: for f in $CONFIG_FILES; do
530: if test `basename $f` != 'fam.1m'; then
531: continue
532: fi
533: echo "replacing XXX_FAM_CONF with $FAM_CONF and removing maintainer comments in $f"
534: if test -s $TMPFILE; then
535: echo "gahh, file $TMPFILE already exists"
536: exit 1
537: fi
538: mv $f $TMPFILE
539: if test `uname` = 'IRIX' || test `uname` = 'IRIX64'; then
540: # remove leading .\"IRIX parts so that the lines will be
541: # printed on IRIX.
542: sed -e '/^\.\\"##/ d' -e "s#XXX_FAM_CONF#$FAM_CONF#" -e 's/^\.\\"IRIX[ ]\{0,2\}//' < $TMPFILE > $f
543: else
544: sed -e '/^\.\\"##/ d' -e "s#XXX_FAM_CONF#$FAM_CONF#" -e '/^\.\\"IRIX/ d' < $TMPFILE > $f
545: fi
546: rm $TMPFILE
547: done
548: ], [prefix=$prefix ; sysconfdir=$sysconfdir ; FAM_CONF=$FAM_CONF])
549:
550: dnl
551: dnl The list of files to generate.
552: dnl
553: AC_OUTPUT(
554: Makefile
555: build/Makefile
556: build/rpm/Makefile
557: build/rpm/rpm.spec
558: fam/Makefile
559: fam/fam.conf
560: include/Makefile
561: libfam/Makefile
562: man/Makefile
563: man/fam.1m
564: support/Makefile
565: test/Makefile
566: util/Makefile
567: util/editconf/Makefile
568: )
569:
570: dnl
571: dnl fam is a good deal less interesting without imon.
572: dnl
573: if test "$have_imon" != 'yes'; then
574: cat << EOF
575:
576: ******************************************************************
577: * *
578: * Note! Kernel support for imon was not detected. fam should *
579: * still work, but it will have to poll monitored filesystems *
580: * instead of receiving file operation events from the kernel. *
581: * *
582: * If you think your kernel has imon, see what this script is *
583: * looking for (on Linux, probably /usr/include/linux/imon.h), *
584: * fix the problem (perhaps by adding a link), and run this *
585: * again. (You probably need to remove config.cache first.) *
586: * *
587: * See http://oss.sgi.com/projects/fam/ for more information. *
588: * *
589: ******************************************************************
590:
591: EOF
592: fi
593:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>