Double-double-backslash for double backslash...
[tftp-hpa.git] / configure.in
bloba502d02c1cbeb6b9e622df92720d171e7f011cfe
1 dnl
2 dnl autoconf input file to generate MCONFIG
3 dnl
5 AC_PREREQ(2.52)
6 AC_REVISION([$Id$])
7 AC_INIT(MCONFIG.in)
8 AC_PREFIX_DEFAULT(/usr)
10 AC_ISC_POSIX
11 AC_AIX
12 AC_MINIX
13 AC_PROG_CC
15 dnl
16 dnl Feature-test macros.  These need to be set in CFLAGS, rather in
17 dnl acconfig.h, or "configure" will run in a different environment than
18 dnl we eventually we build in.
19 dnl
21 dnl Needed on Solaris/cc or Solaris/gcc
22 CFLAGS="$CFLAGS -D_XPG4_2"
23 CFLAGS="$CFLAGS -D_XOPEN_SOURCE"
24 CFLAGS="$CFLAGS -D__EXTENSIONS__"
26 dnl Needed on some glibc systems
27 CFLAGS="$CFLAGS -D_BSD_SOURCE"
28 CFLAGS="$CFLAGS -D_ISO9X_SOURCE"
30 dnl Needed on Digital Unix
31 CFLAGS="$CFLAGS -D_OSF_SOURCE"
32 CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
34 AC_C_CONST
35 AC_C_INLINE
37 AC_SYS_LARGEFILE
39 PA_ADD_CFLAGS(-W)
40 PA_ADD_CFLAGS(-Wall)
41 PA_ADD_CFLAGS(-Wpointer-arith)
42 PA_ADD_CFLAGS(-Wbad-function-cast)
43 PA_ADD_CFLAGS(-Wcast-equal)
44 PA_ADD_CFLAGS(-Wstrict-prototypes)
45 PA_ADD_CFLAGS(-Wmissing-prototypes)
46 PA_ADD_CFLAGS(-Wmissing-declarations)
47 PA_ADD_CFLAGS(-Wnested-externs)
48 PA_ADD_CFLAGS(-Winline)
49 PA_ADD_CFLAGS(-Wwrite-strings)
50 PA_ADD_CFLAGS(-Wundef)
51 PA_ADD_CFLAGS(-Wshadow)
52 PA_ADD_CFLAGS(-Wsign-compare)
53 PA_ADD_CFLAGS(-pipe)
55 AC_HEADER_STDC
56 AC_CHECK_HEADERS(inttypes.h)
57 AC_CHECK_HEADERS(stdint.h)
58 PA_CHECK_INTTYPES_H_SANE
59 AC_CHECK_HEADERS(libgen.h)
60 AC_CHECK_HEADERS(memory.h)
61 AC_CHECK_HEADERS(setjmp.h)
62 AC_CHECK_HEADERS(stddef.h)
63 AC_CHECK_HEADERS(stdlib.h)
64 AC_CHECK_HEADERS(string.h)
65 AC_CHECK_HEADERS(strings.h)
66 AC_CHECK_HEADERS(sysexits.h)
67 AC_CHECK_HEADERS(time.h)
68 AC_CHECK_HEADERS(unistd.h)
69 AC_CHECK_HEADERS(sys/filio.h)
70 AC_CHECK_HEADERS(sys/stat.h)
71 AC_CHECK_HEADERS(sys/time.h)
72 AC_CHECK_HEADERS(sys/types.h)
73 AC_CHECK_HEADERS(arpa/inet.h)
74 AC_HEADER_TIME
75 dnl This is needed on some versions of FreeBSD...
76 AC_CHECK_HEADERS(machine/param.h)
78 AC_CHECK_TYPES(intmax_t)
79 AC_CHECK_TYPES(long long)
80 AC_CHECK_TYPES(uint16_t)
81 AC_CHECK_TYPES(uint32_t)
82 AC_CHECK_TYPES(u_short)
83 AC_CHECK_TYPES(u_long)
84 AC_TYPE_OFF_T
85 AC_TYPE_PID_T
87 AC_SEARCH_LIBS(socket, socket, , [AC_MSG_ERROR(socket library not found)])
88 AC_SEARCH_LIBS(gethostbyname, [nsl resolv], , [AC_MSG_ERROR(gethostbyname not found)])
89 AC_SEARCH_LIBS(inet_aton, [nsl resolv], , [AC_MSG_ERROR(inet_aton not found)])
90 AC_SEARCH_LIBS(herror, [nsl resolv], , [AC_MSG_ERROR(herror not found)])
92 AC_CHECK_FUNCS(setsid)
93 AC_CHECK_FUNCS(recvmsg)
94 AC_CHECK_FUNCS(setreuid)
95 AC_CHECK_FUNCS(setregid)
96 dnl Solaris 8 has [u]intmax_t but not strtoumax().  How utterly braindamaged.
97 AC_CHECK_FUNCS(strtoumax)
98 AC_CHECK_FUNCS(strtoull)
100 PA_MSGHDR_MSG_CONTROL
101 PA_STRUCT_IN_PKTINFO
103 AH_TEMPLATE([HAVE_SIGSETJMP],
104 [Define if we have sigsetjmp, siglongjmp and sigjmp_buf.])
105 PA_SIGSETJMP([AC_DEFINE(HAVE_SIGSETJMP)])
107 LIBXTRA=false
108 AC_SEARCH_LIBS(xmalloc, iberty, , LIBXTRA=true LIBOBJS="$LIBOBJS xmalloc.o")
109 AC_SEARCH_LIBS(xstrdup, iberty, , LIBXTRA=true LIBOBJS="$LIBOBJS xstrdup.o")
110 AC_SEARCH_LIBS(bsd_signal, bsd, , LIBXTRA=true LIBOBJS="$LIBOBJS bsdsignal.o")
111 if $LIBXTRA; then
112         LIBS="../lib/libxtra.a $LIBS"
116 dnl These libraries apply to the server only
119 common_libs="$LIBS"
121 AH_TEMPLATE([HAVE_IPPORT_TFTP_DEFINITION],
122 [Define if netinet/in.h defines IPPORT_TFTP.])
123 PA_HEADER_DEFINES(netinet/in.h, int, IPPORT_TFTP)
125 PA_WITH_BOOL(tcpwrappers, 1,
126 [  --without-tcpwrappers   disable tcpwrapper permissions checking],
128         AC_SEARCH_LIBS(yp_get_default_domain, [nsl resolv])
129         PA_HAVE_TCPWRAPPERS
130 ],:)
133 AH_TEMPLATE([WITH_REGEX],
134 [Define if we are compiling with regex filename remapping.])
136 PA_WITH_BOOL(remap, 1,
137 [  --without-remap         disable regex-based filename remapping],
139         AC_CHECK_HEADER(regex.h,
140         [
141                 AC_SEARCH_LIBS(regcomp, [regex rx],
142                 [
143                         AC_DEFINE(WITH_REGEX)
144                         TFTPDOBJS="remap.o $TFTPDOBJS"
145                 ])
146         ])
147 ],:)
149 TFTPD_LIBS="$LIBS"
150 LIBS="$common_libs"
153 dnl These libraries apply to the client only
156 AH_TEMPLATE([WITH_READLINE],
157 [Define if we are compiling with readline command-line editing.])
159 PA_WITH_BOOL(readline, 1,
160 [  --without-readline      disable the use of readline command-line editing],
162         USE_READLINE=true
163         AC_CHECK_HEADER(readline/readline.h,
164         [
165                 AC_SEARCH_LIBS(readline, [readline history],
166                 [
167                         AC_DEFINE(WITH_READLINE)
168                 ])
169                 AC_CHECK_HEADERS(readline/history.h)
170         ])
171 ],:)
173 TFTP_LIBS="$LIBS"
174 LIBS="$common_libs"
176 AC_SUBST(TFTP_LIBS)
177 AC_SUBST(TFTPD_LIBS)
178 AC_SUBST(LIBOBJS)
179 AC_SUBST(TFTPDOBJS)
181 AC_PROG_RANLIB
182 AC_PROG_INSTALL
184 AC_CONFIG_HEADER(acconfig.h)
185 AC_OUTPUT(MCONFIG)