18 #ifndef MAGICKCORE_MAGICK_CONFIG_H 19 #define MAGICKCORE_MAGICK_CONFIG_H 21 #if defined(__cplusplus) || defined(c_plusplus) 27 #define MAGICKCORE_STRING_QUOTE(str) #str 28 #define MAGICKCORE_STRING_XQUOTE(str) MAGICKCORE_STRING_QUOTE(str) 30 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 31 # if defined(__GNUC__) || defined(__clang__) 32 # define MAGICK_COMPILER_WARNING(w) _Pragma(MAGICKCORE_STRING_QUOTE(GCC warning w)) 33 # elif defined(_MSC_VER) 34 # define MAGICK_COMPILER_WARNING(w) _Pragma(MAGICKCORE_STRING_QUOTE(message(w))) 38 #ifndef MAGICK_COMPILER_WARNING 39 # define MAGICK_COMPILER_WARNING(w) 42 #ifdef MAGICKCORE__FILE_OFFSET_BITS 43 # ifdef _FILE_OFFSET_BITS 44 # if _FILE_OFFSET_BITS != MAGICKCORE__FILE_OFFSET_BITS 45 MAGICK_COMPILER_WARNING(
"_FILE_OFFSET_BITS is already defined, but does not match MAGICKCORE__FILE_OFFSET_BITS")
47 # undef _FILE_OFFSET_BITS 50 # ifndef _FILE_OFFSET_BITS 51 # if MAGICKCORE__FILE_OFFSET_BITS == 64 52 # define _FILE_OFFSET_BITS 64 53 # elif MAGICKCORE__FILE_OFFSET_BITS == 32 54 # define _FILE_OFFSET_BITS 32 56 # define _FILE_OFFSET_BITS MAGICKCORE__FILE_OFFSET_BITS 62 #if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H) 63 # warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default" 64 # warning "this is an obsolete behavior please fix your makefile" 65 # define MAGICKCORE_QUANTUM_DEPTH MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H 69 #ifndef MAGICKCORE_QUANTUM_DEPTH 70 # error "you should set MAGICKCORE_QUANTUM_DEPTH" 74 #if MAGICKCORE_QUANTUM_DEPTH != 8 75 # if MAGICKCORE_QUANTUM_DEPTH != 16 76 # if MAGICKCORE_QUANTUM_DEPTH != 32 77 # if MAGICKCORE_QUANTUM_DEPTH != 64 78 # error "MAGICKCORE_QUANTUM_DEPTH is not 8/16/32/64 bits" 85 #if !defined(MAGICKCORE_HDRI_ENABLE) && defined(MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H) 86 # warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default" 87 # warning "this is an obsolete behavior please fix yours makefile" 88 # define MAGICKCORE_HDRI_ENABLE MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H 92 #if !defined(MAGICKCORE_HDRI_ENABLE) 93 # error "you should set MAGICKCORE_HDRI_ENABLE" 96 #if MAGICKCORE_HDRI_ENABLE 97 # define MAGICKCORE_HDRI_SUPPORT 1 101 #if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H) 102 # warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default" 103 # warning "this is an obsolete behavior please fix yours makefile" 104 # define MAGICKCORE_QUANTUM_DEPTH MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H 108 #ifndef MAGICKCORE_QUANTUM_DEPTH 109 # error "you should set MAGICKCORE_QUANTUM_DEPTH" 113 #if MAGICKCORE_QUANTUM_DEPTH != 8 114 # if MAGICKCORE_QUANTUM_DEPTH != 16 115 # if MAGICKCORE_QUANTUM_DEPTH != 32 116 # if MAGICKCORE_QUANTUM_DEPTH != 64 117 # error "MAGICKCORE_QUANTUM_DEPTH is not 8/16/32/64 bits" 124 #if !defined(MAGICKCORE_HDRI_ENABLE) && defined(MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H) 125 # warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default" 126 # warning "this is an obsolete behavior please fix yours makefile" 127 # define MAGICKCORE_HDRI_ENABLE MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H 131 #if !defined(MAGICKCORE_HDRI_ENABLE) 132 # error "you should set MAGICKCORE_HDRI_ENABLE" 135 #if MAGICKCORE_HDRI_ENABLE 136 # define MAGICKCORE_HDRI_SUPPORT 1 139 #if defined __CYGWIN32__ && !defined __CYGWIN__ 143 # define __CYGWIN__ __CYGWIN32__ 147 #ifndef MAGICKCORE_HDRI_SUPPORT 148 #define MAGICKCORE_ABI_SUFFIX "Q" MAGICKCORE_STRING_XQUOTE(MAGICKCORE_QUANTUM_DEPTH) 150 #define MAGICKCORE_ABI_SUFFIX "Q" MAGICKCORE_STRING_XQUOTE(MAGICKCORE_QUANTUM_DEPTH) "HDRI" 154 #if !defined __CYGWIN__ 155 # if defined (_WIN32) || defined (_WIN64) || defined (__MSDOS__) || defined (__DJGPP__) || defined (__OS2__) 158 # define MAGICKCORE_DIR_SEPARATOR_CHAR '\\' 159 # define MAGICKCORE_DIR_SEPARATOR "\\" 160 # define MAGICKCORE_PATH_SEPARATOR_CHAR ';' 161 # define MAGICKCORE_PATH_SEPARATOR ";" 166 #ifndef MAGICKCORE_DIR_SEPARATOR_CHAR 169 # define MAGICKCORE_DIR_SEPARATOR_CHAR '/' 170 # define MAGICKCORE_DIR_SEPARATOR "/" 171 # define MAGICKCORE_PATH_SEPARATOR_CHAR ':' 172 # define MAGICKCORE_PATH_SEPARATOR ":" 175 # if defined(MAGICKCORE_POSIX_SUPPORT) || defined(__MINGW32__) 178 #ifndef MAGICKCORE_MODULES_DIRNAME 179 # define MAGICKCORE_MODULES_DIRNAME MAGICKCORE_MODULES_BASEDIRNAME "-" MAGICKCORE_ABI_SUFFIX 182 #ifndef MAGICKCORE_MODULES_PATH 183 # define MAGICKCORE_MODULES_PATH MAGICKCORE_LIBRARY_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_MODULES_DIRNAME 186 #ifndef MAGICKCORE_MODULES_RELATIVE_PATH 187 #define MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_LIBRARY_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_MODULES_DIRNAME 191 #ifndef MAGICKCORE_CODER_PATH 193 # define MAGICKCORE_CODER_PATH "sys$login:" 195 # define MAGICKCORE_CODER_PATH MAGICKCORE_MODULES_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_CODER_DIRNAME 199 #ifndef MAGICKCORE_CODER_RELATIVE_PATH 200 # define MAGICKCORE_CODER_RELATIVE_PATH MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_CODER_DIRNAME 204 #ifndef MAGICKCORE_FILTER_PATH 206 # define MAGICKCORE_FILTER_PATH "sys$login:" 208 # define MAGICKCORE_FILTER_PATH MAGICKCORE_MODULES_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_FILTER_DIRNAME 212 #ifndef MAGICKCORE_FILTER_RELATIVE_PATH 213 # define MAGICKCORE_FILTER_RELATIVE_PATH MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_FILTER_DIRNAME 217 #ifndef MAGICKCORE_SHAREARCH_DIRNAME 218 # define MAGICKCORE_SHAREARCH_DIRNAME MAGICKCORE_SHAREARCH_BASEDIRNAME "-" MAGICKCORE_ABI_SUFFIX 221 #ifndef MAGICKCORE_SHAREARCH_PATH 222 # define MAGICKCORE_SHAREARCH_PATH MAGICKCORE_LIBRARY_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_SHAREARCH_DIRNAME MAGICKCORE_DIR_SEPARATOR 225 #ifndef MAGICKCORE_SHAREARCH_RELATIVE_PATH 226 #define MAGICKCORE_SHAREARCH_RELATIVE_PATH MAGICKCORE_LIBRARY_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_SHAREARCH_DIRNAME 232 #ifndef __has_builtin 233 # define __has_builtin(x) 0 236 #if defined(__GNUC__) && !defined(__clang__) 237 # define MAGICKCORE_DIAGNOSTIC_PUSH() \ 238 _Pragma("GCC diagnostic push") 239 # define MAGICKCORE_DIAGNOSTIC_IGNORE_MAYBE_UNINITIALIZED() \ 240 _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 241 # define MAGICKCORE_DIAGNOSTIC_POP() \ 242 _Pragma("GCC diagnostic pop") 244 # define MAGICKCORE_DIAGNOSTIC_PUSH() 245 # define MAGICKCORE_DIAGNOSTIC_IGNORE_MAYBE_UNINITIALIZED() 246 # define MAGICKCORE_DIAGNOSTIC_POP() 249 #define MAGICKCORE_BITS_BELOW(power_of_2) \ 252 #define MAGICKCORE_MAX_ALIGNMENT_PADDING(power_of_2) \ 253 MAGICKCORE_BITS_BELOW(power_of_2) 255 #define MAGICKCORE_IS_NOT_ALIGNED(n, power_of_2) \ 256 ((n) & MAGICKCORE_BITS_BELOW(power_of_2)) 258 #define MAGICKCORE_IS_NOT_POWER_OF_2(n) \ 259 MAGICKCORE_IS_NOT_ALIGNED((n), (n)) 261 #define MAGICKCORE_ALIGN_DOWN(n, power_of_2) \ 262 ((n) & ~MAGICKCORE_BITS_BELOW(power_of_2)) 264 #define MAGICKCORE_ALIGN_UP(n, power_of_2) \ 265 MAGICKCORE_ALIGN_DOWN((n) + MAGICKCORE_MAX_ALIGNMENT_PADDING(power_of_2),power_of_2) 267 #if defined(__cplusplus) || defined(c_plusplus) #define MAGICK_COMPILER_WARNING(w)