#!/bin/bash -p
###############################################################################
# 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-2025 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>.
###############################################################################

. "`dirname "${0}"`/brltty-prologue.sh"

toolsSystem="i586-pc-msdosdjgpp"
toolsRootVariable=DOS_TOOLS_ROOT

handleInitialHelpOption "${@}" <<END-OF-HELP
Configure a BRLTTY build for the DOS platform.

Syntax: ${programName} {-h | [-option ...]}

All of the options are passed through, unmodified, as additional options to the configure script.
The ${toolsRootVariable} environment variable must point to the root directory for the DJGPP tols.
END-OF-HELP

toolsRoot="${!toolsRootVariable}"
[ -n "${toolsRoot}" ] || semanticError "${toolsRootVariable} not set"
[  -f "${toolsRoot}/bin/${toolsSystem}-gcc" ] || semanticError "not a DOS tools root: ${toolsRoot}"
export toolsDirectory="${toolsRoot}/bin"
export PATH="${toolsDirectory}:${PATH}"

checkTool() {
   eval export "${1}=\`set -- \"${toolsDirectory}/\"*\"-$2\" && echo \"\${1}\"\`"
}

checkTool CC gcc
checkTool LD ld
checkTool STRIP strip
checkTool RANLIB ranlib

export CFLAGS="-fgnu89-inline"
export LDFLAGS=""

# Braille drivers already disabled:
# lb (by --without-libbraille)
# xw (by --disable-x)

configureOptions=(
   --with-configuration-file=brltty.cfg
   --with-writable-directory='${prefix}/'
   --enable-relocatable-install

   --disable-api
   --disable-expat
   --disable-gpm
   --disable-icu
   --disable-liblouis
   --disable-polkit
   --disable-x

   --without-libbraille
   --with-braille-driver=-cn,all

   --without-espeak
   --without-espeak-ng
   --without-flite
   --without-mikropuhe
   --without-speechd
   --without-swift
   --without-theta
   --with-speech-driver=-xs,all

   --with-screen-driver=pb,-all

   --without-bell-package
   --without-leds-package

   --without-pcm-package
   --without-midi-package
   --without-fm-package

   --without-pgmpath-package
   --without-pgmprivs-package
   --without-service-package
   --without-params-package
   --without-rgx-package
   --without-hostcmd-package
   --without-mntpt-package
   --without-mntfs-package
   --without-kbd-package

   --without-usb-package
   --without-bluetooth-package
   --without-hid-package

   --host="${toolsSystem}"
)

"${programDirectory}/configure" --quiet "${configureOptions[@]}" "${@}"
exit 0
