sys_socket: Add support for OpenVMS.
[gnulib.git] / m4 / sched_h.m4
blobd5d12ee8da72a6475383ede1c34bef9f0a24a17d
1 # sched_h.m4 serial 11
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_REQUIRE([AC_CANONICAL_HOST])
12   AC_CHECK_HEADERS_ONCE([sys/cdefs.h])
13   AC_COMPILE_IFELSE(
14     [AC_LANG_PROGRAM([[
15        #include <sched.h>
16        struct sched_param a;
17        int b[] = { SCHED_FIFO, SCHED_RR, SCHED_OTHER };
18        pid_t t1;
19      ]])],
20     [SCHED_H=''],
21     [SCHED_H='sched.h'
22      AC_CHECK_HEADERS([sched.h], [], [],
23        [[#if HAVE_SYS_CDEFS_H
24           #include <sys/cdefs.h>
25          #endif
26        ]])
27      gl_NEXT_HEADERS([sched.h])
29      if test "$ac_cv_header_sched_h" = yes; then
30        HAVE_SCHED_H=1
31      else
32        HAVE_SCHED_H=0
33      fi
34      AC_SUBST([HAVE_SCHED_H])
36      if test "$HAVE_SCHED_H" = 1; then
37        AC_CHECK_TYPE([struct sched_param],
38          [HAVE_STRUCT_SCHED_PARAM=1], [HAVE_STRUCT_SCHED_PARAM=0],
39          [[#if HAVE_SYS_CDEFS_H
40             #include <sys/cdefs.h>
41            #endif
42            #include <sched.h>
43          ]])
44      else
45        HAVE_STRUCT_SCHED_PARAM=0
46        case "$host_os" in
47          os2*)
48            dnl On OS/2 kLIBC, struct sched_param is in spawn.h.
49            AC_CHECK_TYPE([struct sched_param],
50              [HAVE_STRUCT_SCHED_PARAM=1], [],
51              [#include <spawn.h>])
52            ;;
53          vms)
54            dnl On OpenVMS 7.2 or newer, struct sched_param is in pthread.h.
55            AC_CHECK_TYPE([struct sched_param],
56              [HAVE_STRUCT_SCHED_PARAM=1], [],
57              [#include <pthread.h>])
58            ;;
59        esac
60      fi
61      AC_SUBST([HAVE_STRUCT_SCHED_PARAM])
63      if test "$ac_cv_header_sys_cdefs_h" = yes; then
64        HAVE_SYS_CDEFS_H=1
65      else
66        HAVE_SYS_CDEFS_H=0
67      fi
68      AC_SUBST([HAVE_SYS_CDEFS_H])
70      dnl Ensure the type pid_t gets defined.
71      AC_REQUIRE([AC_TYPE_PID_T])
72     ])
73   AC_SUBST([SCHED_H])
74   AM_CONDITIONAL([GL_GENERATE_SCHED_H], [test -n "$SCHED_H"])