start rewrite
[pspp] / dist-pspp.as
diff --git a/dist-pspp.as b/dist-pspp.as
new file mode 100644 (file)
index 0000000..3d3f225
--- /dev/null
@@ -0,0 +1,93 @@
+# -* autoconf -*-
+
+BP_INIT([dist-pspp.log])
+
+BP_SET_VAR([COMMIT], [@PSPP_COMMIT@])
+BP_SET_VAR([GNULIB_COMMIT], [@GNULIB_COMMIT@])
+BP_SET_VAR([BRANCH], [@BRANCH@])
+
+ABBREV_COMMIT=`expr "$COMMIT" : '\(......\)'`
+BP_SET_VAR([ABBREV_COMMIT])
+
+BP_START_STEP([Extracting Git sources])
+tar xzf pspp-$COMMIT.tar.gz
+
+BP_START_STEP([Extract repository version number])
+(cd pspp-$COMMIT && autoconf -t AC_INIT) > tmp$$
+IFS=: read FILE LINE macro PACKAGE REPO_VERSION BUG_REPORT TARNAME URL < tmp$$
+BP_SET_VAR([REPO_VERSION])
+
+BP_START_STEP([Checking Automake mode])
+if grep gnits pspp-$COMMIT/Makefile.am >/dev/null 2>&1; then
+  AM_MODE=gnits
+else
+  AM_MODE=gnu
+fi
+BP_SET_VAR([AM_MODE])
+
+BP_START_STEP([Generate build version number])
+case $AM_MODE-$REPO_VERSION in # (
+  gnits-*-*) 
+    # We want to append -g012345, but we're in Gnits mode and the
+    # version number already has a hyphen, so we have to omit the
+    # second hyphen.
+    VERSION="$REPO_VERSIONg$ABBREV_COMMIT"
+    ;; # (
+  *)
+    VERSION="$REPO_VERSION-g$ABBREV_COMMIT"
+    ;;
+esac
+BP_SET_VAR([VERSION])
+
+BP_START_STEP([Update version number in configure.ac])
+echo "AC_INIT([[$PACKAGE], [$VERSION], [$BUG_REPORT], [$TARNAME], [$URL]])" > tmp$$
+sed -n "${LINE}r tmp$$
+$LINE!p" < pspp-$COMMIT/$FILE > pspp-$COMMIT/$FILE.new
+mv pspp-$COMMIT/$FILE.new pspp-$COMMIT/$FILE
+
+BP_START_STEP([Updating NEWS])
+{
+  sed -n '/^Changes/q;p' pspp-$COMMIT/NEWS
+cat <<_BP_EOF
+Changes from $REPO_VERSION to $VERSION:
+
+ * Built from PSPP commit $COMMIT
+   in branch $BRANCH on host `hostname`.
+
+ * Built from Gnulib commit $GNULIB_COMMIT.
+
+_BP_EOF
+  sed -n '/^Changes/,$p' pspp-$COMMIT/NEWS
+} > NEWS.new
+mv NEWS.new pspp-$COMMIT/NEWS
+
+BP_START_STEP([Extract Gnulib source])
+BP_RUN([tar xzf gnulib-$GNULIB_COMMIT.tar.gz >&AS_MESSAGE_LOG_FD 2>&1])
+
+BP_START_STEP([Bootstrap (make -f Smake)])
+BP_RUN([(cd pspp-$COMMIT && make -f Smake GNULIB=../gnulib-$GNULIB_COMMIT) >&AS_MESSAGE_LOG_FD 2>&1])
+
+BP_START_STEP([Configure])
+AS_MKDIR_P([pspp-$COMMIT/_build])
+BP_RUN([(cd pspp-$COMMIT/_build && ../configure @CONFIGUREFLAGS@) >&AS_MESSAGE_LOG_FD 2>&1])
+
+BP_START_STEP([Make source tarball])
+BP_RUN([(cd pspp-$COMMIT/_build && make dist) >&AS_MESSAGE_LOG_FD 2>&1])
+BP_MOVE_OUTPUT([source distribution], [pspp-$COMMIT/_build/pspp-$VERSION.tar.gz])
+
+potfile=pspp-$COMMIT/_build/po/pspp.pot
+if test ! -e $potfile; then
+  potfile=pspp-$COMMIT/po/pspp.pot
+fi
+BP_COPY_OUTPUT([translation templates], [$potfile])
+
+BP_START_STEP([Build user manual])
+BP_RUN([(cd pspp-$COMMIT && cp _build/doc/*.texi doc/) >&AS_MESSAGE_LOG_FD 2>&1])
+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])
+BP_OUTPUT([User Manual], [user-manual])
+
+BP_START_STEP([Build developers guide])
+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])
+BP_OUTPUT([Developers Guide], [dev-guide])
+
+BP_FINISH