diff --git a/Makefile b/Makefile index c92b2733..ff44d22f 100644 --- a/Makefile +++ b/Makefile @@ -15,71 +15,56 @@ # specific language governing permissions and limitations # under the License. -OPTEE_PATH ?= $(OPTEE_DIR) -OPTEE_BUILD_PATH ?= $(OPTEE_PATH)/build -OPTEE_OS_PATH ?= $(OPTEE_PATH)/optee_os -OPTEE_CLIENT_PATH ?= $(OPTEE_PATH)/optee_client - -CCACHE ?= $(shell which ccache) +ifneq ($V,1) + q := @ + echo := @echo +else + q := + echo := @: +endif EXAMPLES = $(wildcard examples/*) EXAMPLES_INSTALL = $(EXAMPLES:%=%-install) EXAMPLES_CLEAN = $(EXAMPLES:%=%-clean) ifneq ($(ARCH), arm) - VENDOR := qemu_v8.mk - AARCH_CROSS_COMPILE := $(OPTEE_PATH)/toolchains/aarch64/bin/aarch64-linux-gnu- - HOST_TARGET := aarch64-unknown-linux-gnu - TA_TARGET := aarch64-unknown-linux-gnu + CROSS_COMPILE ?= aarch64-linux-gnu- + TARGET := aarch64-unknown-linux-gnu else - VENDOR := qemu.mk - ARCH_CROSS_COMPILE := $(OPTEE_PATH)/toolchains/aarch32/bin/arm-linux-gnueabihf- - HOST_TARGET := arm-unknown-linux-gnueabihf - TA_TARGET := arm-unknown-linux-gnueabihf + CROSS_COMPILE ?= arm-linux-gnueabihf- + TARGET := arm-unknown-linux-gnueabihf endif -all: toolchains optee-os optee-client examples -optee: toolchains optee-os optee-client - -toolchains: - make -C $(OPTEE_BUILD_PATH) -f $(VENDOR) toolchains - -optee-os: - make -C $(OPTEE_BUILD_PATH) -f $(VENDOR) optee-os +export ARCH -OPTEE_CLIENT_FLAGS ?= CROSS_COMPILE="$(CCACHE) $(AARCH_CROSS_COMPILE)" \ - CFG_TEE_BENCHMARK=n \ - CFG_TA_TEST_PATH=y \ - WITH_TEEACL=0 - -optee-client: - make -C $(OPTEE_CLIENT_PATH) $(OPTEE_CLIENT_FLAGS) +.PHONY: all +ifneq ($(wildcard $(TA_DEV_KIT_DIR)/host_include/conf.mk),) +all: examples examples-install +else +all: + $(q)echo "TA_DEV_KIT_DIR is not correctly defined" && false +endif -examples: $(EXAMPLES) toolchains optee-os optee-client +examples: $(EXAMPLES) $(EXAMPLES): - make -C $@ + $(q)make -C $@ CROSS_COMPILE=$(CROSS_COMPILE) TA_DEV_KIT_DIR=$(TA_DEV_KIT_DIR) \ + OPTEE_CLIENT_EXPORT=$(OPTEE_CLIENT_EXPORT) examples-install: $(EXAMPLES_INSTALL) -$(EXAMPLES_INSTALL): - install -D $(@:%-install=%)/host/target/$(HOST_TARGET)/release/$(@:examples/%-install=%) -t out/host/ - install -D $(@:%-install=%)/ta/target/$(TA_TARGET)/release/*.ta -t out/ta/ - if [ -d "$(@:%-install=%)/plugin/target/" ]; then \ - install -D $(@:%-install=%)/plugin/target/$(HOST_TARGET)/release/*.plugin.so -t out/plugin/; \ +$(EXAMPLES_INSTALL): examples + install -D $(@:%-install=%)/host/target/$(TARGET)/release/$(@:examples/%-install=%) -t out/host/ + install -D $(@:%-install=%)/ta/target/$(TARGET)/release/*.ta -t out/ta/ + $(q)if [ -d "$(@:%-install=%)/plugin/target/" ]; then \ + install -D $(@:%-install=%)/plugin/target/$(TARGET)/release/*.plugin.so -t out/plugin/; \ fi -optee-os-clean: - make -C $(OPTEE_OS_PATH) O=out/arm clean - -optee-client-clean: - make -C $(OPTEE_CLIENT_PATH) $(OPTEE_CLIENT_CLEAN_FLAGS) clean - examples-clean: $(EXAMPLES_CLEAN) out-clean $(EXAMPLES_CLEAN): - make -C $(@:-clean=) clean + $(q)make -C $(@:-clean=) clean out-clean: rm -rf out -.PHONY: clean optee-os-clean optee-client-clean $(EXAMPLES) $(EXAMPLES_CLEAN) +.PHONY: clean $(EXAMPLES) $(EXAMPLES_CLEAN) -clean: optee-os-clean optee-client-clean $(EXAMPLES_CLEAN) +clean: $(EXAMPLES_CLEAN) diff --git a/environment b/environment deleted file mode 100644 index 3216d099..00000000 --- a/environment +++ /dev/null @@ -1,41 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -export RUST_TARGET_PATH="$(pwd)" -export RUST_COMPILER_RT_ROOT=$RUST_TARGET_PATH/rust/rust/src/llvm-project/compiler-rt -if [ -z "$OPTEE_DIR" ] -then - export OPTEE_DIR="$(pwd)/optee" -fi -export OPTEE_OS_DIR="$OPTEE_DIR/optee_os" -export OPTEE_CLIENT_DIR="$OPTEE_DIR/optee_client/out" -export OPTEE_CLIENT_INCLUDE="$OPTEE_DIR/optee_client/out/export/usr/include" -if [ "$ARCH" = "arm" ] -then - export ARCH="arm" - export PATH=$PATH:$OPTEE_DIR/toolchains/aarch32/bin - export VENDOR="qemu.mk" - export OPTEE_OS_INCLUDE="$OPTEE_DIR/optee_os/out/arm/export-ta_arm32/include" - export CC=$OPTEE_DIR/toolchains/aarch32/bin/arm-linux-gnueabihf-gcc -else - # export ARCH="aarch64" # comment this because currently optee_os cannot be compiled in the aarch64 target - unset ARCH - export PATH=$PATH:$OPTEE_DIR/toolchains/aarch64/bin - export VENDOR="qemu_v8.mk" - export OPTEE_OS_INCLUDE="$OPTEE_DIR/optee_os/out/arm/export-ta_arm64/include" - export CC=$OPTEE_DIR/toolchains/aarch64/bin/aarch64-linux-gnu-gcc -fi diff --git a/setup.sh b/setup.sh index fda0e089..7e439d1f 100755 --- a/setup.sh +++ b/setup.sh @@ -38,52 +38,3 @@ fi # rustup-wrapped command to trigger installation. We've arbitrarily chosen # "cargo --version" since it has no other effect. cargo --version >/dev/null - -######################################################## -# initialize submodules: optee_os / optee_client / build -OPTEE_RELEASE_VERSION=3.20.0 - -if [[ -z "$OPTEE_DIR" ]] || [[ "$OPTEE_DIR" == "$(pwd)/optee" ]] -then - OPTEE_DIR="$(pwd)/optee" - echo "optee dir: $OPTEE_DIR" - OPTEE_SUBMODULES=(optee_os optee_client build) - - if [ ! -d "$OPTEE_DIR" ] - then - mkdir "$OPTEE_DIR" - else - rm -r "$OPTEE_DIR"/* - fi - - # download optee release - echo "Downloading optee release..." - for submodule in ${OPTEE_SUBMODULES[*]} - do - echo "Downloading $submodule..." - curl --retry 5 -s -S \ - -L "https://github.com/OP-TEE/$submodule/archive/refs/tags/$OPTEE_RELEASE_VERSION.tar.gz" \ - -o "$OPTEE_DIR/$OPTEE_RELEASE_VERSION.tar.gz" - if [ ! $? -eq 0 ] - then - rm "$OPTEE_DIR/$OPTEE_RELEASE_VERSION.tar.gz" && \ - echo "Download failed" && \ - exit 1 - fi - echo "Uncompressing $submodule..." - mkdir -p "$OPTEE_DIR/$submodule" && \ - tar zxf "$OPTEE_DIR/$OPTEE_RELEASE_VERSION.tar.gz" \ - -C "$OPTEE_DIR/$submodule" --strip-components 1 - if [ ! $? -eq 0 ] - then - rm "$OPTEE_DIR/$OPTEE_RELEASE_VERSION.tar.gz" && \ - rm -r "$OPTEE_DIR/$submodule" && \ - echo "Downloaded file is damaged" && \ - exit 1 - fi - rm "$OPTEE_DIR/$OPTEE_RELEASE_VERSION.tar.gz" - done - echo "Download finished" -else - echo "OPTEE_DIR has been set, omit to download optee submodules" -fi