Skip to content

Commit b215e2b

Browse files
committed
fix packing
1 parent f97fcca commit b215e2b

File tree

4 files changed

+430
-59
lines changed

4 files changed

+430
-59
lines changed

python-wasi-sdk.sh

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
#!/bin/bash
2+
reset
3+
4+
# TODO: check how dbg tools work with default settings
5+
# https://developer.chrome.com/blog/wasm-debugging-2020/
6+
7+
8+
. /etc/lsb-release
9+
DISTRIB="${DISTRIB_ID}-${DISTRIB_RELEASE}"
10+
11+
export SDKROOT=/opt/python-wasm-sdk
12+
13+
export CIVER=${CIVER:-$DISTRIB}
14+
export CI=true
15+
16+
if echo $0|grep -q python-wasm-sdk
17+
then
18+
echo " * adding emsdk to wasm-sdk"
19+
emsdk=true
20+
else
21+
emsdk=false
22+
fi
23+
24+
echo " * adding wasi-sdk to wasm-sdk"
25+
wasisdk=true
26+
27+
28+
sudo mkdir -p ${SDKROOT}
29+
sudo chmod 777 ${SDKROOT}
30+
31+
ORIGIN=$(pwd)
32+
33+
# 3.12 3.11 3.10
34+
35+
BUILDS=${BUILDS:-3.12 3.11}
36+
37+
for PYBUILD in $BUILDS
38+
do
39+
cd "$ORIGIN"
40+
41+
if [ -f ${SDKROOT}/dev ]
42+
then
43+
echo "${SDKROOT}/dev found : using build cache"
44+
else
45+
echo "doing a clean build"
46+
rm -rf ${SDKROOT}/* ${SDKROOT}/.??*
47+
fi
48+
49+
cp -Rf * ${SDKROOT}/
50+
51+
if cd ${SDKROOT}/
52+
then
53+
mkdir -p build/pycache
54+
export PYTHONDONTWRITEBYTECODE=1
55+
56+
# make install cpython will force bytecode generation
57+
export PYTHONPYCACHEPREFIX="$(realpath build/pycache)"
58+
59+
. ${CONFIG:-config}
60+
61+
cd ${SDKROOT}
62+
63+
if [ -f $HPY ]
64+
then
65+
echo " re-using host python HPY=$HPY"
66+
67+
else
68+
cd ${SDKROOT}
69+
. scripts/cpython-fetch.sh
70+
71+
cd ${SDKROOT}
72+
. support/__EMSCRIPTEN__.sh
73+
74+
. scripts/cpython-build-host.sh 2>&1 >/dev/null
75+
76+
. scripts/cpython-build-host-deps.sh >/dev/null
77+
78+
fi
79+
80+
cd ${SDKROOT}
81+
82+
if $wasisdk
83+
then
84+
echo WASI SDK TODO
85+
> ${SDKROOT}/python3-wasi
86+
> ${SDKROOT}/wasm32-wasi-shell.sh
87+
88+
chmod +x ${SDKROOT}/python3-wasi ${SDKROOT}/wasm32-wasi-shell.sh
89+
90+
mkdir -p src build ${SDKROOT}/devices/wasi ${SDKROOT}/prebuilt/wasisdk
91+
92+
fi
93+
94+
if $emsdk
95+
then
96+
# use ./ or emsdk will pollute env
97+
./scripts/emsdk-fetch.sh
98+
99+
echo " ------------ building cpython wasm ${PYBUILD} ${CIVER} ----------------" 1>&2
100+
101+
if ./scripts/cpython-build-emsdk.sh > /dev/null
102+
then
103+
echo " ---------- building cpython wasm plus ${PYBUILD} ${CIVER} -----------" 1>&2
104+
if ./scripts/cpython-build-emsdk-deps.sh > /dev/null
105+
then
106+
107+
echo " --------- adding some usefull pkg ${PYBUILD} ${CIVER} ---------" 1>&2
108+
./scripts/cpython-build-emsdk-prebuilt.sh
109+
110+
111+
echo "
112+
113+
==========================================================
114+
stripping emsdk ${PYBUILD} ${CIVER}
115+
==========================================================
116+
" 1>&2
117+
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports*
118+
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports/sdl2/SDL-*
119+
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports
120+
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports-builds
121+
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/tests
122+
123+
else
124+
echo " cpython-build-emsdk-deps failed" 1>&2
125+
exit 124
126+
fi
127+
else
128+
echo " cpython-build-emsdk failed" 1>&2
129+
exit 128
130+
fi
131+
132+
fi
133+
134+
. ${SDKROOT}/scripts/pack-sdk.sh
135+
136+
else
137+
echo "cd failed" 1>&2
138+
exit 137
139+
fi
140+
done
141+
142+
exit 0
143+

python-wasm-sdk.sh

Lines changed: 64 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,17 @@ export SDKROOT=/opt/python-wasm-sdk
1313
export CIVER=${CIVER:-$DISTRIB}
1414
export CI=true
1515

16+
if echo $0|grep -q python-wasm-sdk
17+
then
18+
echo " * adding emsdk to wasm-sdk"
19+
emsdk=true
20+
else
21+
emsdk=false
22+
fi
23+
24+
echo " * adding wasi-sdk to wasm-sdk"
25+
wasisdk=true
26+
1627

1728
sudo mkdir -p ${SDKROOT}
1829
sudo chmod 777 ${SDKROOT}
@@ -29,9 +40,10 @@ do
2940

3041
if [ -f ${SDKROOT}/dev ]
3142
then
32-
rm ${SDKROOT}/emsdk/.complete
43+
echo "${SDKROOT}/dev found : using build cache"
3344
else
34-
rm -rf ${SDKROOT}/*
45+
echo "doing a clean build"
46+
rm -rf ${SDKROOT}/* ${SDKROOT}/.??*
3547
fi
3648

3749
cp -Rf * ${SDKROOT}/
@@ -47,90 +59,83 @@ do
4759
. ${CONFIG:-config}
4860

4961
cd ${SDKROOT}
50-
. scripts/cpython-fetch.sh
5162

52-
cd ${SDKROOT}
53-
. support/__EMSCRIPTEN__.sh
63+
if [ -f $HPY ]
64+
then
65+
echo " re-using host python HPY=$HPY"
66+
67+
else
68+
cd ${SDKROOT}
69+
. scripts/cpython-fetch.sh
70+
71+
cd ${SDKROOT}
72+
. support/__EMSCRIPTEN__.sh
5473

55-
. scripts/cpython-build-host.sh 2>&1 >/dev/null
74+
. scripts/cpython-build-host.sh 2>&1 >/dev/null
5675

57-
. scripts/cpython-build-host-deps.sh >/dev/null
76+
. scripts/cpython-build-host-deps.sh >/dev/null
5877

59-
# cool down machine a bit
60-
[ -f /lowend ] && sleep 45
78+
fi
6179

6280
cd ${SDKROOT}
63-
# use ./ or emsdk will pollute env
64-
./scripts/emsdk-fetch.sh
6581

66-
echo " ------------ building cpython wasm ${PYBUILD} ${CIVER} ----------------" 1>&2
82+
if $wasisdk
83+
then
84+
echo WASI SDK TODO
85+
> ${SDKROOT}/python3-wasi
86+
> ${SDKROOT}/wasm32-wasi-shell.sh
87+
88+
chmod +x ${SDKROOT}/python3-wasi ${SDKROOT}/wasm32-wasi-shell.sh
6789

68-
if ./scripts/cpython-build-emsdk.sh > /dev/null
90+
mkdir -p src build ${SDKROOT}/devices/wasi ${SDKROOT}/prebuilt/wasisdk
91+
92+
fi
93+
94+
if $emsdk
6995
then
70-
echo " ---------- building cpython wasm plus ${PYBUILD} ${CIVER} -----------" 1>&2
71-
if ./scripts/cpython-build-emsdk-deps.sh > /dev/null
72-
then
73-
[ -f /lowend ] && sleep 45
96+
# use ./ or emsdk will pollute env
97+
./scripts/emsdk-fetch.sh
98+
99+
echo " ------------ building cpython wasm ${PYBUILD} ${CIVER} ----------------" 1>&2
74100

101+
if ./scripts/cpython-build-emsdk.sh > /dev/null
102+
then
103+
echo " ---------- building cpython wasm plus ${PYBUILD} ${CIVER} -----------" 1>&2
104+
if ./scripts/cpython-build-emsdk-deps.sh > /dev/null
105+
then
75106

76-
echo " --------- adding some usefull pkg ${PYBUILD} ${CIVER} ---------" 1>&2
77-
./scripts/cpython-build-emsdk-prebuilt.sh
107+
echo " --------- adding some usefull pkg ${PYBUILD} ${CIVER} ---------" 1>&2
108+
./scripts/cpython-build-emsdk-prebuilt.sh
78109

79110

80-
echo "
111+
echo "
81112
82-
==========================================================
83-
stripping emsdk ${PYBUILD} ${CIVER}
84-
==========================================================
85-
" 1>&2
113+
==========================================================
114+
stripping emsdk ${PYBUILD} ${CIVER}
115+
==========================================================
116+
" 1>&2
86117
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports*
87118
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports/sdl2/SDL-*
88119
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports
89120
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/cache/ports-builds
90121
rm -rf ${SDKROOT}/emsdk/upstream/emscripten/tests
91122

92-
93-
94-
echo "making tarball" 1>&2
95-
96-
cd /
97-
mkdir -p /tmp/sdk
98-
tar -cpPR \
99-
${SDKROOT}/config \
100-
${SDKROOT}/python3-wasm \
101-
${SDKROOT}/wasm32-*-shell.sh \
102-
${SDKROOT}/emsdk \
103-
${SDKROOT}/devices/* \
104-
${SDKROOT}/prebuilt/* \
105-
> /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar
106-
lz4 -c --favor-decSpeed --best /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar \
107-
> /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar.lz4
108-
109-
#if [ -f /lowend ]
110-
if true
111-
then
112-
# bzip2 is energy waste for local build
113-
rm /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar
114-
else
115-
# bzip2 will remove original
116-
[ -f /lowend ] || bzip2 -9 /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar
117-
fi
123+
else
124+
echo " cpython-build-emsdk-deps failed" 1>&2
125+
exit 124
126+
fi
118127
else
119-
echo " cpython-build-emsdk-deps failed" 1>&2
120-
exit 111
128+
echo " cpython-build-emsdk failed" 1>&2
129+
exit 128
121130
fi
122-
else
123-
echo " cpython-build-emsdk failed" 1>&2
124-
exit 115
131+
125132
fi
126133

127-
echo "done" 1>&2
134+
. ${SDKROOT}/scripts/pack-sdk.sh
128135

129-
# cool down
130-
[ -f /lowend ] && sleep 60
131136
else
132137
echo "cd failed" 1>&2
133-
exit 124
138+
exit 137
134139
fi
135140
done
136141

scripts/pack-sdk.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
echo "making tarball" 1>&2
2+
3+
cd /
4+
mkdir -p /tmp/sdk
5+
tar -cpPR \
6+
${SDKROOT}/config \
7+
${SDKROOT}/python3-was? \
8+
${SDKROOT}/wasm32-*-shell.sh \
9+
${SDKROOT}/*sdk \
10+
${SDKROOT}/devices/* \
11+
${SDKROOT}/prebuilt/* \
12+
> /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar
13+
lz4 -c --favor-decSpeed --best /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar \
14+
> /tmp/sdk/python${PYBUILD}-wasm-sdk-${CIVER}.tar.lz4
15+
16+
17+
echo "done" 1>&2
18+

0 commit comments

Comments
 (0)