#!/usr/bin/env bash
###############################################################################
# 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}")/../prologue.sh"
set -e

setSourceRoot
cd "${sourceRoot}"

revisionIdentifier="$(./getrevid .)" || {
   revisionHeader="${programsSubdirectory}/revision_identifier.auto.h"

   revisionIdentifier="$(sed -e 's/"//g' "${revisionHeader}")" || {
      revisionIdentifier="$(date +'%Y%m%d-%H%M%S')"
   }
}

configureOptions=(
   --with-execute-root="/brltty/REV-${revisionIdentifier}"
   --without-libbraille
   --without-mikropuhe
   --without-swift
   --without-theta
)

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