Some fixes for aarch64 macos
[ldk-java] / genbindings.sh
index 128a3afbe481147d0a5df19b4a0df7ed164f7446..253b8aad94abb4ba912df8f0ce3a0db85d37c685 100755 (executable)
@@ -6,6 +6,7 @@ usage() {
        echo "debug should either be true, false, or leaks"
        echo "debug of leaks turns on leak tracking on an optimized release bianry"
        echo "android_web should either be true or false and indicates if we build for android (Java) or web (WASM)"
        echo "debug should either be true, false, or leaks"
        echo "debug of leaks turns on leak tracking on an optimized release bianry"
        echo "android_web should either be true or false and indicates if we build for android (Java) or web (WASM)"
+       echo "Note that web currently generates the same results as !web (ie Node.JS)"
        exit 1
 }
 [ "$1" = "" ] && usage
        exit 1
 }
 [ "$1" = "" ] && usage
@@ -28,7 +29,7 @@ if [ "$3" = "leaks" ]; then
 fi
 
 cp "$1/lightning-c-bindings/include/lightning.h" ./
 fi
 
 cp "$1/lightning-c-bindings/include/lightning.h" ./
-if [ "$(rustc --version --verbose | grep "host:")" = "host: x86_64-apple-darwin" ]; then
+if [ "$(rustc --version --verbose | grep "host:")" = "host: x86_64-apple-darwin" ] || [ "$(rustc --version --verbose | grep "host:")" = "host: aarch64-apple-darwin" ]; then
        # OSX sed is for some reason not compatible with GNU sed
        sed -i '' "s/TransactionOutputs/C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ/g" ./lightning.h
 else
        # OSX sed is for some reason not compatible with GNU sed
        sed -i '' "s/TransactionOutputs/C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ/g" ./lightning.h
 else
@@ -59,6 +60,7 @@ if [ "$2" != "wasm" ]; then
                        LDK_JAR_TARGET=true
                        ;;
                "aarch64-apple-darwin"*)
                        LDK_JAR_TARGET=true
                        ;;
                "aarch64-apple-darwin"*)
+                       LDK_TARGET_CPU="apple-a14"
                        LDK_TARGET_SUFFIX="_MacOSX-aarch64"
                        LDK_JAR_TARGET=true
                        ;;
                        LDK_TARGET_SUFFIX="_MacOSX-aarch64"
                        LDK_JAR_TARGET=true
                        ;;
@@ -69,7 +71,7 @@ if [ "$2" != "wasm" ]; then
                LDK_TARGET_CPU="sandybridge"
        fi
 
                LDK_TARGET_CPU="sandybridge"
        fi
 
-       if [ "$(rustc --version --verbose | grep "host:")" = "host: x86_64-apple-darwin" ]; then
+       if [ "$(rustc --version --verbose | grep "host:")" = "host: x86_64-apple-darwin" ] || [ "$(rustc --version --verbose | grep "host:")" = "host: aarch64-apple-darwin" ]; then
                # OSX sed is for some reason not compatible with GNU sed
                sed -i '' "s/^    <version>.*<\/version>/    <version>${LDK_GARBAGECOLLECTED_GIT_OVERRIDE:1:100}<\/version>/g" pom.xml
        else
                # OSX sed is for some reason not compatible with GNU sed
                sed -i '' "s/^    <version>.*<\/version>/    <version>${LDK_GARBAGECOLLECTED_GIT_OVERRIDE:1:100}<\/version>/g" pom.xml
        else
@@ -157,7 +159,7 @@ if [ "$2" != "wasm" ]; then
                        popd
                        LDK_LIB="tmp/libldk.bc tmp/libldk.a"
                fi
                        popd
                        LDK_LIB="tmp/libldk.bc tmp/libldk.a"
                fi
-               $COMPILE -o liblightningjni_release$LDK_TARGET_SUFFIX.so -flto -O3 -I"$1"/lightning-c-bindings/include/ $2 src/main/jni/bindings.c $LDK_LIB
+               $COMPILE -o liblightningjni_release$LDK_TARGET_SUFFIX.so -flto -O3 -I"$1"/lightning-c-bindings/include/ $2 src/main/jni/bindings.c $LDK_LIB -lm
                if [ "$IS_MAC" = "false" -a "$4" = "false" ]; then
                        GLIBC_SYMBS="$(objdump -T liblightningjni_release$LDK_TARGET_SUFFIX.so | grep GLIBC_ | grep -v "GLIBC_2\.2\." | grep -v "GLIBC_2\.3\(\.\| \)" | grep -v "GLIBC_2.\(14\|17\) " || echo)"
                        if [ "$GLIBC_SYMBS" != "" ]; then
                if [ "$IS_MAC" = "false" -a "$4" = "false" ]; then
                        GLIBC_SYMBS="$(objdump -T liblightningjni_release$LDK_TARGET_SUFFIX.so | grep GLIBC_ | grep -v "GLIBC_2\.2\." | grep -v "GLIBC_2\.3\(\.\| \)" | grep -v "GLIBC_2.\(14\|17\) " || echo)"
                        if [ "$GLIBC_SYMBS" != "" ]; then
@@ -219,17 +221,14 @@ else
                        mv $F.tmp $F
                done
                rm imports.mts.part
                        mv $F.tmp $F
                done
                rm imports.mts.part
-               if [ "$4" = "true" ]; then
-                       tsc
-               else
-                       tsc --types node --typeRoots .
-                       cp ../$WASM_FILE liblightningjs.wasm
-                       echo Ready to publish!
-                       if [ -x "$(which node)" ]; then
-                               NODE_V="$(node --version)"
-                               if [ "${NODE_V:1:2}" -gt 14 ]; then
-                                       node test/node.mjs
-                               fi
+               tsc --types node --typeRoots .
+               cp ../$WASM_FILE liblightningjs.wasm
+               cp ../README.md README.md
+               echo Ready to publish!
+               if [ -x "$(which node)" ]; then
+                       NODE_V="$(node --version)"
+                       if [ "${NODE_V:1:2}" -gt 14 ]; then
+                               node test/node.mjs
                        fi
                fi
        fi
                        fi
                fi
        fi