/*
 * BRLTTY - A background process providing access to the console screen (when in
 *          text mode) for a blind person using a refreshable braille display.
 *
 * Copyright (C) 1995-2023 by The BRLTTY Developers.
 *
 * BRLTTY comes with ABSOLUTELY NO WARRANTY.
 *
 * This is free software, placed under the terms of the
 * GNU Lesser General Public License, as published by the Free Software
 * Foundation; either version 2.1 of the License, or (at your option) any
 * later version. Please see the file LICENSE-LGPL for details.
 *
 * Web Page: http://brltty.app/
 *
 * This software is maintained by Dave Mielke <dave@mielke.cc>.
 */

#ifndef BRLTTY_INCLUDED_CONFIG
#define BRLTTY_INCLUDED_CONFIG

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* Define this to be a string containing the copyright notice. */
#undef PACKAGE_COPYRIGHT

/* Define this to be a string containing the full name of the package. */
#undef PACKAGE_NAME

/* Define this to be a string containing the version of the package. */
#undef PACKAGE_VERSION

/* Define this to be a string containing the full name and version of the package. */
#undef PACKAGE_STRING

/* Define this to be a string containing the URL of the home page of the package. */
#undef PACKAGE_URL

/* Define this to be a string containing the short name of the package. */
#undef PACKAGE_TARNAME

/* Define this to be a string containing the address where bug reports should be sent. */
#undef PACKAGE_BUGREPORT

/* Define this to be a string containing the base module name. */
#undef MODULE_NAME

/* Define this to be a string containing the module extension. */
#undef MODULE_EXTENSION

/* Define this to be a string containing the library extension. */
#undef LIBRARY_EXTENSION

/* Define only one of the following program path packages. */
#undef USE_PKG_PGMPATH_NONE
#undef USE_PKG_PGMPATH_LINUX
#undef USE_PKG_PGMPATH_SOLARIS
#undef USE_PKG_PGMPATH_WINDOWS

/* Define only one of the following system service packages. */
#undef USE_PKG_SERVICE_NONE
#undef USE_PKG_SERVICE_WINDOWS

/* Define only one of the following boot parameters packages. */
#undef USE_PKG_PARAMS_NONE
#undef USE_PKG_PARAMS_LINUX

/* Define only one of the following dynamic loading packages. */
#undef USE_PKG_DYNLD_NONE
#undef USE_PKG_DYNLD_DLFCN
#undef USE_PKG_DYNLD_DYLD
#undef USE_PKG_DYNLD_GRUB
#undef USE_PKG_DYNLD_SHL
#undef USE_PKG_DYNLD_WINDOWS

/* Define only one of the following regular expression packages. */
#undef USE_PKG_RGX_NONE
#undef USE_PKG_RGX_LIBPCRE32
#undef USE_PKG_RGX_LIBPCRE2_32

/* Define only one of the following character set packages. */
#undef USE_PKG_CHARSET_NONE
#undef USE_PKG_CHARSET_GRUB
#undef USE_PKG_CHARSET_ICONV
#undef USE_PKG_CHARSET_MSDOS
#undef USE_PKG_CHARSET_WINDOWS

/* Define only one of the following host command packages. */
#undef USE_PKG_HOSTCMD_NONE
#undef USE_PKG_HOSTCMD_UNIX
#undef USE_PKG_HOSTCMD_WINDOWS

/* Define only one of the following mount point packages. */
#undef USE_PKG_MNTPT_NONE
#undef USE_PKG_MNTPT_MNTENT
#undef USE_PKG_MNTPT_MNTTAB

/* Define only one of the following mount file system packages. */
#undef USE_PKG_MNTFS_NONE
#undef USE_PKG_MNTFS_LINUX

/* Define only one of the following keyboard packages. */
#undef USE_PKG_KBD_NONE
#undef USE_PKG_KBD_ANDROID
#undef USE_PKG_KBD_LINUX

/* Define only one of the following console bell packages. */
#undef USE_PKG_BELL_NONE
#undef USE_PKG_BELL_LINUX

