#!/bin/sh
#
# This file is part of the Yices SMT Solver.
# Copyright (C) 2017 SRI International.
#
# Yices is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Yices is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Yices. If not, see .
#
#
# Script to build yices_version.c from yices_version_template.txt
#
# Usage:
# ./make_source_version
# where
# = source template (normally src/api/yices_version_termplate.txt)
# = version file (normally src/api/yices_version.c)
# = version number (e.g., 2.2.2)
# = compilation mode (release or debug)
# = build architecture (e.g., x86_64-unknown-linux-gnu)
#
#
usage="Usage: $0 "
if test $# -ne 5 ; then
echo "$usage"
exit 2
fi
template=$1
result=$2
version=$3
mode=$4
arch=$5
#
# Check that template is readable
#
test -f $template || { echo "Can't open $template" ; exit 1 ; }
#
# Temporary file
#
os_name=`uname 2>/dev/null` || os_name=unknown
case "$os_name" in
*Darwin* )
mktemp_cmd="/usr/bin/mktemp -t out"
;;
* )
mktemp_cmd=mktemp
;;
esac
tempfile=`$mktemp_cmd` || { echo "Can't create temporary file" ; exit 1 ; }
#
# Date and git commit
#
now=`date +"%Y-%m-%d"`
rev=`git rev-parse HEAD 2>/dev/null || echo "unknown"`
#
# Create the revision-file in temp
#
sed -e "s/YICES_VERSION/$version/g" -e "s/YICES_COMPILATION_DATE/$now/g" \
-e "s/REVISION/$rev/g" -e "s/YICES_ARCH/$arch/g" -e "s/YICES_BUILD_MODE/$mode/g" \
$template > $tempfile
#
# Copy tempfile as result if they differ
#
diff -q -N $tempfile $result > /dev/null || cp $tempfile $result
rm -f $tempfile