#!/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-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>.
###############################################################################

. "`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=-vr,-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
