utt/configure

303 lines
6.5 KiB
Bash
Executable File

#!/bin/sh
# utt configure file
# creates config.mak which is used by other makefiles
# variables for dynamically selecting whether to compile utf8 versions
CUR_DIR=$(pwd)
SRC_DIR="${CUR_DIR}/src"
# list of components to compile
CMPLIST="compdic cor dgc dgp fla gph grp gue kon kor kot lem mar rm12 rs12 sen sen-nl ser tags tok.c tok.l tok.pl tre unfla"
COMP=
# sets all variables to a defined value
set_all(){
value=$1
shift
for var in $*; do
eval $var=$value
done
}
# enables a feature
enable(){
set_all yes $*
}
# disables a feature
disable(){
set_all no $*
}
# checks whether a feature is enabled
enabled(){
eval test "x\$$1" = "xyes"
}
# checks whether a feature is disabled
disabled(){
eval test "x\$$1" = "xno"
}
show_help(){
echo "Usage configure [options]"
echo "Options: [defaults in brackets after descriptions]"
echo "All \"enable\" options have \"disable\" counterparts"
echo
echo " --help print this message"
echo " --prefix=PREFIX install in PREFIX [$PREFIX]"
echo " --bindir=BINDIR install binaries in BINDIR [$bindir]"
echo " --confdir=CONFDIR install configuration in CONFDIR [$confdir]"
echo " --sharedir=SHAREDIR install shared in SHAREDIR [$sharedir]"
echo " --docdir=DOCDIR install doc in DOCDIR [$docdir]"
echo " --langdir=LANGDIR install lang in LANGDIR [$langdir]"
echo " --libdir=LIBDIR install libraries in LIBDIR [$libdir]"
echo
echo " --language=LANGUAGE select language"
echo
echo " --enable-static build static versions [no]"
echo " --enable-doc build documentation [yes]"
echo " --enable-utf8 build UTF-8 versions of applications [no]"
echo
echo " --cc=CC use C compiler CC [$cc_default]"
echo " --cxx=CXX use C++ compiler CXX [$cxx_default]"
echo " --gengetopt=GGO use gengetopt GGO [$gengetopt_default]"
echo " --flex=FLEX use flex FLEX [$flex_default]"
echo " --makeinfo=MAKEINFO use makeinfo MAKEINFO [$makeinfo_default]"
echo " --texi2dvi=TEXI2DVI use texi2dvi TEXI2DVI [$texi2dvi_default]"
echo " --texi2pdf=TEXI2PDF use texi2pdf TEXI2PDF [$texi2pdf_default]"
echo " --dvips=DVIPS use dvips DVIPS [$dvips_default]"
exit 1
}
die_unknown(){
echo "Unknown option \"$1\"."
echo "See $0 --help for availible options."
exit 1
}
#
# default values
PREFIX="/usr/local"
bindir="${PREFIX}/bin"
confdir="/etc/utt"
sharedir="${PREFIX}/share"
docdir="${PREFIX}/share/doc/utt"
langdir="${PREFIX}/share/utt"
libdir="${PREFIX}/lib/utt"
languages="pl_PL.ISO-8859-2"
language="pl_PL.ISO-8859-2"
cc_default="gcc"
cxx_default="g++"
gengetopt_default="gengetopt"
flex_default="flex"
makeinfo_default="makeinfo"
texi2dvi_default="texi2dvi"
texi2pdf_default="texi2pdf"
dvips_default="dvips"
# default switch values
DEFAULT="
"
DEFAULT_NO="static
utf8
"
DEFAULT_YES="doc
"
CMDLINE_SELECT="$DEFAULT
$DEFAULT_NO
$DEFAULT_YES
"
enable $DEFAULT_YES
disable $DEFAULT_NO
for opt do
optval="${opt#*=}"
case "$opt" in
--help)
show_help
;;
--prefix=*)
PREFIX="$optval"
bindir="$optval/bin"
sharedir="$optval/share"
docdir="$optval/share/doc/utt"
langdir="$optval/share/utt"
libdir="$optval/lib/utt"
;;
--bindir=*)
bindir="$optval"
;;
--confdir=*)
confdir="$optval"
;;
--sharedir=*)
sharedir="$optval"
;;
--docdir=*)
docdir="$optval"
;;
--langdir=*)
langdir="$optval"
;;
--libdir=*)
libdir="$optval"
;;
--language=*)
language="$optval"
;;
--cc=*)
cc="$optval"
;;
--cxx=*)
cxx="$optval"
;;
--gengetopt=*)
gengetopt="$optval"
;;
--flex=*)
flex="$optval"
;;
--makeinfo=*)
makeinfo="$optval"
;;
--texi2dvi=*)
texi2dvi="$optval"
;;
--texi2pdf=*)
texi2pdf="$optval"
;;
--dvips=*)
dvips="$optval"
;;
--enable-?*|--disable-?*)
eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
echo "$CMDLINE_SELECT" | grep -q "^ *$option\$" || die_unknown $opt
$action $option
;;
*)
die_unknown $opt
;;
esac
done
if ! test -z $cc; then
cc_default="${cc}"
fi
cc="${cc_default}"
if ! test -z $cxx; then
cxx_default="${cxx}"
fi
cxx="${cxx_default}"
if ! test -z $gengetopt; then
gengetopt_default="${gengetopt}"
fi
gengetopt="${gengetopt_default}"
if ! test -z $flex; then
flex_default="$flex"
fi
flex="${flex_default}"
enabled doc && {
if ! test -z $makeinfo; then
makeinfo_default="${makeinfo}"
fi
if ! test -z $texi2dvi; then
texi2dvi_default="${texi2dvi}"
fi
if ! test -z $texi2pdf; then
texi2pdf_default="${texi2pdf}"
fi
if ! test -z $dvips; then
dvips_default="${dvips}"
fi
makeinfo="${makeinfo_default}"
texi2dvi="${texi2dvi_default}"
texi2pdf="${texi2pdf_default}"
dvips="${dvips_default}"
}
# generating config.mak
echo "# Automatically generated by configure" > config.mak
echo "PREFIX=$PREFIX" >> config.mak
echo "BIN_DIR=$bindir" >> config.mak
echo "CONF_DIR=$confdir" >> config.mak
echo "SHARE_DIR=$sharedir" >> config.mak
echo "DOC_DIR=$docdir" >> config.mak
echo "LANG_DIR=$langdir" >> config.mak
echo "LIB_DIR=$libdir" >> config.mak
echo "LANGUAGES=$languages" >> config.mak
echo "LANGUAGE=$language" >> config.mak
echo "CC=$cc" >> config.mak
echo "CXX=$cxx" >> config.mak
echo "GENGETOPT=$gengetopt" >> config.mak
echo "FLEX=$flex" >> config.mak
enabled doc && {
echo "MAKEINFO=$makeinfo" >> config.mak
echo "TEXI2DVI=$texi2dvi" >> config.mak
echo "TEXI2PDF=$texi2pdf" >> config.mak
echo "DVIPS=$dvips" >> config.mak
}
echo "BUILD_UTF8=$utf8" >> config.mak
echo "BUILD_STATIC=$static" >> config.mak
echo "BUILD_DOC=$doc" >> config.mak
enabled utf8 && {
for cmp in $CMPLIST; do
if [ -d "${SRC_DIR}/${cmp}_utf8" ]; then
COMPONENTS="${COMPONENTS} ${cmp}_utf8"
else
COMPONENTS="${COMPONENTS} ${cmp}"
fi
done
}
disabled utf8 && {
for cmp in $CMPLIST; do
COMPONENTS="${COMPONENTS} ${cmp}"
done
}
COMPONENTS=$(echo $COMPONENTS | cut -c1-)
echo "COMPONENTS=$COMPONENTS" >> config.mak
# echoing the configuration to console
echo "prefix: $PREFIX"
echo "bindir: $bindir"
echo "confdir: $confdir"
echo "sharedir: $sharedir"
echo "docdir: $docdir"
echo "langdir: $langdir"
echo "libdir: $libdir"
echo "languages: $languages"
echo "language: $language"
enabled doc && {
echo "makeinfo: $makeinfo"
echo "texi2dvi: $texi2dvi"
echo "texi2pdf: $texi2pdf"
echo "dvips: $dvips"
}
echo "cc: $cc"
echo "cxx: $cxx"
echo "gengetopt: $gengetopt"
echo "flex: $flex"
echo "utf8: $utf8"
echo "static: $static"
echo "doc: $doc"