summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/menuconfig.sh
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/menuconfig.sh')
-rwxr-xr-xfluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/menuconfig.sh223
1 files changed, 223 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/menuconfig.sh b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/menuconfig.sh
new file mode 100755
index 000000000..b2f6fa628
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/wamr-sdk/menuconfig.sh
@@ -0,0 +1,223 @@
+#!/bin/bash
+
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+
+usage ()
+{
+ echo "menuconfig.sh [options]"
+ echo " -x [config file path name]"
+ exit 1
+}
+
+
+while getopts "x:" opt
+do
+ case $opt in
+ x)
+ wamr_config_cmake_file=$OPTARG
+ ;;
+ ?)
+ echo "Unknown arg: $arg"
+ usage
+ exit 1
+ ;;
+ esac
+done
+
+
+if [ -z $wamr_config_cmake_file ]; then
+ usage
+ exit
+fi
+
+
+function set_build_target () {
+ target=$1
+
+ if [[ "${target}" = "X86_64" ]]; then
+ echo -e "set (WAMR_BUILD_TARGET \"X86_64\")" >> ${wamr_config_cmake_file}
+ elif [[ "${target}" = "X86_32" ]]; then
+ echo -e "set (WAMR_BUILD_TARGET \"X86_32\")" >> ${wamr_config_cmake_file}
+ else
+ echo "unknown build target."
+ exit 1
+ fi
+}
+
+function set_build_platform () {
+ platform=$1
+
+ if [[ "${platform}" = "linux" ]]; then
+ echo -e "set (WAMR_BUILD_PLATFORM \"linux\")" >> ${wamr_config_cmake_file}
+ # TODO: add other platforms
+ else
+ echo "${platform} platform currently not supported"
+ exit 1
+ fi
+}
+
+# input: array of selected exec modes [aot jit interp]
+function set_exec_mode () {
+ modes=($1)
+
+ for mode in ${modes[@]}
+ do
+ if [[ "$mode" = "aot" ]]; then
+ echo "set (WAMR_BUILD_AOT 1)" >> ${wamr_config_cmake_file}
+ elif [[ "$mode" = "jit" ]]; then
+ echo "set (WAMR_BUILD_JIT 1)" >> ${wamr_config_cmake_file}
+ BUILD_LLVM="TRUE"
+ elif [[ "$mode" = "interp" ]]; then
+ echo "set (WAMR_BUILD_INTERP 1)" >> ${wamr_config_cmake_file}
+ else
+ echo "unknown execute mode."
+ exit 1
+ fi
+ done
+}
+
+function set_libc_support () {
+ libc=$1
+
+ if [ "$libc" = "WASI" ]; then
+ echo "set (WAMR_BUILD_LIBC_WASI 1)" >> ${wamr_config_cmake_file}
+ else
+ echo "set (WAMR_BUILD_LIBC_BUILTIN 1)" >> ${wamr_config_cmake_file}
+ fi
+}
+
+function set_app_framework () {
+ app_support=$1
+
+ if [ "$app_support" = "TRUE" ]; then
+ echo "set (WAMR_BUILD_APP_FRAMEWORK 1)" >> ${wamr_config_cmake_file}
+ fi
+}
+
+# input: array of selected app modules
+function set_app_module () {
+ modules=($1)
+
+ for module in ${modules[*]}
+ do
+ if [ "${module}" = "all" ]; then
+ cmake_app_list="WAMR_APP_BUILD_ALL"
+ break
+ fi
+
+ cmake_app_list="${cmake_app_list} WAMR_APP_BUILD_${module^^}"
+ done
+
+ # APP module list
+ if [ -n "${cmake_app_list}" ]; then
+ echo "set (WAMR_BUILD_APP_LIST ${cmake_app_list# })" >> ${wamr_config_cmake_file}
+ fi
+}
+
+
+
+
+sdk_root=$(cd "$(dirname "$0")/" && pwd)
+wamr_root=${sdk_root}/..
+
+if [ ! `command -v menuconfig` ]; then
+ echo "Can't find kconfiglib python lib on this computer"
+ echo "Downloading it through pip"
+ echo "If this fails, you can try `pip install kconfiglib` to install it manually"
+ echo "Or download the repo from https://github.com/ulfalizer/Kconfiglib"
+
+ pip install kconfiglib
+fi
+
+if [ -f ".wamr_modules" ]; then
+ rm -f .wamr_modules
+fi
+
+# get all modules under core/app-framework
+for module in `ls ${wamr_root}/core/app-framework -F | grep "/$" | grep -v "base" | grep -v "app-native-shared" | grep -v "template"`
+do
+ module=${module%*/}
+ echo "config APP_BUILD_${module^^}" >> .wamr_modules
+ echo " bool \"enable ${module}\"" >> .wamr_modules
+done
+
+menuconfig Kconfig
+[ $? -eq 0 ] || exit $?
+
+if [ ! -e ".config" ]; then
+ exit 0
+fi
+
+# parse platform
+platform=`cat .config | grep "^CONFIG_PLATFORM"`
+platform=${platform%*=y}
+platform=${platform,,}
+platform=${platform#config_platform_}
+
+# parse target
+target=`cat .config | grep "^CONFIG_TARGET"`
+target=${target%*=y}
+target=${target#CONFIG_TARGET_}
+
+# parse execution mode
+modes=`cat .config | grep "^CONFIG_EXEC"`
+mode_list=""
+for mode in ${modes}
+do
+ mode=${mode%*=y}
+ mode=${mode#CONFIG_EXEC_}
+ mode_list="${mode_list} ${mode,,}"
+done
+if [ -z "${mode_list}" ]; then
+ echo "execution mode are not selected"
+ exit 1
+fi
+
+# parse libc support
+libc=`cat .config | grep "^CONFIG_LIBC"`
+libc=${libc%*=y}
+if [ "${libc}" = "CONFIG_LIBC_WASI" ]; then
+ libc_support="WASI"
+else
+ libc_support="BUILTIN"
+fi
+
+# parse application framework options
+app_option=`cat .config | grep "^CONFIG_APP_FRAMEWORK"`
+app_option=${app_option%*=y}
+app_option=${app_option#CONFIG_APP_FRAMEWORK_}
+
+if [ "${app_option}" != "DISABLE" ]; then
+ app_enable="TRUE"
+
+ # Default components
+ if [ "${app_option}" = "DEFAULT" ]; then
+ app_list="base connection sensor"
+ # All components
+ elif [ "${app_option}" = "ALL" ]; then
+ app_list="all"
+ # Customize
+ elif [ "${app_option}" = "CUSTOM" ]; then
+ app_option=`cat .config | grep "^CONFIG_APP_BUILD"`
+ app_list="base"
+ for app in ${app_option}
+ do
+ app=${app%*=y}
+ app=${app#CONFIG_APP_BUILD_}
+ app_list="${app_list} ${app,,}"
+ done
+ fi
+fi
+
+if [[ -f $wamr_config_cmake_file ]]; then
+ rm $wamr_config_cmake_file
+fi
+
+set_build_target ${target}
+set_build_platform ${platform}
+set_exec_mode "${mode_list[*]}"
+set_libc_support ${libc_support}
+set_app_module "${app_list[*]}"
+set_app_framework ${app_enable}