1/* acconfig.h - autoheader configuration input
2 * Rob Earhart
3 */
4/*
5 * Copyright (c) 1998-2003 Carnegie Mellon University.  All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 *    notice, this list of conditions and the following disclaimer.
13 *
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in
16 *    the documentation and/or other materials provided with the
17 *    distribution.
18 *
19 * 3. The name "Carnegie Mellon University" must not be used to
20 *    endorse or promote products derived from this software without
21 *    prior written permission. For permission or any other legal
22 *    details, please contact
23 *      Office of Technology Transfer
24 *      Carnegie Mellon University
25 *      5000 Forbes Avenue
26 *      Pittsburgh, PA  15213-3890
27 *      (412) 268-4387, fax: (412) 268-7395
28 *      tech-transfer@andrew.cmu.edu
29 *
30 * 4. Redistributions of any form whatsoever must retain the following
31 *    acknowledgment:
32 *    "This product includes software developed by Computing Services
33 *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
34 *
35 * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
36 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
37 * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
38 * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
39 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
40 * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
41 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
42 */
43
44#ifndef CONFIG_H
45#define CONFIG_H
46
47@TOP@
48
49/* Our package */
50#undef PACKAGE
51
52/* Our version */
53#undef VERSION
54
55/* Set to the database name you want SASL to use for
56 * username->secret lookups */
57#undef SASL_DB_PATH
58
59/* what db package are we using? */
60#undef SASL_GDBM
61#undef SASL_NDBM
62#undef SASL_BERKELEYDB
63
64/* which mechs can we link staticly? */
65#undef STATIC_ANONYMOUS
66#undef STATIC_CRAMMD5
67#undef STATIC_DIGESTMD5
68#undef STATIC_GSSAPIV2
69#undef STATIC_KERBEROS4
70#undef STATIC_LOGIN
71#undef STATIC_MYSQL
72#undef STATIC_NTLM
73#undef STATIC_OTP
74#undef STATIC_PLAIN
75#undef STATIC_SASLDB
76#undef STATIC_SRP
77
78/* This is where plugins will live at runtime */
79#undef PLUGINDIR
80
81/* Make autoheader happy */
82#undef WITH_SYMBOL_UNDERSCORE
83
84/* should we use the internal rc4 library? */
85#undef WITH_RC4
86
87/* do we have des available? */
88#undef WITH_DES
89#undef WITH_SSL_DES
90
91/* what about OpenSSL? */
92#undef HAVE_OPENSSL
93
94/* should we support srp_setpass */
95#undef DO_SRP_SETPASS
96
97/* do we have OPIE for server-side OTP support? */
98#undef HAVE_OPIE
99
100/* Do we have kerberos for plaintext password checking? */
101#undef HAVE_KRB
102
103/* do we have SIA for plaintext password checking? */
104#undef HAVE_SIA
105
106/* do we have PAM for plaintext password checking? */
107#undef HAVE_PAM
108
109/* what flavor of GSSAPI are we using? */
110#undef HAVE_GSS_C_NT_HOSTBASED_SERVICE
111
112/* does GSSAPI provide GSS_C_NT_USER_NAME? */
113#undef HAVE_GSS_C_NT_USER_NAME
114
115/* do we have gssapi.h or gssapi/gssapi.h? */
116#undef HAVE_GSSAPI_H
117
118/* do we have getsubopt()? */
119#undef HAVE_GETSUBOPT
120
121/* Does your system have the snprintf() call? */
122#undef HAVE_SNPRINTF
123
124/* Does your system have the vsnprintf() call? */
125#undef HAVE_VSNPRINTF
126
127/* does your system have gettimeofday()? */
128#undef HAVE_GETTIMEOFDAY
129
130/* should we include support for the pwcheck daemon? */
131#undef HAVE_PWCHECK
132
133/* where do we look for the pwcheck daemon? */
134#undef PWCHECKDIR
135
136/* should we include support for the saslauth daemon? */
137#undef HAVE_SASLAUTHD
138
139/* where does saslauthd look for the communication socket? */
140#undef PATH_SASLAUTHD_RUNDIR
141
142/* do we want alwaystrue (discouraged)? */
143#undef HAVE_ALWAYSTRUE
144
145/* are we linking against DMALLOC? */
146#undef WITH_DMALLOC
147
148/* should we support sasl_checkapop */
149#undef DO_SASL_CHECKAPOP
150
151/* do we pay attention to IP addresses in the kerberos 4 tickets? */
152#undef KRB4_IGNORE_IP_ADDRESS
153
154/* do we have a preferred mechanism, or should we just pick the highest ssf? */
155#undef PREFER_MECH
156
157/* define if your compile has __attribute__ */
158#undef HAVE___ATTRIBUTE__
159
160/* define if you have unistd.h */
161#undef HAVE_UNISTD_H
162
163/* define if your system has getpid() */
164#undef HAVE_GETPID
165
166/* do we have an inttypes.h? */
167#undef HAVE_INTTYPES_H
168
169/* do we have sys/uio.h? */
170#undef HAVE_SYS_UIO_H
171
172/* do we have sys/param.h? */
173#undef HAVE_SYS_PARAM_H
174
175/* do we have sysexits.h? */
176#undef HAVE_SYSEXITS_H
177
178/* stdarg.h? varargs.h? */
179#undef HAVE_STDARG_H
180#undef HAVE_VARARGS_H
181
182/* Do we need a leading _ for dlsym? */
183#undef DLSYM_NEEDS_UNDERSCORE
184
185/* Does libtool support shared libs on this system? */
186#undef HAVE_DLFCN_H
187#undef DO_DLOPEN
188
189/* Should we try to dlopen stuff when we are staticly compiled? */
190#undef TRY_DLOPEN_WHEN_STATIC
191
192/* define if your system has getaddrinfo() */
193#undef HAVE_GETADDRINFO
194
195/* define if your system has getnameinfo() */
196#undef HAVE_GETNAMEINFO
197
198/* define if your system has struct sockaddr_storage */
199#undef HAVE_STRUCT_SOCKADDR_STORAGE
200
201/* Define if you have ss_family in struct sockaddr_storage. */
202#undef HAVE_SS_FAMILY
203
204/* do we have socklen_t? */
205#undef HAVE_SOCKLEN_T
206#undef HAVE_SOCKADDR_SA_LEN
207
208/* do we use doors for IPC? */
209#undef USE_DOORS
210
211/* SASL's concept of DEV_RANDOM */
212#undef SASL_DEV_RANDOM
213
214@BOTTOM@
215
216/* Create a struct iovec if we need one */
217#if !defined(_WIN32) && !defined(HAVE_SYS_UIO_H)
218/* (win32 is handled in sasl.h) */
219struct iovec {
220    char *iov_base;
221    long iov_len;
222};
223#else
224#include <sys/types.h>
225#include <sys/uio.h>
226#endif
227
228/* location of the random number generator */
229#ifdef DEV_RANDOM
230#undef DEV_RANDOM
231#endif
232#define DEV_RANDOM SASL_DEV_RANDOM
233
234/* if we've got krb_get_err_txt, we might as well use it;
235   especially since krb_err_txt isn't in some newer distributions
236   (MIT Kerb for Mac 4 being a notable example). If we don't have
237   it, we fall back to the krb_err_txt array */
238#ifdef HAVE_KRB_GET_ERR_TEXT
239#define get_krb_err_txt krb_get_err_text
240#else
241#define get_krb_err_txt(X) (krb_err_txt[(X)])
242#endif
243
244/* Make Solaris happy... */
245#ifndef __EXTENSIONS__
246#define __EXTENSIONS__
247#endif
248
249/* Make Linux happy... */
250#ifndef _GNU_SOURCE
251#define _GNU_SOURCE
252#endif
253
254#ifndef HAVE___ATTRIBUTE__
255/* Can't use attributes... */
256#define __attribute__(foo)
257#endif
258
259#define SASL_PATH_ENV_VAR "SASL_PATH"
260
261#include <stdlib.h>
262#include <sys/types.h>
263#include <sys/socket.h>
264#ifndef WIN32
265# include <netdb.h>
266# ifdef HAVE_SYS_PARAM_H
267#  include <sys/param.h>
268# endif
269#else /* WIN32 */
270# include <winsock.h>
271#endif /* WIN32 */
272#include <string.h>
273
274#include <netinet/in.h>
275
276#ifndef HAVE_SOCKLEN_T
277typedef unsigned int socklen_t;
278#endif /* HAVE_SOCKLEN_T */
279
280#ifndef HAVE_STRUCT_SOCKADDR_STORAGE
281#define	_SS_MAXSIZE	128	/* Implementation specific max size */
282#define	_SS_PADSIZE	(_SS_MAXSIZE - sizeof (struct sockaddr))
283
284struct sockaddr_storage {
285	struct	sockaddr ss_sa;
286	char		__ss_pad2[_SS_PADSIZE];
287};
288# define ss_family ss_sa.sa_family
289#endif /* !HAVE_STRUCT_SOCKADDR_STORAGE */
290
291#ifndef AF_INET6
292/* Define it to something that should never appear */
293#define	AF_INET6	AF_MAX
294#endif
295
296#ifndef HAVE_GETADDRINFO
297#define	getaddrinfo	sasl_getaddrinfo
298#define	freeaddrinfo	sasl_freeaddrinfo
299#define	getnameinfo	sasl_getnameinfo
300#define	gai_strerror	sasl_gai_strerror
301#include "gai.h"
302#endif
303
304/* Defined in RFC 1035. max strlen is only 253 due to length bytes. */
305#ifndef MAXHOSTNAMELEN
306#define        MAXHOSTNAMELEN  255
307#endif
308
309#ifndef HAVE_SYSEXITS_H
310#include "exits.h"
311#else
312#include "sysexits.h"
313#endif
314
315#ifndef	NI_WITHSCOPEID
316#define	NI_WITHSCOPEID	0
317#endif
318
319/* Get the correct time.h */
320#if TIME_WITH_SYS_TIME
321# include <sys/time.h>
322# include <time.h>
323#else
324# if HAVE_SYS_TIME_H
325#  include <sys/time.h>
326# else
327#  include <time.h>
328# endif
329#endif
330
331#endif /* CONFIG_H */
332