/*-------------------------------------------------------------------------*/
/* GNU Prolog                                                              */
/*                                                                         */
/* Part  : configuration                                                   */
/* File  : config.h.in                                                     */
/* Descr.: general configuration file (handled by autoconf) - header file  */
/* Author: Daniel Diaz                                                     */
/*                                                                         */
/* Copyright (C) 1999 Daniel Diaz                                          */
/*                                                                         */
/* GNU Prolog is free software; you can redistribute it and/or modify it   */
/* under the terms of the GNU General Public License as published by the   */
/* Free Software Foundation; either version 2, or any later version.       */
/*                                                                         */
/* GNU Prolog is distributed in the hope that it will be useful, but       */
/* WITHOUT ANY WARRANTY; without even the implied warranty of              */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU        */
/* General Public License for more details.                                */
/*                                                                         */
/* You should have received a copy of the GNU General Public License along */
/* with this program; if not, write to the Free Software Foundation, Inc.  */
/* 59 Temple Place - Suite 330, Boston, MA 02111, USA.                     */
/*-------------------------------------------------------------------------*/

/* Define if you have a working `mmap' system call.  */
#undef HAVE_MMAP






/* Define if you don't want to use machine registers */
#undef inline

/* Define if you don't want to use machine registers */
#undef NO_USE_REGS

/* Define if you don't want to include line editor facility */
#undef NO_USE_LINEDIT

/* Define if you don't want to include sockets facility */
#undef NO_USE_SOCKETS

/* Define if you don't want to include the FD constraint solver */
#undef NO_USE_FD_SOLVER




/* Define if the cpu is a sparc */
#undef M_sparc

/* Define if the cpu is a ix86 */
#undef M_ix86

/* Define if the cpu is a powerpc */
#undef M_powerpc



/* Define if the OS is a sunos */
#undef M_sunos

/* Define if the OS is a solaris */
#undef M_solaris

/* Define if the OS is a linux */
#undef M_linux

/* Define if the OS is a WinXX based on Cygwin */
#undef M_cygwin



/* Define if the system is a ix86/linux */
#undef M_ix86_linux

/* Define if the system is a ix86/cygwin */
#undef M_ix86_cygwin

/* Define if the system is a sparc/solaris */
#undef M_sparc_solaris

/* Define if the system is a sparc/sunos */
#undef M_sparc_sunos

/* Define if the system is a powerpc/linux */
#undef M_powerpc_linux



/* Constant definitions */

#define PROLOG_NAME                any
#define PROLOG_VERSION             any
#define PROLOG_DATE                any
#define PROLOG_COPYRIGHT           any

#define TOP_LEVEL                  any
#define GPLC                       any
#define HEXGPLC                    any
#define ENV_VARIABLE               any

#define M_VENDOR                   any
#define M_CPU                      any
#define M_OS                       any

#define CC                         any
#define CFLAGS_PREFIX_REG          any
#define CFLAGS                     any
#define CFLAGS_MACHINE             any
#define LDFLAGS                    any
#define LDLIBS                     any

#define EXE_SUFFIX                 any

#define LIB_LINEDIT                any
#define LIB_ENGINE_PL              any
#define LIB_BIPS_PL                any
#define LIB_ENGINE_FD              any
#define LIB_BIPS_FD                any



#define SIZEOF_LONG                any
#define WORD_SIZE                  (8*SIZEOF_LONG)



/*---------------------------------*/
/* Register Definitions            */
/*---------------------------------*/

#if defined(M_sparc_sunos)

#    define M_USED_REGS            {"g6","g7",0}

#elif defined(M_sparc_solaris)

#    define M_USED_REGS            {"g6","g7",0}

#elif defined(M_alpha_osf)

#    define M_USED_REGS            {"$9","$10","$11","$12","$13","$14",0}

#elif defined(M_ix86_linux)

#    define M_USED_REGS            {"ebx",0}

#elif defined(M_ix86_cygwin)

#    define M_USED_REGS            {"ebx",0}

#elif defined(M_powerpc_linux)

#    define M_USED_REGS            {"15","20",0}

#else

#    define M_USED_REGS            {0}

#endif




/*---------------------------------*/
/* Stacks Management               */
/*---------------------------------*/

#if defined(M_sparc_sunos) || defined(M_sparc_solaris) ||  \
    defined(M_ix86_linux)  || defined(M_powerpc_linux)

#   define M_USE_MMAP
#   define M_MMAP_HIGH_ADR         0x0ffff000
#   define M_Check_Stacks()

#elif defined(M_alpha_osf)

#   define M_USE_MMAP
#   define M_MMAP_HIGH_ADR         0x3f800000000ULL
#   define M_Check_Stacks()        

#else

#   define M_USE_MALLOC
#   define M_Check_Stacks()        M_Check_Magic_Words()

#endif




/*---------------------------------*/
/* Miscellaneous                   */
/*---------------------------------*/

#if defined(M_sparc_sunos)

#     define __USE_FIXED_PROTOTYPES__

#endif
