Commit b87fe296 authored by Jim Nelson's avatar Jim Nelson

configure wrapper script and top-level Makefile: closes #5143

This introduces a configure script that automates the basic task
of setting up a CMake build directory.  It also uses a top-level
Makefile (which the configure script generates, to prevent running
it until configure has executed) which does the build and copies
the final executables into the root of the source tree.
parent 78ecc0f7
*~
.lock-wafbuild
.valencia
.waf-*
/Makefile
/.stamp
build/
/console
/geary
/norman
/theseus
/gearyd
/geary-mailer
/geary-console
......@@ -14,7 +14,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake )
# Base bits
#
set(GETTEXT_PACKAGE "geary")
set(RELEASE_NAME "Lightweight email client for Gnome.")
set(RELEASE_NAME "Lightweight email client for GNOME.")
set(VERSION "0.0.0+trunk")
set(VERSION_INFO "Release")
......
# Makefile.in
#
# Copyright 2012 Yorba Foundation
BUILD_DIR := build
BINARIES := geary gearyd geary-console geary-mailer
BUILD_BINARIES := $(addprefix $(BUILD_DIR)/,$(BINARIES))
.PHONY: all
all:
@$(MAKE) -C $(BUILD_DIR)
@cp $(BUILD_BINARIES) .
.PHONY: install uninstall
install uninstall:
@$(MAKE) -C $(BUILD_DIR) $@
.PHONY: clean
clean:
@-$(MAKE) -C $(BUILD_DIR) clean
@-rm -f $(BINARIES)
@-rm -f .stamp
.PHONY: distclean
distclean: clean
@-rm -rf $(BUILD_DIR)
@-rm -f Makefile
#!/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 "\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} "
;;
*) 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
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"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment