1# minmax.m4 serial 2
2dnl Copyright (C) 2005 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved.
6
7AC_PREREQ(2.52)
8
9AC_DEFUN([gl_MINMAX],
10[
11  AC_REQUIRE([gl_PREREQ_MINMAX])
12])
13
14# Prerequisites of lib/minmax.h.
15AC_DEFUN([gl_PREREQ_MINMAX],
16[
17  gl_MINMAX_IN_HEADER([limits.h])
18  gl_MINMAX_IN_HEADER([sys/param.h])
19])
20
21dnl gl_MINMAX_IN_HEADER(HEADER)
22dnl The parameter has to be a literal header name; it cannot be macro,
23dnl nor a shell variable. (Because autoheader collects only AC_DEFINE
24dnl invocations with a literal macro name.)
25AC_DEFUN([gl_MINMAX_IN_HEADER],
26[
27  m4_pushdef([header], AS_TR_SH([$1]))
28  m4_pushdef([HEADER], AS_TR_CPP([$1]))
29  AC_CACHE_CHECK([whether <$1> defines MIN and MAX],
30    [gl_cv_minmax_in_]header,
31    [AC_TRY_COMPILE([#include <$1>
32int x = MIN (42, 17);], [],
33       [gl_cv_minmax_in_]header[=yes],
34       [gl_cv_minmax_in_]header[=no])])
35  if test $gl_cv_minmax_in_[]header = yes; then
36    AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1,
37      [Define to 1 if <$1> defines the MIN and MAX macros.])
38  fi
39  m4_popdef([HEADER])
40  m4_popdef([header])
41])
42