non/scripts/config-funcs

142 lines
2.6 KiB
Plaintext
Raw Normal View History

#!/bin/sh
#
# Copyright (C) 2008 Jonathan Moore Liles
# This file is licensed under version 2 of the GPL.
. scripts/colors
# support functions for 'configure' scripts.
fatal ()
{
echo "$BOLD$RED$*$SGR0" > /dev/stderr
exit 255
}
ask ()
{
local answer default
default="`eval echo \\$$2`"
default=${default:-$3}
2008-05-18 05:06:03 +02:00
echo -n "$BLACK$BOLD::$SGR0 $1 [$BOLD${default}$SGR0] "
read answer
echo "${2}=${answer:-$default}" >> make.conf
}
ok ()
{
2008-05-18 05:06:03 +02:00
echo "$BOLD${GREEN}ok${SGR0}"
}
failed ()
{
echo "$BOLD${RED}failed!${SGR0}" > /dev/stderr
rm -f make.conf
}
extract_options ()
{
local OIFS
if [ -f make.conf ]
then
OIFS="$IFS"
IFS=''
eval "`sed -n '/^## options/{ : i; /^## libs/{ q }; p; n; b i }' make.conf`"
IFS="$OIFS"
fi
}
begin ()
{
echo -n "Checking sanity..."
require_command pkg-config pkg-config > /dev/null
require_command sed sed > /dev/null
ok
}
begin_options ()
{
# get the old values
extract_options
echo "# This is a generated file. Any changes may be lost!" > make.conf
echo "## options" >> make.conf
echo "--- Configuration required ---"
}
begin_tests ()
{
echo "## libs/flags" >> make.conf
extract_options
}
append ()
{
echo "$1" >> make.conf
}
end ()
{
echo "--- Configuration complete ---"
}
require_command ()
{
echo -n "Checking for ${BOLD}$1${SGR0}..."
if ! [ -x "`which $2`" ]
then
failed
fatal "Command $1 not found."
else
ok
fi
}
require_package ()
{
echo -n "Checking for $BOLD$1$SGR0..."
if ! pkg-config --exists $3
then
failed
fatal "Required package $1 doesn't appear to be installed."
elif ! pkg-config --atleast-version $2 $3
then
failed
fatal "The installed version of $1 (`pkg-config --mod-version $3`) is too old."
fi
append "${1}_LIBS=`pkg-config --libs $3`"
append "${1}_CFLAGS=-DHAVE_${1} `pkg-config --cflags $3`"
ok
return 0
}
require_FLTK ()
{
echo -n "Checking for ${BOLD}FLTK${SGR0}..."
FLTK_VERSION=`fltk-config --version`
FLTK_VERSION_MAJOR=`echo $FLTK_VERSION | cut -d'.' -f1`
FLTK_VERSION_MINOR=`echo $FLTK_VERSION | cut -d'.' -f2`
FLTK_VERSION_PATCH=`echo $FLTK_VERSION | cut -d'.' -f3`
if ! ( [ $FLTK_VERSION_MAJOR -ge $1 ] && [ $FLTK_VERSION_MINOR -ge $2 ] && [ $FLTK_VERSION_PATCH -ge $3 ] )
then
failed
fatal "The installed FLTK version ($FLTK_VERSION) is too old."
else
ok
fi
append "FLTK_LIBS=`fltk-config --use-images --ldflags`"
append "FLTK_CFLAGS=`fltk-config --cflags`"
}