/* Define only one of the following keyboard LEDs packages. */
#undef USE_PKG_LEDS_NONE
#undef USE_PKG_LEDS_LINUX

/* Define only one of the following beeper packages. */
#undef USE_PKG_BEEP_NONE
#undef USE_PKG_BEEP_LINUX
#undef USE_PKG_BEEP_MSDOS
#undef USE_PKG_BEEP_SOLARIS
#undef USE_PKG_BEEP_SPKR
#undef USE_PKG_BEEP_WINDOWS
#undef USE_PKG_BEEP_WSKBD

/* Define only one of the following PCM packages. */
#undef USE_PKG_PCM_NONE
#undef USE_PKG_PCM_ALSA
#undef USE_PKG_PCM_ANDROID
#undef USE_PKG_PCM_AUDIO
#undef USE_PKG_PCM_HPUX
#undef USE_PKG_PCM_OSS
#undef USE_PKG_PCM_QSA
#undef USE_PKG_PCM_WINDOWS

/* Define only one of the following MIDI packages. */
#undef USE_PKG_MIDI_NONE
#undef USE_PKG_MIDI_ALSA
#undef USE_PKG_MIDI_DARWIN
#undef USE_PKG_MIDI_OSS
#undef USE_PKG_MIDI_WINDOWS

/* Define only one of the following FM packages. */
#undef USE_PKG_FM_NONE
#undef USE_PKG_FM_ADLIB

/* Define only one of the following serial I/O packages. */
#undef USE_PKG_SERIAL_NONE
#undef USE_PKG_SERIAL_GRUB
#undef USE_PKG_SERIAL_MSDOS
#undef USE_PKG_SERIAL_TERMIOS
#undef USE_PKG_SERIAL_WINDOWS

/* Define only one of the following USB I/O packages. */
#undef USE_PKG_USB_NONE
#undef USE_PKG_USB_ANDROID
#undef USE_PKG_USB_DARWIN
#undef USE_PKG_USB_FREEBSD
#undef USE_PKG_USB_GRUB
#undef USE_PKG_USB_KFREEBSD
#undef USE_PKG_USB_LIBUSB
#undef USE_PKG_USB_LIBUSB_1_0
#undef USE_PKG_USB_LINUX
#undef USE_PKG_USB_NETBSD
#undef USE_PKG_USB_OPENBSD
#undef USE_PKG_USB_SOLARIS

/* Define only one of the following Bluetooth I/O packages. */
#undef USE_PKG_BLUETOOTH_NONE
#undef USE_PKG_BLUETOOTH_ANDROID
#undef USE_PKG_BLUETOOTH_DARWIN
#undef USE_PKG_BLUETOOTH_LINUX
#undef USE_PKG_BLUETOOTH_WINDOWS

/* Define only one of the following HID I/O packages. */
#undef USE_PKG_HID_NONE
#undef USE_PKG_HID_LINUX

/* Define only one of the following I/O ports packages. */
#undef USE_PKG_PORTS_NONE
#undef USE_PKG_PORTS_GLIBC
#undef USE_PKG_PORTS_GRUB
#undef USE_PKG_PORTS_KFREEBSD
#undef USE_PKG_PORTS_MSDOS
#undef USE_PKG_PORTS_WINDOWS

/* Define this if the function addmntent exists. */
#undef HAVE_ADDMNTENT

/* Define this if the function clock_gettime exists. */
#undef HAVE_CLOCK_GETTIME

/* Define this if the function clock_settime exists. */
#undef HAVE_CLOCK_SETTIME

/* Define this if the function fchdir exists. */
#undef HAVE_FCHDIR

/* Define this if the function fchmod exists. */
#undef HAVE_FCHMOD

/* Define this if the function gai_strerror exists. */
#undef HAVE_GAI_STRERROR

/* Define this if the function getaddrinfo exists. */
#undef HAVE_GETADDRINFO

/* Define this if the function getnameinfo exists. */
#undef HAVE_GETNAMEINFO

/* Define this if the function getopt_long exists. */
#undef HAVE_GETOPT_LONG

