MagickCore 6.9.13
Loading...
Searching...
No Matches
magick-config.h
1/*
2 Copyright 1999 ImageMagick Studio LLC, a non-profit organization
3 dedicated to making software imaging solutions freely available.
4
5 You may not use this file except in compliance with the License. You may
6 obtain a copy of the License at
7
8 https://imagemagick.org/script/license.php
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16 MagickConfig not autogenerated (fixed stuff)
17*/
18#ifndef MAGICKCORE_MAGICK_CONFIG_H
19#define MAGICKCORE_MAGICK_CONFIG_H
20
21#include "magick/magick-baseconfig.h"
22
23#if defined(__cplusplus) || defined(c_plusplus)
24extern "C" {
25#endif
26
27/* Compatibility block */
28#if !defined(MAGICKCORE_QUANTUM_DEPTH) && defined(MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H)
29# warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default"
30# warning "this is an obsolete behavior please fix your makefile"
31# define MAGICKCORE_QUANTUM_DEPTH MAGICKCORE_QUANTUM_DEPTH_OBSOLETE_IN_H
32#endif
33
34/* Number of bits in a pixel Quantum (8/16/32/64) */
35#ifndef MAGICKCORE_QUANTUM_DEPTH
36# error "you should set MAGICKCORE_QUANTUM_DEPTH"
37#endif
38
39/* check values */
40#if MAGICKCORE_QUANTUM_DEPTH != 8
41# if MAGICKCORE_QUANTUM_DEPTH != 16
42# if MAGICKCORE_QUANTUM_DEPTH != 32
43# if MAGICKCORE_QUANTUM_DEPTH != 64
44# error "MAGICKCORE_QUANTUM_DEPTH is not 8/16/32/64 bits"
45# endif
46# endif
47# endif
48#endif
49
50#if !defined(MAGICKCORE_HDRI_ENABLE) && defined(MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H)
51# warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default"
52# warning "this is an obsolete behavior please fix yours makefile"
53# define MAGICKCORE_HDRI_ENABLE MAGICKCORE_HDRI_ENABLE_OBSOLETE_IN_H
54#endif
55
56/* whether HDRI is enable */
57#if !defined(MAGICKCORE_HDRI_ENABLE)
58# error "you should set MAGICKCORE_HDRI_ENABLE"
59#endif
60
61#if MAGICKCORE_HDRI_ENABLE
62# define MAGICKCORE_HDRI_SUPPORT 1
63#endif
64
65#if defined __CYGWIN32__ && !defined __CYGWIN__
66 /* For backwards compatibility with Cygwin b19 and
67 earlier, we define __CYGWIN__ here, so that
68 we can rely on checking just for that macro. */
69# define __CYGWIN__ __CYGWIN32__
70#endif
71
73#define MAGICKCORE_STRING_QUOTE(str) #str
74#define MAGICKCORE_STRING_XQUOTE(str) MAGICKCORE_STRING_QUOTE(str)
75
76/* ABI SUFFIX */
77#ifndef MAGICKCORE_HDRI_SUPPORT
78#define MAGICKCORE_ABI_SUFFIX "Q" MAGICKCORE_STRING_XQUOTE(MAGICKCORE_QUANTUM_DEPTH)
79#else
80#define MAGICKCORE_ABI_SUFFIX "Q" MAGICKCORE_STRING_XQUOTE(MAGICKCORE_QUANTUM_DEPTH) "HDRI"
81#endif
82
83/* some path game */
84#if !defined __CYGWIN__
85# if defined (_WIN32) || defined (_WIN64) || defined (__MSDOS__) || defined (__DJGPP__) || defined (__OS2__)
86 /* Use Windows separators on all _WIN32 defining
87 environments, except Cygwin. */
88# define MAGICKCORE_DIR_SEPARATOR_CHAR '\\'
89# define MAGICKCORE_DIR_SEPARATOR "\\"
90# define MAGICKCORE_PATH_SEPARATOR_CHAR ';'
91# define MAGICKCORE_PATH_SEPARATOR ";"
92# endif
93#endif
94
95/* posix */
96#ifndef MAGICKCORE_DIR_SEPARATOR_CHAR
97 /* Assume that not having this is an indicator that all
98 are missing. */
99# define MAGICKCORE_DIR_SEPARATOR_CHAR '/'
100# define MAGICKCORE_DIR_SEPARATOR "/"
101# define MAGICKCORE_PATH_SEPARATOR_CHAR ':'
102# define MAGICKCORE_PATH_SEPARATOR ":"
103#endif /* !DIR_SEPARATOR_CHAR */
104
105# if defined(MAGICKCORE_POSIX_SUPPORT) || defined(__MINGW32__)
106
107/* module dir */
108#ifndef MAGICKCORE_MODULES_DIRNAME
109# define MAGICKCORE_MODULES_DIRNAME MAGICKCORE_MODULES_BASEDIRNAME "-" MAGICKCORE_ABI_SUFFIX
110#endif
111
112#ifndef MAGICKCORE_MODULES_PATH
113# define MAGICKCORE_MODULES_PATH MAGICKCORE_LIBRARY_ABSOLUTE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_MODULES_DIRNAME
114#endif
115
116#ifndef MAGICKCORE_MODULES_RELATIVE_PATH
117#define MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_LIBRARY_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_MODULES_DIRNAME
118#endif
119
120/* Subdirectory under lib to place ImageMagick coder module files */
121#ifndef MAGICKCORE_CODER_PATH
122# if defined(vms)
123# define MAGICKCORE_CODER_PATH "sys$login:"
124# else
125# define MAGICKCORE_CODER_PATH MAGICKCORE_MODULES_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_CODER_DIRNAME
126# endif
127#endif
128
129#ifndef MAGICKCORE_CODER_RELATIVE_PATH
130# define MAGICKCORE_CODER_RELATIVE_PATH MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_CODER_DIRNAME
131#endif
132
133/* subdirectory under lib to place ImageMagick filter module files */
134#ifndef MAGICKCORE_FILTER_PATH
135# if defined(vms)
136# define MAGICKCORE_FILTER_PATH "sys$login:"
137# else
138# define MAGICKCORE_FILTER_PATH MAGICKCORE_MODULES_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_FILTER_DIRNAME
139# endif
140#endif
141
142#ifndef MAGICKCORE_FILTER_RELATIVE_PATH
143# define MAGICKCORE_FILTER_RELATIVE_PATH MAGICKCORE_MODULES_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_FILTER_DIRNAME
144#endif
145
146/* sharearch dir */
147#ifndef MAGICKCORE_SHAREARCH_DIRNAME
148# define MAGICKCORE_SHAREARCH_DIRNAME MAGICKCORE_SHAREARCH_BASEDIRNAME "-" MAGICKCORE_ABI_SUFFIX
149#endif
150
151#ifndef MAGICKCORE_SHAREARCH_PATH
152# define MAGICKCORE_SHAREARCH_PATH MAGICKCORE_LIBRARY_ABSOLUTE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_SHAREARCH_DIRNAME MAGICKCORE_DIR_SEPARATOR
153#endif
154
155#ifndef MAGICKCORE_SHAREARCH_RELATIVE_PATH
156#define MAGICKCORE_SHAREARCH_RELATIVE_PATH MAGICKCORE_LIBRARY_RELATIVE_PATH MAGICKCORE_DIR_SEPARATOR MAGICKCORE_SHAREARCH_DIRNAME
157#endif
158
159/* for Clang compatibility */
160#ifndef __has_builtin
161# define __has_builtin(x) 0
162#endif
163
164#if defined(__GNUC__) && !defined(__clang__)
165# define MAGICKCORE_DIAGNOSTIC_PUSH() \
166 _Pragma("GCC diagnostic push")
167# define MAGICKCORE_DIAGNOSTIC_IGNORE_MAYBE_UNINITIALIZED() \
168 _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
169# define MAGICKCORE_DIAGNOSTIC_POP() \
170 _Pragma("GCC diagnostic pop")
171#else
172# define MAGICKCORE_DIAGNOSTIC_PUSH()
173# define MAGICKCORE_DIAGNOSTIC_IGNORE_MAYBE_UNINITIALIZED()
174# define MAGICKCORE_DIAGNOSTIC_POP()
175#endif
176
177#define MAGICKCORE_BITS_BELOW(power_of_2) \
178 ((power_of_2)-1)
179
180#define MAGICKCORE_MAX_ALIGNMENT_PADDING(power_of_2) \
181 MAGICKCORE_BITS_BELOW(power_of_2)
182
183#define MAGICKCORE_IS_NOT_ALIGNED(n, power_of_2) \
184 ((n) & MAGICKCORE_BITS_BELOW(power_of_2))
185
186#define MAGICKCORE_IS_NOT_POWER_OF_2(n) \
187 MAGICKCORE_IS_NOT_ALIGNED((n), (n))
188
189#define MAGICKCORE_ALIGN_DOWN(n, power_of_2) \
190 ((n) & ~MAGICKCORE_BITS_BELOW(power_of_2))
191
192#define MAGICKCORE_ALIGN_UP(n, power_of_2) \
193 MAGICKCORE_ALIGN_DOWN((n) + MAGICKCORE_MAX_ALIGNMENT_PADDING(power_of_2),power_of_2)
194
195#endif
196
197#if defined(__cplusplus) || defined(c_plusplus)
198}
199#endif
200
201#endif