summaryrefslogtreecommitdiffstats
path: root/sys/conf/newvers.sh
diff options
context:
space:
mode:
authorrpaulo <rpaulo@FreeBSD.org>2012-09-16 06:01:34 +0000
committerrpaulo <rpaulo@FreeBSD.org>2012-09-16 06:01:34 +0000
commitf520f7cfa483ad039c7e2554cc5266fed7170e60 (patch)
tree47e9ee6442455dcf39fb1f160947a9d1093453e9 /sys/conf/newvers.sh
parent1448db2a5a61b404d25cc4be17137d9fb28e20ea (diff)
downloadFreeBSD-src-f520f7cfa483ad039c7e2554cc5266fed7170e60.zip
FreeBSD-src-f520f7cfa483ad039c7e2554cc5266fed7170e60.tar.gz
Add Perforce support.
Diffstat (limited to 'sys/conf/newvers.sh')
-rw-r--r--sys/conf/newvers.sh27
1 files changed, 23 insertions, 4 deletions
diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh
index cd523ca..5a4f13e 100644
--- a/sys/conf/newvers.sh
+++ b/sys/conf/newvers.sh
@@ -88,9 +88,11 @@ v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date`
i=`${MAKE:-make} -V KERN_IDENT`
for dir in /bin /usr/bin /usr/local/bin; do
- if [ -x "${dir}/svnversion" ] ; then
+ if [ -x "${dir}/svnversion" ] && [ -z ${svnversion} ] ; then
svnversion=${dir}/svnversion
- break
+ fi
+ if [ -x "${dir}/p4" ] && [ -z ${p4_cmd} ] ; then
+ p4_cmd=${dir}/p4
fi
done
if [ -d "${SYSDIR}/../.git" ] ; then
@@ -132,10 +134,27 @@ if [ -n "$git_cmd" ] ; then
fi
fi
+if [ -n "$p4_cmd" ] ; then
+ p4version=`cd ${SYSDIR} && $p4_cmd changes -m1 "./...#have" 2>&1 | \
+ awk '{ print $2 }'`
+ case "$p4version" in
+ [0-9]*)
+ p4version=" ${p4version}"
+ p4opened=`$p4_cmd opened 2>&1`
+ case "$p4opened" in
+ File*) ;;
+ *) p4version="${p4version}+pending" ;;
+ esac
+ ;;
+ *) unset p4version ;;
+ esac
+fi
+
+
cat << EOF > vers.c
$COPYRIGHT
-#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}: ${t}"
-#define VERSTR "${VERSION} #${v}${svn}${git}: ${t}\\n ${u}@${h}:${d}\\n"
+#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}${p4version}: ${t}"
+#define VERSTR "${VERSION} #${v}${svn}${git}${p4version}: ${t}\\n ${u}@${h}:${d}\\n"
#define RELSTR "${RELEASE}"
char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR;
OpenPOWER on IntegriCloud