update from MirBSD
[alioth/cvs.git] / m4 / minmax.m4
1 # minmax.m4 serial 2
2 dnl Copyright (C) 2005 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.
6
7 AC_PREREQ(2.52)
8
9 AC_DEFUN([gl_MINMAX],
10 [
11   AC_REQUIRE([gl_PREREQ_MINMAX])
12 ])
13
14 # Prerequisites of lib/minmax.h.
15 AC_DEFUN([gl_PREREQ_MINMAX],
16 [
17   gl_MINMAX_IN_HEADER([limits.h])
18   gl_MINMAX_IN_HEADER([sys/param.h])
19 ])
20
21 dnl gl_MINMAX_IN_HEADER(HEADER)
22 dnl The parameter has to be a literal header name; it cannot be macro,
23 dnl nor a shell variable. (Because autoheader collects only AC_DEFINE
24 dnl invocations with a literal macro name.)
25 AC_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>
32 int 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 ])