Update build system to Autoconf 2.58, Automake 1.7, gettext 0.12.1.
[pspp-builds.git] / pref.h.orig
1 /* Let's tell EMACS what language this is: -*- C -*- */
2
3 /* Used by separable libraries to enable PSPP-specific features. */
4 #define PSPP 1
5
6 /*
7  *
8  * Debugging
9  *
10  */
11
12 /* Define to get lots of info printed by procedures. */
13 /*#define DEBUGGING 1*/
14
15 #if DEBUGGING
16 #define GLOBAL_DEBUGGING 1
17 #endif
18
19 /* Define these if DEBUGGING is off and you want to make certain
20    additional optimizations. */
21 #if !DEBUGGING
22 /* #define PRODUCTION 1 */              /* disable extra function calls */
23 /* #define NDEBUG 1 */                  /* disable assert() sanity checks */
24 #endif
25 \f
26 /* Compilers. */
27
28 /* Fix Windows lossage. */
29 #ifdef __WIN32__
30 #undef __WIN32__
31 #define __WIN32__ 1
32 #undef __MSDOS__
33 #define __MSDOS__ 1
34 #endif
35
36 /* Fix DJGPP lossage. */
37 #if __DJGPP__
38 #undef unix
39 #undef __unix__
40 #endif
41
42 /* Fix Cygnus Windows lossage. */
43 #if defined (__CYGWIN32__)
44 #define unix 1
45 #endif
46
47 /* Ensure that unix and __unix__ are equivalent. */
48 #if defined (unix) || defined (__unix__) || defined (__unix)
49 #undef unix
50 #define unix 1
51
52 #undef __unix__
53 #define __unix__ 1
54
55 #undef __unix
56 #define __unix 1
57 #endif
58
59 /* Make sure to use the proper keywords. */
60 #if __GNUC__ > 1 && !defined (inline)
61 #define inline __inline__
62 #endif
63
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. */
67 #if __GNUC__ > 1
68 #define __attribute__(X) __attribute__ (X)
69 #else
70 #define __attribute__(X)
71 #endif
72
73 /* GNU C allows unused variables and parameters to be declared as
74    such. */
75 #if __GNUC__ >= 2
76 #define unused __attribute__ ((__unused__))
77 #else
78 #define unused
79 #endif
80 \f
81 /* CPUs. */
82
83 #if SIZEOF_DOUBLE == 8
84 #define second_lowest_flt64 second_lowest_value
85 #else
86 #error Must define second_lowest_flt64 for your architecture.
87 #endif
88
89 /* Figure out which integer type on this system is a signed 32-bit
90    integer. */
91 #if SIZEOF_SHORT==4
92   #define int32 short
93 #elif SIZEOF_INT==4
94   #define int32 int
95 #elif SIZEOF_LONG==4
96   #define int32 long
97 #else
98   #error Which one of your basic types is 32-bit signed integer?
99 #endif
100
101 #if SIZEOF_FLOAT==8
102   #define flt64 float
103   #define FLT64_MAX FLT_MAX
104 #elif SIZEOF_DOUBLE==8
105   #define flt64 double
106   #define FLT64_MAX DBL_MAX
107 #elif SIZEOF_LONG_DOUBLE==8
108   #define flt64 long double
109   #define FLT64_MAX LDBL_MAX
110 #else
111   #error Which one of your basic types is 64-bit floating point?
112   #define flt64 double
113   #define FLT64_MAX DBL_MAX
114 #endif
115 \f
116 /* Environments. */
117
118 /* Internationalization. */
119 #include <libintl.h>
120
121 #if !ENABLE_NLS
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
124    types. */
125 #undef gettext
126 #define gettext(STRING)                         \
127         STRING
128 #endif
129
130 #define _(STRING)                               \
131         gettext(STRING)
132      
133 #define N_(STRING)                              \
134         STRING
135
136 /* Even C emulation of alloca counts as an alloca implementation. */
137 #if C_ALLOCA
138 #define HAVE_ALLOCA 1
139 #endif
140
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
147 #endif
148
149 /* Saves on #if's. */
150 #if HAVE_ALLOCA && !__CHECKER__
151 #define local_alloc(X)                          \
152         alloca(X)
153
154 #define local_free(P)                           \
155         do                                      \
156           {                                     \
157           }                                     \
158         while (0)
159 #elif !__CHECKER__
160 #define local_alloc(X)                          \
161         xmalloc (X)
162      
163 #define local_free(P)                           \
164         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))
171
172 #define local_free(P)                           \
173         free (((char *) P) - 16)
174 #endif /* __CHECKER__ */
175 \f
176 /* Filesystems. */
177
178 /* Directory separator character for this OS, if applicable. */
179 #if !__MSDOS__
180 #define DIR_SEPARATOR '/'
181 #elif
182 #define DIR_SEPARATOR '\\'
183 #endif
184
185 /* Path delimiter character. */
186 #if !__MSDOS__
187 #define PATH_DELIMITER ':'
188 #else
189 #define PATH_DELIMITER ';'
190 #endif
191
192 /* MSDOS mkdir() takes only one argument. */
193 #if __MSDOS__ && !__DJGPP__
194 #define mkdir(path, mode)                       \
195         mkdir (path)
196 #endif
197 \f
198 /* Options. */
199
200 /* Approximate amount of memory, in bytes, to allocate before paging
201    to disk.  */
202 #define MAX_WORKSPACE (4*1024*1024)     /* 4 MBytes */
203
204 /* (libhistory) The location for the history file that records
205    commands entered interactively.  Tilde expansion is performed. */
206 #define HISTORY_FILE "~/.pspp_history"
207
208 /* (libhistory) Maximum number of commands to record in history
209    file. */
210 #define MAX_HISTORY 500
211 \f
212 /* Output drivers. */
213
214 /* Define to exclude the HTML output driver. */
215 /* #define NO_HTML 1 */
216
217 /* Define to exclude the PostScript and Encapsulated PostScript
218    driver. */
219 /* #define NO_POSTSCRIPT 1 */
220 \f
221 /* Procedure-specific options. */
222
223 /* CROSSTABS: Maximum number of tables to process in one pass. */
224 #define MAX_CROSSTAB_TABLES 32
225
226 /* FREQUENCIES: Define to allow bars greater than 1/2" wide. */
227 /* #define ALLOW_HUGE_BARS 1 */
228
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
234
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)