#!/bin/sh
###############################################################################
# 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"

handleInitialHelpOption "${@}" <<END-OF-HELP
Configure a BRLTTY build for running within the Grub boot loader.

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

All of the options are passed through, unmodified, as additional options to the configure script.
END-OF-HELP

# Braille drivers already disabled:
# ba (by --disable-api)
# il (not on Linux)
# lb (by --without-libbraille)
# xw (by --disable-x)

configureOptions=(
   --disable-api
   --disable-icu
   --disable-gpm
   --disable-polkit
   --disable-x

   --without-libbraille
   --with-braille-driver=-lt,-tt,-vd,-vr

   --disable-speech-support

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

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

   --host=i386-elf
)

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