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