1#!/bin/sh - 2# 3# Copyright (c) 1984, 1986, 1990, 1993 4# The Regents of the University of California. All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 1. Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 2. Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# 3. All advertising materials mentioning features or use of this software 15# must display the following acknowledgement: 16# This product includes software developed by the University of 17# California, Berkeley and its contributors. 18# 4. Neither the name of the University nor the names of its contributors 19# may be used to endorse or promote products derived from this software 20# without specific prior written permission. 21# 22# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32# SUCH DAMAGE. 33# 34# @(#)newvers.sh 8.1 (Berkeley) 4/20/94 35# $FreeBSD: src/sys/conf/newvers.sh,v 1.44.2.30 2003/04/04 07:02:46 murray Exp $ 36# $DragonFly: src/sys/conf/newvers.sh,v 1.23 2008/07/14 04:01:44 dillon Exp $ 37 38# The directory where the source resides 39# 40SRCDIR=$1 41if [ "${SRCDIR}" = "" ]; then 42 SRCDIR=$(dirname $0)/../.. 43fi 44 45# Set the branch 46# 47BRANCH="DEVELOPMENT_2_3" 48 49TYPE="DragonFly" 50 51# The SHORTTAG is inclusive of the BLAH_X_Y version (if any) 52# 53if [ -z "${SHORTTAG}" ]; then 54 SHORTTAG=${BRANCH} 55fi 56 57# Figure out the revision and subversion, if any. If the tag is in 58# the form NAME_X_Y the revision is extracted from X and Y and the branch 59# tag is truncated to just NAME. Otherwise we are on the HEAD branch and 60# we are either HEAD or PREVIEW and the programmed revision is used. 61# 62# If we are on a branch-tag we must also figure out the sub-version. The 63# sub-version is extracted from the 'subvers-${SHORTTAG}' file. This file 64# typically only exists within branches. 65# 66REVISION=${BRANCH#*_} 67BRANCH=${BRANCH%%_*} 68 69if [ "${REVISION}" != "${BRANCH}" ]; then 70 REVISION=$(echo $REVISION | sed -e 's/_/./g') 71fi 72 73if [ -f ${SRCDIR}/sys/conf/subvers-${SHORTTAG} ]; then 74 SUBVER=$(tail -1 ${SRCDIR}/sys/conf/subvers-${SHORTTAG} | awk '{ print $1; }') 75 if [ "X${SUBVER}" != "X" ]; then 76 REVISION="${REVISION}.${SUBVER}" 77 break 78 fi 79fi 80 81# obtain git commit name, like "v2.3.2.449.g84e97*" 82GITREV=$(${SRCDIR}/tools/gitrev.sh 2>/dev/null || true) 83 84RELEASE="${REVISION}-${BRANCH}" 85VERSION="${TYPE} ${RELEASE}" 86[ -n "$GITREV" ] && VERSION="${TYPE} ${GITREV}-${BRANCH}" 87 88if [ "X${PARAMFILE}" != "X" ]; then 89 RELDATE=$(awk '/__DragonFly_version.*propagated to newvers/ {print $3}' \ 90 ${PARAMFILE}) 91else 92 RELDATE=$(awk '/__DragonFly_version.*propagated to newvers/ {print $3}' \ 93 ${SRCDIR}/sys/sys/param.h) 94fi 95 96 97year=`date '+%Y'` 98# look for copyright template 99if [ -r ${SRCDIR}/share/examples/etc/bsd-style-copyright ]; then 100 COPYRIGHT=`sed \ 101 -e "s/\[year\]/$year/" \ 102 -e 's/\[your name\]\.*/The DragonFly Project/' \ 103 -e '/\[id for your version control system, if any\]/d' \ 104 ${SRCDIR}/share/examples/etc/bsd-style-copyright` 105fi 106 107# no copyright found, use a dummy 108if [ X"$COPYRIGHT" = X ]; then 109 COPYRIGHT="/* 110 * Copyright (c) $year The DragonFly Project 111 * All rights reserved. 112 * 113 */" 114fi 115 116# add newline 117COPYRIGHT="$COPYRIGHT 118" 119 120LC_ALL=C; export LC_ALL 121if [ ! -r version ] 122then 123 echo 0 > version 124fi 125 126touch version 127v=`cat version` u=${USER-root} d=`pwd` h=`hostname` t=`date` 128if [ "$v" = "" ]; then 129 v=1 130fi 131i=`make -V KERN_IDENT` 132cat << EOF > vers.c 133$COPYRIGHT 134char version[] = "${VERSION} #${v}: ${t}\\n ${u}@${h}:${d}\\n"; 135char ostype[] = "${TYPE}"; 136char osrelease[] = "${RELEASE}"; 137int osreldate = ${RELDATE}; 138char kern_ident[] = "${i}"; 139EOF 140 141echo `expr ${v} + 1` > version 142