/* * Configuration header file. */ #ifndef UD_config_h #define UD_config_h /* * The following directives specify aspects of the C compiler. Other * aspects of the compilation environment (e.g. the existance and * contents of header files) are specified in the respective header files * of this directory. */ /* * Variadic functions. Define the following if your compiler doesn't * support <stdarg.h>. */ #undef UD_NO_STDARG /* * Compiler keywords. Define whatever your compiler doesn't support. */ #undef UD_NO_CONST #undef UD_NO_SIGNED #undef UD_NO_VOLATILE /* * Function prototyping. Define the following if your compiler * doesn't support function prototyping. */ #undef UD_NO_PROTOTYPES /* * String generation. Define the following if your compiler * doesn't support Standard C stringization. */ #undef UD_NO_HASH /* * Token pasting. Define the following if your compiler doesn't support * Standard C token pasting. */ #undef UD_NO_HASHHASH /* * Void pointer type. Define the following if your compiler doesn't * support the void pointer type. */ #undef UD_NO_VOIDSTAR /* * Size of various pointers: */ #undef SIZEOF_CHARP /***************************************************************************** * The following directives elaborate the above definitions or stand * alone. You shouldn't need to change them. *****************************************************************************/ /* * Compiler keywords: */ #ifdef UD_NO_CONST #define const #else #undef const #endif #ifdef UD_NO_SIGNED #define signed #else #undef signed #endif #ifdef UD_NO_VOLATILE #define volatile #else #undef volatile #endif /* * Function prototyping: */ #ifdef UD_NO_PROTOTYPES #define UD_PROTO(args) () #else #define UD_PROTO(args) args #endif /* * Additional macro support for function prototyping: */ #define UD_EXTERN_FUNC(type_name,args) extern type_name UD_PROTO(args) /* * String-generation macro: */ #ifdef UD_NO_HASH #define MAKESTRING_UD(x) "x" #else #define MAKESTRING_UD(x) #x #endif /* * Macro used in programs: */ #define UD_MAKESTRING(x) MAKESTRING_UD(x) /* * Macro for backwards compatibility: */ #define MAKESTRING(x) UD_MAKESTRING(x) /* * Token-pasting macro: */ #ifdef UD_NO_HASHHASH #define GLUE_UD(a,b) a/**/b #else #define GLUE_UD(a,b) a##b #endif /* * Macro used in programs: */ #define UD_GLUE(a,b) GLUE_UD(a,b) /* * Macro for backwards compatibility: */ #define GLUE(a,b) UD_GLUE(a,b) /* * Pointer-to-void type: */ #ifndef UD_FORTRAN_SOURCE # ifdef UD_NO_VOIDP typedef char *voidp; # else typedef void *voidp; # endif #endif /* * Statement macro: */ #ifdef lint extern int UD_ZERO; #else # define UD_ZERO 0 #endif #define UD_STMT(stuff) do {stuff} while (UD_ZERO) #endif /* UD_config_h */