build.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #! /bin/sh
  2. #
  3. # Copyright (C) 2019 Intel Corporation. All rights reserved.
  4. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  5. #
  6. CURR_DIR=$PWD
  7. WAMR_DIR=${PWD}/../..
  8. OUT_DIR=${PWD}/out
  9. WASM_APPS=${PWD}/wasm-apps
  10. rm -rf ${OUT_DIR}
  11. mkdir ${OUT_DIR}
  12. mkdir ${OUT_DIR}/wasm-apps
  13. echo "##################### build (default)"
  14. cd ${CURR_DIR}
  15. mkdir -p cmake_build
  16. cd cmake_build
  17. cmake ..
  18. make -j 4
  19. if [ $? != 0 ];then
  20. echo "BUILD_FAIL native-stack-overflow exit as $?\n"
  21. exit 2
  22. fi
  23. cp -a native-stack-overflow ${OUT_DIR}
  24. echo "##################### build (WAMR_DISABLE_HW_BOUND_CHECK=1)"
  25. cd ${CURR_DIR}
  26. mkdir -p cmake_build_disable_hw_bound
  27. cd cmake_build_disable_hw_bound
  28. cmake -D WAMR_DISABLE_HW_BOUND_CHECK=1 ..
  29. make -j 4
  30. if [ $? != 0 ];then
  31. echo "BUILD_FAIL native-stack-overflow exit as $?\n"
  32. exit 2
  33. fi
  34. cp -a native-stack-overflow ${OUT_DIR}/native-stack-overflow.WAMR_DISABLE_HW_BOUND_CHECK
  35. echo "##################### signature shared lib"
  36. cd ${CURR_DIR}
  37. cc -I ../../core/iwasm/include -shared -o ${OUT_DIR}/signature.so \
  38. src/signature.c
  39. echo
  40. echo "##################### build wasm apps"
  41. cd ${WASM_APPS}
  42. for i in `ls *.c`
  43. do
  44. APP_SRC="$i"
  45. OUT_FILE=${i%.*}.wasm
  46. # use WAMR SDK to build out the .wasm binary
  47. /opt/wasi-sdk/bin/clang \
  48. -mexec-model=reactor \
  49. -Os -z stack-size=4096 -Wl,--initial-memory=65536 \
  50. -Wl,--allow-undefined \
  51. -o ${OUT_DIR}/wasm-apps/${OUT_FILE} ${APP_SRC}
  52. if [ -f ${OUT_DIR}/wasm-apps/${OUT_FILE} ]; then
  53. echo "build ${OUT_FILE} success"
  54. else
  55. echo "build ${OUT_FILE} fail"
  56. fi
  57. done
  58. echo "#################### build wasm apps done"
  59. echo "#################### aot-compile"
  60. WAMRC=${WAMR_DIR}/wamr-compiler/build/wamrc
  61. ${WAMRC} \
  62. -o ${OUT_DIR}/wasm-apps/${OUT_FILE}.aot \
  63. --size-level=0 \
  64. ${OUT_DIR}/wasm-apps/${OUT_FILE}
  65. echo "#################### aot-compile w/ signature"
  66. WAMRC=${WAMR_DIR}/wamr-compiler/build/wamrc
  67. ${WAMRC} \
  68. -o ${OUT_DIR}/wasm-apps/${OUT_FILE}.aot.signature \
  69. --size-level=0 \
  70. --native-lib=${OUT_DIR}/signature.so \
  71. ${OUT_DIR}/wasm-apps/${OUT_FILE}
  72. echo "#################### aot-compile (--bounds-checks=1)"
  73. ${WAMRC} \
  74. -o ${OUT_DIR}/wasm-apps/${OUT_FILE}.aot.bounds-checks \
  75. --size-level=0 \
  76. --bounds-checks=1 \
  77. ${OUT_DIR}/wasm-apps/${OUT_FILE}
  78. echo "#################### aot-compile (--bounds-checks=1) w/ signature"
  79. ${WAMRC} \
  80. -o ${OUT_DIR}/wasm-apps/${OUT_FILE}.aot.signature.bounds-checks \
  81. --size-level=0 \
  82. --native-lib=${OUT_DIR}/signature.so \
  83. --bounds-checks=1 \
  84. ${OUT_DIR}/wasm-apps/${OUT_FILE}