Mercurial > hg > aboriginal
annotate sources/variables.sh @ 1816:fb05f99ffcce draft
Collate site-local variables under "MY_XXX" prefix: MY_PATCH_DIR,
MY_ROOT_OVERLAY, MY_CROSS_PATH and MY_CROSS_PREFIX.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sat, 21 Nov 2015 16:44:39 -0600 |
parents | 5ff5fea0ad7a |
children |
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" |
1673
0f61292eab70
Add MUSL=1 config option to force musl build.
Rob Landley <rob@landley.net>
parents:
1624
diff
changeset
|
20 TEMP="$TEMP,https_proxy,no_proxy,TEMP,TMPDIR,FORK,MUSL" |
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 |
1816
fb05f99ffcce
Collate site-local variables under "MY_XXX" prefix: MY_PATCH_DIR,
Rob Landley <rob@landley.net>
parents:
1814
diff
changeset
|
56 [ ! -z "$MY_PATCH_DIR" ] && export MY_PATCH_DIR="$(readlink -e "$MY_PATCH_DIR")" |
1814
5ff5fea0ad7a
Add EXTERNAL_PATCH_DIR option for applying patches from outside aboriginal
Geoff Salmon <gsalmon@se-instruments.com>
parents:
1673
diff
changeset
|
57 |
1623
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
58 # Set a default non-arch |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
59 |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
60 export WORK="${BUILD}/host-temp" |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
61 export ARCH_NAME=host |
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 # What host compiler should we use? |
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 export_if_blank CC=cc |
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 # How many processors should make -j use? |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
68 |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
69 MEMTOTAL="$(awk '/MemTotal:/{print $2}' /proc/meminfo)" |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
70 if [ -z "$CPUS" ] |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
71 then |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
72 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
|
73 [ "$CPUS" -lt 1 ] && CPUS=1 |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
74 |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
75 # 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
|
76 # 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
|
77 |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
78 [ -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
|
79 [ $(($CPUS*512*1024)) -le $MEMTOTAL ] && |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
80 CPUS=$((($CPUS*3)/2)) |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
81 fi |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
82 |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
83 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
|
84 [ ! -z "$BUILD_VERBOSE" ] && VERBOSITY="V=1" |
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 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
|
87 |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
88 # 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
|
89 |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
90 export PATH |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
91 if [ -z "$OLDPATH" ] |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
92 then |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
93 export OLDPATH="$PATH" |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
94 [ -z "$BUSYBOX" ] || BUSYBOX=busybox |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
95 [ -f "$HOSTTOOLS/${BUSYBOX:-toybox}" ] && |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
96 PATH="$(hosttools_path)" || |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
97 PATH="$(hosttools_path):$PATH" |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
98 |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
99 if [ -f "$WRAPDIR/wrappy" ] |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
100 then |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
101 OLDPATH="$PATH" |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
102 mkdir -p "$BUILD/logs" |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
103 [ $? -ne 0 ] && echo "Bad $WRAPDIR" >&2 && dienow |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
104 PATH="$WRAPDIR" |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
105 fi |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
106 fi |
6cef85eefede
Break out variable setting into sources/variables.sh
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
107 export WRAPPY_LOGPATH="$BUILD/logs/cmdlines.$ARCH_NAME.early" |