annotate sources/variables.sh @ 1633:a4823c561e28

Patrick Lauer suggested making the smoketest timeout configurable, and default to 3 minutes when FORK=1.
author Rob Landley <rob@landley.net>
date Tue, 15 Oct 2013 22:25:55 -0500
parents c654511d227c
children 0f61292eab70
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1623
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
1 #!/bin/echo "This file is sourced, not run"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
2
1624
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
3 # Avoid trouble from unexpected environment settings by unsetting all
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
4 # environment variables that we don't know about, in case some crazy
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
5 # person already exported $CROSS_COMPILE, $ARCH, $CDPATH, or who knows
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
6 # what else. It's hard to know what might drive some package crazy,
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
7 # so use a whitelist.
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
8
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
9 if [ -z "$NO_SANITIZE_ENVIRONMENT" ]
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
10 then
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
11 # Which variables are set in config?
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
12
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
13 TEMP=$(echo $(sed -n 's/.*export[ \t]*\([^=]*\)=.*/\1/p' config) | sed 's/ /,/g')
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
14
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
15 # What other variables should we keep?
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
16
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
17 TEMP="$TEMP,LANG,PATH,SHELL,TERM,USER,USERNAME,LOGNAME,PWD,EDITOR,HOME"
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
18 TEMP="$TEMP,DISPLAY,_,TOPSHELL,START_TIME,STAGE_NAME,TOOLCHAIN_PREFIX"
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
19 TEMP="$TEMP,HOST_ARCH,WRAPPY_LOGPATH,OLDPATH,http_proxy,ftp_proxy"
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
20 TEMP="$TEMP,https_proxy,no_proxy,TEMP,TMPDIR,FORK"
1623
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
21
1624
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
22 # Unset any variable we don't recognize. It can screw up the build.
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
23
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
24 for i in $(env | sed -n 's/=.*//p')
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
25 do
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
26 is_in_list $i "$TEMP" && continue
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
27 [ "${i:0:7}" == "DISTCC_" ] && continue
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
28 [ "${i:0:7}" == "CCACHE_" ] && continue
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
29
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
30 unset $i 2>/dev/null
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
31 done
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
32 fi
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
33
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
34 # Assign (export) a variable only if current value is blank
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
35
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
36 export_if_blank()
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
37 {
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
38 [ -z "$(eval "echo \"\${${1/=*/}}\"")" ] && export "$1"
c654511d227c Move environment variable whitelisting functions to new variables.sh.
Rob Landley <rob@landley.net>
parents: 1623
diff changeset
39 }
1623
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
40
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
41 # List of fallback mirrors to download package source from
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
42
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
43 export_if_blank MIRROR_LIST="http://landley.net/code/aboriginal/mirror http://127.0.0.1/code/aboriginal/mirror"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
44
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
45 # Where are our working directories?
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
46
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
47 export_if_blank TOP=`pwd`
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
48 export_if_blank SOURCES="$TOP/sources"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
49 export_if_blank SRCDIR="$TOP/packages"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
50 export_if_blank PATCHDIR="$SOURCES/patches"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
51 export_if_blank BUILD="$TOP/build"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
52 export_if_blank SRCTREE="$BUILD/packages"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
53 export_if_blank HOSTTOOLS="$BUILD/host"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
54 export_if_blank WRAPDIR="$BUILD/record-commands"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
55
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
56 # Set a default non-arch
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
57
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
58 export WORK="${BUILD}/host-temp"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
59 export ARCH_NAME=host
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
60
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
61 # What host compiler should we use?
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
62
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
63 export_if_blank CC=cc
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
64
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
65 # How many processors should make -j use?
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
66
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
67 MEMTOTAL="$(awk '/MemTotal:/{print $2}' /proc/meminfo)"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
68 if [ -z "$CPUS" ]
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
69 then
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
70 export CPUS=$(echo /sys/devices/system/cpu/cpu[0-9]* | wc -w)
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
71 [ "$CPUS" -lt 1 ] && CPUS=1
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
72
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
73 # If we're not using hyper-threading, and there's plenty of memory,
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
74 # use 50% more CPUS than we actually have to keep system busy
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
75
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
76 [ -z "$(cat /proc/cpuinfo | grep '^flags' | head -n 1 | grep -w ht)" ] &&
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
77 [ $(($CPUS*512*1024)) -le $MEMTOTAL ] &&
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
78 CPUS=$((($CPUS*3)/2))
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
79 fi
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
80
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
81 export_if_blank STAGE_NAME=`echo $0 | sed 's@.*/\(.*\)\.sh@\1@'`
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
82 [ ! -z "$BUILD_VERBOSE" ] && VERBOSITY="V=1"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
83
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
84 export_if_blank BUILD_STATIC=busybox,toybox,binutils,gcc-core,gcc-g++,make
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
85
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
86 # If record-commands.sh set up a wrapper directory, adjust $PATH.
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
87
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
88 export PATH
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
89 if [ -z "$OLDPATH" ]
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
90 then
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
91 export OLDPATH="$PATH"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
92 [ -z "$BUSYBOX" ] || BUSYBOX=busybox
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
93 [ -f "$HOSTTOOLS/${BUSYBOX:-toybox}" ] &&
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
94 PATH="$(hosttools_path)" ||
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
95 PATH="$(hosttools_path):$PATH"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
96
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
97 if [ -f "$WRAPDIR/wrappy" ]
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
98 then
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
99 OLDPATH="$PATH"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
100 mkdir -p "$BUILD/logs"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
101 [ $? -ne 0 ] && echo "Bad $WRAPDIR" >&2 && dienow
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
102 PATH="$WRAPDIR"
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
103 fi
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
104 fi
6cef85eefede Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff changeset
105 export WRAPPY_LOGPATH="$BUILD/logs/cmdlines.$ARCH_NAME.early"