start working on HTML results
[pspp] / make-bin-dist.as
1 # -* autoconf -*-
2
3 BP_INIT
4
5 usage=["\
6 Usage: $0 [OPTION]... PSPP_DIST.TAR.GZ BINID
7 where PSPP_DIST.TAR.GZ is a PSPP tarball prepared by \"make dist\"
8   and BINID briefly identifies the target, e.g. \"debian-squeeze-i386\".
9
10 Options:
11   -h, --help                Print this usage message and exit
12   -f, --force               Delete existing directory instead of aborting
13
14 Report bugs to <bug-gnu-pspp@gnu.org>.
15 GNU PSPP: <http://www.gnu.org/software/pspp/>.
16 General help using GNU software: <http://www.gnu.org/gethelp/>."]
17
18 version=["\
19 make-binary (@PACKAGE_NAME@) @VERSION@
20 Copyright (C) 2010 Free Software Foundation, Inc.
21 License GPLv3+/Autoconf: GNU GPL version 3 or later
22 <http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
23 This is free software: you are free to change and redistribute it.
24 There is NO WARRANTY, to the extent permitted by law.
25
26 Written by Ben Pfaff."]
27
28 help="\
29 Try \`$as_me --help' for more information."
30
31 exit_missing_arg='
32   m4_bpatsubst([AS_ERROR([option `$[1]' requires an argument$as_nl$help])],
33     ['], ['\\''])'
34 # restore font-lock: '
35
36 # Variables.
37 overwrite=false
38
39 # Parse command line.
40 while test $# -gt 0 ; do
41   option=[`expr "x$1" : 'x\(--[^=]*\)' \| \
42                "x$1" : 'x\(-.\)'`]
43   optarg=[`expr "x$1" : 'x--[^=]*=\(.*\)' \| \
44                "x$1" : 'x-.\(.*\)'`]
45   case $1 in
46     --version | -V )
47        echo "$version" ; exit ;;
48     --help | -h )
49        AS_ECHO(["$usage"]); exit ;;
50
51     --force | -f )
52        overwrite=true ;;
53
54     -- )     # Stop option processing
55        shift; break ;;
56     - ) # Use stdin as input.
57        break ;;
58     -* )
59        exec >&2
60        AS_ERROR([invalid option `$[1]'$as_nl$help]) ;; #`
61     * )
62        break ;;
63   esac
64 done
65
66 # Find the input file.
67 case $# in
68   2)
69     tarball=$1
70     BINID=$2
71     ;;
72   *) exec >&2
73      AS_ERROR([invalid number of arguments$as_nl$help]) ;;
74 esac
75
76 if test ! -e "$tarball"; then
77    exec >&2
78    AS_ERROR([$tarball does not exist])
79 fi
80
81 if test -e "$BINID"; then
82   if test $overwrite = true; then
83     chmod -R u+w "$BINID"
84     rm -rf "$BINID"
85   else
86     exec >&2
87     AS_ERROR([$BINID exists and --force not specified])
88   fi
89 fi
90
91 BP_INIT_RESULTS([$BINID])
92 BP_INIT_LOG([$BINID/LOG])
93
94 BP_SET_VAR([BUILD_NUMBER], [@BUILD_NUMBER@])
95 BP_SET_VAR([PSPP_COMMIT], [@PSPP_COMMIT@])
96 BP_SET_VAR([PSPP_REPO], [@PSPP_REPO@])
97 BP_SET_VAR([GNULIB_COMMIT], [@GNULIB_COMMIT@])
98 BP_SET_VAR([GNULIB_REPO], [@GNULIB_REPO@])
99 BP_SET_VAR([BRANCH], [@BRANCH@])
100
101 BP_SET_VAR([BINID])
102
103 BP_START_STEP([Determining $tarball target directory])
104 DIST_DIR=`zcat $tarball | tar tf - 2>/dev/null | sed 1q | sed s,/.*,,`
105 BP_SET_VAR([DIST_DIR])
106 if test X$DIST_DIR = X; then
107   BP_ERROR([failed to determine $tarball target directory])
108 fi
109
110 BP_START_STEP([Extracting source tarball])
111 BP_RUN([zcat $tarball | tar xkf - >&AS_MESSAGE_LOG_FD 2>&1])
112
113 BP_START_STEP([Extracting tar version])
114 DIST_VERSION=`$DIST_DIR/configure --version 2>/dev/null | sed 1q | sed 's/.* //'`
115 BP_SET_VAR([DIST_VERSION])
116
117 BP_START_STEP([Configuring])
118 BP_RUN([mkdir $DIST_DIR/_$BINID >&AS_MESSAGE_LOG_FD 2>&1])
119 BP_RUN([chmod -R a-w $DIST_DIR >&AS_MESSAGE_LOG_FD 2>&1])
120 BP_RUN([chmod u+w $DIST_DIR/_$BINID >&AS_MESSAGE_LOG_FD 2>&1])
121 BP_TRY_RUN([(cd $DIST_DIR/_$BINID && ../configure --enable-relocatable --prefix='') >&AS_MESSAGE_LOG_FD 2>&1])
122 _bp_status=$?
123 for base in config.h config.log; do
124   fn=$DIST_DIR/_$BINID/$base
125   if test -e "$fn"; then
126     BP_COPY_OUTPUT([build configuration], [$fn])
127   fi
128 done
129 if test $_bp_status != 0; then
130   AS_ECHO(["$as_me:$LINENO: command exited with status $_bp_status"]) >&AS_MESSAGE_LOG_FD
131 fi
132
133 BP_START_STEP([Build])
134 BP_RUN([(cd $DIST_DIR/_$BINID && make) >&AS_MESSAGE_LOG_FD 2>&1])
135
136 BP_START_STEP([Install])
137 BP_RUN([(cd $DIST_DIR/_$BINID && make install DESTDIR=$PWD/pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1])
138
139 BP_START_STEP([Make binary distribution])
140 BP_RUN([(cd $DIST_DIR/_$BINID && tar cfz pspp-$DIST_VERSION-$BINID.tar.gz pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1])
141 BP_MOVE_OUTPUT([binary distribution], [$DIST_DIR/_$BINID/pspp-$DIST_VERSION-$BINID.tar.gz])
142
143 BP_START_STEP([Check])
144 BP_TRY_RUN([(cd $DIST_DIR/_$BINID && make check) >&AS_MESSAGE_LOG_FD 2>&1])
145 _bp_status=$?
146 for base in tests/testsuite.log tests/testsuite.dir; do
147   fn=$DIST_DIR/_$BINID/$base
148   if test -e "$fn"; then
149     BP_MOVE_OUTPUT([test logs], [$fn])
150   fi
151 done
152 if test $_bp_status != 0; then
153   AS_ECHO(["$as_me:$LINENO: command exited with status $_bp_status"]) >&AS_MESSAGE_LOG_FD
154 fi
155
156 BP_START_STEP([Uninstall])
157 BP_RUN([(cd $DIST_DIR/_$BINID && make uninstall DESTDIR=$PWD/pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1])
158
159 BP_START_STEP([Check uninstall])
160 BP_RUN([(cd $DIST_DIR/_$BINID && make distuninstallcheck distuninstallcheck_dir=$PWD/pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1])
161
162 # distcleancheck
163
164 BP_FINISH