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