geary/configure

223 lines
6.4 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# Copyright 2016 Software Freedom Conservancy Inc.
#
# This software is licensed under the GNU LGPL (version 2.1 or later).
# See the COPYING file in this distribution.
srcdir=$(cd $(dirname $0) && pwd)
DEFAULT_PREFIX="/usr/local"
PREFIX=$DEFAULT_PREFIX
configure_help() {
cat <<- EOT
Usage:
./configure [OPTIONS]...
Options:
-h, --help Print this help and exit.
--prefix=PREFIX Prepend PREFIX to program installation paths.
[$DEFAULT_PREFIX]
--debug Build for debugging.
--disable-fatal-warnings
Disable Vala fatal warnings when compiling.
--enable-ref-tracking
Enable reference tracking which is dumped to stdout when the program exits.
--disable-schemas-compile
Disable compiling the GSettings schema.
--disable-desktop-update
Disable desktop database update.
--disable-desktop-validate
Disable checking for errors in generated desktop file.
--disable-icon-update
Disable icon cache update.
--disable-documentation
Disable generating and installing translated help documentation.
--disable-contractor
Disable installing Contractor files.
--disable-poodle-ssl3
Disable POODLE SSLv3 GnuTLS priority fix. (Not recommended.)
Some influential environment variables:
PKG_CONFIG_PATH Adds directories to pkg-config's search path.
PKG_CONFIG_LIBDIR Overrides pkg-config's built-in search path.
VALAC Name of the vala compiler to use, e.g. "valac-0.18".
VALADOC Name of the valadoc executable to use, e.g. "valadoc-0.18".
EOT
}
abort() {
printf "%s: Invalid argument %s\n" $0 $1
configure_help
exit 1
}
while [ $# != 0 ]
do
if [[ "$1" = *=* ]]
then
option=${1%%=*}
value=${1#*=}
else
option=$1
value=
fi
case $option in
-h | --help) configure_help
exit 0
;;
--prefix) if [ -z "$value"]; then
# handle jhbuild's use of "--prefix /path"
value="$2"
shift
fi
[ ! "$value" ] && abort $1
CMDLINE="${CMDLINE} -DCMAKE_INSTALL_PREFIX=${value}"
;;
# ignored for autotools compatibility
--bindir | --libdir | --sbindir | --datadir | --localstatedir | \
--includedir | --infodir | --sysconfdir | --mandir | --libexecdir)
if [ -z "$value"]; then
# handle jhbuild's use of "--option /path"
value="$2"
shift
fi
;;
--build | --host | --target) ;;
--disable-gtk-doc | --disable-silent-rules | --disable-static ) ;;
--debug)
CMDLINE="${CMDLINE} -DCMAKE_BUILD_TYPE=Debug"
;;
--disable-fatal-warnings)
CMDLINE="${CMDLINE} -DNO_FATAL_WARNINGS=ON"
;;
--enable-ref-tracking)
CMDLINE="${CMDLINE} -DREF_TRACKING=ON"
;;
--disable-schemas-compile)
CMDLINE="${CMDLINE} -DGSETTINGS_COMPILE=OFF"
CMDLINE="${CMDLINE} -DGSETTINGS_COMPILE_IN_PLACE=OFF"
;;
--disable-icon-update)
CMDLINE="${CMDLINE} -DICON_UPDATE=OFF"
;;
--disable-desktop-update)
CMDLINE="${CMDLINE} -DDESKTOP_UPDATE=OFF"
;;
--disable-desktop-validate)
CMDLINE="${CMDLINE} -DDESKTOP_VALIDATE=OFF"
;;
--disable-documentation)
CMDLINE="${CMDLINE} -DTRANSLATE_HELP=OFF"
;;
--disable-contractor)
CMDLINE="${CMDLINE} -DDISABLE_CONTRACT=ON"
;;
--disable-poodle-ssl3)
CMDLINE="${CMDLINE} -DDISABLE_POODLE=ON"
;;
VALAC) [ ! $value ] && abort $1
VALAC=$value
;;
*) abort $option
;;
esac
shift
done
# Verify use supplied vala executable
if [ -n "$VALAC" ]
then
VALA_EXECUTABLE=`type -p "$VALAC"`
if [ -z "$VALA_EXECUTABLE" ]
then
printf "$VALAC is not an executable program.\n"
exit 1
fi
CMDLINE="${CMDLINE} -DVALA_EXECUTABLE='$VALA_EXECUTABLE'"
fi
# Verify use supplied valadoc executable
if [ -n "$VALADOC" ]
then
VALADOC_EXECUTABLE=`type -p "$VALADOC"`
if [ -z "$VALADOC_EXECUTABLE" ]
then
printf "$VALADOC is not an executable program.\n"
exit 1
fi
CMDLINE="${CMDLINE} -DVALADOC_EXECUTABLE='$VALADOC_EXECUTABLE'"
fi
# Verify cmake is installed
# TODO: Check for minimum version number
if ! cmake --version
then
printf "cmake must be installed to configure and build.\n"
exit 1
fi
using_srcdir_ne_builddir=false
# Simple check to verify this script is running in the root of the source tree
if [ -e Makefile.in ]
then
using_srcdir_ne_builddir=true
# Remove existing Makefile so it's not left around if configure fails
rm -f Makefile
# Remove the build folder to force Cmake to update its cache.
rm -fr build
if ! mkdir -p build
then
printf "Unable to create build directory.\n"
exit 1
fi
cd build
fi
if ! (cmake $CMDLINE ${srcdir})
then
printf "Unable to prepare build directory.\n"
exit 1
fi
if ${using_srcdir_ne_builddir}
then
cd ..
if ! cp -f ${srcdir}/Makefile.in Makefile
then
printf "Unable to prepare Makefile.\n"
exit 1
fi
fi
printf "Configured. Type 'make' to build, 'make install' to install.\n"