# This is a shell script.  It is sourced by the build scripts in the
# various subdirectories to gather system-, compiler-, and OS-specific
# information required for building the Makefiles.
#
# Most variables in this script are interpreted as boolean variables and
# indicate presence or absence of one specific feature.  The value "yes"
# is regarded as "true", all other values (including no value or even
# non-existence of the variable) are interpreted as "false".
#
# Do not forget to quote values that contain shell meta syntax.
#
# -----------------------------------------------------------------------


# $system should contain the name of this file.  It may be used by some
# of the build scripts to do things that are specific to one single
# type of system.

system=386pc-svr3-cc


# Does the system support the vfork system call?

vfork=no


# Does the system support the vprintf library function?  If not,
# availability of the (non-portable) _doprnt function is assumed.

vprintf=yes


# Does the directory(3) library follow the POSIX conventions (i.e.
# requires the <dirent.h> include file and uses "struct dirent")?
# If not, the (obsolete) BSD-style interface with <sys/dir.h> and
# "struct direct" is assumed.

dirent=yes


# Does the system have the random/srandom library functions?  If not,
# rand/srand will be used instead.

random=no


# Does the system have the index library function?  If not, strchr
# will be used.

index=no


# Does the system have the bcopy, bzero, and bcmp library functions?
# If not, memcpy/memset/memcmp will be used.

bstring=no


# Does using the access system call require <unistd.h> to be included?
# (Look into the manual page for access if in doubt.)

include_unistd_h=yes


# Does the system support the POSIX-style sysconf function to determine
# the maximum number of open files per process?  If not, set the
# "getdtablesize" variable to "yes" if the BSD-style getdtablesize
# system call is supported.  If neither is available, an educated
# guess will be made.

sysconf=no
getdtablesize=no


# Set reliable_signals=bsd if your system supports BSD-style reliable
# signals (has sigblock and related functions); set reliable_signals=posix
# for POSIX-style signals (sigprocmask, sigsets); otherwise old V7/SysV
# signal semantics are assumed.

reliable_signals=no


# On some systems, the data segment starts at an address that does not
# fit into Elk's (24-bit) representation of a pointer.  In this case,
# set "pointer_constant_high_bits" to the portion of an address that
# exceeds 24 bits (e.g. 0x10000000).
#
# If this variable is set, its value will be cleared from each pointer when
# it is stored into a Scheme object, and ORed into a pointer when it is
# extracted from a Scheme object.
#
# If in doubt, compile and run the test program in ../util.

pointer_constant_high_bits=


# To support dynamic loading of object files and "dump", the system's
# a.out format has to be known.  Currently, the values "coff", "ecoff",
# "xcoff", "elf", and "macho" (for the NeXT) are supported.  Other values
# of "aout_format" are interpreted as BSD-style a.out format.

aout_format=coff


# Which mechanism should be used to dynamically load object files?
# Possible values currently are "ld" for BSD-style incremental loading
# based on ld -A, and "rld" for NeXT-style rld_load().  Do not assign
# anything to load_obj if dynamic loading is not supported.

load_obj=


    # The following variables are only relevant if load_obj is set.

    # The libraries against which dynamically loaded files are resolved
    # at the time they are loaded.

    load_libraries='-lc'

    # Does the ld-option -x really do what the manual says it does (i.e.
    # omit local symbols), or does it somehow render the resulting object
    # file unsuitable for dynamic loading?  If in doubt, leave it out
    # (which may result in somewhat larger object files).

    use_ld_xflag=no

    # Systems with "aout_format=ecoff" may require a call to the cacheflush
    # system call after an object file has been loaded.  Which include file
    # has to be included in this case?

    cachectl_h='<sys/cachectl.h>'

    # Is the ANSI-C atexit function supported to register an exit handler?
    # If not, the exit library function will be redefined and will end in
    # a call to _exit.

    atexit=no


# Do the names of external functions in the symbol table always begin
# with a special character (such as underline)?  If so, syms_begin_with
# should hold this character, otherwise leave it empty.

syms_begin_with=


# Is the "dump" function supported?

can_dump=yes


# The following variables are only relevant if "can_dump=yes".

    # Is the fchmod system call broken or unavailable?

    fchmod_broken=yes

    # These four variables are only relevant if the system has the BSD-style
    # a.out format.
    # segment_size is the segment size of the system's memory management
    # unit, i.e. the number to a multiple of which the size of an a.out
    # segment (e.g. .text) is rounded up.
    # file_text_start is the file offset at which the text segment starts
    # in an a.out file.
    # mem_text_start is the starting address of the text segment in memory.
    # text_length_adj must be set to "sizeof (struct exec)" if the length of
    # the text segment stored in the a.out header includes the a.out header
    # itself.

    segment_size=SEGSIZ
    file_text_start='sizeof(struct exec)'
    mem_text_start='(PAGSIZ+sizeof(struct exec))'
    text_length_adj='sizeof(struct exec)'

    # Only relevant if "aout_format=ecoff".  The starting address of the
    # text and data segments in the a.out file.

    ecoff_text_start=0x400000
    ecoff_data_start=0x800000

    # Only relevant if "aout_format=coff": the system's pagesize.

    coff_pagesize=4096


# The include file required for the time-handling library functions.

time_h='<sys/time.h>'


# Is the "termio" terminal interface supported by the system?  If not,
# BSD-style tty handling will be used.

termio=yes


# The interpreter uses the getrlimit function to determine the maximum
# stack size of the running program.  If this function is not supported,
# set max_stack_size to a (fixed) maximum stack size (in bytes).

max_stack_size='(1024*1024)'


# Does the system support the alloca library function, and does this
# function actually extend the stack?  If in doubt, extract alloca.o
# from the C library and check if it contains the symbols malloc and free.
# If this is the case, forget it.

use_alloca=yes


# Must <alloca.h> be included to use alloca?  Is "#pragma alloca" required?

include_alloca_h=no
pragma_alloca=no


# Does the system (or compiler) require certain objects (e.g. doubles)
# to be aligned at 8-byte boundaries?  If not, 4-byte alignment will
# be assumed.

align_8byte=no


# The C compiler used to compile the source code.

cc=cc


# The C compiler flags used for all files.

cflags='-O'


# Are extra C compiler flags (such as -D_NO_PROTO) required to compile
# Motif applications?

motif_cflags=


# Are extra C compiler flags (such as -G 0) required to compile
# dynamically loadable files?

obj_cflags=


# Are extra linker flags (such as -G 0) required to link several object
# files together to one dynamically loadable file?

obj_ldflags=


# The linker flags used to link the interpreter.

ldflags='-lld -lm'


# The lint flags.

lintflags='-abxh'


# Must ranlib be called for a newly created library archive?

ranlib=no


# Are function prototypes in the header files required?  If prototypes=yes,
# prototypes are used unconditionally; if prototypes=no, prototypes are
# not used; otherwise prototypes are only used if the source code is
# compiled with an ANSI-C- or C++-compiler.

prototypes=yes


# Does your C preprocessor support the ANSI-C ## operator, although
# __STDC__ is not defined?

ansi_cpp=no
