4
* Copyright (C) 1991-1994, Thomas G. Lane.
5
* This file is part of the Independent JPEG Group's software.
6
* For conditions of distribution and use, see the accompanying README file.
8
* This file documents the configuration options that are required to
9
* customize the JPEG software for a particular system.
11
* The actual configuration options for a particular installation are stored
12
* in jconfig.h. On many machines, jconfig.h can be generated automatically
13
* or copied from one of the "canned" jconfig files that we supply. But if
14
* you need to generate a jconfig.h file by hand, this file tells you how.
16
* DO NOT EDIT THIS FILE --- IT WON'T ACCOMPLISH ANYTHING.
17
* EDIT A COPY NAMED JCONFIG.H.
22
* These symbols indicate the properties of your machine or compiler.
23
* #define the symbol if yes, #undef it if no.
26
/* Does your compiler support function prototypes?
27
* (If not, you also need to use ansi2knr, see install.txt)
29
#define HAVE_PROTOTYPES
31
/* Does your compiler support the declaration "unsigned char" ?
32
* How about "unsigned short" ?
34
#define HAVE_UNSIGNED_CHAR
35
#define HAVE_UNSIGNED_SHORT
37
/* Define "void" as "char" if your compiler doesn't know about type void.
38
* NOTE: be sure to define void such that "void *" represents the most general
39
* pointer type, e.g., that returned by malloc().
41
/* #define void char */
43
/* Define "const" as empty if your compiler doesn't know the "const" keyword.
47
/* Define this if an ordinary "char" type is unsigned.
48
* If you're not sure, leaving it undefined will work at some cost in speed.
49
* If you defined HAVE_UNSIGNED_CHAR then the speed difference is minimal.
51
#undef CHAR_IS_UNSIGNED
53
/* Define this if your system has an ANSI-conforming <stddef.h> file.
57
/* Define this if your system has an ANSI-conforming <stdlib.h> file.
61
/* Define this if your system does not have an ANSI/SysV <string.h>,
62
* but does have a BSD-style <strings.h>.
64
#undef NEED_BSD_STRINGS
66
/* Define this if your system does not provide typedef size_t in any of the
67
* ANSI-standard places (stddef.h, stdlib.h, or stdio.h), but places it in
68
* <sys/types.h> instead.
70
#undef NEED_SYS_TYPES_H
72
/* For 80x86 machines, you need to define NEED_FAR_POINTERS,
73
* unless you are using a large-data memory model or 80386 flat-memory mode.
74
* On less brain-damaged CPUs this symbol must not be defined.
75
* (Defining this symbol causes large data structures to be referenced through
76
* "far" pointers and to be allocated with a special version of malloc.)
78
#undef NEED_FAR_POINTERS
80
/* Define this if your linker needs global names to be unique in less
81
* than the first 15 characters.
83
#undef NEED_SHORT_EXTERNAL_NAMES
85
/* Although a real ANSI C compiler can deal perfectly well with pointers to
86
* unspecified structures (see "incomplete types" in the spec), a few pre-ANSI
87
* and pseudo-ANSI compilers get confused. To keep one of these bozos happy,
88
* define INCOMPLETE_TYPES_BROKEN. This is not recommended unless you
89
* actually get "missing structure definition" warnings or errors while
90
* compiling the JPEG code.
92
#undef INCOMPLETE_TYPES_BROKEN
94
/* Define "boolean" as unsigned char, not int, on Windows systems.
97
#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */
98
typedef unsigned char boolean;
100
#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */
105
* The following options affect code selection within the JPEG library,
106
* but they don't need to be visible to applications using the library.
107
* To minimize application namespace pollution, the symbols won't be
108
* defined unless JPEG_INTERNALS has been defined.
111
#ifdef JPEG_INTERNALS
113
/* Define this if your compiler implements ">>" on signed values as a logical
114
* (unsigned) shift; leave it undefined if ">>" is a signed (arithmetic) shift,
115
* which is the normal and rational definition.
117
#undef RIGHT_SHIFT_IS_UNSIGNED
120
#endif /* JPEG_INTERNALS */
124
* The remaining options do not affect the JPEG library proper,
125
* but only the sample applications cjpeg/djpeg (see cjpeg.c, djpeg.c).
126
* Other applications can ignore these.
129
#ifdef JPEG_CJPEG_DJPEG
131
/* These defines indicate which image (non-JPEG) file formats are allowed. */
133
#define BMP_SUPPORTED /* BMP image file format */
134
#define GIF_SUPPORTED /* GIF image file format */
135
#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */
136
#undef RLE_SUPPORTED /* Utah RLE image file format */
137
#define TARGA_SUPPORTED /* Targa image file format */
139
/* Define this if you want to name both input and output files on the command
140
* line, rather than using stdout and optionally stdin. You MUST do this if
141
* your system can't cope with binary I/O to stdin/stdout. See comments at
142
* head of cjpeg.c or djpeg.c.
144
#undef TWO_FILE_COMMANDLINE
146
/* Define this if your system needs explicit cleanup of temporary files.
147
* This is crucial under MS-DOS, where the temporary "files" may be areas
148
* of extended memory; on most other systems it's not as important.
150
#undef NEED_SIGNAL_CATCHER
152
/* By default, we open image files with fopen(...,"rb") or fopen(...,"wb").
153
* This is necessary on systems that distinguish text files from binary files,
154
* and is harmless on most systems that don't. If you have one of the rare
155
* systems that complains about the "b" spec, define this symbol.
157
#undef DONT_USE_B_MODE
159
/* Define this if you want percent-done progress reports from cjpeg/djpeg.
161
#undef PROGRESS_REPORT
164
#endif /* JPEG_CJPEG_DJPEG */