2
2
reset
3
3
export DOCKER=false
4
4
export PREBUILT=$( pwd) /prebuilt
5
+ export SDKROOT=${SDKROOT:-/ tmp/ sdk}
6
+
5
7
if [ $UID -ne 0 ]; then
6
8
echo " not UID 0, assuming no docker/proot"
7
9
else
10
12
echo " UID 0, with alpine proot"
11
13
12
14
else
13
- echo " UID 0, assuming docker debian:stable"
14
- apt-get update && apt-get --yes install build-essential clang autoconf wget curl lz4 lsb-release zlib1g-dev libssl-dev git
15
+ echo " UID 0, assuming docker debian:12"
16
+ apt-get update && apt-get --yes install build-essential clang lsb-release zlib1g-dev lzma-dev libssl-dev \
17
+ git wget curl lz4 xz-utils bison flex pkg-config autoconf m4 libtool make
18
+ # prevent removing any wasi prebuilt patching from docker rc file
19
+ touch $SDKROOT /dev
15
20
export DOCKER=true
16
21
fi
17
22
fi
@@ -41,14 +46,16 @@ pause () {
41
46
fi
42
47
}
43
48
49
+ # sane default
50
+ PLATFORM=linux
44
51
45
52
DISTRIB_RELEASE=${DISTRIB_RELEASE:- any}
46
53
47
54
# is it linux enough ?
48
55
if [ -f /etc/lsb-release ]
49
56
then
50
57
. /etc/lsb-release
51
- export PLATFORM=linux
58
+ PLATFORM=linux
52
59
else
53
60
# is it Debian
54
61
if [ -f /etc/os-release ]
66
73
fi
67
74
68
75
export DISTRIB=" ${DISTRIB_ID} -${DISTRIB_RELEASE} "
76
+ export PLATFORM
69
77
70
- export SDKROOT=${SDKROOT:-/ tmp/ sdk}
71
78
72
79
# default is behave like a CI
73
80
export CI=${CI:- true}
@@ -306,14 +313,41 @@ END
306
313
cd ${SDKROOT}
307
314
308
315
export TARGET=wasi
316
+ export CPU=wasm32
309
317
310
318
mkdir -p src build ${SDKROOT} /devices/wasisdk ${SDKROOT} /prebuilt/wasisdk
311
319
if [ -d $PREBUILT ]
312
320
then
321
+ pushd /
313
322
# unpack wasi sdk (common)
314
323
tar xf $PREBUILT /wasi-sdk-25.tar.xz
315
- # unpack wasi sdk ( binary )
316
- tar xf $PREBUILT /wasi-sdk-25.0-$( arch) -linux.tar.xz
324
+
325
+ if false
326
+ then
327
+ # unpack wasi sdk ( binary )
328
+ tar xf $PREBUILT /wasi-sdk-25.0-$( arch) -linux.tar.xz
329
+ else
330
+ [ -d $SDKROOT /wasisdk/upstream ] || exit $LINENO
331
+ # use stock release binaries from bin,lib folders
332
+ if [ -d $SDKROOT /wasisdk/upstream/lib ]
333
+ then
334
+ echo " wasi sdk $( arch) support is installed"
335
+ else
336
+ pushd $SDKROOT /wasisdk
337
+ if arch| grep -q aarch64
338
+ then
339
+ wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-arm64-linux.tar.gz -O/tmp/sdk.tar.gz
340
+ else
341
+ wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-25/wasi-sdk-25.0-x86_64-linux.tar.gz -O/tmp/sdk.tar.gz
342
+ fi
343
+ tar xfz /tmp/sdk.tar.gz && rm /tmp/sdk.tar.gz
344
+ mv wasi-sdk-25.0-* /{bin,lib} upstream/
345
+
346
+ popd
347
+ fi
348
+ fi
349
+ popd
350
+
317
351
else
318
352
# do not source to protect env
319
353
./scripts/cpython-build-wasisdk.sh
322
356
323
357
> ${SDKROOT} /wasm32-${TARGET} -shell.sh
324
358
325
- CPU=wasm32
326
359
CPU=$CPU TARGET=$TARGET PYDK_PYTHON_HOST_PLATFORM=${CPU} -${TARGET} \
327
360
PYDK_SYSCONFIG_PLATFORM=${CPU} -${TARGET} \
328
361
PREFIX=${SDKROOT} /devices/${TARGET} sdk/usr \
@@ -341,7 +374,7 @@ parse_git_branch() {
341
374
export PS1="[PyDK:${TARGET} ] \[\e[32m\]\w \[\e[91m\]\$ (parse_git_branch)\[\e[00m\]\$ "
342
375
343
376
END
344
- chmod +x ${SDKROOT} /python3-${TARGET} ${SDKROOT} /wasm32 -${TARGET} -shell.sh
377
+ chmod +x ${SDKROOT} /python3-${TARGET} ${SDKROOT} /${CPU} -${TARGET} -shell.sh
345
378
346
379
fi
347
380
0 commit comments