xref: /plan9/sys/src/ape/cmd/patch/configure.in (revision 0b459c2cb92b7c9d88818e9a2f72e678e5bc4553)
1*0b459c2cSDavid du Colombier# Configure `patch'.
2*0b459c2cSDavid du Colombier# Copyright 1993, 1997 Free Software Foundation, Inc.
3*0b459c2cSDavid du Colombierdnl Process this file with autoconf to produce a configure script.
4*0b459c2cSDavid du Colombier
5*0b459c2cSDavid du ColombierAC_PREREQ(2.12)
6*0b459c2cSDavid du ColombierAC_INIT(patch.c)
7*0b459c2cSDavid du ColombierAC_CONFIG_HEADER(config.h:config.hin)
8*0b459c2cSDavid du ColombierAC_ARG_PROGRAM
9*0b459c2cSDavid du Colombier
10*0b459c2cSDavid du ColombierPACKAGE=patch
11*0b459c2cSDavid du ColombierVERSION=2.5
12*0b459c2cSDavid du ColombierAC_SUBST(PACKAGE)
13*0b459c2cSDavid du ColombierAC_SUBST(VERSION)
14*0b459c2cSDavid du Colombier
15*0b459c2cSDavid du ColombierAC_PROG_CC
16*0b459c2cSDavid du ColombierAC_PROG_CPP
17*0b459c2cSDavid du ColombierAC_PROG_INSTALL
18*0b459c2cSDavid du ColombierAC_PROG_MAKE_SET
19*0b459c2cSDavid du Colombier# Use ed_PROGRAM, not ED_PROGRAM,
20*0b459c2cSDavid du Colombier# because <errno.h> reserves symbols starting with `E'.
21*0b459c2cSDavid du ColombierAC_PATH_PROG(ed_PROGRAM, ed, ed)
22*0b459c2cSDavid du Colombier
23*0b459c2cSDavid du Colombier# If available, prefer support for large files unless the user specified
24*0b459c2cSDavid du Colombier# one of the CPPFLAGS, LDFLAGS, or LIBS variables.
25*0b459c2cSDavid du ColombierAC_MSG_CHECKING(whether large file support needs explicit enabling)
26*0b459c2cSDavid du Colombierac_getconfs=''
27*0b459c2cSDavid du Colombierac_result=yes
28*0b459c2cSDavid du Colombierac_set=''
29*0b459c2cSDavid du Colombierac_shellvars='CPPFLAGS LDFLAGS LIBS'
30*0b459c2cSDavid du Colombierfor ac_shellvar in $ac_shellvars; do
31*0b459c2cSDavid du Colombier  case $ac_shellvar in
32*0b459c2cSDavid du Colombier  CPPFLAGS) ac_lfsvar=LFS_CFLAGS ;;
33*0b459c2cSDavid du Colombier  *) ac_lfsvar=LFS_$ac_shellvar ;;
34*0b459c2cSDavid du Colombier  esac
35*0b459c2cSDavid du Colombier  eval test '"${'$ac_shellvar'+set}"' = set && ac_set=$ac_shellvar
36*0b459c2cSDavid du Colombier  (getconf $ac_lfsvar) >/dev/null 2>&1 || { ac_result=no; break; }
37*0b459c2cSDavid du Colombier  ac_getconf=`getconf $ac_lfsvar`
38*0b459c2cSDavid du Colombier  ac_getconfs=$ac_getconfs$ac_getconf
39*0b459c2cSDavid du Colombier  eval ac_test_$ac_shellvar=\$ac_getconf
40*0b459c2cSDavid du Colombierdone
41*0b459c2cSDavid du Colombiercase "$ac_result$ac_getconfs" in
42*0b459c2cSDavid du Colombieryes) ac_result=no ;;
43*0b459c2cSDavid du Colombieresac
44*0b459c2cSDavid du Colombiercase "$ac_result$ac_set" in
45*0b459c2cSDavid du Colombieryes?*) ac_result="yes, but $ac_set is already set, so use its settings"
46*0b459c2cSDavid du Colombieresac
47*0b459c2cSDavid du ColombierAC_MSG_RESULT($ac_result)
48*0b459c2cSDavid du Colombiercase $ac_result in
49*0b459c2cSDavid du Colombieryes)
50*0b459c2cSDavid du Colombier  for ac_shellvar in $ac_shellvars; do
51*0b459c2cSDavid du Colombier    eval $ac_shellvar=\$ac_test_$ac_shellvar
52*0b459c2cSDavid du Colombier  done ;;
53*0b459c2cSDavid du Colombieresac
54*0b459c2cSDavid du Colombier
55*0b459c2cSDavid du ColombierAC_AIX
56*0b459c2cSDavid du ColombierAC_MINIX
57*0b459c2cSDavid du ColombierAC_ISC_POSIX
58*0b459c2cSDavid du Colombier
59*0b459c2cSDavid du ColombierAC_C_CONST
60*0b459c2cSDavid du Colombier
61*0b459c2cSDavid du ColombierAC_HEADER_DIRENT
62*0b459c2cSDavid du ColombierAC_HEADER_STDC
63*0b459c2cSDavid du ColombierAC_CHECK_HEADERS(fcntl.h limits.h string.h unistd.h utime.h varargs.h)
64*0b459c2cSDavid du Colombier
65*0b459c2cSDavid du ColombierAC_TYPE_MODE_T
66*0b459c2cSDavid du ColombierAC_TYPE_OFF_T
67*0b459c2cSDavid du ColombierAC_TYPE_SIGNAL
68*0b459c2cSDavid du ColombierAC_TYPE_SIZE_T
69*0b459c2cSDavid du Colombier
70*0b459c2cSDavid du Colombierdnl Some systems have utime.h but don't declare the struct anywhere.
71*0b459c2cSDavid du ColombierAC_MSG_CHECKING(for struct utimbuf)
72*0b459c2cSDavid du ColombierAC_CACHE_VAL(patch_cv_sys_struct_utimbuf,
73*0b459c2cSDavid du Colombier[AC_TRY_COMPILE([#include <sys/types.h>
74*0b459c2cSDavid du Colombier#if HAVE_UTIME_H
75*0b459c2cSDavid du Colombier#include <utime.h>
76*0b459c2cSDavid du Colombier#endif], [static struct utimbuf x; x.actime = x.modtime;],
77*0b459c2cSDavid du Colombier  patch_cv_sys_struct_utimbuf=yes,
78*0b459c2cSDavid du Colombier  patch_cv_sys_struct_utimbuf=no)])
79*0b459c2cSDavid du ColombierAC_MSG_RESULT($patch_cv_sys_struct_utimbuf)
80*0b459c2cSDavid du Colombierif test $patch_cv_sys_struct_utimbuf = yes; then
81*0b459c2cSDavid du Colombier   AC_DEFINE(HAVE_STRUCT_UTIMBUF)
82*0b459c2cSDavid du Colombierfi
83*0b459c2cSDavid du Colombier
84*0b459c2cSDavid du Colombier# Check for NetBSD 1.0 bug, where memchr(..., 0) returns nonzero.
85*0b459c2cSDavid du ColombierAC_MSG_CHECKING(for working memchr)
86*0b459c2cSDavid du ColombierAC_CACHE_VAL(ac_cv_func_memchr,
87*0b459c2cSDavid du Colombier[AC_TRY_RUN([#include <string.h>
88*0b459c2cSDavid du Colombiermain () { exit (memchr ("", 0, 0) != 0 || memchr ("", 1, 0) != 0); }],
89*0b459c2cSDavid du Colombier  ac_cv_func_memchr=yes,
90*0b459c2cSDavid du Colombier  ac_cv_func_memchr=no,
91*0b459c2cSDavid du Colombier  AC_MSG_WARN([We are cross-compiling so we assume memchr does not work.])
92*0b459c2cSDavid du Colombier  ac_cv_func_memchr=no)])dnl
93*0b459c2cSDavid du ColombierAC_MSG_RESULT($ac_cv_func_memchr)
94*0b459c2cSDavid du Colombierif test $ac_cv_func_memchr = yes; then
95*0b459c2cSDavid du Colombier  AC_DEFINE(HAVE_MEMCHR)
96*0b459c2cSDavid du Colombierfi
97*0b459c2cSDavid du Colombier
98*0b459c2cSDavid du ColombierAC_CHECK_FUNC(getopt_long, , [LIBOBJS="$LIBOBJS getopt1.o getopt.o"])
99*0b459c2cSDavid du ColombierAC_SUBST(LIBOBJS)
100*0b459c2cSDavid du ColombierAC_CHECK_FUNCS(_doprintf isascii memcmp mkdir mktemp pathconf raise sigaction sigprocmask sigsetmask)
101*0b459c2cSDavid du ColombierAC_REPLACE_FUNCS(memchr rename)
102*0b459c2cSDavid du ColombierAC_FUNC_CLOSEDIR_VOID
103*0b459c2cSDavid du ColombierAC_FUNC_VPRINTF
104*0b459c2cSDavid du Colombier
105*0b459c2cSDavid du ColombierAC_SYS_LONG_FILE_NAMES
106*0b459c2cSDavid du Colombier
107*0b459c2cSDavid du ColombierAC_MSG_CHECKING([for d_ino member in directory struct])
108*0b459c2cSDavid du ColombierAC_CACHE_VAL(patch_cv_sys_d_ino_in_dirent,
109*0b459c2cSDavid du Colombier[AC_TRY_LINK([
110*0b459c2cSDavid du Colombier#include <sys/types.h>
111*0b459c2cSDavid du Colombier#if HAVE_DIRENT_H
112*0b459c2cSDavid du Colombier# include <dirent.h>
113*0b459c2cSDavid du Colombier#else
114*0b459c2cSDavid du Colombier# define dirent direct
115*0b459c2cSDavid du Colombier# if HAVE_SYS_NDIR_H
116*0b459c2cSDavid du Colombier#  include <sys/ndir.h>
117*0b459c2cSDavid du Colombier# endif
118*0b459c2cSDavid du Colombier# ifdef HAVE_SYS_DIR_H
119*0b459c2cSDavid du Colombier#  include <sys/dir.h>
120*0b459c2cSDavid du Colombier# endif
121*0b459c2cSDavid du Colombier# ifdef HAVE_NDIR_H
122*0b459c2cSDavid du Colombier#  include <ndir.h>
123*0b459c2cSDavid du Colombier# endif
124*0b459c2cSDavid du Colombier#endif
125*0b459c2cSDavid du Colombier],
126*0b459c2cSDavid du Colombier  [struct dirent dp; dp.d_ino = 0;],
127*0b459c2cSDavid du Colombier    patch_cv_sys_d_ino_in_dirent=yes,
128*0b459c2cSDavid du Colombier    patch_cv_sys_d_ino_in_dirent=no)])
129*0b459c2cSDavid du ColombierAC_MSG_RESULT($patch_cv_sys_d_ino_in_dirent)
130*0b459c2cSDavid du Colombierif test $patch_cv_sys_d_ino_in_dirent = yes; then
131*0b459c2cSDavid du Colombier  AC_DEFINE(D_INO_IN_DIRENT)
132*0b459c2cSDavid du Colombierfi
133*0b459c2cSDavid du Colombier
134*0b459c2cSDavid du ColombierAC_OUTPUT(Makefile)
135