3d3f225a04d4f04f70e2f3cebc39e3c38c415c4a
[pspp] / make-binary.as
1 # -* autoconf -*-
2
3 BP_INIT([dist-pspp.log])
4
5 BP_SET_VAR([COMMIT], [@PSPP_COMMIT@])
6 BP_SET_VAR([GNULIB_COMMIT], [@GNULIB_COMMIT@])
7 BP_SET_VAR([BRANCH], [@BRANCH@])
8
9 ABBREV_COMMIT=`expr "$COMMIT" : '\(......\)'`
10 BP_SET_VAR([ABBREV_COMMIT])
11
12 BP_START_STEP([Extracting Git sources])
13 tar xzf pspp-$COMMIT.tar.gz
14
15 BP_START_STEP([Extract repository version number])
16 (cd pspp-$COMMIT && autoconf -t AC_INIT) > tmp$$
17 IFS=: read FILE LINE macro PACKAGE REPO_VERSION BUG_REPORT TARNAME URL < tmp$$
18 BP_SET_VAR([REPO_VERSION])
19
20 BP_START_STEP([Checking Automake mode])
21 if grep gnits pspp-$COMMIT/Makefile.am >/dev/null 2>&1; then
22   AM_MODE=gnits
23 else
24   AM_MODE=gnu
25 fi
26 BP_SET_VAR([AM_MODE])
27
28 BP_START_STEP([Generate build version number])
29 case $AM_MODE-$REPO_VERSION in # (
30   gnits-*-*) 
31     # We want to append -g012345, but we're in Gnits mode and the
32     # version number already has a hyphen, so we have to omit the
33     # second hyphen.
34     VERSION="$REPO_VERSIONg$ABBREV_COMMIT"
35     ;; # (
36   *)
37     VERSION="$REPO_VERSION-g$ABBREV_COMMIT"
38     ;;
39 esac
40 BP_SET_VAR([VERSION])
41
42 BP_START_STEP([Update version number in configure.ac])
43 echo "AC_INIT([[$PACKAGE], [$VERSION], [$BUG_REPORT], [$TARNAME], [$URL]])" > tmp$$
44 sed -n "${LINE}r tmp$$
45 $LINE!p" < pspp-$COMMIT/$FILE > pspp-$COMMIT/$FILE.new
46 mv pspp-$COMMIT/$FILE.new pspp-$COMMIT/$FILE
47
48 BP_START_STEP([Updating NEWS])
49 {
50   sed -n '/^Changes/q;p' pspp-$COMMIT/NEWS
51 cat <<_BP_EOF
52 Changes from $REPO_VERSION to $VERSION:
53
54  * Built from PSPP commit $COMMIT
55    in branch $BRANCH on host `hostname`.
56
57  * Built from Gnulib commit $GNULIB_COMMIT.
58
59 _BP_EOF
60   sed -n '/^Changes/,$p' pspp-$COMMIT/NEWS
61 } > NEWS.new
62 mv NEWS.new pspp-$COMMIT/NEWS
63
64 BP_START_STEP([Extract Gnulib source])
65 BP_RUN([tar xzf gnulib-$GNULIB_COMMIT.tar.gz >&AS_MESSAGE_LOG_FD 2>&1])
66
67 BP_START_STEP([Bootstrap (make -f Smake)])
68 BP_RUN([(cd pspp-$COMMIT && make -f Smake GNULIB=../gnulib-$GNULIB_COMMIT) >&AS_MESSAGE_LOG_FD 2>&1])
69
70 BP_START_STEP([Configure])
71 AS_MKDIR_P([pspp-$COMMIT/_build])
72 BP_RUN([(cd pspp-$COMMIT/_build && ../configure @CONFIGUREFLAGS@) >&AS_MESSAGE_LOG_FD 2>&1])
73
74 BP_START_STEP([Make source tarball])
75 BP_RUN([(cd pspp-$COMMIT/_build && make dist) >&AS_MESSAGE_LOG_FD 2>&1])
76 BP_MOVE_OUTPUT([source distribution], [pspp-$COMMIT/_build/pspp-$VERSION.tar.gz])
77
78 potfile=pspp-$COMMIT/_build/po/pspp.pot
79 if test ! -e $potfile; then
80   potfile=pspp-$COMMIT/po/pspp.pot
81 fi
82 BP_COPY_OUTPUT([translation templates], [$potfile])
83
84 BP_START_STEP([Build user manual])
85 BP_RUN([(cd pspp-$COMMIT && cp _build/doc/*.texi doc/) >&AS_MESSAGE_LOG_FD 2>&1])
86 BP_RUN([(cd pspp-$COMMIT && GENDOCS_TEMPLATE_DIR=.. ../gendocs.sh -s doc/pspp.texinfo -o results/user-manual --email bug-gnu-pspp@gnu.org pspp "GNU PSPP User Manual") >&AS_MESSAGE_LOG_FD 2>&1])
87 BP_OUTPUT([User Manual], [user-manual])
88
89 BP_START_STEP([Build developers guide])
90 BP_RUN([(cd pspp-$COMMIT && GENDOCS_TEMPLATE_DIR=.. ../gendocs.sh -s doc/pspp-dev.texinfo -o results/dev-guide --email bug-gnu-pspp@gnu.org pspp-dev "GNU PSPP Developers Guide") >&AS_MESSAGE_LOG_FD 2>&1])
91 BP_OUTPUT([Developers Guide], [dev-guide])
92
93 BP_FINISH