summaryrefslogtreecommitdiff
path: root/dist/s_all
blob: 33b8f6a76baba004db053ad4c2e85b62e9b6ca19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#! /bin/sh

# Run standard scripts.
t=__wt.$$
t_pfx=__s_all_tmp_
trap 'rm -f $t *.pyc __tmp __wt.* __s_all_tmp*' 0 1 2 3 13 15

# We require python which may not be installed.
type python > /dev/null 2>&1 || {
	echo 's_all: python not found'
	exit 1
}

echo 'dist/s_all run started...'

force=
reconf=0
errmode=0
errfound=0
while :
	do case "$1" in
	-A)	# Reconfigure the library build.
		reconf=1
		shift;;
	-f)	# Force versions to be updated
		force="-f"
		shift;;
	-E)	# Return an error code on failure
		errmode=1
		shift;;
	*)
		break;;
	esac
done

echo "Updating files that include the package version" &&
    sh ./s_version $force

test "$reconf" -eq 0 || {
	(echo "Rebuilding GNU tools library support" &&
	    cd ../build_posix && 2>&1 sh ./reconf | sed -e 's/^/    /')
}

errchk()
{
	if ! `test -s $2`; then
		return
	fi

	echo "####################### MESSAGE ############################"
	echo "s_all run of: \"$1\" resulted in:"
	sed -e 's/^/    /' $2
	echo "#######################"

	rm -f $2

	# Some tests shouldn't return an error, we exclude them here.
	case "$1" in
	*s_export*)
		break;;
	*)
		errfound=1;;
	esac
}

run()
{
	2>&1 $1 > $t
	errchk "$1" $t
}

# Non parallelizable scripts The following scripts either modify files or
# already parallelize internally.
run "sh ./s_readme $force"
run "python api_config.py"
run "python api_err.py"
run "python flags.py"
run "python log.py"
run "python stat.py"
run "python java_doc.py"
run "sh ./s_prototypes"
run "sh ./s_typedef -b"
run "sh ./s_copyright"
run "sh ./s_style"

COMMANDS="
2>&1 ./s_tags > ${t_pfx}tags
2>&1 ./s_define > ${t_pfx}s_define
2>&1 ./s_typedef -c > ${t_pfx}s_typedef_c
2>&1 ./s_funcs > ${t_pfx}s_funcs
2>&1 ./s_export > ${t_pfx}s_export
2>&1 ./s_getopt > ${t_pfx}s_getopt
2>&1 ./s_label > ${t_pfx}s_label
2>&1 ./s_lang > ${t_pfx}s_lang
2>&1 ./s_longlines > ${t_pfx}s_longlines
2>&1 ./s_stat > ${t_pfx}_stat
2>&1 ./s_string > ${t_pfx}s_string
2>&1 python style.py > ${t_pfx}py_style
2>&1 ./s_python > ${t_pfx}s_python
2>&1 ./s_whitespace > ${t_pfx}s_whitespace
2>&1 ./s_win > ${t_pfx}s_win
2>&1 ./s_docs > ${t_pfx}s_docs"

# Parallelize if possible.
xp=""
echo date | xargs -P 20 >/dev/null 2>&1
if test $? -eq 0; then
	xp="-P 20"
fi
echo "$COMMANDS" | xargs $xp -I{} /bin/sh -c {}

for f in `find . -name ${t_pfx}\*`; do
	if ! `test -s $f`; then
		continue
	fi
	LOCAL_NAME=`basename $f`
	# Find original command and trim redirect garbage
	FAILED_CMD=`echo "$COMMANDS" | grep $LOCAL_NAME | \
	    sed -e 's/ >.*//' -e 's/.* //'`
	errchk "$FAILED_CMD" $f
done

echo 'dist/s_all run finished'
if test $errmode -ne 0; then
	exit $errfound;
fi