build.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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
  36. echo "##################### build wasm apps"
  37. cd ${WASM_APPS}
  38. for i in `ls *.c`
  39. do
  40. APP_SRC="$i"
  41. OUT_FILE=${i%.*}.wasm
  42. # use WAMR SDK to build out the .wasm binary
  43. /opt/wasi-sdk/bin/clang \
  44. -mexec-model=reactor \
  45. -Os -z stack-size=4096 -Wl,--initial-memory=65536 \
  46. -Wl,--allow-undefined \
  47. -o ${OUT_DIR}/wasm-apps/${OUT_FILE} ${APP_SRC}
  48. if [ -f ${OUT_DIR}/wasm-apps/${OUT_FILE} ]; then
  49. echo "build ${OUT_FILE} success"
  50. else
  51. echo "build ${OUT_FILE} fail"
  52. fi
  53. done
  54. echo "#################### build wasm apps done"
  55. echo "#################### aot-compile"
  56. WAMRC=${WAMR_DIR}/wamr-compiler/build/wamrc
  57. ${WAMRC} -o ${OUT_DIR}/wasm-apps/${OUT_FILE}.aot ${OUT_DIR}/wasm-apps/${OUT_FILE}
  58. echo "#################### aot-compile (--bounds-checks=1)"
  59. ${WAMRC} -o ${OUT_DIR}/wasm-apps/${OUT_FILE}.aot.bounds-checks --bounds-checks=1 ${OUT_DIR}/wasm-apps/${OUT_FILE}