diff --git a/l2ork_addons/nwjs_version_for_platform.sh b/l2ork_addons/nwjs_version_for_platform.sh new file mode 100755 index 0000000000000000000000000000000000000000..285618f192079616314a496d2a0f4718e37d5d5a --- /dev/null +++ b/l2ork_addons/nwjs_version_for_platform.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# nwjs_version_for_platform.sh +# +# Determine the version of nw.js that Purr Data should use on a given platform. +# +# Variables "$os" and "$arch" can be set in the environment, or autodetected. + +set -e + +if [ -z "$os" ]; then + os=`uname | tr '[:upper:]' '[:lower:]'` + if [[ $os == *"mingw32"* ]]; then + os=win + elif [[ $os == "darwin" ]]; then + os=osx + fi +fi + +if [ -z "$arch" ]; then + if [ `getconf LONG_BIT` -eq 32 ]; then + arch="ia32" + else + arch="x64" + fi + + # for rpi + if [ `uname -m` == "armv7l" ]; then + arch="armv7l" + fi + + # for pinebook, probably also rpi 4 + if [ `uname -m` == "aarch64" ]; then + arch="armv7l" + fi +fi + +# MSYS: Pick the right architecture depending on whether we're +# running in the 32 or 64 bit version of the MSYS shell. +if [[ $os == "win" ]]; then + arch="ia32" +elif [[ $os == "win64" ]]; then + arch="x64" +fi + +if [[ $os == "win" || $os == "win64" || $os == "osx" ]]; then + ext="zip" +else + ext="tar.gz" +fi + +if [[ $osx_version == "10.8" ]]; then + # We need the lts version to be able to run on legacy systems. + nwjs_version="v0.14.7" +else + # temporary kluge for rpi-- only 0.15.1 is available atm + if [ $arch == "armv7l" ]; then + nwjs_version="v0.17.6" + else + nwjs_version="v0.24.4" + fi +fi + +nwjs="nwjs-sdk" +if [[ $os == "win64" ]]; then + nwjs_dirname=${nwjs}-${nwjs_version}-win-${arch} +else + nwjs_dirname=${nwjs}-${nwjs_version}-${os}-${arch} +fi +nwjs_filename=${nwjs_dirname}.${ext} + +echo $nwjs_filename diff --git a/l2ork_addons/tar_em_up.sh b/l2ork_addons/tar_em_up.sh index 0b735c53448ae9c6ba15347b7c6de4af8c1370c5..f98be19d36905a889f732ad283252050170bf984 100755 --- a/l2ork_addons/tar_em_up.sh +++ b/l2ork_addons/tar_em_up.sh @@ -105,6 +105,7 @@ do case $Option in esac done +script_dir=$(dirname $0) inst_dir=${inst_dir:-/usr/local} # configure a light build if requested @@ -163,56 +164,9 @@ fi # Fetch the nw.js binary if we haven't already. We want to fetch it even # for building with no libs, so we do it regardless of the options -#echo nwjs-sdk-v0.16.0-`uname | tr '[:upper:]' '[:lower:]'` if [ ! -d "../pd/nw/nw" ]; then - if [ `getconf LONG_BIT` -eq 32 ]; then - arch="ia32" - else - arch="x64" - fi - - # for rpi - if [ `uname -m` == "armv7l" ]; then - arch="armv7l" - fi - - # for pinebook, probably also rpi 4 - if [ `uname -m` == "aarch64" ]; then - arch="armv7l" - fi - - # MSYS: Pick the right architecture depending on whether we're - # running in the 32 or 64 bit version of the MSYS shell. - if [[ $os == "win" ]]; then - arch="ia32" - elif [[ $os == "win64" ]]; then - arch="x64" - fi - if [[ $os == "win" || $os == "win64" || $os == "osx" ]]; then - ext="zip" - else - ext="tar.gz" - fi - - if [[ $osx_version == "10.8" ]]; then - # We need the lts version to be able to run on legacy systems. - nwjs_version="v0.14.7" - else - # temporary kluge for rpi-- only 0.15.1 is available atm - if [ $arch == "armv7l" ]; then - nwjs_version="v0.17.6" - else - nwjs_version="v0.24.4" - fi - fi - - nwjs="nwjs-sdk" - if [[ $os == "win64" ]]; then - nwjs_dirname=${nwjs}-${nwjs_version}-win-${arch} - else - nwjs_dirname=${nwjs}-${nwjs_version}-${os}-${arch} - fi - nwjs_filename=${nwjs_dirname}.${ext} + nwjs_filename=$($script_dir/nwjs_version_for_platform.sh) + nwjs_version=$(echo $nwjs_filename | egrep -o 'v[^-]+') nwjs_url=https://git.purrdata.net/jwilkes/nwjs-binaries/raw/master nwjs_url=${nwjs_url}/$nwjs_filename echo "Fetching the nwjs binary from" @@ -225,15 +179,17 @@ if [ ! -d "../pd/nw/nw" ]; then fi if [[ $os == "win" || $os == "win64" || $os == "osx" ]]; then unzip $nwjs_filename + nwjs_dirname=$(basename --suffix=.zip $nwjs_filename) else tar -xf $nwjs_filename + nwjs_dirname=$(basename --suffix=.tar.gz $nwjs_filename) fi # Special case for arm binary's inconsistent directory name # (It's not the same as the `uname -m` output) - if [ $arch == "armv7l" ]; then + if echo $nwjs_filename | grep -q armv7l ; then nwjs_dirname=`echo $nwjs_dirname | sed 's/armv7l/arm/'` fi - mv $nwjs_dirname ../pd/nw/nw + mv $nwjs_dirname ../pd/nw/nw # make sure the nw binary is executable on GNU/Linux if [[ $os != "win" && $dmg == 0 ]]; then chmod 755 ../pd/nw/nw/nw