22reset
33export DOCKER=false
44export PREBUILT=$( pwd) /prebuilt
5+ export SDKROOT=${SDKROOT:-/ tmp/ sdk}
6+
57if [ $UID -ne 0 ]; then
68 echo " not UID 0, assuming no docker/proot"
79else
1012 echo " UID 0, with alpine proot"
1113
1214 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
1520 export DOCKER=true
1621 fi
1722fi
@@ -41,14 +46,16 @@ pause () {
4146 fi
4247}
4348
49+ # sane default
50+ PLATFORM=linux
4451
4552DISTRIB_RELEASE=${DISTRIB_RELEASE:- any}
4653
4754# is it linux enough ?
4855if [ -f /etc/lsb-release ]
4956then
5057 . /etc/lsb-release
51- export PLATFORM=linux
58+ PLATFORM=linux
5259else
5360 # is it Debian
5461 if [ -f /etc/os-release ]
6673fi
6774
6875export DISTRIB=" ${DISTRIB_ID} -${DISTRIB_RELEASE} "
76+ export PLATFORM
6977
70- export SDKROOT=${SDKROOT:-/ tmp/ sdk}
7178
7279# default is behave like a CI
7380export CI=${CI:- true}
@@ -306,14 +313,41 @@ END
306313 cd ${SDKROOT}
307314
308315 export TARGET=wasi
316+ export CPU=wasm32
309317
310318 mkdir -p src build ${SDKROOT} /devices/wasisdk ${SDKROOT} /prebuilt/wasisdk
311319 if [ -d $PREBUILT ]
312320 then
321+ pushd /
313322 # unpack wasi sdk (common)
314323 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+
317351 else
318352 # do not source to protect env
319353 ./scripts/cpython-build-wasisdk.sh
322356
323357 > ${SDKROOT} /wasm32-${TARGET} -shell.sh
324358
325- CPU=wasm32
326359 CPU=$CPU TARGET=$TARGET PYDK_PYTHON_HOST_PLATFORM=${CPU} -${TARGET} \
327360 PYDK_SYSCONFIG_PLATFORM=${CPU} -${TARGET} \
328361 PREFIX=${SDKROOT} /devices/${TARGET} sdk/usr \
@@ -341,7 +374,7 @@ parse_git_branch() {
341374export PS1="[PyDK:${TARGET} ] \[\e[32m\]\w \[\e[91m\]\$ (parse_git_branch)\[\e[00m\]\$ "
342375
343376END
344- chmod +x ${SDKROOT} /python3-${TARGET} ${SDKROOT} /wasm32 -${TARGET} -shell.sh
377+ chmod +x ${SDKROOT} /python3-${TARGET} ${SDKROOT} /${CPU} -${TARGET} -shell.sh
345378
346379 fi
347380
0 commit comments