#!/bin/sh
#
#-------------------------------------------------------------------------
# Example configuration settings file
#-------------------------------------------------------------------------
# configure --with-<foo> allows to specify a lot of options in one go by
# evaluation the file settings/<foo>. Since configure provides defaults
# for all options, the file needs to list only those options which are
# to set differently.
#
# This file documents the available options and their default values.
#
# On/off options must be specified like this:
#     enable_<option>=yes   to enable it
#     enable_<option>=no
#  or disable_<option>      to disable it
#
# Value options must be specified like this:
#     with_<option>=<value>
#
# Number values can be given in decimal or sedecimal. Strings must
# be given without surrounding quotes.
#
# In both cases no whitespace is allowed around the '=' and nothing
# else may appear on the line, except a trailing comment!
#
# Configure will strip everything from this file which doesn't match one
# of its option specification patterns, allowing us to make the files
# self-executable.
#-------------------------------------------------------------------------
exec ./configure --with-setting=default $*
exit 1
#----------- Commandline Argument Defaults ----------
# These options provide default settings for those options which can
# also be set on the commandline.
# --- Runtime limits ---
# Maximum size of array. If 0, any size is allowed.
with_max_array_size=3000
# Maximum size of mapping. If 0, any size is allowed.
with_max_mapping_size=5000
# Maximum size of a file to be read with read_file()
# If 0, any size is allowed.
with_read_file_max_size=50000
# Maximum number of bytes read or written with read/write_bytes().
# If 0, any size is allowed.
with_max_byte_transfer=50000
# Maximum number of callouts at one time.
# If 0, any number is allowed.
with_max_callouts=0
# If PThreads are used, this is the max amount of data held pending
# for writing. If the amount is exceeded, the oldest data blocks
# are discarded.
# If 0, any amount of data is allowed.
with_pthread_write_max_size=100000
# --- Timing ---
# If an object is left alone for this time, it will be 'cleaned up'.
# The time should be substantially longer than the swapping time.
with_time_to_clean_up=3600
# If an object is left alone for this time, its program and variables
# are swapped into a file to conserve memory.
# The time to swap variables should be longer than the time to swap
# programs, because swapping variables is quite expensive.
# Both times should be shorter than the cleanup time and are given
# in seconds.
# A swapping time <= 0 disables that particular swapping feature.
with_time_to_swap=900
with_time_to_swap_variables=1800
# This time determines the interval before an object is reset again.
# The actual length of the intervals is determined somewhat randomly
# to make the game less predictable.
with_time_to_reset=1800 # seconds
# --- Memory ---
# Which memory manager to use. Possible defines are
#   MALLOC_smalloc:   Satoria's malloc. Fastest, uses the least memory,
#                     supports garbage collection.
#   MALLOC_sysmalloc: the normal system malloc()
with_malloc=smalloc
# These three options determine how much memory is held in reserve.
# There must be enough memory to allow the garbage collector to swap
# in all objects one at a time.
with_reserved_user_size=700000
with_reserved_master_size=100000
with_reserved_system_size=200000
# This value gives the upper limits for the total allocated memory.
# A value of 0 means 'unlimited'.
with_max_malloced=0x4000000 
# If these values are >0, the driver will reserve this amount of memory
# on startup for large resp. small blocks, reducing the block fragmentation.
# The value should be a significantly large multiple of the large resp.
# small chunk size.
# As a rule of thumb, reserve enough memory for the first couple of days
# of uptime.
with_min_malloced=0
with_min_small_malloced=0
# --- Interpreter ---
# If strict-euids is enabled, the driver enforces the (correct) use
# of euids, ie. load_object() and clone_object() require the current
# object to have a non-zero euid.
enable_strict_euids=no
# The maximum number of eval-ticks for one execution. If this
# is exceeded, the execution is aborted.
with_max_cost=1000000
# --- Communication ---
# The TCP port to listen for connections on.
# This value is used only when no ports are given on the commandline.
with_portno=4242
# This is the number of the UDP port to use.
# If set to -1, and no number is given on the commandline, the port will
# not be created.
with_udp_port=4246
# The maximum number of ports to listen for connections on.
with_maxnumports=20
# Select the ERQ service to use.
#   'no':   the driver is compiled without erq support.
#   'erq':  the driver is compiled with erq support, the Makefiles
#           are set up to compile the standard erq.
#   'xerq': the driver is compiled with erq support, the Makefiles
#           are set up to compile Brian's xerq.
enable_erq=erq
# Max size of a packet received from/send to the ERQ.
# TODO: Do the current erqs compile this in?
with_erq_max_reply=1024 
with_erq_max_send=1024 
#----------- Compilation Options ----------
# To change these options, the config.h must be recreated and the
# driver recompiled.
# Enable this if you are using a 2.4.5 mudlib or one of its derivates.
enable_compat_mode=no
# The name of the master object.
with_master_name=secure/master
# Enable this to annotate all allocations with 'file:line' of the
# driver source allocating it.
# Supported by: MALLOC_smalloc
enable_malloc_trace=no
# Enable this in addition to SMALLOC_TRACE to also annotate all allocations
# with file:line of the lpc program responsible for it.
# Supported by: MALLOC_smalloc
enable_malloc_lpc_trace=no
# If TRACE_CODE is enable, the driver keeps a log of TOTAL_TRACE_LENGTH
# most recently execute bytecode instructions.
enable_trace_code=yes
with_total_trace_length=4096
# Enable these for runtime statistics:
#    COMM_STAT: number and size of outgoing packets
#    APPLY_CACHE_STAT: number of hits and misses in the apply cache
enable_comm_stat=yes
enable_apply_cache_stat=yes
# The name of the swapfile used by the driver to swap out objects (if
# enabled), relative to the mudlib directory. The driver will append
# '.<hostname>' to the file.
with_swap_file=LP_SWAP.3
# Enable support for IPv6 (assuming your system supports it).
enable_use_ipv6=no
# Enable the use of pthreads.
# WARNING: This feature is HIGHLY ALPHA and can crash the driver!
enable_use_pthreads=no
# --- Wizlist ---
# The name of the file (relative to the mudlib) to hold the Wizlist
# information. The driver reads it on startup.
# If disabled ('with_wizlist_file=no'), a wizlist file can still be
# given on the commandline.
with_wizlist_file=WIZLIST
# --- Access Control ---
# Enable this to have access control.
enable_access_control=yes
# The name of the file from where the access permissions are read.
with_access_file=ACCESS.ALLOW
# Enable this to log all connection attempts.
enable_access_log=no
# The name of the file where all connections are logged.
with_access_log=access.allow.log
# --- Language ---
# Enable this if you want the efun parse_command().
enable_supply_parse_command=yes
# Enable INITIALIZATION_BY___INIT if you want all initializations of
# variables be suspended until the object is created. This variant is
# slower and needs extra (hidden) bytecode, but allows you to use functions
# in the initialisations.
enable_initialization_by___init=yes
# Define USE_SYSTEM_CRYPT if you want crypt() to be implemented by your
# operating system (assuming it offers this function). This makes your
# programm smaller and may even let you take advantage of improvements
# of your OS, but may also prohibit transporting encrypted date like
# passwords between different systems.
# Undefine USE_SYSTEM_CRYPT if you want to use the driver's portable
# crypt() implementation.
enable_use_system_crypt=yes
# Define USE_LPC_NOSAVE if you want to use the keyword 'nosave' to
# specify variables not be save by save_object(). The old keyword 'static'
# works in either case.
enable_lpc_nosave=yes
# Enable support for mySQL (assuming your system supports it).
#
#  'no'  : mySQL support is not compiled in
#  'yes' : mySQL support is compiled in, the libmysqlclient is expected
#          in the normal library search path.
#  <path>: mySQL support is compiled in, <path> is added to the link paths
#          and should be the path to libmysqlclient, 
#          e.g. enable_use_mysql=/usr/local/lib/mysql .
#          The include files are searched in /usr/local/include, <path>,
#          and <path>/include.
#          The libraries are searched in the default path, <path>/lib/mysql,
#          <path>/lib and <path>, in this order.
enable_use_mysql=no
# Enable obsolete and deprecated efuns.
enable_use_deprecated=yes
# Enable the use of PCRE (requires Fiona's PCRE patch and PCRE installed).
enable_use_pcre=no
# Enable the efun set_light() and the driver-provided light system.
enable_use_set_light=yes
# Enable the efun set_is_wizard()
enable_use_set_is_wizard=yes
# Enable the efun process_string().
enable_use_process_string=yes
# --- Runtime limits ---
# Maximum size of a socket send buffer.
with_set_buffer_size_max=65536 
# CATCH_RESERVED_COST is added to the eval cost for the time executing
# code guarded by a catch() statement, so that an eval_cost-too-big error
# can still be caught and handled.
# To catch an evalcost-too-big in an object that called (recursive)
# master functions, CATCH_RESERVED_COST should be greater than
# MASTER_RESERVED_COST * 2.
with_catch_reserved_cost=2000
# MASTER_RESERVED_COST is the total reserve available for master applies.
# It is halved for every descent into another master apply.
with_master_reserved_cost=512
# With this option enable, expensive operations like string additions
# have additional evalcosts depending on the amount of data handled.
enable_dynamic_costs=no
# Define the maximum stack size of the virtual machine. It must be big
# enough to hold all local variables, arguments and temporary values.
with_evaluator_stack_size=2000
# Maximum function call depth for normal program execution
with_max_user_trace=60
# Maximum function call depth during error handling.
# It must be bigger than MAX_USER_TRACE (TODO: Check this at runtime)
with_max_trace=65
# Maximum number of bits in a bit string.
# The limit is more based on considerations of speed than memory consumption.
with_max_bits=6144
# Maximum number of players in the game
with_max_players=50
# Allowed number of ed commands per backend cycle (for faster file upload).
with_allowed_ed_cmds=20
# --- Compiler ---
# Compiler stack size. This value affects the complexity the compiler can
# parse.
with_compiler_stack_size=400
# Maximum number of local variables
with_max_local=50
# Maximum size of an expanded preprocessor definition.
with_defmax=65000
# Align LPC functions in memory? This costs on average 1.5 bytes per function,
# but saves some time when searching in case of an apply cache miss.
enable_align_functions=yes
# --- Internal Tables ---
# Define the size of the shared string hash table (max: 65536).
# If you set it to about 1/5 of the number of distinct strings, you will
# get a hit ratio very close to 1. If the size is a power of two,
# hashing will be faster.
with_htable_size=4096
# Size of the object hash table (max: 65536). Set it to about 1/4 of
# the number of objects in the game, though this value is not very critical.
with_otable_size=1024
# Size of the hash table for defines, reserved words, identifiers, and
# efun names. This should be several times smaller than HTABLE_SIZE.
# Max: 65536.
with_itable_size=256
# Size of the apply cache, expressed in the bitsize of its indices.
# The number of entries is 2**cache_bits.
with_apply_cache_bits=12 
# Select whether compiled regular expressions shall be cached, and
# how big the cache shall be (max: 65536).
enable_rxcache_table=yes
with_rxcache_table=8192
# --- Profiling ---
# For profiling of the VM instruction implementations, refer to the Makefile
# Enable usage statistics of VM instructions.
enable_opcprof=no
# If opcprof is enabled, this option includes the instruction names
# into the statistic.
enable_verbose_opcprof=no
# --- Standard Debugging ---
# These options are 'standard' debugging options.
# Enable basic run time sanity checks. This will use more time
# and space, but nevertheless you are strongly encouraged to keep
# it defined.
enable_debug=yes
# Enable debug output from the LPC compiler.
enable_yydebug=no
# Disable inlining. Use this to debug obscure crashes, or for
# speed tests.
enable_no_inlines=no
# Enable the shared string sanity checking (enables commandline option
# --check-strings).
enable_check_strings=yes
# Shared strings are never really freed.
enable_keep_strings=no
# Activate debug prints in the telnet machine (lots of output).
enable_debug_telnet=no
# Activate allocation debug prints in the smalloc module (lots of output).
enable_debug_smalloc_allocs=no
# The DEBUG level for the ERQ daemon:
#   0 : no debug output
#   1 : standard debug output
#   2 : verbose debug output
with_erq_debug=0
# --- Specific Debugging ---
# These options have been introduced to debug specific problems and will
# be removed again later.
# Activate object referencing checking code during the GC. It will print error
# messages to gcout when an object or program is referenced as something else.
# No penalty for using.  Requires MALLOC_TRACE to work. Incompatible with
# DUMP_GC_REFS.
enable_check_object_gc_ref=yes
# Activate total smalloc size consistency check code. This will produce
# a lot of output in the GC log.
enable_check_smalloc_total=no
# Sometimes the GC stumbles over invalid references to memory blocks (namely
# 'Program referenced as something else'). Define this macro to get a detailed
# dump of all found references (Warning: LOTS of output!).
# Incompatible with CHECK_OBJECT_GC_REF.
enable_dump_gc_refs=no