/* Define this if the function getpeereid exists. */
#undef HAVE_GETPEEREID

/* Define this if the function getpeerucred exists. */
#undef HAVE_GETPEERUCRED

/* Define this if the function gettimeofday exists. */
#undef HAVE_GETTIMEOFDAY

/* Define this if the function getzoneid exists. */
#undef HAVE_GETZONEID

/* Define this if the function hstrerror exists. */
#undef HAVE_HSTRERROR

/* Define this if the function mempcpy exists. */
#undef HAVE_MEMPCPY

/* Define this if the function nanosleep exists. */
#undef HAVE_NANOSLEEP

/* Define this if the function pause exists. */
#undef HAVE_PAUSE

/* Define this if the function readlink exists. */
#undef HAVE_READLINK

/* Define this if the function realpath exists. */
#undef HAVE_REALPATH

/* Define this if the function settimeofday exists. */
#undef HAVE_SETTIMEOFDAY

/* Define this if the function shl_load is available. */
#undef HAVE_SHL_LOAD

/* Define this if the function shm_open exists. */
#undef HAVE_SHM_OPEN

/* Define this if the function shmget exists. */
#undef HAVE_SHMGET

/* Define this if the function stime exists. */
#undef HAVE_STIME

/* Define this if the function tcdrain exists. */
#undef HAVE_TCDRAIN

/* Define this if the function time exists. */
#undef HAVE_TIME

/* Define this if the function vsyslog exists. */
#undef HAVE_VSYSLOG

/* Define this if the function wmempcpy exists. */
#undef HAVE_WMEMPCPY

/* Define this if the header file alloca.h exists. */
#undef HAVE_ALLOCA_H

/* Define this if the header file execinfo.h exists. */
#undef HAVE_EXECINFO_H

/* Define this if the header file getopt.h exists. */
#undef HAVE_GETOPT_H

/* Define this if the header file glob.h exists. */
#undef HAVE_GLOB_H

/* Define this if the function glob exists. */
#undef HAVE_GLOB

/* Define this if the header file grp.h exists. */
#undef HAVE_GRP_H

/* Define this if the header file iconv.h exists. */
#undef HAVE_ICONV_H

/* Define this if the header file langinfo.h exists. */
#undef HAVE_LANGINFO_H

/* Define this if the function nl_langinfo exists. */
#undef HAVE_NL_LANGINFO

/* Define this if the header file pwd.h exists. */
#undef HAVE_PWD_H

/* Define this if the header file regex.h exists. */
#undef HAVE_REGEX_H

/* Define this if the header file sched.h exists. */
#undef HAVE_SCHED_H

/* Define this if the header file sdkddkver.h exists. */
#undef HAVE_SDKDDKVER_H

/* Define this if the header file signal.h exists. */
#undef HAVE_SIGNAL_H

/* Define this if the function sigaction exists. */
#undef HAVE_SIGACTION

/* Define this if the header file syslog.h exists. */
#undef HAVE_SYSLOG_H

/* Define this if the header file wchar.h exists. */
#undef HAVE_WCHAR_H

/* Define this if the header file sys/capability.h exists. */
#undef HAVE_SYS_CAPABILITY_H

/* Define this if the header file sys/file.h exists. */
#undef HAVE_SYS_FILE_H

/* Define this if the header file sys/io.h exists. */
#undef HAVE_SYS_IO_H

/* Define this if the header file sys/modem.h exists. */
#undef HAVE_SYS_MODEM_H

/* Define this if the header file sys/prctl.h exists. */
#undef HAVE_SYS_PRCTL_H

/* Define this if the header file sys/signalfd.h exists. */
#undef HAVE_SYS_SIGNALFD_H

/* Define this if the header file sys/socket.h exists. */
#undef HAVE_SYS_SOCKET_H

#ifndef __MINGW32__
/* Define this if the header file sys/poll.h exists. */
#undef HAVE_SYS_POLL_H

/* Define this if the function poll exists. */
#undef HAVE_POLL

