2068f7a172c13c96e17e416ca1163d4e2ec3805e
[pspp] / build-pspp.m4
1 # -*- autoconf -*-
2
3 m4_define([_m4_divert(INIT_PREPARE)],   300)
4
5 m4_pattern_forbid([^_?BP_])
6 m4_pattern_allow([_BP_EOF])
7
8 # BP_INIT([LOGFILE])
9 # ------------------
10 # Initializes and starts logging to LOGFILE.
11 m4_define([BP_INIT],
12 [AS_INIT
13 _BP_INIT_LOG([$1])
14 _BP_INIT_RESULTS
15 AS_PREPARE
16 ])
17
18 # _BP_INIT_LOG([LOGFILE])
19 # -----------------------
20 # Initialize the log file descriptor and write header to it.
21 m4_define([_BP_INIT_LOG],
22 [m4_divert_text([INIT_PREPARE],
23 [m4_define([BP_LOG_FILE], [$1])
24 m4_define([AS_MESSAGE_LOG_FD], 5)dnl
25 cat >$1 <<_BPEOF
26 This file is a build log.
27
28 Invocation command line was
29
30   $ $[0] $[@]
31
32 _BPEOF
33 exec AS_MESSAGE_LOG_FD>>$1
34 AS_UNAME >&AS_MESSAGE_LOG_FD
35
36 cat >&AS_MESSAGE_LOG_FD <<_BPEOF
37
38 _BPEOF
39 ])])# _BP_INIT_LOG
40
41 # _BP_INIT_RESULTS
42 m4_define([_BP_INIT_RESULTS],
43 [AS_MKDIR_P([results])
44 m4_define([BP_VARS_FD], 6)dnl
45 exec BP_VARS_FD>results/VARS
46 ])
47
48 # _BP_INIT_DEFAULTS
49 # -----------------
50 m4_define([_BP_INIT_DEFAULTS],
51 [m4_divert_push([DEFAULTS])dnl
52
53 test -n "$DJDIR" || exec AS_ORIGINAL_STDIN_FD<&0 </dev/null
54 exec AS_MESSAGE_FD>&1
55 ])
56
57 # BP_START_STEP([MESSAGE])
58 m4_define([BP_START_STEP],
59   [AS_ECHO(["$1"])
60 {
61   _bp_line=`AS_ECHO("$1") | sed 's/./-/g'`
62   echo
63   AS_ECHO("@%:@@%:@ $_bp_line @%:@@%:@")
64   AS_ECHO("@%:@@%:@ $1 @%:@@%:@")
65   AS_ECHO("@%:@@%:@ $_bp_line @%:@@%:@")
66   echo
67 } >&AS_MESSAGE_LOG_FD])
68
69 # BP_SET_VAR(VARIABLE, [VALUE])
70 m4_define([BP_SET_VAR],
71   [m4_if([$2], [], [], [$1='$2'
72 ])dnl
73 AS_ECHO(["$1=$[$1]"]) >&BP_VARS_FD
74 AS_ECHO(["$as_me:$LINENO: $1=$[$1]"]) >&AS_MESSAGE_LOG_FD
75 AS_ECHO(["      $1=$[$1]"])])
76
77 # BP_OUTPUT(DESCRIPTION, FILE)
78 m4_define([BP_OUTPUT],
79 [_bp_basename=`AS_BASENAME([$2])`
80 BP_START_STEP([Saving $_bp_basename: $1])])
81
82 # BP_MOVE_OUTPUT(DESCRIPTION, FILE)
83 m4_define([BP_MOVE_OUTPUT],
84 [BP_OUTPUT([$1], [$2])
85 BP_RUN([mv $2 results/ >&AS_MESSAGE_LOG_FD 2>&1])])
86
87 # BP_COPY_OUTPUT(DESCRIPTION, FILE)
88 m4_define([BP_COPY_OUTPUT],
89 [BP_OUTPUT([$1], [$2])
90 BP_RUN([cp -R $2 results/ >&AS_MESSAGE_LOG_FD 2>&1])])
91
92 # BP_TRY_RUN(COMMAND)
93 m4_define([BP_TRY_RUN],
94 [cat <<_BP_EOF >&AS_MESSAGE_LOG_FD
95 $as_me:$LINENO: $1
96 _BP_EOF
97 $1 
98 ])
99
100 # BP_RUN(COMMAND)
101 m4_define([BP_RUN],
102 [BP_TRY_RUN([$1])
103 _bp_status=$?
104 if test $_bp_status != 0; then
105   AS_ECHO(["$as_me:$LINENO: command exited with status $_bp_status"]) >&AS_MESSAGE_LOG_FD
106   BP_FAIL
107 fi])
108
109 # BP_FAIL
110 m4_define([BP_FAIL],
111 [BP_ERROR(["Build failed, refer to BP_LOG_FILE for details"])])
112
113 # BP_FINISH
114 m4_define([BP_FINISH],
115 [BP_START_STEP([success])])
116
117 # BP_ERROR(MESSAGE)
118 m4_define([BP_ERROR], 
119   [{
120      exec >&2
121      AS_ERROR([$1])
122    }])