aclocal.m4
上传用户:weiliju62
上传日期:2007-01-06
资源大小:619k
文件大小:19k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. dnl Checks if structure 'stat' have field 'st_spare1'.
  2. dnl Defines HAVE_ST_SPARE1 on success.
  3. AC_DEFUN(AC_STRUCT_ST_SPARE1,
  4. [AC_CACHE_CHECK([if struct stat contains st_spare1], ac_cv_struct_st_spare1,
  5.                 [AC_TRY_COMPILE([#include <sys/types.h>
  6. #include <sys/stat.h>],
  7.                                 [struct  stat s; s.st_spare1 = 0;],
  8.                                 [ac_cv_struct_st_spare1=yes],
  9.                                 [ac_cv_struct_st_spare1=no])])
  10. if test $ac_cv_struct_st_spare1 = yes; then
  11.   AC_DEFINE(HAVE_ST_SPARE1)
  12. fi])
  13. dnl Checks if structure 'stat' have field 'st_atim.tv_nsec'.
  14. dnl Defines HAVE_ST_NSEC on success.
  15. AC_DEFUN(AC_STRUCT_ST_NSEC,
  16. [AC_CACHE_CHECK([if struct stat contains st_atim.tv_nsec], ac_cv_struct_st_nsec,
  17.                 [AC_TRY_COMPILE([#include <sys/types.h>
  18. #include <sys/stat.h>],
  19.                                 [struct  stat s; s.st_atim.tv_nsec = 0;],
  20.                                 [ac_cv_struct_st_nsec=yes],
  21.                                 [ac_cv_struct_st_nsec=no])])
  22. if test $ac_cv_struct_st_nsec = yes; then
  23.   AC_DEFINE(HAVE_ST_NSEC)
  24. fi])
  25. dnl Checks if structure 'mtget' have field 'mt_dsreg'.
  26. dnl Defines HAVE_MTGET_DSREG on success.
  27. AC_DEFUN(AC_STRUCT_MTGET_DSREG,
  28. [AC_CACHE_CHECK([if struct mtget contains mt_dsreg], ac_cv_struct_mtget_dsreg,
  29.                 [AC_TRY_COMPILE([#include <sys/types.h>
  30. #include <sys/mtio.h>],
  31.                                 [struct  mtget t; t.mt_dsreg = 0;],
  32.                                 [ac_cv_struct_mtget_dsreg=yes],
  33.                                 [ac_cv_struct_mtget_dsreg=no])])
  34. if test $ac_cv_struct_mtget_dsreg = yes; then
  35.   AC_DEFINE(HAVE_MTGET_DSREG)
  36. fi])
  37. dnl Checks if structure 'mtget' have field 'mt_resid'.
  38. dnl Defines HAVE_MTGET_RESID on success.
  39. AC_DEFUN(AC_STRUCT_MTGET_RESID,
  40. [AC_CACHE_CHECK([if struct mtget contains mt_resid], ac_cv_struct_mtget_resid,
  41.                 [AC_TRY_COMPILE([#include <sys/types.h>
  42. #include <sys/mtio.h>],
  43.                                 [struct  mtget t; t.mt_resid = 0;],
  44.                                 [ac_cv_struct_mtget_resid=yes],
  45.                                 [ac_cv_struct_mtget_resid=no])])
  46. if test $ac_cv_struct_mtget_resid = yes; then
  47.   AC_DEFINE(HAVE_MTGET_RESID)
  48. fi])
  49. dnl Checks if structure 'mtget' have field 'mt_fileno'.
  50. dnl Defines HAVE_MTGET_FILENO on success.
  51. AC_DEFUN(AC_STRUCT_MTGET_FILENO,
  52. [AC_CACHE_CHECK([if struct mtget contains mt_fileno],
  53.                 ac_cv_struct_mtget_fileno,
  54.                 [AC_TRY_COMPILE([#include <sys/types.h>
  55. #include <sys/mtio.h>],
  56.                 [struct  mtget t; t.mt_fileno = 0;],
  57.                  [ac_cv_struct_mtget_fileno=yes],
  58.                  [ac_cv_struct_mtget_fileno=no])])
  59. if test $ac_cv_struct_mtget_fileno = yes; then
  60.   AC_DEFINE(HAVE_MTGET_FILENO)
  61. fi])
  62. dnl Checks if structure 'mtget' have field 'mt_blkno'.
  63. dnl Defines HAVE_MTGET_BLKNO on success.
  64. AC_DEFUN(AC_STRUCT_MTGET_BLKNO,
  65. [AC_CACHE_CHECK([if struct mtget contains mt_blkno], ac_cv_struct_mtget_blkno,
  66.                 [AC_TRY_COMPILE([#include <sys/types.h>
  67. #include <sys/mtio.h>],
  68.                                 [struct  mtget t; t.mt_blkno = 0;],
  69.                                 [ac_cv_struct_mtget_blkno=yes],
  70.                                 [ac_cv_struct_mtget_blkno=no])])
  71. if test $ac_cv_struct_mtget_blkno = yes; then
  72.   AC_DEFINE(HAVE_MTGET_BLKNO)
  73. fi])
  74. dnl Checks for illegal declaration of 'union semun' in sys/sem.h.
  75. dnl Defines HAVE_UNION_SEMUN on success.
  76. AC_DEFUN(AC_STRUCT_UNION_SEMUN,
  77. [AC_CACHE_CHECK([if an illegal declaration for union semun in sys/sem.h exists], ac_cv_struct_union_semun,
  78.                 [AC_TRY_COMPILE([#include <sys/types.h>
  79. #include <sys/ipc.h>
  80. #include <sys/sem.h>], [union semun s;],
  81.                 [ac_cv_struct_union_semun=yes],
  82.                 [ac_cv_struct_union_semun=no])])
  83. if test $ac_cv_struct_union_semun = yes; then
  84.   AC_DEFINE(HAVE_UNION_SEMUN)
  85. fi])
  86. dnl Checks if 'union wait' is declared in 'wait.h' or 'sys/wait.h'.
  87. dnl Defines HAVE_UNION_WAIT on success.
  88. AC_DEFUN(AC_STRUCT_UNION_WAIT,
  89. [AC_CACHE_CHECK([if union wait is declared in wait.h or sys/wait.h], ac_cv_struct_union_wait,
  90.                 [AC_TRY_COMPILE([#include <sys/types.h>
  91. #if defined(HAVE_WAIT_H)
  92. # include <wait.h>
  93. #else
  94. #include <sys/wait.h>
  95. #endif], [union wait w;],
  96.                 [ac_cv_struct_union_wait=yes],
  97.                 [ac_cv_struct_union_wait=no])])
  98. if test $ac_cv_struct_union_wait = yes; then
  99.   AC_DEFINE(HAVE_UNION_WAIT)
  100. fi])
  101. dnl Checks if 'struct rusage' is declared in sys/resource.h.
  102. dnl Defines HAVE_STRUCT_RUSAGE on success.
  103. AC_DEFUN(AC_STRUCT_RUSAGE,
  104. [AC_CACHE_CHECK([if struct rusage is declared in sys/resource.h], ac_cv_struct_rusage,
  105.                 [AC_TRY_COMPILE([#include <sys/time.h>
  106. #include <sys/resource.h>], [struct rusage r;],
  107.                 [ac_cv_struct_rusage=yes],
  108.                 [ac_cv_struct_rusage=no])])
  109. if test $ac_cv_struct_rusage = yes; then
  110.   AC_DEFINE(HAVE_STRUCT_RUSAGE)
  111. fi])
  112. dnl Checks wether major(), minor() and makedev() are defined in
  113. dnl 'sys/mkdev.h' or in 'sys/sysmacros.h. Defines MAJOR_IN_MKDEV or
  114. dnl MAJOR_IN_SYSMACROS or nothing.
  115. AC_DEFUN(AC_HEADER_MAKEDEV,
  116. [AC_CACHE_CHECK([for header file containing  major(), minor() and makedev()],
  117.                ac_cv_header_makedev,
  118. [ac_cv_header_makedev=none
  119. AC_TRY_COMPILE([#include <sys/types.h>
  120. #include <sys/mkdev.h>],
  121.                [int i = major(0); i = minor(0); i = makedev(0,0);],
  122.                 [ac_cv_header_makedev=sys/mkdev.h])
  123. if test $ac_cv_header_makedev = none; then
  124.   AC_TRY_COMPILE([#include <sys/types.h>
  125. #include <sys/sysmacros.h>],
  126.                  [int i = major(0); i = minor(0); i = makedev(0,0);],
  127.                  [ac_cv_header_makedev=sys/sysmacros.h])
  128. fi])
  129. if test $ac_cv_header_makedev = sys/mkdev.h; then
  130.   AC_DEFINE(MAJOR_IN_MKDEV)
  131. fi
  132. if test $ac_cv_header_makedev = sys/sysmacros.h; then
  133.   AC_DEFINE(MAJOR_IN_SYSMACROS)
  134. fi])
  135. dnl Checks for USG derived STDIO
  136. dnl Defines HAVE_USG_STDIO on success.
  137. AC_DEFUN(AC_HEADER_USG_STDIO,
  138. [AC_CACHE_CHECK([for USG derived STDIO], ac_cv_header_usg_stdio,
  139.                 [AC_TRY_COMPILE([#include <stdio.h>],
  140. [FILE    *f;
  141. int     flag;
  142. int     count;
  143. char    *ptr;
  144. f = fopen("confdefs.h", "r");
  145. flag  = f->_flag & _IONBF;
  146. flag |= f->_flag & _IOERR;
  147. flag |= f->_flag & _IOEOF;
  148. count = f->_cnt;
  149. ptr = (char *)f->_ptr;
  150. fclose(f);],
  151.                 [ac_cv_header_usg_stdio=yes],
  152.                 [ac_cv_header_usg_stdio=no])])
  153. if test $ac_cv_header_usg_stdio = yes; then
  154.   AC_DEFINE(HAVE_USG_STDIO)
  155. fi])
  156. dnl Checks for errno definition in <errno.h>
  157. dnl Defines HAVE_ERRNO_DEF on success.
  158. AC_DEFUN(AC_HEADER_ERRNO_DEF,
  159. [AC_CACHE_CHECK([for errno definition in errno.h], ac_cv_header_errno_def,
  160.                 [AC_TRY_COMPILE([#include <errno.h>],
  161. [errno = 0;],
  162.                 [ac_cv_header_errno_def=yes],
  163.                 [ac_cv_header_errno_def=no])])
  164. if test $ac_cv_header_errno_def = yes; then
  165.   AC_DEFINE(HAVE_ERRNO_DEF)
  166. fi])
  167. dnl Checks for UNIX-98 compliant <inttypes.h>
  168. dnl Defines HAVE_INTTYPES_H on success.
  169. AC_DEFUN(AC_HEADER_INTTYPES,
  170. [AC_CACHE_CHECK([for UNIX-98 compliant inttypes.h], ac_cv_header_inttypes,
  171.                 [AC_TRY_COMPILE([#include <inttypes.h>],
  172. [int8_t c; uint8_t uc; int16_t s; uint16_t us; int32_t i; uint32_t ui;
  173. int64_t ll; uint64_t ull;
  174. intptr_t ip; uintptr_t uip;],
  175.                 [ac_cv_header_inttypes=yes],
  176.                 [ac_cv_header_inttypes=no])])
  177. if test $ac_cv_header_inttypes = yes; then
  178.   AC_DEFINE(HAVE_INTTYPES_H)
  179. fi])
  180. dnl Checks for type long long
  181. dnl Defines HAVE_LONGLONG on success.
  182. AC_DEFUN(AC_TYPE_LONGLONG,
  183. [AC_CACHE_CHECK([for type long long], ac_cv_type_longlong,
  184.                 [AC_TRY_COMPILE([], [long long i;],
  185.                 [ac_cv_type_longlong=yes],
  186.                 [ac_cv_type_longlong=no])])
  187. if test $ac_cv_type_longlong = yes; then
  188.   AC_DEFINE(HAVE_LONGLONG)
  189. fi])
  190. dnl Checks if C-compiler orders bitfields htol
  191. dnl Defines BITFIELDS_HTOL on success.
  192. AC_DEFUN(AC_C_BITFIELDS,
  193. [AC_CACHE_CHECK([whether bitorder in bitfields is htol], ac_cv_c_bitfields_htol,
  194.                 [AC_TRY_RUN([
  195. struct {
  196. unsigned char x1:4;
  197. unsigned char x2:4;
  198. } a;
  199. main()
  200. {
  201. char *cp;
  202. cp = (char *)&a;
  203. *cp = 0x12;
  204. exit(a.x1 == 2);}],
  205.                 [ac_cv_c_bitfields_htol=yes],
  206.                 [ac_cv_c_bitfields_htol=no])])
  207. if test $ac_cv_c_bitfields_htol = yes; then
  208.   AC_DEFINE(BITFIELDS_HTOL)
  209. fi])
  210. dnl Checks if C-compiler understands prototypes
  211. dnl Defines PROTOTYPES on success.
  212. AC_DEFUN(AC_TYPE_PROTOTYPES,
  213. [AC_CACHE_CHECK([for prototypes], ac_cv_type_prototypes,
  214.                 [AC_TRY_RUN([
  215. doit(int i, ...)
  216. {return 0;}
  217. main(int ac, char *av[])
  218. { doit(1, 2, 3);
  219. exit(0);}],
  220.                 [ac_cv_type_prototypes=yes],
  221.                 [ac_cv_type_prototypes=no])])
  222. if test $ac_cv_type_prototypes = yes; then
  223.   AC_DEFINE(PROTOTYPES)
  224. fi])
  225. dnl Checks for type size_t
  226. dnl Defines HAVE_SIZE_T_ on success.
  227. AC_DEFUN(AC_TYPE_SIZE_T_,
  228. [AC_CACHE_CHECK([for type size_t], ac_cv_type_size_t_,
  229.                 [AC_TRY_COMPILE([#include <sys/types.h>], [size_t s;],
  230.                 [ac_cv_type_size_t_=yes],
  231.                 [ac_cv_type_size_t_=no])])
  232. if test $ac_cv_type_size_t_ = yes; then
  233.   AC_DEFINE(HAVE_SIZE_T)
  234. else
  235.   AC_DEFINE(NO_SIZE_T)
  236. fi])
  237. dnl Checks if type char is unsigned
  238. dnl Defines CHAR_IS_UNSIGNED on success.
  239. AC_DEFUN(AC_TYPE_CHAR,
  240. [AC_CACHE_CHECK([if char is unsigned], ac_cv_type_char_unsigned,
  241.                 [AC_TRY_RUN([
  242. main()
  243. {
  244. char c;
  245. c = -1;
  246. exit(c < 0);}],
  247. [ac_cv_type_char_unsigned=yes],
  248. [ac_cv_type_char_unsigned=no],
  249. [ac_cv_type_char_unsigned=no])]) 
  250. if test $ac_cv_type_char_unsigned = yes; then
  251.   AC_DEFINE(CHAR_IS_UNSIGNED)
  252. fi])
  253. dnl Checks if function/macro va_copy() is available
  254. dnl Defines HAVE_VA_COPY on success.
  255. AC_DEFUN(AC_FUNC_VA_COPY,
  256. [AC_CACHE_CHECK([for va_copy], ac_cv_func_va_copy,
  257.                 [AC_TRY_LINK([
  258. #ifdef HAVE_STDARG_H
  259. # include <stdarg.h>
  260. #else
  261. # include <vararg.h>
  262. #endif], 
  263. [
  264. va_list a, b;
  265. va_copy(a, b);],
  266.                 [ac_cv_func_va_copy=yes],
  267.                 [ac_cv_func_va_copy=no])])
  268. if test $ac_cv_func_va_copy = yes; then
  269.   AC_DEFINE(HAVE_VA_COPY)
  270. fi])
  271. dnl Checks if function/macro __va_copy() is available
  272. dnl Defines HAVE__VA_COPY on success.
  273. AC_DEFUN(AC_FUNC__VA_COPY,
  274. [AC_CACHE_CHECK([for __va_copy], ac_cv_func__va_copy,
  275.                 [AC_TRY_LINK([
  276. #ifdef HAVE_STDARG_H
  277. # include <stdarg.h>
  278. #else
  279. # include <vararg.h>
  280. #endif], 
  281. [
  282. va_list a, b;
  283. __va_copy(a, b);],
  284.                 [ac_cv_func__va_copy=yes],
  285.                 [ac_cv_func__va_copy=no])])
  286. if test $ac_cv_func__va_copy = yes; then
  287.   AC_DEFINE(HAVE__VA_COPY)
  288. fi])
  289. dnl Checks if va_list is an array
  290. dnl Defines VA_LIST_IS_ARRAY on success.
  291. AC_DEFUN(AC_TYPE_VA_LIST,
  292. [AC_CACHE_CHECK([if va_list is an array], ac_cv_type_va_list_array,
  293.                 [AC_TRY_RUN([
  294. #ifdef HAVE_STDARG_H
  295. # include <stdarg.h>
  296. #else
  297. # include <vararg.h>
  298. #endif
  299. func(x)
  300. va_list x;
  301. {
  302. return (sizeof(x));
  303. }
  304. main()
  305. {
  306. va_list val;
  307. if (sizeof(val) == sizeof(void *))
  308. exit(1);
  309. if (func(val) == sizeof(void *))
  310. exit(0);
  311.  exit(1);}],
  312. [ac_cv_type_va_list_array=yes],
  313. [ac_cv_type_va_list_array=no],
  314. [ac_cv_type_va_list_array=no])]) 
  315. if test $ac_cv_type_va_list_array = yes; then
  316.   AC_DEFINE(VA_LIST_IS_ARRAY)
  317. fi])
  318. dnl Checks if quotactl is present as ioctl
  319. dnl Defines HAVE_QUOTAIOCTL on success.
  320. AC_DEFUN(AC_FUNC_QUOTAIOCTL,
  321. [AC_CACHE_CHECK([if quotactl is an ioctl], ac_cv_func_quotaioctl,
  322.                 [AC_TRY_LINK([#include <sys/types.h>
  323. #include <sys/fs/ufs_quota.h>],
  324. [struct quotctl q; ioctl(0, Q_QUOTACTL, &q)],
  325. [ac_cv_func_quotaioctl=yes],
  326. [ac_cv_func_quotaioctl=no])]) 
  327. if test $ac_cv_func_quotaioctl = yes; then
  328.   AC_DEFINE(HAVE_QUOTAIOCTL)
  329. fi])
  330. dnl Checks if function __dtoa() is available
  331. dnl Defines HAVE_DTOA on success.
  332. AC_DEFUN(AC_FUNC_DTOA,
  333. [AC_CACHE_CHECK([for __dtoa], ac_cv_func_dtoa,
  334.                 [AC_TRY_LINK([extern  char *__dtoa();], 
  335. [int decpt; int sign; char *ep; char *bp;
  336. bp = __dtoa(0.0, 2, 6, &decpt, &sign, &ep);],
  337.                 [ac_cv_func_dtoa=yes],
  338.                 [ac_cv_func_dtoa=no])])
  339. if test $ac_cv_func_dtoa = yes; then
  340.   AC_DEFINE(HAVE_DTOA)
  341. fi])
  342. dnl Checks if working ecvt() exists
  343. dnl Defines HAVE_ECVT on success.
  344. AC_DEFUN(AC_FUNC_ECVT,
  345. [AC_CACHE_CHECK([for working ecvt() ], ac_cv_func_ecvt,
  346.                 [AC_TRY_RUN([
  347. sprintf(s)
  348. char *s;
  349. {
  350. strcpy(s, "DEAD");
  351. }
  352. main()
  353. {
  354. int a, b;
  355. /* exit (strcmp("DEAD", ecvt(1.9, 2, &a, &b)) == 0);*/
  356. exit (strcmp("19", ecvt(1.9, 2, &a, &b)) != 0);
  357. }],
  358.                 [ac_cv_func_ecvt=yes],
  359.                 [ac_cv_func_ecvt=no])])
  360. if test $ac_cv_func_ecvt = yes; then
  361.   AC_DEFINE(HAVE_ECVT)
  362. fi])
  363. dnl Checks if working fcvt() exists
  364. dnl Defines HAVE_FCVT on success.
  365. AC_DEFUN(AC_FUNC_FCVT,
  366. [AC_CACHE_CHECK([for working fcvt() ], ac_cv_func_fcvt,
  367.                 [AC_TRY_RUN([
  368. sprintf(s)
  369. char *s;
  370. {
  371. strcpy(s, "DEAD");
  372. }
  373. main()
  374. {
  375. int a, b;
  376. /* exit (strcmp("DEAD", fcvt(1.9, 2, &a, &b)) == 0);*/
  377. exit (strcmp("190", fcvt(1.9, 2, &a, &b)) != 0);
  378. }],
  379.                 [ac_cv_func_fcvt=yes],
  380.                 [ac_cv_func_fcvt=no])])
  381. if test $ac_cv_func_fcvt = yes; then
  382.   AC_DEFINE(HAVE_FCVT)
  383. fi])
  384. dnl Checks if working gcvt() exists
  385. dnl Defines HAVE_GCVT on success.
  386. AC_DEFUN(AC_FUNC_GCVT,
  387. [AC_CACHE_CHECK([for working gcvt() ], ac_cv_func_gcvt,
  388.                 [AC_TRY_RUN([
  389. sprintf(s)
  390. char *s;
  391. {
  392. strcpy(s, "DEAD");
  393. }
  394. main()
  395. {
  396. char buf[32];
  397. /* exit (strcmp("DEAD", gcvt(1.9, 10, buf)) == 0);*/
  398. exit (strcmp("1.9", gcvt(1.9, 10, buf)) != 0);
  399. }],
  400.                 [ac_cv_func_gcvt=yes],
  401.                 [ac_cv_func_gcvt=no])])
  402. if test $ac_cv_func_gcvt = yes; then
  403.   AC_DEFINE(HAVE_GCVT)
  404. fi])
  405. dnl Checks if function uname() is available
  406. dnl Defines HAVE_UNAME on success.
  407. AC_DEFUN(AC_FUNC_UNAME,
  408. [AC_CACHE_CHECK([for uname], ac_cv_func_uname,
  409.                 [AC_TRY_LINK([#include <sys/utsname.h>], 
  410. [struct utsname un;
  411. uname(&un);],
  412.                 [ac_cv_func_uname=yes],
  413.                 [ac_cv_func_uname=no])])
  414. if test $ac_cv_func_uname = yes; then
  415.   AC_DEFINE(HAVE_UNAME)
  416. fi])
  417. dnl Checks if function mlockall() is available
  418. dnl beware HP-UX 10.x it contains a bad mlockall() in libc
  419. dnl Defines HAVE_MLOCKALL on success.
  420. AC_DEFUN(AC_FUNC_MLOCKALL,
  421. [AC_CACHE_CHECK([for mlockall], ac_cv_func_mlockall,
  422.                 [AC_TRY_RUN([
  423. #include <sys/types.h>
  424. #include <sys/mman.h>
  425. #include <errno.h>
  426. main()
  427. {
  428. if (mlockall(MCL_CURRENT|MCL_FUTURE) < 0) {
  429. if (errno == EPERM || errno ==  EACCES)
  430. exit(0);
  431. exit(-1);
  432. }
  433. exit(0);
  434. }
  435. ],
  436.                 [ac_cv_func_mlockall=yes],
  437.                 [ac_cv_func_mlockall=no])])
  438. if test $ac_cv_func_mlockall = yes; then
  439.   AC_DEFINE(HAVE_MLOCKALL)
  440. fi])
  441. dnl Checks if mmap() works to get shared memory
  442. dnl Defines HAVE_SMMAP on success.
  443. AC_DEFUN(AC_FUNC_SMMAP,
  444. [AC_CACHE_CHECK([if mmap works to get shared memory], ac_cv_func_smmap,
  445.                 [AC_TRY_RUN([
  446. #include <sys/types.h>
  447. #include <sys/mman.h>
  448. char *
  449. mkshare()
  450. {
  451.         int     size = 8192;
  452.         int     f;
  453.         char    *addr;
  454. #ifdef  MAP_ANONYMOUS   /* HP/UX */
  455.         f = -1;
  456.         addr = mmap(0, size, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, f, 0);
  457. #else
  458.         if ((f = open("/dev/zero", 2)) < 0)
  459.                 exit(1);
  460.         addr = mmap(0, size, PROT_READ|PROT_WRITE, MAP_SHARED, f, 0);
  461. #endif
  462.         if (addr == (char *)-1)
  463.                 exit(1);
  464.         close(f);
  465.         return (addr);
  466. }
  467. main()
  468. {
  469.         char    *addr;
  470.         
  471.         addr = mkshare(8192);
  472.         *addr = 'I';
  473.         switch (fork()) {
  474.         case -1:
  475.                 printf("helpn"); exit(1);
  476.         case 0: /* child */
  477.                 *addr = 'N';
  478.                 _exit(0);
  479.                 break;
  480.         default: /* parent */
  481.                 wait(0);
  482.                 sleep(1);
  483.                 break;
  484.         }
  485.         if (*addr != 'N')
  486.                 exit(1);
  487.         exit(0);
  488. }
  489. ], 
  490.                 [ac_cv_func_smmap=yes],
  491.                 [ac_cv_func_smmap=no],
  492.                 [ac_cv_func_smmap=no])])
  493. if test $ac_cv_func_smmap = yes; then
  494.   AC_DEFINE(HAVE_SMMAP)
  495. fi])
  496. dnl Checks if sys_siglist[] exists
  497. dnl Defines HAVE_SYS_SIGLIST on success.
  498. AC_DEFUN(AC_FUNC_SYS_SIGLIST,
  499. [AC_CACHE_CHECK([for sys_siglist], ac_cv_func_sys_siglist,
  500.                 [AC_TRY_RUN([
  501. main()
  502. { extern char *sys_siglist[];
  503. if (sys_siglist[1] == 0)
  504. exit(1);
  505. exit(0);}],
  506.                 [ac_cv_func_sys_siglist=yes],
  507.                 [ac_cv_func_sys_siglist=no])])
  508. if test $ac_cv_func_sys_siglist = yes; then
  509.   AC_DEFINE(HAVE_SYS_SIGLIST)
  510. fi])
  511. dnl Checks for maximum number of bits in minor device number
  512. AC_DEFUN(AC_CHECK_MINOR_BITS,
  513. [AC_REQUIRE([AC_HEADER_MAKEDEV])dnl
  514. changequote(<<, >>)dnl
  515. define(<<AC_MACRO_NAME>>, DEV_MINOR_BITS)dnl
  516. dnl The cache variable name.
  517. define(<<AC_CV_NAME>>, ac_cv_dev_minor_bits)dnl
  518. changequote([, ])dnl
  519. AC_MSG_CHECKING(bits in minor device number)
  520. AC_CACHE_VAL(AC_CV_NAME,
  521. [AC_TRY_RUN([#include <stdio.h>
  522. #include <sys/types.h>
  523. #ifdef major
  524. # define _FOUND_MAJOR_
  525. #endif
  526. #ifdef MAJOR_IN_MKDEV
  527. # include <sys/mkdev.h>
  528. # define _FOUND_MAJOR_
  529. #endif
  530. #ifndef _FOUND_MAJOR_
  531. # ifdef MAJOR_IN_SYSMACROS
  532. # include <sys/sysmacros.h>
  533. # define _FOUND_MAJOR_
  534. # endif
  535. #endif
  536. #ifndef _FOUND_MAJOR_
  537. # if defined(hpux) || defined(__hpux__) || defined(__hpux)
  538. # include <sys/mknod.h>
  539. # define _FOUND_MAJOR_
  540. # endif
  541. #endif
  542. #ifndef _FOUND_MAJOR_
  543. # define major(dev) (((dev) >> 8) & 0xFF)
  544. # define minor(dev) ((dev) & 0xFF)
  545. # define makedev(majo, mino) (((majo) << 8) | (mino))
  546. #endif
  547. main()
  548. {
  549. long l = 1;
  550. int i;
  551. int m;
  552. int c = 0;
  553. FILE *f=fopen("conftestval", "w");
  554. if (!f) exit(1);
  555. for (i=1, m=0; i <= 32; i++, l<<=1) {
  556. if (minor(l) == 0 && c == 0)
  557. c = m;
  558. if (minor(l) != 0)
  559. m = i;
  560. }
  561. fprintf(f, "%dn", m);
  562. exit(0);
  563. }], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
  564. AC_MSG_RESULT($AC_CV_NAME)
  565. AC_DEFINE_UNQUOTED(AC_MACRO_NAME, $AC_CV_NAME)
  566. undefine([AC_MACRO_NAME])dnl
  567. undefine([AC_CV_NAME])dnl
  568. ])
  569. dnl Checks for maximum number of bits in minor device numbers are non contiguous
  570. dnl Defines DEV_MINOR_NONCONTIG on success.
  571. AC_DEFUN(AC_CHECK_MINOR_NONCONTIG,
  572. [AC_REQUIRE([AC_HEADER_MAKEDEV])dnl
  573. AC_CACHE_CHECK([whether bits in minor device numbers are non contiguous], ac_cv_dev_minor_noncontig,
  574.                 [AC_TRY_RUN([
  575. #include <sys/types.h>
  576. #ifdef major
  577. # define _FOUND_MAJOR_
  578. #endif
  579. #ifdef MAJOR_IN_MKDEV
  580. # include <sys/mkdev.h>
  581. # define _FOUND_MAJOR_
  582. #endif
  583. #ifndef _FOUND_MAJOR_
  584. # ifdef MAJOR_IN_SYSMACROS
  585. # include <sys/sysmacros.h>
  586. # define _FOUND_MAJOR_
  587. # endif
  588. #endif
  589. #ifndef _FOUND_MAJOR_
  590. # if defined(hpux) || defined(__hpux__) || defined(__hpux)
  591. # include <sys/mknod.h>
  592. # define _FOUND_MAJOR_
  593. # endif
  594. #endif
  595. #ifndef _FOUND_MAJOR_
  596. # define major(dev) (((dev) >> 8) & 0xFF)
  597. # define minor(dev) ((dev) & 0xFF)
  598. # define makedev(majo, mino) (((majo) << 8) | (mino))
  599. #endif
  600. main()
  601. {
  602. long l = 1;
  603. int i;
  604. int m;
  605. int c = 0;
  606. for (i=1, m=0; i <= 32; i++, l<<=1) {
  607. if (minor(l) == 0 && c == 0)
  608. c = m;
  609. if (minor(l) != 0)
  610. m = i;
  611. }
  612. exit (m == c);}],
  613.                 [ac_cv_dev_minor_noncontig=yes],
  614.                 [ac_cv_dev_minor_noncontig=no])])
  615. if test $ac_cv_dev_minor_noncontig = yes; then
  616.   AC_DEFINE(DEV_MINOR_NONCONTIG)
  617. fi])