config.h revision 363466
1/*
2 * Copyright (c) 2000-2003 Proofpoint, 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.49 2013-11-22 20:51:31 ca 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**  Note, unlike gcc, clang doesn't apply full prototypes to K&R definitions.
29*/
30
31# ifndef SM_CONF_STDBOOL_H
32#  if !defined(__clang__) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
33#   define SM_CONF_STDBOOL_H		1
34#  else
35#   define SM_CONF_STDBOOL_H		0
36#  endif
37# endif /* ! SM_CONF_STDBOOL_H */
38
39/*
40**  Configuration macros that specify how __P is defined.
41*/
42
43# ifndef SM_CONF_SYS_CDEFS_H
44#  define SM_CONF_SYS_CDEFS_H		0
45# endif
46
47/*
48**  SM_CONF_STDDEF_H is 1 if <stddef.h> exists
49*/
50
51# ifndef SM_CONF_STDDEF_H
52#  define SM_CONF_STDDEF_H		1
53# endif
54
55/*
56**  Configuration macro that specifies whether strlcpy/strlcat are available.
57**  Note: this is the default so that the libsm version (optimized) will
58**  be used by default (sm_strlcpy/sm_strlcat).
59*/
60
61# ifndef SM_CONF_STRL
62#  define SM_CONF_STRL			0
63# endif
64
65/*
66**  Configuration macro indicating that setitimer is available
67*/
68
69# ifndef SM_CONF_SETITIMER
70#  define SM_CONF_SETITIMER		1
71# endif
72
73/*
74**  Does <sys/types.h> define uid_t and gid_t?
75*/
76
77# ifndef SM_CONF_UID_GID
78#  define SM_CONF_UID_GID		1
79# endif
80
81/*
82**  Does <sys/types.h> define ssize_t?
83*/
84# ifndef SM_CONF_SSIZE_T
85#  define SM_CONF_SSIZE_T		1
86# endif
87
88/*
89**  Does the C compiler support long long?
90*/
91
92# ifndef SM_CONF_LONGLONG
93#  if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
94#   define SM_CONF_LONGLONG		1
95#  else /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
96#   if defined(__GNUC__)
97#    define SM_CONF_LONGLONG		1
98#   else
99#    define SM_CONF_LONGLONG		0
100#   endif
101#  endif /* defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L */
102# endif /* ! SM_CONF_LONGLONG */
103
104/*
105**  Does <sys/types.h> define quad_t and u_quad_t?
106**  We only care if long long is not available.
107*/
108
109# ifndef SM_CONF_QUAD_T
110#  define SM_CONF_QUAD_T		0
111# endif
112
113/*
114**  Configuration macro indicating that shared memory is available
115*/
116
117# ifndef SM_CONF_SHM
118#  define SM_CONF_SHM		0
119# endif
120
121/*
122**  Does <setjmp.h> define sigsetjmp?
123*/
124
125# ifndef SM_CONF_SIGSETJMP
126#  define SM_CONF_SIGSETJMP	1
127# endif
128
129/*
130**  Does <sysexits.h> exist, and define the EX_* macros with values
131**  that differ from the default BSD values in <sm/sysexits.h>?
132*/
133
134# ifndef SM_CONF_SYSEXITS_H
135#  define SM_CONF_SYSEXITS_H	0
136# endif
137
138/* has memchr() prototype? (if not: needs memory.h) */
139# ifndef SM_CONF_MEMCHR
140#  define SM_CONF_MEMCHR	1
141# endif
142
143/* try LLONG tests in libsm/t-types.c? */
144# ifndef SM_CONF_TEST_LLONG
145#  define SM_CONF_TEST_LLONG	1
146# endif
147
148/* LDAP Checks */
149# if LDAPMAP
150#  include <lber.h>
151#  include <ldap.h>
152
153/* Does the LDAP library have ldap_memfree()? */
154#  ifndef SM_CONF_LDAP_MEMFREE
155
156/*
157**  The new LDAP C API (draft-ietf-ldapext-ldap-c-api-04.txt) includes
158**  ldap_memfree() in the API.  That draft states to use LDAP_API_VERSION
159**  of 2004 to identify the API.
160*/
161
162#   if USING_NETSCAPE_LDAP || LDAP_API_VERSION >= 2004
163#    define SM_CONF_LDAP_MEMFREE	1
164#   else
165#    define SM_CONF_LDAP_MEMFREE	0
166#   endif
167#  endif /* ! SM_CONF_LDAP_MEMFREE */
168
169/* Does the LDAP library have ldap_initialize()? */
170#  ifndef SM_CONF_LDAP_INITIALIZE
171
172/*
173**  Check for ldap_initialize() support for support for LDAP URI's with
174**  non-ldap:// schemes.
175*/
176
177/* OpenLDAP does it with LDAP_OPT_URI */
178#   ifdef LDAP_OPT_URI
179#    define SM_CONF_LDAP_INITIALIZE	1
180#   endif
181#  endif /* !SM_CONF_LDAP_INITIALIZE */
182# endif /* LDAPMAP */
183
184/* don't use strcpy() */
185# ifndef DO_NOT_USE_STRCPY
186#  define DO_NOT_USE_STRCPY	1
187# endif
188
189#endif /* ! SM_CONFIG_H */
190