123 lines
2.7 KiB
Bash
123 lines
2.7 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||
|
|
||
|
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
|
||
|
|
||
|
if [ ! -e ".config" ]; then
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
|
||
|
args=""
|
||
|
function args_add_bool()
|
||
|
{
|
||
|
args="${args} -$1"
|
||
|
}
|
||
|
|
||
|
function args_add_one()
|
||
|
{
|
||
|
args="${args} -$1 $2"
|
||
|
}
|
||
|
|
||
|
function args_add_array()
|
||
|
{
|
||
|
args="${args} -$1 ${2#,}"
|
||
|
}
|
||
|
|
||
|
profile=`cat .config | grep "^CONFIG_WAMR_SDK_PROFILE"`
|
||
|
profile=${profile#CONFIG_WAMR_SDK_PROFILE=\"}
|
||
|
profile=${profile%*\"}
|
||
|
args_add_one n ${profile}
|
||
|
|
||
|
platform=`cat .config | grep "^CONFIG_PLATFORM"`
|
||
|
platform=${platform%*=y}
|
||
|
platform=${platform,,}
|
||
|
platform=${platform#config_platform_}
|
||
|
if [ -n "${platform}" ]; then
|
||
|
args_add_one p ${platform#config_platform_}
|
||
|
fi
|
||
|
|
||
|
target=`cat .config | grep "^CONFIG_TARGET"`
|
||
|
target=${target%*=y}
|
||
|
target=${target#CONFIG_TARGET_}
|
||
|
if [ -n "${target}" ]; then
|
||
|
args_add_one t ${target#CONFIG_TARGET_}
|
||
|
fi
|
||
|
|
||
|
|
||
|
modes=`cat .config | grep "^CONFIG_EXEC"`
|
||
|
arg_mode=""
|
||
|
for mode in ${modes}
|
||
|
do
|
||
|
mode=${mode%*=y}
|
||
|
mode=${mode#CONFIG_EXEC_}
|
||
|
arg_mode="${arg_mode},${mode,,}"
|
||
|
done
|
||
|
if [ -z "${arg_mode}" ]; then
|
||
|
echo "execution mode are not selected"
|
||
|
exit 1
|
||
|
fi
|
||
|
args_add_array m "${arg_mode}"
|
||
|
|
||
|
libc=`cat .config | grep "^CONFIG_LIBC"`
|
||
|
libc=${libc%*=y}
|
||
|
if [ "${libc}" = "CONFIG_LIBC_WASI" ]; then
|
||
|
args_add_bool w
|
||
|
fi
|
||
|
|
||
|
app_en=`cat .config | grep "^CONFIG_APP_FRAMEWORK"`
|
||
|
app_en=${app_en%*=y}
|
||
|
app_en=${app_en,,}
|
||
|
if [ -n "${app_en}" ]; then
|
||
|
args_add_bool a
|
||
|
fi
|
||
|
|
||
|
apps=`cat .config | grep "^CONFIG_APP_BUILD"`
|
||
|
arg_app=""
|
||
|
for app in ${apps}
|
||
|
do
|
||
|
app=${app%*=y}
|
||
|
app=${app#CONFIG_APP_BUILD_}
|
||
|
arg_app="${arg_app},${app,,}"
|
||
|
done
|
||
|
|
||
|
if [ -n "${app_en}" ]; then
|
||
|
arg_app="${arg_app},base"
|
||
|
args_add_array l "${arg_app}"
|
||
|
fi
|
||
|
|
||
|
extra_path=`cat .config | grep "^CONFIG_EXTRA_INCLUDE_PATH"`
|
||
|
if [ -n "${extra_path}" ]; then
|
||
|
extra_path=${extra_path#CONFIG_EXTRA_INCLUDE_PATH=\"}
|
||
|
extra_path=${extra_path%*\"}
|
||
|
args_add_one e ${extra_path}
|
||
|
fi
|
||
|
|
||
|
args="-g ${args}"
|
||
|
./build_sdk.sh ${args}
|