1*fb1b10abSAndroid Build Coastguard Worker#!/bin/sh 2*fb1b10abSAndroid Build Coastguard Worker## 3*fb1b10abSAndroid Build Coastguard Worker## Copyright (c) 2010 The WebM project authors. All Rights Reserved. 4*fb1b10abSAndroid Build Coastguard Worker## 5*fb1b10abSAndroid Build Coastguard Worker## Use of this source code is governed by a BSD-style license 6*fb1b10abSAndroid Build Coastguard Worker## that can be found in the LICENSE file in the root of the source 7*fb1b10abSAndroid Build Coastguard Worker## tree. An additional intellectual property rights grant can be found 8*fb1b10abSAndroid Build Coastguard Worker## in the file PATENTS. All contributing project authors may 9*fb1b10abSAndroid Build Coastguard Worker## be found in the AUTHORS file in the root of the source tree. 10*fb1b10abSAndroid Build Coastguard Worker## 11*fb1b10abSAndroid Build Coastguard Worker 12*fb1b10abSAndroid Build Coastguard Worker 13*fb1b10abSAndroid Build Coastguard Worker 14*fb1b10abSAndroid Build Coastguard Workerfor opt in "$@"; do 15*fb1b10abSAndroid Build Coastguard Worker optval="${opt#*=}" 16*fb1b10abSAndroid Build Coastguard Worker case "$opt" in 17*fb1b10abSAndroid Build Coastguard Worker --bare) bare=true ;; 18*fb1b10abSAndroid Build Coastguard Worker *) break ;; 19*fb1b10abSAndroid Build Coastguard Worker esac 20*fb1b10abSAndroid Build Coastguard Worker shift 21*fb1b10abSAndroid Build Coastguard Workerdone 22*fb1b10abSAndroid Build Coastguard Workersource_path=${1:-.} 23*fb1b10abSAndroid Build Coastguard Workerout_file=${2} 24*fb1b10abSAndroid Build Coastguard Workerid=${3:-VERSION_STRING} 25*fb1b10abSAndroid Build Coastguard Worker 26*fb1b10abSAndroid Build Coastguard Workergit_version_id="" 27*fb1b10abSAndroid Build Coastguard Workerif [ -e "${source_path}/.git" ]; then 28*fb1b10abSAndroid Build Coastguard Worker # Source Path is a git working copy. Check for local modifications. 29*fb1b10abSAndroid Build Coastguard Worker # Note that git submodules may have a file as .git, not a directory. 30*fb1b10abSAndroid Build Coastguard Worker export GIT_DIR="${source_path}/.git" 31*fb1b10abSAndroid Build Coastguard Worker git_version_id=`git describe --match=v[0-9]* 2>/dev/null` 32*fb1b10abSAndroid Build Coastguard Workerfi 33*fb1b10abSAndroid Build Coastguard Worker 34*fb1b10abSAndroid Build Coastguard Workerchangelog_version="" 35*fb1b10abSAndroid Build Coastguard Workerfor p in "${source_path}" "${source_path}/.."; do 36*fb1b10abSAndroid Build Coastguard Worker if [ -z "$git_version_id" -a -f "${p}/CHANGELOG" ]; then 37*fb1b10abSAndroid Build Coastguard Worker changelog_version=`head -n1 "${p}/CHANGELOG" | awk '{print $2}'` 38*fb1b10abSAndroid Build Coastguard Worker changelog_version="${changelog_version}" 39*fb1b10abSAndroid Build Coastguard Worker break 40*fb1b10abSAndroid Build Coastguard Worker fi 41*fb1b10abSAndroid Build Coastguard Workerdone 42*fb1b10abSAndroid Build Coastguard Workerversion_str="${changelog_version}${git_version_id}" 43*fb1b10abSAndroid Build Coastguard Workerbare_version=${version_str#v} 44*fb1b10abSAndroid Build Coastguard Workermajor_version=${bare_version%%.*} 45*fb1b10abSAndroid Build Coastguard Workerbare_version=${bare_version#*.} 46*fb1b10abSAndroid Build Coastguard Workerminor_version=${bare_version%%.*} 47*fb1b10abSAndroid Build Coastguard Workerbare_version=${bare_version#*.} 48*fb1b10abSAndroid Build Coastguard Workerpatch_version=${bare_version%%-*} 49*fb1b10abSAndroid Build Coastguard Workerbare_version=${bare_version#${patch_version}} 50*fb1b10abSAndroid Build Coastguard Workerextra_version=${bare_version##-} 51*fb1b10abSAndroid Build Coastguard Worker 52*fb1b10abSAndroid Build Coastguard Worker#since they'll be used as integers below make sure they are or force to 0 53*fb1b10abSAndroid Build Coastguard Workerfor v in major_version minor_version patch_version; do 54*fb1b10abSAndroid Build Coastguard Worker if eval echo \$$v |grep -E -q '[^[:digit:]]'; then 55*fb1b10abSAndroid Build Coastguard Worker eval $v=0 56*fb1b10abSAndroid Build Coastguard Worker fi 57*fb1b10abSAndroid Build Coastguard Workerdone 58*fb1b10abSAndroid Build Coastguard Worker 59*fb1b10abSAndroid Build Coastguard Workerif [ ${bare} ]; then 60*fb1b10abSAndroid Build Coastguard Worker echo "${changelog_version}${git_version_id}" > $$.tmp 61*fb1b10abSAndroid Build Coastguard Workerelse 62*fb1b10abSAndroid Build Coastguard Worker cat<<EOF>$$.tmp 63*fb1b10abSAndroid Build Coastguard Worker// This file is generated. Do not edit. 64*fb1b10abSAndroid Build Coastguard Worker#ifndef VPX_VERSION_H_ 65*fb1b10abSAndroid Build Coastguard Worker#define VPX_VERSION_H_ 66*fb1b10abSAndroid Build Coastguard Worker#define VERSION_MAJOR $major_version 67*fb1b10abSAndroid Build Coastguard Worker#define VERSION_MINOR $minor_version 68*fb1b10abSAndroid Build Coastguard Worker#define VERSION_PATCH $patch_version 69*fb1b10abSAndroid Build Coastguard Worker#define VERSION_EXTRA "$extra_version" 70*fb1b10abSAndroid Build Coastguard Worker#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH)) 71*fb1b10abSAndroid Build Coastguard Worker#define ${id}_NOSP "${version_str}" 72*fb1b10abSAndroid Build Coastguard Worker#define ${id} " ${version_str}" 73*fb1b10abSAndroid Build Coastguard Worker#endif // VPX_VERSION_H_ 74*fb1b10abSAndroid Build Coastguard WorkerEOF 75*fb1b10abSAndroid Build Coastguard Workerfi 76*fb1b10abSAndroid Build Coastguard Workerif [ -n "$out_file" ]; then 77*fb1b10abSAndroid Build Coastguard Workerdiff $$.tmp ${out_file} >/dev/null 2>&1 || cat $$.tmp > ${out_file} 78*fb1b10abSAndroid Build Coastguard Workerelse 79*fb1b10abSAndroid Build Coastguard Workercat $$.tmp 80*fb1b10abSAndroid Build Coastguard Workerfi 81*fb1b10abSAndroid Build Coastguard Workerrm $$.tmp 82