/* ==========================================================================
 * config.h - hand-written for the OpenVMS 8.4 Alpha port of Chocolate Doom.
 *
 * Upstream generates this from config.hin with autoheader/configure.  There
 * is no autoconf on OpenVMS, so this is the pre-generated Alpha profile,
 * written to match what DEC C on OpenVMS 8.4 actually provides.
 *
 * The important entries here are the ones deliberately LEFT OUT - see the
 * "NOT defined" section at the bottom.  Adding any of them back will break
 * the build or silently pull in a library this port does not link against.
 * ========================================================================== */

#ifndef CHOCOLATE_DOOM_CONFIG_H
#define CHOCOLATE_DOOM_CONFIG_H

/* --- Package identity ---------------------------------------------------
 * Only four of these are referenced anywhere in this port's build set:
 *   PACKAGE_NAME    i_system.c (GPL banner)
 *   PACKAGE_STRING  doom/d_main.c (startup banner), i_video.c (window title)
 *   PACKAGE_TARNAME m_config.c (config dir name, "." PACKAGE_TARNAME)
 *   PROGRAM_PREFIX  doom/d_main.c (extra config filename), w_main.c
 * The rest are kept for completeness / future files.
 */

#define PACKAGE          "chocolate-doom"
#define PACKAGE_NAME     "Chocolate Doom"
#define PACKAGE_TARNAME  "chocolate-doom"
#define PACKAGE_VERSION  "2.3.0"
#define PACKAGE_STRING   "Chocolate Doom 2.3.0"
#define PACKAGE_BUGREPORT "chocolate-doom-dev-list@chocolate-doom.org"
#define PACKAGE_URL      "https://www.chocolate-doom.org/"
#define VERSION          "2.3.0"

/* Change this when you create your awesome forked version.  Note that
 * m_config.c and w_main.c concatenate this as a string literal prefix, so it
 * must stay a quoted string, and must not contain characters that are
 * illegal in an ODS-2 filename (the '-' is fine). */

#define PROGRAM_PREFIX   "chocolate-"

/* --- What the DEC C 8.4 runtime provides -------------------------------- */

#define STDC_HEADERS     1
#define HAVE_STDLIB_H    1
#define HAVE_STRING_H    1
#define HAVE_STRINGS_H   1          /* DEC C supplies <strings.h> (strcasecmp) */
#define HAVE_INTTYPES_H  1          /* required by doomtype.h                 */
#define HAVE_STDINT_H    1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H  1
#define HAVE_UNISTD_H    1          /* i_system.c: isatty()/fileno()          */
#define HAVE_MEMORY_H    1
#define HAVE_LIBM        1          /* libm is part of the VMS C runtime      */

/* --- Deliberately NOT defined -------------------------------------------
 *
 * HAVE_MMAP
 *     This is the load-bearing omission.  src/w_file_posix.c is ENTIRELY
 *     inside "#ifdef HAVE_MMAP" (its whole body, lines 21-169), and
 *     w_file.c only registers posix_wad_file in the dispatch list when
 *     HAVE_MMAP is set.  Leaving it undefined means w_file_posix.c compiles
 *     to an empty object and all WAD access goes through the portable
 *     stdio path in w_file_stdc.c.  No VMS mmap work is needed at all.
 *
 * HAVE_LIBSAMPLERATE
 *     libsamplerate is a sound dependency; this is a no-sound build.
 *
 * HAVE_LIBPNG
 *     Only used for PNG screenshots.  v_video.c falls back to its built-in
 *     PCX writer, which needs no external library.
 *
 * HAVE_LIBZ
 *     Only reachable via libpng.
 *
 * HAVE_IOPERM / HAVE_LIBI386 / HAVE_LIBAMD64 / HAVE_LINUX_KD_H /
 * HAVE_DEV_ISA_SPKRIO_H / HAVE_DEV_SPEAKER_SPEAKER_H
 *     Direct hardware I/O port access for real OPL / PC speaker output, on
 *     x86 and BSD/Linux only.  Meaningless on Alpha, and part of the sound
 *     code that is not compiled here.
 *
 * Also note FEATURE_SOUND and FEATURE_MULTIPLAYER are switched off in
 * src/doomfeatures.h, not here - that is upstream's own slimming mechanism.
 */

#endif /* CHOCOLATE_DOOM_CONFIG_H */
