/* config.h for go32 */

#define I386COFF 1

/* Define if using alloca.c.  */
#undef C_ALLOCA

/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
   This function is required for alloca.c support on those systems.  */
#undef CRAY_STACKSEG_END

/* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
#undef HAVE_ALLOCA_H

/* Define as __inline if that's what the C compiler calls it.  */
#undef inline

/* If using the C implementation of alloca, define if you know the
   direction of stack growth for your system; otherwise it will be
   automatically deduced at run-time.
	STACK_DIRECTION > 0 => grows toward higher addresses
	STACK_DIRECTION < 0 => grows toward lower addresses
	STACK_DIRECTION = 0 => direction of growth unknown
 */
#undef STACK_DIRECTION

/* Should gas use high-level BFD interfaces?  */
#undef BFD_ASSEMBLER

/* If we aren't doing cross-assembling, some operations can be optimized,
   since byte orders and value sizes don't need to be adjusted.  */
#undef CROSS_COMPILE

/* Some gas code wants to know these parameters.  */
#define TARGET_ALIAS		"i386"
#define TARGET_CPU		"i386"
#define TARGET_CANONICAL	"i386-i386"
#define TARGET_OS		"djgpp"
#define TARGET_VENDOR		"djgpp"

/* Some operating systems, for example DOS, require the use of "wb" mode when
   opening a binary file for writing.  If only "w" is used, the file will not
   be correct.  However, some other systems reject such a mode.  This indicates
   which ../include/fopen-*.h header file we want to include, so that we can
   get macros that'll do the right thing for this system.  */
#define WANT_FOPEN_BIN 1

/* Sometimes the system header files don't declare malloc and realloc.  */
#undef NEED_DECLARATION_MALLOC

/* Sometimes the system header files don't declare free.  */
#undef NEED_DECLARATION_FREE

/* Sometimes errno.h doesn't declare errno itself.  */
#undef NEED_DECLARATION_ERRNO

#define MANY_SEGMENTS 1

/* Needed only for sparc configuration */
#undef sparcv9

/* Define if you have the remove function.  */
#define HAVE_REMOVE 1

/* Define if you have the unlink function.  */
#define HAVE_UNLINK 1

/* Define if you have the <errno.h> header file.  */
#define HAVE_ERRNO_H 1

/* Define if you have the <memory.h> header file.  */
#define HAVE_MEMORY_H 1

/* Define if you have the <stdarg.h> header file.  */
#define HAVE_STDARG_H 1

/* Define if you have the <stdlib.h> header file.  */
#define HAVE_STDLIB_H 1

/* Define if you have the <string.h> header file.  */
#define HAVE_STRING_H 1

/* Define if you have the <strings.h> header file.  */
#undef HAVE_STRINGS_H

/* Define if you have the <sys/types.h> header file.  */
#define HAVE_SYS_TYPES_H 1

/* Define if you have the <unistd.h> header file.  */
#define HAVE_UNISTD_H 1

/* Define if you have the <varargs.h> header file.  */
#undef HAVE_VARARGS_H
