xref: /freebsd/contrib/ldns/ldns/common.h.in (revision c697fb7f)
1/**
2 * \file common.h
3 *
4 * Common definitions for LDNS
5 */
6
7/**
8 * a Net::DNS like library for C
9 *
10 * (c) NLnet Labs, 2004-2006
11 *
12 * See the file LICENSE for the license
13 */
14
15#ifndef LDNS_COMMON_H
16#define LDNS_COMMON_H
17
18/*
19 * The build configuration that is used in the distributed headers,
20 * as detected and determined by the auto configure script.
21 */
22#define LDNS_BUILD_CONFIG_HAVE_SSL         @ldns_build_config_have_ssl@
23#define LDNS_BUILD_CONFIG_HAVE_INTTYPES_H  @ldns_build_config_have_inttypes_h@
24#define LDNS_BUILD_CONFIG_HAVE_ATTR_FORMAT @ldns_build_config_have_attr_format@
25#define LDNS_BUILD_CONFIG_HAVE_ATTR_UNUSED @ldns_build_config_have_attr_unused@
26#define LDNS_BUILD_CONFIG_HAVE_SOCKLEN_T   @ldns_build_config_have_socklen_t@
27#define LDNS_BUILD_CONFIG_USE_DANE         @ldns_build_config_use_dane@
28#define LDNS_BUILD_CONFIG_HAVE_B32_PTON    @ldns_build_config_have_b32_pton@
29#define LDNS_BUILD_CONFIG_HAVE_B32_NTOP    @ldns_build_config_have_b32_ntop@
30
31/*
32 * HAVE_STDBOOL_H is not available when distributed as a library, but no build
33 * configuration variables may be used (like those above) because the header
34 * is sometimes only available when using special compiler flags to enable the
35 * c99 environment. Because we cannot force the usage of this flag, we have to
36 * provide a default type. Below what is suggested by the autoconf manual.
37 */
38/*@ignore@*/
39/* splint barfs on this construct */
40#ifndef __bool_true_false_are_defined
41# ifdef HAVE_STDBOOL_H
42#  include <stdbool.h>
43# else
44#  ifndef HAVE__BOOL
45#   ifdef __cplusplus
46typedef bool _Bool;
47#   else
48#    define _Bool signed char
49#   endif
50#  endif
51#  define bool _Bool
52#  define false 0
53#  define true 1
54#  define __bool_true_false_are_defined 1
55# endif
56#endif
57/*@end@*/
58
59#if LDNS_BUILD_CONFIG_HAVE_ATTR_FORMAT
60#define ATTR_FORMAT(archetype, string_index, first_to_check) \
61    __attribute__ ((format (archetype, string_index, first_to_check)))
62#else /* !LDNS_BUILD_CONFIG_HAVE_ATTR_FORMAT */
63#define ATTR_FORMAT(archetype, string_index, first_to_check) /* empty */
64#endif /* !LDNS_BUILD_CONFIG_HAVE_ATTR_FORMAT */
65
66#if defined(__cplusplus)
67#define ATTR_UNUSED(x)
68#elif LDNS_BUILD_CONFIG_HAVE_ATTR_UNUSED
69#define ATTR_UNUSED(x)  x __attribute__((unused))
70#else /* !LDNS_BUILD_CONFIG_HAVE_ATTR_UNUSED */
71#define ATTR_UNUSED(x)  x
72#endif /* !LDNS_BUILD_CONFIG_HAVE_ATTR_UNUSED */
73
74#if !LDNS_BUILD_CONFIG_HAVE_SOCKLEN_T
75typedef int socklen_t;
76#endif
77
78#endif /* LDNS_COMMON_H */
79