xref: /netbsd-src/external/bsd/ntp/dist/scripts/build/genver (revision 8585484ef87f5a04d32332313cdb799625f4faf8)
1*8585484eSchristos#! /bin/sh
2*8585484eSchristos
3*8585484eSchristos# possible usage: $0 [-f] [version.m4] [version.def]
4*8585484eSchristos#
5*8585484eSchristos# -f would be 'force the update'
6*8585484eSchristos
7*8585484eSchristosforce=0
8*8585484eSchristosoutputs=
9*8585484eSchristosfor i in $*
10*8585484eSchristosdo
11*8585484eSchristos    case "$i" in
12*8585484eSchristos     -f)
13*8585484eSchristos	force=1
14*8585484eSchristos	;;
15*8585484eSchristos     *version.m4)
16*8585484eSchristos	outputs="m4/version.m4 $outputs"
17*8585484eSchristos	;;
18*8585484eSchristos     *version.def)
19*8585484eSchristos	outputs="include/version.def $outputs"
20*8585484eSchristos	;;
21*8585484eSchristos     *version.texi)
22*8585484eSchristos	outputs="include/version.texi $outputs"
23*8585484eSchristos	;;
24*8585484eSchristos     *) echo "Unrecognized option: $i"
25*8585484eSchristos	exit 1
26*8585484eSchristos	;;
27*8585484eSchristos    esac
28*8585484eSchristosdone
29*8585484eSchristos
30*8585484eSchristoscase "$outputs" in
31*8585484eSchristos '') outputs="m4/version.m4 include/version.def include/version.texi" ;;
32*8585484eSchristosesac
33*8585484eSchristos
34*8585484eSchristosset -e
35*8585484eSchristos
36*8585484eSchristos. ../packageinfo.sh
37*8585484eSchristos
38*8585484eSchristosdversion=`../scripts/build/VersionName -p ../packageinfo.sh`
39*8585484eSchristos
40*8585484eSchristosset +e
41*8585484eSchristos
42*8585484eSchristos# Create intermediate files in $TEMPDIR defaulting it to /tmp
43*8585484eSchristos# if not set.  This avoids races when multiple builds run in
44*8585484eSchristos# parallel on shared source.
45*8585484eSchristos
46*8585484eSchristosTEMPDIR=${TEMPDIR=/tmp}
47*8585484eSchristos
48*8585484eSchristoscase "$outputs" in
49*8585484eSchristos *version.m4*)
50*8585484eSchristos    echo "m4_define([VERSION_NUMBER],[${dversion}])" > "${TEMPDIR}/version.m4+"
51*8585484eSchristos    cmp -s "${TEMPDIR}/version.m4+" m4/version.m4
52*8585484eSchristos    rc=$?
53*8585484eSchristos    case "$force$rc" in
54*8585484eSchristos     00)
55*8585484eSchristos	rm -f "${TEMPDIR}/version.m4+"
56*8585484eSchristos	;;
57*8585484eSchristos     *)
58*8585484eSchristos	mv "${TEMPDIR}/version.m4+" m4/version.m4
59*8585484eSchristos	;;
60*8585484eSchristos    esac
61*8585484eSchristos    ;;
62*8585484eSchristosesac
63*8585484eSchristos
64*8585484eSchristoscase "$outputs" in
65*8585484eSchristos *version.def*)
66*8585484eSchristos    echo "version = '${dversion}';" > "${TEMPDIR}/version.def+"
67*8585484eSchristos    cmp -s "${TEMPDIR}/version.def+" include/version.def
68*8585484eSchristos    rc=$?
69*8585484eSchristos    case "$force$rc" in
70*8585484eSchristos     00)
71*8585484eSchristos	rm -f "${TEMPDIR}/version.def+"
72*8585484eSchristos	;;
73*8585484eSchristos     *)
74*8585484eSchristos	mv "${TEMPDIR}/version.def+" include/version.def
75*8585484eSchristos	;;
76*8585484eSchristos    esac
77*8585484eSchristos    ;;
78*8585484eSchristosesac
79*8585484eSchristos
80*8585484eSchristoscase "$outputs" in
81*8585484eSchristos *version.texi*)
82*8585484eSchristos    echo "@set UPDATED `date +'%d %B %Y'`"	>  "${TEMPDIR}/version.texi+"
83*8585484eSchristos    echo "@set EDITION $dversion"		>> "${TEMPDIR}/version.texi+"
84*8585484eSchristos    echo "@set VERSION $dversion"		>> "${TEMPDIR}/version.texi+"
85*8585484eSchristos    cmp -s "${TEMPDIR}/version.texi+" include/version.texi
86*8585484eSchristos    rc=$?
87*8585484eSchristos    case "$force$rc" in
88*8585484eSchristos     00)
89*8585484eSchristos	rm -f "${TEMPDIR}/version.texi+"
90*8585484eSchristos	;;
91*8585484eSchristos     *)
92*8585484eSchristos	mv "${TEMPDIR}/version.texi+" include/version.texi
93*8585484eSchristos	;;
94*8585484eSchristos    esac
95*8585484eSchristos    ;;
96*8585484eSchristosesac
97