largefile: Improve and document.
[gnulib.git] / m4 / sched_h.m4
blobfd60a40f7b37bd4756709e35096061d74bb9dac7
1 # sched_h.m4 serial 9
2 dnl Copyright (C) 2008-2017 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
7 dnl Written by Bruno Haible.
9 AC_DEFUN([gl_SCHED_H],
11   AC_CHECK_HEADERS_ONCE([sys/cdefs.h])
12   AC_COMPILE_IFELSE(
13     [AC_LANG_PROGRAM([[
14        #include <sched.h>
15        struct sched_param a;
16        int b[] = { SCHED_FIFO, SCHED_RR, SCHED_OTHER };
17        pid_t t1;
18      ]])],
19     [SCHED_H=''],
20     [SCHED_H='sched.h'
21      AC_CHECK_HEADERS([sched.h], [], [],
22        [[#if HAVE_SYS_CDEFS_H
23           #include <sys/cdefs.h>
24          #endif
25        ]])
26      gl_NEXT_HEADERS([sched.h])
28      if test "$ac_cv_header_sched_h" = yes; then
29        HAVE_SCHED_H=1
30      else
31        HAVE_SCHED_H=0
32      fi
33      AC_SUBST([HAVE_SCHED_H])
35      if test "$HAVE_SCHED_H" = 1; then
36        AC_CHECK_TYPE([struct sched_param],
37          [HAVE_STRUCT_SCHED_PARAM=1], [HAVE_STRUCT_SCHED_PARAM=0],
38          [[#if HAVE_SYS_CDEFS_H
39             #include <sys/cdefs.h>
40            #endif
41            #include <sched.h>
42          ]])
43      else
44        dnl On OS/2 kLIBC, struct sched_param is in spawn.h.
45        AC_CHECK_TYPE([struct sched_param],
46          [HAVE_STRUCT_SCHED_PARAM=1], [HAVE_STRUCT_SCHED_PARAM=0],
47          [#include <spawn.h>])
48      fi
49      AC_SUBST([HAVE_STRUCT_SCHED_PARAM])
51      if test "$ac_cv_header_sys_cdefs_h" = yes; then
52        HAVE_SYS_CDEFS_H=1
53      else
54        HAVE_SYS_CDEFS_H=0
55      fi
56      AC_SUBST([HAVE_SYS_CDEFS_H])
58      dnl Ensure the type pid_t gets defined.
59      AC_REQUIRE([AC_TYPE_PID_T])
60     ])
61   AC_SUBST([SCHED_H])
62   AM_CONDITIONAL([GL_GENERATE_SCHED_H], [test -n "$SCHED_H"])