source: mainline/tools/build_all.sh@ c63c2bb

ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since c63c2bb was c21d4d6, checked in by Jiří Zárevúcky <zarevucky.jiri@…>, 6 years ago

Add copyright headers for new files

Most are a copy of the headers that were present in original Makefiles.

  • Property mode set to 100755
File size: 3.6 KB
RevLine 
[56440a5]1#!/bin/sh
2
[c21d4d6]3#
4# Copyright (c) 2019 Jiří Zárevúcky
5# All rights reserved.
6#
7# Redistribution and use in source and binary forms, with or without
8# modification, are permitted provided that the following conditions
9# are met:
10#
11# - Redistributions of source code must retain the above copyright
12# notice, this list of conditions and the following disclaimer.
13# - Redistributions in binary form must reproduce the above copyright
14# notice, this list of conditions and the following disclaimer in the
15# documentation and/or other materials provided with the distribution.
16# - The name of the author may not be used to endorse or promote products
17# derived from this software without specific prior written permission.
18#
19# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29#
30
[56440a5]31# Find out the path to the script.
32SOURCE_DIR=`which -- "$0" 2>/dev/null`
33# Maybe we are running bash.
34[ -z "$SOURCE_DIR" ] && SOURCE_DIR=`which -- "$BASH_SOURCE"`
35[ -z "$SOURCE_DIR" ] && exit 1
36SOURCE_DIR=`dirname -- "$SOURCE_DIR"`
[e50bdd4e]37SOURCE_DIR=`cd $SOURCE_DIR && cd .. && echo $PWD`
[56440a5]38
[fa6fbad8]39# Check command line arguments.
40
[58ef532]41if [ "$#" -gt 1 ] || ( [ "$#" -eq 1 ] && [ "$1" != '--no-images' ] ); then
[fa6fbad8]42 echo "Unknown command-line arguments."
43 echo "Usage:"
[58ef532]44 echo " $0 # Build everything."
45 echo " $0 --no-images # Build all code, but don't create bootable images."
[fa6fbad8]46 exit 1
47fi
48
49if [ "$#" -eq 1 ]; then
50 NO_IMAGES=true
51else
52 NO_IMAGES=false
53fi
54
[56440a5]55# Make sure we don't make a mess in the source root.
56if [ "$PWD" = "$SOURCE_DIR" ]; then
57 mkdir -p build_all
58 cd build_all
59fi
60
61CONFIG_RULES="${SOURCE_DIR}/HelenOS.config"
62
[05d97eef]63PROFILES=`sh ${SOURCE_DIR}/tools/list_profiles.sh`
[56440a5]64
[d3357e9]65echo
66echo "###################### Configuring all profiles ######################"
[56440a5]67
[8183b35]68echo "Configuring profiles" $PROFILES
69
[56440a5]70for profile in $PROFILES; do
[8183b35]71 # echo "Configuring profile ${profile}"
[56440a5]72
73 mkdir -p ${profile} || exit 1
[18b1643]74 script -q -e /dev/null -c "cd '${profile}' && '${SOURCE_DIR}/configure.sh' '${profile}' && ninja build.ninja" </dev/null >"${profile}/configure_output.log" 2>&1 &
[8183b35]75 echo "$!" >"${profile}/configure.pid"
[56440a5]76done
77
[8183b35]78failed='no'
79
80for profile in $PROFILES; do
81 if ! wait `cat "${profile}/configure.pid"`; then
82 failed='yes'
83 cat "${profile}/configure_output.log"
84 echo
85 echo "Configuration of profile ${profile} failed."
86 echo
87 fi
88done
89
90if [ "$failed" = 'yes' ]; then
91 echo
92 echo "Some configuration jobs failed."
93 exit 1
94else
95 echo "All profiles configured."
96fi
97
[d3357e9]98echo
99echo "###################### Building all profiles ######################"
[56440a5]100
101for profile in $PROFILES; do
[18b1643]102 echo
[d3357e9]103 ninja -C ${profile} || exit 1
[56440a5]104done
[d3357e9]105
[fa6fbad8]106if [ "$NO_IMAGES" = 'true' ]; then
[f69d5a8]107 echo
[fa6fbad8]108 echo "Bootable images not built due to argument --no-images."
109 exit 0
110fi
[d3357e9]111
[fa6fbad8]112echo
113echo "###################### Building all images ######################"
[18b1643]114
[fa6fbad8]115for profile in $PROFILES; do
[18b1643]116 echo
[fa6fbad8]117 ninja -C ${profile} image_path || exit 1
118done
[18b1643]119
[fa6fbad8]120echo
121for profile in $PROFILES; do
122 path=`cat ${profile}/image_path`
123
124 if [ ! -z "$path" ]; then
125 echo "built ${profile}/${path}"
126 fi
127done
Note: See TracBrowser for help on using the repository browser.