Home | History | Annotate | Download | only in jpeg
      1 /*
      2  * jconfig.doc
      3  *
      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.
      7  *
      8  * This file documents the configuration options that are required to
      9  * customize the JPEG software for a particular system.
     10  *
     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.
     15  *
     16  * DO NOT EDIT THIS FILE --- IT WON'T ACCOMPLISH ANYTHING.
     17  * EDIT A COPY NAMED JCONFIG.H.
     18  */
     19 
     20 
     21 /*
     22  * These symbols indicate the properties of your machine or compiler.
     23  * #define the symbol if yes, #undef it if no.
     24  */
     25 
     26 /* Does your compiler support function prototypes?
     27  * (If not, you also need to use ansi2knr, see install.doc)
     28  */
     29 #define HAVE_PROTOTYPES
     30 
     31 /* Does your compiler support the declaration "unsigned char" ?
     32  * How about "unsigned short" ?
     33  */
     34 #define HAVE_UNSIGNED_CHAR
     35 #define HAVE_UNSIGNED_SHORT
     36 
     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().
     40  */
     41 /* #define void char */
     42 
     43 /* Define "const" as empty if your compiler doesn't know the "const" keyword.
     44  */
     45 /* #define const */
     46 
     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.
     50  */
     51 #undef CHAR_IS_UNSIGNED
     52 
     53 /* Define this if your system has an ANSI-conforming <stddef.h> file.
     54  */
     55 #define HAVE_STDDEF_H
     56 
     57 /* Define this if your system has an ANSI-conforming <stdlib.h> file.
     58  */
     59 #define HAVE_STDLIB_H
     60 
     61 /* Define this if your system does not have an ANSI/SysV <string.h>,
     62  * but does have a BSD-style <strings.h>.
     63  */
     64 #undef NEED_BSD_STRINGS
     65 
     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.
     69  */
     70 #undef NEED_SYS_TYPES_H
     71 
     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.)
     77  */
     78 #undef NEED_FAR_POINTERS
     79 
     80 /* Define this if your linker needs global names to be unique in less
     81  * than the first 15 characters.
     82  */
     83 #undef NEED_SHORT_EXTERNAL_NAMES
     84 
     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.
     91  */
     92 #undef INCOMPLETE_TYPES_BROKEN
     93 
     94 
     95 /*
     96  * The following options affect code selection within the JPEG library,
     97  * but they don't need to be visible to applications using the library.
     98  * To minimize application namespace pollution, the symbols won't be
     99  * defined unless JPEG_INTERNALS has been defined.
    100  */
    101 
    102 #ifdef JPEG_INTERNALS
    103 
    104 /* Define this if your compiler implements ">>" on signed values as a logical
    105  * (unsigned) shift; leave it undefined if ">>" is a signed (arithmetic) shift,
    106  * which is the normal and rational definition.
    107  */
    108 #undef RIGHT_SHIFT_IS_UNSIGNED
    109 
    110 
    111 #endif /* JPEG_INTERNALS */
    112 
    113 
    114 /*
    115  * The remaining options do not affect the JPEG library proper,
    116  * but only the sample applications cjpeg/djpeg (see cjpeg.c, djpeg.c).
    117  * Other applications can ignore these.
    118  */
    119 
    120 #ifdef JPEG_CJPEG_DJPEG
    121 
    122 /* These defines indicate which image (non-JPEG) file formats are allowed. */
    123 
    124 #define BMP_SUPPORTED		/* BMP image file format */
    125 #define GIF_SUPPORTED		/* GIF image file format */
    126 #define PPM_SUPPORTED		/* PBMPLUS PPM/PGM image file format */
    127 #undef RLE_SUPPORTED		/* Utah RLE image file format */
    128 #define TARGA_SUPPORTED		/* Targa image file format */
    129 
    130 /* Define this if you want to name both input and output files on the command
    131  * line, rather than using stdout and optionally stdin.  You MUST do this if
    132  * your system can't cope with binary I/O to stdin/stdout.  See comments at
    133  * head of cjpeg.c or djpeg.c.
    134  */
    135 #undef TWO_FILE_COMMANDLINE
    136 
    137 /* Define this if your system needs explicit cleanup of temporary files.
    138  * This is crucial under MS-DOS, where the temporary "files" may be areas
    139  * of extended memory; on most other systems it's not as important.
    140  */
    141 #undef NEED_SIGNAL_CATCHER
    142 
    143 /* By default, we open image files with fopen(...,"rb") or fopen(...,"wb").
    144  * This is necessary on systems that distinguish text files from binary files,
    145  * and is harmless on most systems that don't.  If you have one of the rare
    146  * systems that complains about the "b" spec, define this symbol.
    147  */
    148 #undef DONT_USE_B_MODE
    149 
    150 /* Define this if you want percent-done progress reports from cjpeg/djpeg.
    151  */
    152 #undef PROGRESS_REPORT
    153 
    154 
    155 #endif /* JPEG_CJPEG_DJPEG */
    156