/* Define this if the header file sys/select.h exists. */
#undef HAVE_SYS_SELECT_H

/* Define this if the function select exists. */
#undef HAVE_SELECT
#endif /* __MINGW32__ */

/* Define this if the header file sys/wait.h exists,
 * but not for DOS since it wouldn't make sense. 
 */
#ifndef __MSDOS__
#undef HAVE_SYS_WAIT_H
#endif /* __MSDOS__ */

/* Define this if the header file dev/speaker/speaker.h exists. */
#undef HAVE_DEV_SPEAKER_SPEAKER_H

/* Define this if the header file legacy/dev/usb/usb.h exists. */
#undef HAVE_LEGACY_DEV_USB_USB_H

/* Define this if the header file linux/audit.h exists. */
#undef HAVE_LINUX_AUDIT_H

/* Define this if the header file linux/filter.h exists. */
#undef HAVE_LINUX_FILTER_H

/* Define this if the header file linux/input.h exists. */
#undef HAVE_LINUX_INPUT_H

/* Define this if the header file linux/seccomp.h exists. */
#undef HAVE_LINUX_SECCOMP_H

/* Define this if the header file linux/uinput.h exists. */
#undef HAVE_LINUX_UINPUT_H

/* Define this if the header file linux/vt.h exists. */
#undef HAVE_LINUX_VT_H

/* Define this if the header file machine/speaker.h exists. */
#undef HAVE_MACHINE_SPEAKER_H

/* Define this if the header file X11/extensions/Xfixes.h exists. */
#undef HAVE_X11_EXTENSIONS_XFIXES_H

/* Define this if the header file X11/extensions/XKB.h exists. */
#undef HAVE_X11_EXTENSIONS_XKB_H

/* Define this if the header file X11/extensions/XTest.h exists. */
#undef HAVE_X11_EXTENSIONS_XTEST_H

/* Define this if the header file X11/keysym.h exists. */
#undef HAVE_X11_KEYSYM_H

/* Define this if the function XSetIOErrorExitHandler exists.  */
#undef HAVE_XSETIOERROREXITHANDLER

/* Define this if the function atspi_get_a11y_bus exists in atspi2. */
#undef HAVE_ATSPI_GET_A11Y_BUS

/* Define this if XML parsing support is to be included. */
#undef HAVE_EXPAT

/* Define this if Unicode-based internationalization support is to be included. */
#undef HAVE_ICU

/* Define this if the header file unicode/unorm2.h exists. */
#undef HAVE_UNICODE_UNORM2_H

/* Define this if the Polkit authorization manager is to be used. */
#undef HAVE_POLKIT

/* Define this if posix threads are supported. */
#undef HAVE_POSIX_THREADS

/* Define this if thread-local variables are supported. */
#undef THREAD_LOCAL

/* Define this if the function pthread_atfork exists. */
#undef HAVE_PTHREAD_ATFORK

/* Define this if the function pthread_getname_np exists. */
#undef HAVE_PTHREAD_GETNAME_NP

/* Define this if the function sd_session_get_vt is available in libsystemd. */
#undef HAVE_SD_SESSION_GET_VT

/* Define this if the bluetooth library is available. */
#undef HAVE_LIBBLUETOOTH

/* Define this if the cap(abilities) library is available. */
#undef HAVE_LIBCAP

/* Define this if GPM is to be used. */
#undef HAVE_LIBGPM

/* Define this if the package dbus is available. */
#undef HAVE_PKG_DBUS

/* Define only one of the following curses packages. */
#undef HAVE_PKG_CURSES
#undef HAVE_PKG_NCURSES
#undef HAVE_PKG_NCURSESW
#undef HAVE_PKG_PDCURSES
#undef HAVE_PKG_PDCURSESU
#undef HAVE_PKG_PDCURSESW

/* Define this if the package x11 is available. */
#undef HAVE_PKG_X11

/* Define this if X is not available. */
#undef X_DISPLAY_MISSING

/* Define only one of the following Xaw packages. */
#undef HAVE_PKG_XAW
#undef HAVE_PKG_XAW3D
#undef HAVE_PKG_NEXTAW
#undef HAVE_PKG_XAWPLUS
#undef HAVE_PKG_XM

