config.h revision 132943
1/*
2 * Copyright (c) 2000-2003 Sendmail, Inc. and its suppliers.
3 *	All rights reserved.
4 *
5 * By using this file, you agree to the terms and conditions set
6 * forth in the LICENSE file which can be found at the top level of
7 * the sendmail distribution.
8 *
9 *	$Id: config.h,v 1.46 2003/12/10 03:19:06 gshapiro Exp $
10 */
11
12/*
13**  libsm configuration macros.
14**  The values of these macros are platform dependent.
15**  The default values are given here.
16**  If the default is incorrect, then the correct value can be specified
17**  in the m4 configuration file in devtools/OS.
18*/
19
20#ifndef SM_CONFIG_H
21# define SM_CONFIG_H
22
23#  include "sm_os.h"
24
25/*
26**  SM_CONF_STDBOOL_H is 1 if <stdbool.h> exists
27*/
28
29# ifndef SM_CONF_STDBOOL_H
30#  if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
31#   define SM_CONF_STDBOOL_H		1
32#  else /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
33#   define SM_CONF_STDBOOL_H		0
34#  endif /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
35# endif /* ! SM_CONF_STDBOOL_H */
36
37/*
38**  Configuration macros that specify how __P is defined.
39*/
40
41# ifndef SM_CONF_SYS_CDEFS_H
42#  define SM_CONF_SYS_CDEFS_H		0
43# endif /* ! SM_CONF_SYS_CDEFS_H */
44
45/*
46**  SM_CONF_STDDEF_H is 1 if <stddef.h> exists
47*/
48
49# ifndef SM_CONF_STDDEF_H
50#  define SM_CONF_STDDEF_H		1
51# endif /* ! SM_CONF_STDDEF_H */
52
53/*
54**  Configuration macro that specifies whether strlcpy/strlcat are available.
55**  Note: this is the default so that the libsm version (optimized) will
56**  be used by default (sm_strlcpy/sm_strlcat).
57*/
58
59# ifndef SM_CONF_STRL
60#  define SM_CONF_STRL			0
61# endif /* ! SM_CONF_STRL */
62
63/*
64**  Configuration macro indicating that setitimer is available
65*/
66
67# ifndef SM_CONF_SETITIMER
68#  define SM_CONF_SETITIMER		1
69# endif /* ! SM_CONF_SETITIMER */
70
71/*
72**  Does <sys/types.h> define uid_t and gid_t?
73*/
74
75# ifndef SM_CONF_UID_GID
76#  define SM_CONF_UID_GID		1
77# endif /* ! SM_CONF_UID_GID */
78
79/*
80**  Does <sys/types.h> define ssize_t?
81*/
82# ifndef SM_CONF_SSIZE_T
83#  define SM_CONF_SSIZE_T		1
84# endif /* ! SM_CONF_SSIZE_T */
85
86/*
87**  Does the C compiler support long long?
88*/
89
90# ifndef SM_CONF_LONGLONG
91#  if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
92#   define SM_CONF_LONGLONG		1
93#  else /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
94#   if defined(__GNUC__)
95#    define SM_CONF_LONGLONG		1
96#   else /* defined(__GNUC__) */
97#    define SM_CONF_LONGLONG		0
98#   endif /* defined(__GNUC__) */
99#  endif /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
100# endif /* ! SM_CONF_LONGLONG */
101
102/*
103**  Does <sys/types.h> define quad_t and u_quad_t?
104**  We only care if long long is not available.
105*/
106
107# ifndef SM_CONF_QUAD_T
108#  define SM_CONF_QUAD_T		0
109# endif /* ! SM_CONF_QUAD_T */
110
111/*
112**  Configuration macro indicating that shared memory is available
113*/
114
115# ifndef SM_CONF_SHM
116#  define SM_CONF_SHM		0
117# endif /* ! SM_CONF_SHM */
118
119/*
120**  Does <setjmp.h> define sigsetjmp?
121*/
122
123# ifndef SM_CONF_SIGSETJMP
124#  define SM_CONF_SIGSETJMP	1
125# endif /* ! SM_CONF_SIGSETJMP */
126
127/*
128**  Does <sysexits.h> exist, and define the EX_* macros with values
129**  that differ from the default BSD values in <sm/sysexits.h>?
130*/
131
132# ifndef SM_CONF_SYSEXITS_H
133#  define SM_CONF_SYSEXITS_H	0
134# endif /* ! SM_CONF_SYSEXITS_H */
135
136/* has memchr() prototype? (if not: needs memory.h) */
137# ifndef SM_CONF_MEMCHR
138#  define SM_CONF_MEMCHR	1
139# endif /* ! SM_CONF_MEMCHR */
140
141/* try LLONG tests in libsm/t-types.c? */
142# ifndef SM_CONF_TEST_LLONG
143#  define SM_CONF_TEST_LLONG	1
144# endif /* !SM_CONF_TEST_LLONG */
145
146/* LDAP Checks */
147# if LDAPMAP
148#  include <ldap.h>
149
150/* Does the LDAP library have ldap_memfree()? */
151#  ifndef SM_CONF_LDAP_MEMFREE
152
153/*
154**  The new LDAP C API (draft-ietf-ldapext-ldap-c-api-04.txt) includes
155**  ldap_memfree() in the API.  That draft states to use LDAP_API_VERSION
156**  of 2004 to identify the API.
157*/
158
159#   if USING_NETSCAPE_LDAP || LDAP_API_VERSION >= 2004
160#    define SM_CONF_LDAP_MEMFREE	1
161#   else /* USING_NETSCAPE_LDAP || LDAP_API_VERSION >= 2004 */
162#    define SM_CONF_LDAP_MEMFREE	0
163#   endif /* USING_NETSCAPE_LDAP || LDAP_API_VERSION >= 2004 */
164#  endif /* ! SM_CONF_LDAP_MEMFREE */
165
166/* Does the LDAP library have ldap_initialize()? */
167#  ifndef SM_CONF_LDAP_INITIALIZE
168
169/*
170**  Check for ldap_initialize() support for support for LDAP URI's with
171**  non-ldap:// schemes.
172*/
173
174/* OpenLDAP does it with LDAP_OPT_URI */
175#   ifdef LDAP_OPT_URI
176#    define SM_CONF_LDAP_INITIALIZE	1
177#   endif /* LDAP_OPT_URI */
178#  endif /* !SM_CONF_LDAP_INITIALIZE */
179# endif /* LDAPMAP */
180
181/* don't use strcpy() */
182# ifndef DO_NOT_USE_STRCPY
183#  define DO_NOT_USE_STRCPY	1
184# endif /* ! DO_NOT_USE_STRCPY */
185
186#endif /* ! SM_CONFIG_H */
187