geary/configure
2012-09-21 11:18:41 -07:00

132 lines
3.2 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# Copyright 2012 Yorba Foundation
#
# This software is licensed under the GNU LGPL (version 2.1 or later).
# See the COPYING file in this distribution.
DEFAULT_PREFIX="/usr/local"
PREFIX=$DEFAULT_PREFIX
configure_help() {
printf "Usage:\n"
printf "\t./configure [OPTIONS]...\n"
printf "\n"
printf "Options:\n"
printf "\t-h, --help\t\tPrint this help and exit.\n"
printf "\t--prefix=PREFIX\t\tPrepend PREFIX to program installation paths.\n"
printf "\t\t\t\t[%s]\n" $DEFAULT_PREFIX
printf "\t--debug\n"
printf "\t\t\t\tBuild for debugging.\n"
printf "\t--disable-schemas-compile\n"
printf "\t\t\t\tDisable compiling the GSettings schema.\n"
printf "\t--disable-desktop-update\n"
printf "\t\t\t\tDisable desktop database update.\n"
printf "\t--disable-icon-update\n"
printf "\t\t\t\tDisable icon cache update.\n"
printf "\n"
}
abort() {
printf "%s: Invalid argument %s\n" $0 $1
configure_help
exit 1
}
while [ $# != 0 ]
do
option=`echo $1 | sed 's/=.*//'`
if [ `echo $1 | grep '='` ]
then
value=`echo $1 | sed 's/.*=//'`
fi
case $option in
-h | --help) configure_help
exit 0
;;
--prefix) if [ ! $value ]
then
abort $1
fi
CMDLINE="${CMDLINE} -DCMAKE_INSTALL_PREFIX=${value}"
;;
--debug)
CMDLINE="${CMDLINE} -DDEBUG=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"
;;
*) abort $option
;;
esac
shift
done
# 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
# Simple check to verify this script is running in the root of the source tree
if ! [ -e Makefile.in ]
then
printf "configure script must be executed in source directory (Makefile.in not found).\n"
exit 1
fi
# 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
if ! cmake $CMDLINE ..
then
printf "Unable to prepare build directory.\n"
exit 1
fi
cd ..
if ! cp -f Makefile.in Makefile
then
printf "Unable to prepare Makefile.\n"
exit 1
fi
printf "Configured. Type 'make' to build, 'make install' to install.\n"