1# Copyright (c) 2023 Institute of Parallel And Distributed Systems (IPADS), Shanghai Jiao Tong University (SJTU) 2# Licensed under the Mulan PSL v2. 3# You can use this software according to the terms and conditions of the Mulan PSL v2. 4# You may obtain a copy of Mulan PSL v2 at: 5# http://license.coscl.org.cn/MulanPSL2 6# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR 7# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR 8# PURPOSE. 9# See the Mulan PSL v2 for more details. 10set -e 11 12# paths setting 13OH_TOP_DIR=$1 14CHCORE_DIR=$2 15OH_TEE_FRAMEWORK_DIR=$3 16COMPILER_DIR=$4 17COMPILER_VER=$5 18if [[ -z "$OH_TOP_DIR" ]]; then 19 OH_TOP_DIR=$(pwd)/../../../.. 20fi 21if [[ -z "$CHCORE_DIR" ]]; then 22 CHCORE_DIR=$(pwd)/.. 23fi 24if [[ -z "$OH_TEE_FRAMEWORK_DIR" ]]; then 25 OH_TEE_FRAMEWORK_DIR=$(pwd)/../../tee_os_framework 26fi 27OH_TEE_PREBUILD_DIR=${OH_TEE_FRAMEWORK_DIR}/prebuild 28OH_TEE_HEADERS_DIR=${OH_TEE_PREBUILD_DIR}/tee-kernel-local-release/headers 29OH_TEE_LIBS_DIR=${OH_TEE_PREBUILD_DIR}/tee-kernel-local-release/libs/aarch64 30THIRD_PARTY=${OH_TOP_DIR}/third_party 31# default compiler and version setting 32if [[ -z "$COMPILER_DIR" ]]; then 33 COMPILER_DIR=${OH_TOP_DIR}/prebuilts/clang/ohos/linux-x86_64/llvm 34fi 35if [[ -z "$COMPILER_VER" ]]; then 36 COMPILER_VER=15.0.4 37fi 38# clean framework 39cd ${OH_TEE_FRAMEWORK_DIR}/build 40./clean_framework.sh ${OH_TEE_FRAMEWORK_DIR} 41# compile chcore 42cd ${CHCORE_DIR} 43rm -rf oh_tee 44make clean && make -j$(nproc) CHCORE_COMPILER_DIR=${COMPILER_DIR} OH_DIR=${OH_TOP_DIR} 45 46mkdir -p ramdisk-dir 47cp libc_shared.so ${CHCORE_DIR}/ramdisk-dir/libc_shared.so 48 49 50mkdir -p ${OH_TEE_LIBS_DIR} 51cp libc_shared.so ${OH_TEE_LIBS_DIR}/libc_shared.so 52mkdir -p ${OH_TEE_FRAMEWORK_DIR}/output/aarch64/libs/ 53cp libc_shared.so ${OH_TEE_FRAMEWORK_DIR}/output/aarch64/libs/libc_shared.so 54mkdir -p ${OH_TEE_FRAMEWORK_DIR}/output/aarch64 55cp libc_shared.so ${OH_TEE_FRAMEWORK_DIR}/output/aarch64/libc_shared.so 56 57# libc and libohtee headers for framework 58mkdir -p ${OH_TEE_HEADERS_DIR}/libc 59mkdir -p ${OH_TEE_HEADERS_DIR}/sys 60cp -r ${CHCORE_DIR}/user/chcore-libc/musl-libc/install/include/* ${OH_TEE_HEADERS_DIR}/libc/ 61cp ${CHCORE_DIR}/user/chcore-libs/sys-libs/libohtee/include/* ${OH_TEE_HEADERS_DIR}/sys/ 62# go to framework and build it 63cd ${OH_TEE_FRAMEWORK_DIR}/build 64./build_framework.sh oh_64 ${CHCORE_DIR}/oh_tee ${COMPILER_DIR} ${COMPILER_VER} ${OH_TEE_FRAMEWORK_DIR} ${THIRD_PARTY} rk3568 65# compile again to put the apps into ramdisk-dir 66cd ${CHCORE_DIR} 67make clean 68mkdir -p ramdisk-dir 69cp oh_tee/apps/* ramdisk-dir 70make -j$(nproc) OH_DIR=${OH_TOP_DIR} 71