/* Define this if the compiler doesn't fully support the const keyword. */
#undef const

/* Define this if the compiler doesn't fully support the inline keyword. */
#undef inline

/* Define this if the packed variable attribute is supported. */
#undef HAVE_VAR_ATTRIBUTE_PACKED

/* Define this if the unused variable attribute is supported. */
#undef HAVE_VAR_ATTRIBUTE_UNUSED

/* Define this if the format function attribute is supported. */
#undef HAVE_FUNC_ATTRIBUTE_FORMAT

/* Define this if the format_arg function attribute is supported. */
#undef HAVE_FUNC_ATTRIBUTE_FORMAT_ARG

/* Define this if the noreturn function attribute is supported. */
#undef HAVE_FUNC_ATTRIBUTE_NORETURN

/* Define this if the unused function attribute is supported. */
#undef HAVE_FUNC_ATTRIBUTE_UNUSED

/* Define this if the __alignof__ operator is supported. */
#undef HAVE_OPERATOR_ALIGNOF
#ifndef HAVE_OPERATOR_ALIGNOF
#define __alignof__(x) 8
#endif /* HAVE_OPERATOR_ALIGNOF */

/* Define this if the host is big endian. */
#undef WORDS_BIGENDIAN

/* Define this to be a string containing the size of the wchar_t type. */
#undef SIZEOF_WCHAR_T_STR

/* Define this if the function localtime_r is declared. */
#undef HAVE_DECL_LOCALTIME_R

/* Define this if the type PROCESS_INFORMATION_CLASS exists. */
#undef HAVE_PROCESS_INFORMATION_CLASS

/* Define this if the value ProcessUserModeIOPL exists. */
#undef HAVE_PROCESSUSERMODEIOPL

/* Define this if BRLTTY is to be run as init. */
#undef INIT_PATH

/* Define this if standard error is to be redirected to a file. */
#undef STDERR_PATH

/* Define this to be a string containing the path to the configuration directory. */
#undef CONFIGURATION_DIRECTORY

/* Define this to be a string containing the name of the default configuration file. */
#undef CONFIGURATION_FILE

/* Define this to be a string containing the path to the locale directory. */
#undef LOCALE_DIRECTORY

/* Define this to be a string containing the path to a writable directory. */
#undef WRITABLE_DIRECTORY

/* Define this to be a string containing the path to a directory which contains files that can be updated. */
#undef UPDATABLE_DIRECTORY

/* Define this to be a string containing the name of the default preferences file. */
#undef PREFERENCES_FILE

/* Define this to be a string containing the path to the helper commands directory. */
#undef COMMANDS_DIRECTORY

/* Define this to be a string containing the path to the drivers directory. */
#undef DRIVERS_DIRECTORY

/* Define this to be a string containing the path to the tables directory. */
#undef TABLES_DIRECTORY

/* Define this to be a string containing the path to the LibLouis tables directory. */
#undef LOUIS_TABLES_DIRECTORY

/* Define this to be a string containing the default parameters for the privilege establishment stage. */
#undef PRIVILEGE_PARAMETERS

/* Define this to be a string containing a list of the braille driver codes. */
#undef BRAILLE_DRIVER_CODES

/* Define this to be a string containing the default parameters for the braille driver(s). */
#undef BRAILLE_PARAMETERS

/* Define this to be a string containing the path to the directory containing the devices. */
#undef DEVICE_DIRECTORY

/* Define this to be a string containing the path to the default braille device. */
#undef BRAILLE_DEVICE

/* Define this to be a string containing the path to the first serial device. */
#undef SERIAL_FIRST_DEVICE

/* Define this to be a string containing a list of the speech driver codes. */
#undef SPEECH_DRIVER_CODES

/* Define this to be a string containing the default parameters for the speech driver(s). */
#undef SPEECH_PARAMETERS

/* Define this to be a string containing a list of the screen driver codes. */
#undef SCREEN_DRIVER_CODES

