170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* 270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * jconfig.doc 370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * 470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * Copyright (C) 1991-1994, Thomas G. Lane. 570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * This file is part of the Independent JPEG Group's software. 670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * For conditions of distribution and use, see the accompanying README file. 770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * 870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * This file documents the configuration options that are required to 970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * customize the JPEG software for a particular system. 1070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * 1170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * The actual configuration options for a particular installation are stored 1270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * in jconfig.h. On many machines, jconfig.h can be generated automatically 1370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * or copied from one of the "canned" jconfig files that we supply. But if 1470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * you need to generate a jconfig.h file by hand, this file tells you how. 1570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * 1670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * DO NOT EDIT THIS FILE --- IT WON'T ACCOMPLISH ANYTHING. 1770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * EDIT A COPY NAMED JCONFIG.H. 1870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 1970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 2070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 2170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* 2270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * These symbols indicate the properties of your machine or compiler. 2370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * #define the symbol if yes, #undef it if no. 2470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 2570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 2670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Does your compiler support function prototypes? 2770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * (If not, you also need to use ansi2knr, see install.doc) 2870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 2970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define HAVE_PROTOTYPES 3070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 3170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Does your compiler support the declaration "unsigned char" ? 3270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * How about "unsigned short" ? 3370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 3470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define HAVE_UNSIGNED_CHAR 3570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define HAVE_UNSIGNED_SHORT 3670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 3770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define "void" as "char" if your compiler doesn't know about type void. 3870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * NOTE: be sure to define void such that "void *" represents the most general 3970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * pointer type, e.g., that returned by malloc(). 4070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 4170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* #define void char */ 4270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 4370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define "const" as empty if your compiler doesn't know the "const" keyword. 4470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 4570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* #define const */ 4670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 4770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define this if an ordinary "char" type is unsigned. 4870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * If you're not sure, leaving it undefined will work at some cost in speed. 4970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * If you defined HAVE_UNSIGNED_CHAR then the speed difference is minimal. 5070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 5170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef CHAR_IS_UNSIGNED 5270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 5370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define this if your system has an ANSI-conforming <stddef.h> file. 5470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 5570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define HAVE_STDDEF_H 5670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 5770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define this if your system has an ANSI-conforming <stdlib.h> file. 5870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 5970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define HAVE_STDLIB_H 6070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 6170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define this if your system does not have an ANSI/SysV <string.h>, 6270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * but does have a BSD-style <strings.h>. 6370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 6470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef NEED_BSD_STRINGS 6570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 6670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define this if your system does not provide typedef size_t in any of the 6770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * ANSI-standard places (stddef.h, stdlib.h, or stdio.h), but places it in 6870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * <sys/types.h> instead. 6970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 7070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef NEED_SYS_TYPES_H 7170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 7270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* For 80x86 machines, you need to define NEED_FAR_POINTERS, 7370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * unless you are using a large-data memory model or 80386 flat-memory mode. 7470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * On less brain-damaged CPUs this symbol must not be defined. 7570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * (Defining this symbol causes large data structures to be referenced through 7670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * "far" pointers and to be allocated with a special version of malloc.) 7770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 7870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef NEED_FAR_POINTERS 7970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 8070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define this if your linker needs global names to be unique in less 8170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * than the first 15 characters. 8270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 8370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef NEED_SHORT_EXTERNAL_NAMES 8470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 8570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Although a real ANSI C compiler can deal perfectly well with pointers to 8670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * unspecified structures (see "incomplete types" in the spec), a few pre-ANSI 8770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * and pseudo-ANSI compilers get confused. To keep one of these bozos happy, 8870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * define INCOMPLETE_TYPES_BROKEN. This is not recommended unless you 8970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * actually get "missing structure definition" warnings or errors while 9070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * compiling the JPEG code. 9170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 9270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef INCOMPLETE_TYPES_BROKEN 9370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 9470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 9570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* 9670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * The following options affect code selection within the JPEG library, 9770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * but they don't need to be visible to applications using the library. 9870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * To minimize application namespace pollution, the symbols won't be 9970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * defined unless JPEG_INTERNALS has been defined. 10070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 10170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 10270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#ifdef JPEG_INTERNALS 10370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 10470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define this if your compiler implements ">>" on signed values as a logical 10570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * (unsigned) shift; leave it undefined if ">>" is a signed (arithmetic) shift, 10670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * which is the normal and rational definition. 10770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 10870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef RIGHT_SHIFT_IS_UNSIGNED 10970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 11070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 11170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#endif /* JPEG_INTERNALS */ 11270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 11370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 11470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* 11570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * The remaining options do not affect the JPEG library proper, 11670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * but only the sample applications cjpeg/djpeg (see cjpeg.c, djpeg.c). 11770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * Other applications can ignore these. 11870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 11970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 12070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#ifdef JPEG_CJPEG_DJPEG 12170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 12270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* These defines indicate which image (non-JPEG) file formats are allowed. */ 12370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 12470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define BMP_SUPPORTED /* BMP image file format */ 12570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define GIF_SUPPORTED /* GIF image file format */ 12670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 12770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef RLE_SUPPORTED /* Utah RLE image file format */ 12870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#define TARGA_SUPPORTED /* Targa image file format */ 12970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 13070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define this if you want to name both input and output files on the command 13170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * line, rather than using stdout and optionally stdin. You MUST do this if 13270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * your system can't cope with binary I/O to stdin/stdout. See comments at 13370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * head of cjpeg.c or djpeg.c. 13470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 13570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef TWO_FILE_COMMANDLINE 13670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 13770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define this if your system needs explicit cleanup of temporary files. 13870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * This is crucial under MS-DOS, where the temporary "files" may be areas 13970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * of extended memory; on most other systems it's not as important. 14070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 14170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef NEED_SIGNAL_CATCHER 14270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 14370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* By default, we open image files with fopen(...,"rb") or fopen(...,"wb"). 14470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * This is necessary on systems that distinguish text files from binary files, 14570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * and is harmless on most systems that don't. If you have one of the rare 14670a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine * systems that complains about the "b" spec, define this symbol. 14770a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 14870a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef DONT_USE_B_MODE 14970a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 15070a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine/* Define this if you want percent-done progress reports from cjpeg/djpeg. 15170a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine */ 15270a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#undef PROGRESS_REPORT 15370a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 15470a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine 15570a18cd874a22452aca9e39e22275ed4538ed20bVladimir Chtchetkine#endif /* JPEG_CJPEG_DJPEG */ 156