1 /* Let's tell EMACS what language this is: -*- C -*- */
3 /* Used by separable libraries to enable PSPP-specific features. */
12 /* Define to get lots of info printed by procedures. */
13 /*#define DEBUGGING 1*/
16 #define GLOBAL_DEBUGGING 1
19 /* Define these if DEBUGGING is off and you want to make certain
20 additional optimizations. */
22 /* #define PRODUCTION 1 */ /* disable extra function calls */
23 /* #define NDEBUG 1 */ /* disable assert() sanity checks */
28 /* Fix Windows lossage. */
36 /* Fix DJGPP lossage. */
42 /* Fix Cygnus Windows lossage. */
43 #if defined (__CYGWIN32__)
47 /* Ensure that unix and __unix__ are equivalent. */
48 #if defined (unix) || defined (__unix__) || defined (__unix)
59 /* Make sure to use the proper keywords. */
60 #if __GNUC__ > 1 && !defined (inline)
61 #define inline __inline__
64 /* GNU C allows the programmer to declare that certain functions take
65 printf-like arguments, never return, etc. Conditionalize these
66 declarations on whether gcc is in use. */
68 #define __attribute__(X) __attribute__ (X)
70 #define __attribute__(X)
73 /* GNU C allows unused variables and parameters to be declared as
76 #define unused __attribute__ ((__unused__))
83 #if SIZEOF_DOUBLE == 8
84 #define second_lowest_flt64 second_lowest_value
86 #error Must define second_lowest_flt64 for your architecture.
89 /* Figure out which integer type on this system is a signed 32-bit
98 #error Which one of your basic types is 32-bit signed integer?
103 #define FLT64_MAX FLT_MAX
104 #elif SIZEOF_DOUBLE==8
106 #define FLT64_MAX DBL_MAX
107 #elif SIZEOF_LONG_DOUBLE==8
108 #define flt64 long double
109 #define FLT64_MAX LDBL_MAX
111 #error Which one of your basic types is 64-bit floating point?
113 #define FLT64_MAX DBL_MAX
118 /* Internationalization. */
122 /* If we don't do this then gettext() still monkeys with the string,
123 which causes gcc not to do its checking on printf() format
126 #define gettext(STRING) \
136 /* Even C emulation of alloca counts as an alloca implementation. */
138 #define HAVE_ALLOCA 1
141 /* Define PAGED_STACK if alloca() is supported and the stack can
142 expand arbitrarily. (Under some broken OSes like DOS and
143 Windows the stack is small and fixed in size.) This will prevent
144 big alloca() requests (like 1MB). */
145 #if HAVE_ALLOCA && unix
146 #define PAGED_STACK 1
149 /* Saves on #if's. */
150 #if HAVE_ALLOCA && !__CHECKER__
151 #define local_alloc(X) \
154 #define local_free(P) \
160 #define local_alloc(X) \
163 #define local_free(P) \
165 #else /* __CHECKER__ */
166 /* Why define these this way? Because if you do it this way then if
167 you try to free a block returned by local_alloc() with the free()
168 function, you get an error message. */
169 #define local_alloc(X) \
170 ((void *) (((char *) (xmalloc (X+16))) + 16))
172 #define local_free(P) \
173 free (((char *) P) - 16)
174 #endif /* __CHECKER__ */
178 /* Directory separator character for this OS, if applicable. */
180 #define DIR_SEPARATOR '/'
182 #define DIR_SEPARATOR '\\'
185 /* Path delimiter character. */
187 #define PATH_DELIMITER ':'
189 #define PATH_DELIMITER ';'
192 /* MSDOS mkdir() takes only one argument. */
193 #if __MSDOS__ && !__DJGPP__
194 #define mkdir(path, mode) \
200 /* Approximate amount of memory, in bytes, to allocate before paging
202 #define MAX_WORKSPACE (4*1024*1024) /* 4 MBytes */
204 /* (libhistory) The location for the history file that records
205 commands entered interactively. Tilde expansion is performed. */
206 #define HISTORY_FILE "~/.pspp_history"
208 /* (libhistory) Maximum number of commands to record in history
210 #define MAX_HISTORY 500
212 /* Output drivers. */
214 /* Define to exclude the HTML output driver. */
215 /* #define NO_HTML 1 */
217 /* Define to exclude the PostScript and Encapsulated PostScript
219 /* #define NO_POSTSCRIPT 1 */
221 /* Procedure-specific options. */
223 /* CROSSTABS: Maximum number of tables to process in one pass. */
224 #define MAX_CROSSTAB_TABLES 32
226 /* FREQUENCIES: Define to allow bars greater than 1/2" wide. */
227 /* #define ALLOW_HUGE_BARS 1 */
229 /* FREQUENCIES: Minimum, maximum number of bars in a histogram. The
230 number is based on the number of unique values of the variable,
231 unless overridden. */
232 #define MIN_HIST_BARS 3
233 #define MAX_HIST_BARS 20
235 /* FREQUENCIES: Density of polyline used to approximate the normal
236 curve. The value is the number of samples taken per chart. Higher
237 values give smoother curves. */
238 #define POLYLINE_DENSITY (MAX_HIST_BARS*4)