/* Define this to be a string containing the default screen driver code. */
#undef DEFAULT_SCREEN_DRIVER

/* Define this to be a string containing the default parameters for the screen driver(s). */
#undef SCREEN_PARAMETERS

/* Define this to be a string containing the name of the default text table. */
#undef TEXT_TABLE

/* Define this to be a string containing the name of the default contraction table. */
#undef CONTRACTION_TABLE

/* Define this to be a string containing the name of the default attributes table. */
#undef ATTRIBUTES_TABLE

/* Define this to include speech synthesizer and text-to-speech engine support. */
#undef ENABLE_SPEECH_SUPPORT

/* Define this to be a string containing the path to the root of the FestivalLite package. */
#undef FLITE_ROOT

/* Define this to be a string containing the path to the root of the Mikropuhe package. */
#undef MIKROPUHE_ROOT

/* Define this to be a string containing the path to the root of the SpeechDispatcher package. */
#undef SPEECHD_ROOT

/* Define this to be a string containing the path to the root of the Swift package. */
#undef SWIFT_ROOT

/* Define this to be a string containing the path to the root of the Theta package. */
#undef THETA_ROOT

/* Define this if the application programming interface is to be included. */
#undef ENABLE_API

/* Define this if the application programming interface is to be fuzzed. */
#undef ENABLE_API_FUZZING

/* Define this to be a string containing the default parameters for the application programming interface. */
#undef API_PARAMETERS

/* Define this to be a string containing the path to BrlAPI's local sockets directory. */
#undef BRLAPI_SOCKETPATH

/* Define this to be a string containing the path to BrlAPI's data files directory. */
#undef BRLAPI_ETCDIR

/* Define this to be a string containing the name of BrlAPI's authorization key file. */
#undef BRLAPI_AUTHKEYFILE

/* Define this if internationalization support is to be included. */
#undef ENABLE_I18N_SUPPORT

/* Define this if shared object support is to be included. */
#undef ENABLE_SHARED_OBJECTS

/* Define this if HP-UX audio support is available. */
#undef HAVE_HPUX_AUDIO

/* Define this to be a string containing the subdirectory for text tables. */
#undef TEXT_TABLES_SUBDIRECTORY

/* Define this to be a string containing the subdirectory for contraction tables. */
#undef CONTRACTION_TABLES_SUBDIRECTORY

/* Define this to be a string containing the subdirectory for attributes tables. */
#undef ATTRIBUTES_TABLES_SUBDIRECTORY

/* Define this to be a string containing the subdirectory for keyboard tables. */
#undef KEYBOARD_TABLES_SUBDIRECTORY

/* Define this to be a string containing the subdirectory for input tables. */
#undef INPUT_TABLES_SUBDIRECTORY

/* Define this to be a string containing the extension for text tables. */
#undef TEXT_TABLE_EXTENSION

/* Define this to be a string containing the extension for text subtables. */
#undef TEXT_SUBTABLE_EXTENSION

/* Define this to be a string containing the extension for contraction tables. */
#undef CONTRACTION_TABLE_EXTENSION

/* Define this to be a string containing the extension for contraction subtables. */
#undef CONTRACTION_SUBTABLE_EXTENSION

/* Define this to be a string containing the extension for attributes tables. */
#undef ATTRIBUTES_TABLE_EXTENSION

/* Define this to be a string containing the extension for attributes subtables. */
#undef ATTRIBUTES_SUBTABLE_EXTENSION

/* Define this to be a string containing the extension for key tables. */
#undef KEY_TABLE_EXTENSION

/* Define this to be a string containing the extension for key subtables. */
#undef KEY_SUBTABLE_EXTENSION

/* Define this to be a string containing the extension for key help files. */
#undef KEY_HELP_EXTENSION

/* Define this to be a string containing the subdirectory for profiles. */
#undef PROFILES_SUBDIRECTORY

/* Define this to be a string containing the extension for language profiles. */
#undef LANGUAGE_PROFILE_EXTENSION

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* BRLTTY_INCLUDED_CONFIG */
