#! /bin/bash
#  bootstrap -- Use this script to create generated files from a VCS checkout
#
#  Copyright 2008 Sony Corporation of America
#
#
#  Permission is hereby granted, free of charge, to any person obtaining
#  a copy of this Library and associated documentation files (the
#  "Library"), to deal in the Library without restriction, including
#  without limitation the rights to use, copy, modify, merge, publish,
#  distribute, sublicense, and/or sell copies of the Library, and to
#  permit persons to whom the Library is furnished to do so, subject to
#  the following conditions:
#
#   The above copyright notice and this permission notice shall be
#   included in all copies or substantial portions of the Library.
#
#   If you modify the Library, you may copy and distribute your modified
#   version of the Library in object code or as an executable provided
#   that you also do one of the following:
#
#    Accompany the modified version of the Library with the complete
#    corresponding machine-readable source code for the modified version
#    of the Library; or,
#
#    Accompany the modified version of the Library with a written offer
#    for a complete machine-readable copy of the corresponding source
#    code of the modified version of the Library.
#
#
#  THE LIBRARY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
#  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
#  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
#  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
#  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
#  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
#  LIBRARY OR THE USE OR OTHER DEALINGS IN THE LIBRARY.
#

version=

if [ "$1" ]; then
	version=$1
elif head=$(git rev-parse --short --verify HEAD 2>/dev/null); then

	# If available, use the git commit revision for the package version.

	months="Jan:01 Feb:02 Mar:03 Apr:04 May:05 Jun:06 Jul:07 Aug:08 \
		Sep:09 Oct:10 Nov:11 Dec:12"

	# Add a date prefix for easy reading.

	date=$(git log --pretty=format:"%cD" -1 HEAD)

	# date='Fri, 2 Aug 2007 19:36:06 -0700'

	date=${date##*, }
	date=${date% [0-9][0-9]:*}
	day=${date%* [A-Z][a-z][a-z] *}
	year=${date##* [A-Z][a-z][a-z] 20}
	month=${date##${day} }
	month=${month%% 20${year}}
	month=${months##*${month}:}
	month=${month%% *}
	[ ! ${day#[0-9][0-9]} ] || day="0$day"

	version=$(printf '%s.%s.%s-%s%s' ${year} ${month} ${day} g ${head})

	# Add a '-dirty' postfix for uncommitted changes.

	if git diff-index HEAD | read dummy; then
		version=`printf '%s%s' ${version} -dirty`
	fi
else
	# Default to date and time.

	version="dev-$(date +%y.%m.%d-%H.%M.%S)"
fi

set -x

sed -e s,@version@,${version},g configure.ac.in > configure.ac
sed -e s,@version@,${version},g mars.spec.in > mars.spec

ln -sf scripts/acinclude.m4 .

aclocal
automake --foreign --add-missing --copy
autoconf

pushd base > /dev/null && ./bootstrap ${version} && popd > /dev/null
pushd task > /dev/null && ./bootstrap ${version} && popd > /dev/null
