• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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