# CONFIGURATION FILE FOR iBCS

# Edit, make clean, make install


# You should not change this entry. You should have copied the correct
# CONFIG.xxx file to start with.
ARCH=i386

# iBCS is a loadable kernel module. It MUST be built against the
# source tree of the kernel you are running (or intend to load
# it in). More specifically it must be built against the include
# and config files belonging to the relevant kernel.
KERNEL=/usr/src/linux

# If you intend to run on a multiprocessor SMP system you will need
# this enabled. You need to set this correctly. An SMP iBCS module
# will not load against a non-SMP kernel (the symbol apic_reg is
# undefined). A non-SMP iBCS will probably load against an SMP
# kernel but will crash and burn due to the lack of correct locking.
# The default below is to build either a working iBCS or one which
# will not load. Coincidentally the 2.1 Linux kernel also defaults
# to SMP so those who don't read the docs will probably get something
# that works.
SMP=no

# If you want to use versioned symbol names in an attempt to allow the
# iBCS module to load against other, compatible kernel versions enable
# this. Be warned that I have observed that two different builds of
# the same kernel version have resulted in different versioned symbol
# names leading to modules not working with different builds of the
# *same* kernel version. I don't know why. I don't recommend you use
# this option if you build several slightly different kernels for
# different machines/purposes.
USE_VERSIONS=no

# SOCKSYS_MAJOR is the major number to use for the /dev/socksys socket
# interface to streams based TCP/IP (i.e. Lachman as used by many SVR3s).
# Setting this to zero tells the module initialisation code to attempt
# to auto allocate the next available major number. This is supported
# by later 1.1 kernels. It is however not a good idea to try it unless
# there is kernel support for it!
#
# You also need to create the some devices. The MAKEDEV.ibcs script
# will create all the necessary entries in whatever directory it
# is run in. A "make install" will install MAKEDEV.ibcs in /dev
# and do "cd /dev; ./MAKEDEV.ibcs" automatically.
#
# See the README file for more details.

SOCKSYS_MAJOR=30


# The following emulations are provided. Select those which you wish
# the emulator to support.
# (You currently can't avoid much of the SVR4/SVR3/SCO... emulation)
#
# EMU_SCO		SCO specifics
# EMU_ISC		ISC specifics
# EMU_SVR4		SVR4 specifics
# EMU_BSD		BSD specifics.
#			(BSD a.out requires the iBCS a.out loader)
# EMU_WYSE		Wyse V/386 specifics.
# EMU_WYSEMP		Wyse V/386 MP extensions (Wyse 9000i etc.)
# EMU_X286		Xenix 286 emulator.
#
# EMU_SPX		STREAMS based pipes (used by SCO X at least)
# EMU_XTI		STREAMS based XTI/TLI TCP/IP interface
#

EMU_SCO		= yes
EMU_ISC		= yes
EMU_SVR4	= yes
EMU_BSD		= yes
EMU_WYSE	= yes
EMU_WYSEMP	= yes
EMU_X286	= no
EMU_SPX		= yes
EMU_XTI		= yes


# XTI/TLI options.
#
# Option management is the single biggest change between TLI and XTI.
# Unfortunately the header structures used in the options list are
# significantly differenet leading to incompatibilities from the
# application right down in to the kernel. For now you should almost
# certainly only enable the TLI option management.
#
# EMU_TLI_OPTMGMT	Options handling exists in TLI implementations
#			and is used by existing programs.
#
# EMU_XTI_OPTMGMT	None of SCO 3.2.x, SCO OS5, Interactive SVR4 or
#			UnixWare 1.x appear to support t_optmgmt for XTI.
#			The SCO man page states that t_optmgmt is not
#			currently supported for XTI and will give a
#			TNOTSUPPORT error.
#			Since X/Open mandates t_optmgmt we can expect it
#			to be added soon - although how we will tell the
#			difference between a TLI options request and an
#			XTI options request remains to be seen.
EMU_TLI_OPTMGMT	= yes
EMU_XTI_OPTMGMT	= no


# Binary formats to support.
#
# A.OUT is used by older BSD and Linux systems. You only need the
# iBCS A.OUT loader if you wish to support BSD flavours. The A.OUT
# loader in the Linux kernel will handle Linux binaries.
#
# ELF is used by SVR4 (UnixWare, Dell etc.) however the ELF loader is part
# of later Linux kernels (1.1.54+). If you have kernel support for ELF
# binaries you don't need it in the emulator as well. EXCEPT perhps when
# you need support for a system that uses ELF but is NOT based on SVR4 - in
# which case you need the emulator's ELF loader to recognise the correct
# personality. Currently there are no known systems that require the
# iBCS ELF loader in preference to the kernel loader. SCO OpenServer 5
# ELF is different from SVR4 but this does not need to be handled by the
# loader.
# (THE iBCS ELF LOADER SEEMS BROKEN ANYWAY. DO *NOT* USE IT!)
#
# COFF is used by SVR3 (SCO, Wyse V/386) however many SVR4 systems may
# also include older COFF binaries and many applications are sold as
# COFF binaries since they may run on more platforms.
#
# XOUT is used by Xenix (both 386 and 286) however many SVR3 (and even
# SVR4 systems) still have old XOUT binaries on them. Such programs
# were often written with 286 segmentation assumed and are too much
# trouble to port to a flat address space.
#
# OLDSCRIPT is for old shell scripts. In the past the '#!...'
# convention was not as common and things that looked like
# text files were passed to a shell for (possible) execution.
# By convention the file is passed to a Bourne shell if the first
# character of the file is a colon, otherwise it is passed to whatever
# the user has as a shell. This convention *should* be part of the
# libc used but there are rumours of possibilities of some systems
# which might have put it in the kernel. At the moment it is
# probably safe to leave this enabled although it adds a little
# (mostly unnecessary) overhead to exec speed.
#
EMU_BINFMT_AOUT = yes
EMU_BINFMT_ELF	= no	# Broken. Do not use!
EMU_BINFMT_COFF	= yes
EMU_BINFMT_XOUT	= yes
EMU_BINFMT_OLDSCRIPT = yes


# The following debugging options are available:
#
# Note that debugging support is *very* useful for finding application
# bugs not just emulator bugs. However enabling all the debug options
# will make the emulator 3-4 pages (1 page = 4k) bigger which may be
# a significant difference for some.
#
# IBCS_TRACE		Add code to trace the iBCS emulator. See the Tools
#			subdirectory for a program that can be used to set
#			the tracing level.
#
# VERBOSE_ERRORS	Give textual error message as well as number in
#                       the trace log. (This only makes sense if IBCS_TRACE
#                       is also defined)
#
# COFF_TRACE		Add code to trace the COFF loader. This is useful
#			if you have executables not recognised correctly.
#
# ELF_TRACE		Add code to trace the ELF loader. This is useful
#			if you have executables not recognised correctly.
#
# XOUT_DEBUG		Add code to trace the XOUT loader.
#
IBCS_TRACE	= yes
VERBOSE_ERRORS	= yes
COFF_TRACE	= yes
ELF_TRACE	= yes
XOUT_DEBUG	= yes

ARCH_FLAGS	= -m486
