/* Version ID for the JPEG library.
 * Might be useful for tests like "#if JPEG_LIB_VERSION >= 60".
 */
#define JPEG_LIB_VERSION  62	/* Version 6b */

/* Define if your compiler supports prototypes */
#undef HAVE_PROTOTYPES

/* Define to 1 if you have the <stddef.h> header file. */
#undef HAVE_STDDEF_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

/* Define to 1 if the system has the type `unsigned char'. */
#undef HAVE_UNSIGNED_CHAR

/* Define to 1 if the system has the type `unsigned short'. */
#undef HAVE_UNSIGNED_SHORT

/* Define if you want use complete types */
#undef INCOMPLETE_TYPES_BROKEN

/* Define if you have BSD-like bzero and bcopy */
#undef NEED_BSD_STRINGS

/* Define if you need short function names */
#undef NEED_SHORT_EXTERNAL_NAMES

/* Define if you have sys/types.h */
#undef NEED_SYS_TYPES_H

/* Define if shift is unsigned */
#undef RIGHT_SHIFT_IS_UNSIGNED

/* Use accelerated SIMD routines. */
#undef WITH_SIMD

/* Define to 1 if type `char' is unsigned and you are not using gcc.  */
#ifndef __CHAR_UNSIGNED__
# undef __CHAR_UNSIGNED__
#endif

/* Define to empty if `const' does not conform to ANSI C. */
#undef const

/* Define to `__inline__' or `__inline' if that's what the C compiler
   calls it, or to nothing if 'inline' is not supported under any name.  */
#ifndef __cplusplus
#undef inline
#endif

/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t
