2 # This file is part of NIT ( http://www.nitlanguage.org ).
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
16 # Check the build and the execution of software in lib/, examples/ and contrib/
17 # The script must be run from the root Nit directory.
19 # various .xml junit file will be generated in the root directory for jenkins.
21 # Arguments will be additional `make` rules to execute. eg.
23 # check_contrib.sh check android
25 projects
=`ls -1 lib/*/Makefile examples/*/Makefile contrib/*/Makefile | grep -v contrib/nitc/`
29 for p
in $projects; do
31 name
=`basename "$dir"`
32 echo "### in $dir ###"
33 # Check each rules, if they exists
34 for rule
in $rules; do
35 make -C
"$dir" $rule -n
>/dev
/null
2>/dev
/null ||
{
36 # Special case for `all` that falls back as the default target
37 if [ "$rule" = "all" ]; then
38 echo "*** make -C $dir ***"
39 misc
/jenkins
/unitrun.sh
"cmd-$name-make" make -C
"$dir" ||
40 failed
="$failed $name"
44 echo "*** make $rule -C $dir ***"
45 misc
/jenkins
/unitrun.sh
"cmd-$name-make$rule" make -C
"$dir" $rule ||
46 failed
="$failed $name-$rule"
49 grep '<error message' *-make*.xml
50 if test -n
"$failed"; then
51 echo "FAILED: $failed"