-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdevtools.bash
104 lines (91 loc) · 2.72 KB
/
devtools.bash
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
# Linux distro
distro() {
case $(uname -a) in
*\.amzn2\.*)
echo "AL2";;
*\.amzn20*)
echo "Amazon";;
*-Ubuntu*)
echo "Ubuntu";;
*CYGWIN*)
echo "Cygwin";;
*)
echo "Unknown";;
esac
}
refresh() {
project=$(basename $1)
if [[ ! -d $project ]]
then
git clone -q $1
else
(cd $project; git pull -q)
fi
if [[ ! -z "$2" ]]
then
(cd $project; git checkout -q $2)
fi
}
devtools_Amazon() {
# generic stuff
sudo yum install -q -y python3 swig zstd httpd openssl mod_ssl
sudo service httpd stop
# Might need to self-certify
if [ ! -e /etc/pki/tls/certs/localhost.crt ]
then
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/localhost.key \
-out /etc/pki/tls/certs/localhost.crt \
-subj "/C=US/ST=Oregon/L=Los Angeles/O=AHTSE/OU=Org/CN=www.ahtse.com"
fi
# One of these might fail
sudo yum install -q -y pip || sudo yum install -q -y pip3
# development tools
sudo yum install -q -y gcc gcc-c++ automake libtool
# various depenencies
sudo yum install -q -y tcl zlib-devel libcurl-devel\
libpng-devel libjpeg-devel libwebp-devel python3-devel openssl-devel\
httpd-devel libzstd-devel openjpeg2-devel
}
devtools_Ubuntu() {
export DEBIAN_FRONTEND=noninteractive
yes | sudo DEBIAN_FRONTEND=noninteractive apt update
yes | sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq -y python3 zstd apache2 openssl pip
sudo service apache2 stop
yes | sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq -y \
build-essential tcl zlib1g-dev pkg-config libcurl4-openssl-dev\
libpng-dev libjpeg-dev libwebp-dev python3-dev\
libssl-dev apache2-dev libzstd-dev libopenjp2-7-dev pre-commit
yes | sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq -y \
python3-pip python3-pytest python3-numpy python3-filelock
}
# main()
export DISTRO=$(distro)
case $DISTRO in
AL2 | Amazon)
devtools_Amazon
pip3 -q install boto3 pytest numpy filelock pre-commit
;;
Ubuntu)
devtools_Ubuntu
;;
*)
echo "Unknown or unsupported distro $(distro)"
;;
esac
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
[ -d $HOME/src/ ] || mkdir $HOME/src
pushd $HOME/src
# Prevent building cmake multiple times. Current version is 3.20
(command -v cmake > /dev/null && cmake --version | grep -q "version 3.2") || (
refresh $GITHUB/Kitware/CMake v3.28.1
pushd CMake
NP=${NP:-$(nproc)}
./bootstrap --prefix=$PREFIX --parallel=$NP
make -j $NP
$SUDO make install
popd
rm -rf CMake
)
# To previous folder
popd