br-ext: Rename OP-TEE packages with _ext suffix
Rename OP-TEE packages in br-ext with a _ext suffix so that
they do not conflict with the OP-TEE packages from Buildroot.
This change essentially renames Buildroot configuration switches
BR2_OPTEE_* to BR2_OPTEE_*_EXT_* without changing the current build
process.
This change is needed for OP-TEE build environment to synchronize with
Buildroot GIT version [1] or later in the Buildroot integration tree.
[1] points where OP-TEE packages were introduced in Buildroot,
right after 2019.02 is released. This was tested with all Buildroot
release tags from 2018.11 to 2020.02, and recent 2020.05-rc1.
Link: [1] https://git.buildroot.net/buildroot/commit/?id=da49312af9e0c3e7f6df50e7d6f77e1fa2921b7a
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
diff --git a/br-ext/Config.in b/br-ext/Config.in
index 4c04da8..fb62051 100644
--- a/br-ext/Config.in
+++ b/br-ext/Config.in
@@ -1,5 +1,5 @@
-source "$BR2_EXTERNAL_OPTEE_PATH/package/optee_os/Config.in"
-source "$BR2_EXTERNAL_OPTEE_PATH/package/optee_client/Config.in"
-source "$BR2_EXTERNAL_OPTEE_PATH/package/optee_test/Config.in"
-source "$BR2_EXTERNAL_OPTEE_PATH/package/optee_examples/Config.in"
-source "$BR2_EXTERNAL_OPTEE_PATH/package/optee_benchmark/Config.in"
+source "$BR2_EXTERNAL_OPTEE_PATH/package/optee_os_ext/Config.in"
+source "$BR2_EXTERNAL_OPTEE_PATH/package/optee_client_ext/Config.in"
+source "$BR2_EXTERNAL_OPTEE_PATH/package/optee_test_ext/Config.in"
+source "$BR2_EXTERNAL_OPTEE_PATH/package/optee_examples_ext/Config.in"
+source "$BR2_EXTERNAL_OPTEE_PATH/package/optee_benchmark_ext/Config.in"
diff --git a/br-ext/configs/optee_examples b/br-ext/configs/optee_examples
index 5d10dd8..94d84c1 100644
--- a/br-ext/configs/optee_examples
+++ b/br-ext/configs/optee_examples
@@ -1 +1 @@
-BR2_PACKAGE_OPTEE_EXAMPLES=y
+BR2_PACKAGE_OPTEE_EXAMPLES_EXT=y
diff --git a/br-ext/configs/optee_generic b/br-ext/configs/optee_generic
index efb7ad5..8d231f5 100644
--- a/br-ext/configs/optee_generic
+++ b/br-ext/configs/optee_generic
@@ -4,4 +4,4 @@
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_CPIO_GZIP=y
BR2_PACKAGE_HOST_E2FSPROGS=y
-BR2_PACKAGE_OPTEE_CLIENT=y
+BR2_PACKAGE_OPTEE_CLIENT_EXT=y
diff --git a/br-ext/configs/optee_test b/br-ext/configs/optee_test
index cb14791..1f25dfa 100644
--- a/br-ext/configs/optee_test
+++ b/br-ext/configs/optee_test
@@ -1 +1 @@
-BR2_PACKAGE_OPTEE_TEST=y
+BR2_PACKAGE_OPTEE_TEST_EXT=y
diff --git a/br-ext/package/optee_benchmark/optee_benchmark.mk b/br-ext/package/optee_benchmark/optee_benchmark.mk
deleted file mode 100644
index 6763489..0000000
--- a/br-ext/package/optee_benchmark/optee_benchmark.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-OPTEE_BENCHMARK_VERSION = 1.0
-OPTEE_BENCHMARK_SOURCE = local
-OPTEE_BENCHMARK_SITE = $(BR2_PACKAGE_OPTEE_BENCHMARK_SITE)
-OPTEE_BENCHMARK_SITE_METHOD = local
-OPTEE_BENCHMARK_INSTALL_STAGING = YES
-OPTEE_BENCHMARK_DEPENDENCIES = optee_client libyaml
-
-$(eval $(cmake-package))
diff --git a/br-ext/package/optee_benchmark/Config.in b/br-ext/package/optee_benchmark_ext/Config.in
similarity index 71%
rename from br-ext/package/optee_benchmark/Config.in
rename to br-ext/package/optee_benchmark_ext/Config.in
index 495f546..e6638ab 100644
--- a/br-ext/package/optee_benchmark/Config.in
+++ b/br-ext/package/optee_benchmark_ext/Config.in
@@ -1,10 +1,10 @@
-config BR2_PACKAGE_OPTEE_BENCHMARK
+config BR2_PACKAGE_OPTEE_BENCHMARK_EXT
bool "optee_benchmark"
select BR2_PACKAGE_LIBYAML
help
http://github.org/OP-TEE/optee_benchmark
-config BR2_PACKAGE_OPTEE_BENCHMARK_SITE
+config BR2_PACKAGE_OPTEE_BENCHMARK_EXT_SITE
string "OP-TEE benchmark path"
default ""
help
diff --git a/br-ext/package/optee_benchmark_ext/optee_benchmark_ext.mk b/br-ext/package/optee_benchmark_ext/optee_benchmark_ext.mk
new file mode 100644
index 0000000..f55500e
--- /dev/null
+++ b/br-ext/package/optee_benchmark_ext/optee_benchmark_ext.mk
@@ -0,0 +1,8 @@
+OPTEE_BENCHMARK_EXT_VERSION = 1.0
+OPTEE_BENCHMARK_EXT_SOURCE = local
+OPTEE_BENCHMARK_EXT_SITE = $(BR2_PACKAGE_OPTEE_BENCHMARK_EXT_SITE)
+OPTEE_BENCHMARK_EXT_SITE_METHOD = local
+OPTEE_BENCHMARK_EXT_INSTALL_STAGING = YES
+OPTEE_BENCHMARK_EXT_DEPENDENCIES = optee_client_ext libyaml
+
+$(eval $(cmake-package))
diff --git a/br-ext/package/optee_client/optee_client.mk b/br-ext/package/optee_client/optee_client.mk
deleted file mode 100644
index 2a7f3b7..0000000
--- a/br-ext/package/optee_client/optee_client.mk
+++ /dev/null
@@ -1,33 +0,0 @@
-OPTEE_CLIENT_VERSION = 1.0
-OPTEE_CLIENT_SOURCE = local
-OPTEE_CLIENT_SITE = $(BR2_PACKAGE_OPTEE_CLIENT_SITE)
-OPTEE_CLIENT_SITE_METHOD = local
-OPTEE_CLIENT_INSTALL_STAGING = YES
-
-ifeq ($(BR2_PACKAGE_OPTEE_BENCHMARK),y)
-OPTEE_CLIENT_CONF_OPTS = -DCFG_TEE_BENCHMARK=y
-endif
-
-OPTEE_CLIENT_CONF_OPTS += -DCFG_TA_TEST_PATH=y
-
-define OPTEE_CLIENT_INSTALL_SUPPLICANT_SCRIPT
- $(INSTALL) -m 0755 -D $(OPTEE_CLIENT_PKGDIR)/S30optee \
- $(TARGET_DIR)/etc/init.d/S30optee
-endef
-
-define OPTEE_CLIENT_INSTALL_INIT_SYSV
- $(OPTEE_CLIENT_INSTALL_SUPPLICANT_SCRIPT)
-endef
-
-# User tee is used to run tee-supplicant because access to /dev/teepriv0 is
-# restricted to group tee.
-# Any user in group teeclnt (such as test) may run client applications.
-# Any user in group ion may access /dev/ion
-define OPTEE_CLIENT_USERS
- tee -1 tee -1 * - /bin/sh - TEE user
- - -1 teeclnt -1 - - - - TEE users group
- - -1 ion -1 - - - - ION users group
- test -1 test -1 - - /bin/sh teeclnt,ion Test user, may run TEE client applications
-endef
-
-$(eval $(cmake-package))
diff --git a/br-ext/package/optee_client/Config.in b/br-ext/package/optee_client_ext/Config.in
similarity index 61%
rename from br-ext/package/optee_client/Config.in
rename to br-ext/package/optee_client_ext/Config.in
index 435b6ee..6ccd991 100644
--- a/br-ext/package/optee_client/Config.in
+++ b/br-ext/package/optee_client_ext/Config.in
@@ -1,10 +1,10 @@
-config BR2_PACKAGE_OPTEE_CLIENT
+config BR2_PACKAGE_OPTEE_CLIENT_EXT
bool "optee_client"
help
http://github.org/OP-TEE/optee_client
-if BR2_PACKAGE_OPTEE_CLIENT
-config BR2_PACKAGE_OPTEE_CLIENT_SITE
+if BR2_PACKAGE_OPTEE_CLIENT_EXT
+config BR2_PACKAGE_OPTEE_CLIENT_EXT_SITE
string "OP-TEE client path"
default ""
help
diff --git a/br-ext/package/optee_client/S30optee b/br-ext/package/optee_client_ext/S30optee
similarity index 100%
rename from br-ext/package/optee_client/S30optee
rename to br-ext/package/optee_client_ext/S30optee
diff --git a/br-ext/package/optee_client_ext/optee_client_ext.mk b/br-ext/package/optee_client_ext/optee_client_ext.mk
new file mode 100644
index 0000000..8da02bd
--- /dev/null
+++ b/br-ext/package/optee_client_ext/optee_client_ext.mk
@@ -0,0 +1,33 @@
+OPTEE_CLIENT_EXT_VERSION = 1.0
+OPTEE_CLIENT_EXT_SOURCE = local
+OPTEE_CLIENT_EXT_SITE = $(BR2_PACKAGE_OPTEE_CLIENT_EXT_SITE)
+OPTEE_CLIENT_EXT_SITE_METHOD = local
+OPTEE_CLIENT_EXT_INSTALL_STAGING = YES
+
+ifeq ($(BR2_PACKAGE_OPTEE_BENCHMARK_EXT),y)
+OPTEE_CLIENT_EXT_CONF_OPTS = -DCFG_TEE_BENCHMARK=ON
+endif
+
+OPTEE_CLIENT_EXT_CONF_OPTS += -DCFG_TA_TEST_PATH=y
+
+define OPTEE_CLIENT_EXT_INSTALL_SUPPLICANT_SCRIPT
+ $(INSTALL) -m 0755 -D $(OPTEE_CLIENT_EXT_PKGDIR)/S30optee \
+ $(TARGET_DIR)/etc/init.d/S30optee
+endef
+
+define OPTEE_CLIENT_EXT_INSTALL_INIT_SYSV
+ $(OPTEE_CLIENT_EXT_INSTALL_SUPPLICANT_SCRIPT)
+endef
+
+# User tee is used to run tee-supplicant because access to /dev/teepriv0 is
+# restricted to group tee.
+# Any user in group teeclnt (such as test) may run client applications.
+# Any user in group ion may access /dev/ion
+define OPTEE_CLIENT_EXT_USERS
+ tee -1 tee -1 * - /bin/sh - TEE user
+ - -1 teeclnt -1 - - - - TEE users group
+ - -1 ion -1 - - - - ION users group
+ test -1 test -1 - - /bin/sh teeclnt,ion Test user, may run TEE client applications
+endef
+
+$(eval $(cmake-package))
diff --git a/br-ext/package/optee_examples/Config.in b/br-ext/package/optee_examples/Config.in
deleted file mode 100644
index cd7e3fc..0000000
--- a/br-ext/package/optee_examples/Config.in
+++ /dev/null
@@ -1,26 +0,0 @@
-config BR2_PACKAGE_OPTEE_EXAMPLES
- bool "optee_examples"
- help
- http://github.org/OP-TEE/optee_examples
-
-if BR2_PACKAGE_OPTEE_EXAMPLES
-
-config BR2_PACKAGE_OPTEE_EXAMPLES_SITE
- string "OP-TEE examples path"
- default ""
- help
- The path to the source directory of OP-TEE examples
-
-config BR2_PACKAGE_OPTEE_EXAMPLES_SDK
- string "OPTEE SDK path"
- default ""
- help
- some help
-
-config BR2_PACKAGE_OPTEE_EXAMPLES_CROSS_COMPILE
- string "OPTEE cross compiler"
- default ""
- help
- some help
-
-endif
diff --git a/br-ext/package/optee_examples/optee_examples.mk b/br-ext/package/optee_examples/optee_examples.mk
deleted file mode 100644
index c2b1e12..0000000
--- a/br-ext/package/optee_examples/optee_examples.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-OPTEE_EXAMPLES_VERSION = 1.0
-OPTEE_EXAMPLES_SOURCE = local
-OPTEE_EXAMPLES_SITE = $(BR2_PACKAGE_OPTEE_EXAMPLES_SITE)
-OPTEE_EXAMPLES_SITE_METHOD = local
-OPTEE_EXAMPLES_INSTALL_STAGING = YES
-OPTEE_EXAMPLES_DEPENDENCIES = optee_client host-python-pycrypto
-OPTEE_EXAMPLES_SDK = $(BR2_PACKAGE_OPTEE_EXAMPLES_SDK)
-OPTEE_EXAMPLES_CONF_OPTS = -DOPTEE_EXAMPLES_SDK=$(OPTEE_EXAMPLES_SDK)
-
-define OPTEE_EXAMPLES_BUILD_TAS
- @(set -e; for f in $(@D)/*/ta/Makefile; \
- do \
- echo Building $$f && \
- $(MAKE) CROSS_COMPILE="$(shell echo $(BR2_PACKAGE_OPTEE_EXAMPLES_CROSS_COMPILE))" \
- O=out TA_DEV_KIT_DIR=$(OPTEE_EXAMPLES_SDK) \
- $(TARGET_CONFIGURE_OPTS) -C $${f%/*} all; \
- done)
-endef
-
-define OPTEE_EXAMPLES_INSTALL_TAS
- @$(foreach f,$(wildcard $(@D)/*/ta/out/*.ta), \
- mkdir -p $(TARGET_DIR)/lib/optee_armtz && \
- $(INSTALL) -v -p --mode=444 \
- --target-directory=$(TARGET_DIR)/lib/optee_armtz $f \
- &&) true
-endef
-
-OPTEE_EXAMPLES_POST_BUILD_HOOKS += OPTEE_EXAMPLES_BUILD_TAS
-OPTEE_EXAMPLES_POST_INSTALL_TARGET_HOOKS += OPTEE_EXAMPLES_INSTALL_TAS
-
-$(eval $(cmake-package))
diff --git a/br-ext/package/optee_examples_ext/Config.in b/br-ext/package/optee_examples_ext/Config.in
new file mode 100644
index 0000000..45762cf
--- /dev/null
+++ b/br-ext/package/optee_examples_ext/Config.in
@@ -0,0 +1,26 @@
+config BR2_PACKAGE_OPTEE_EXAMPLES_EXT
+ bool "optee_examples"
+ help
+ http://github.org/OP-TEE/optee_examples
+
+if BR2_PACKAGE_OPTEE_EXAMPLES_EXT
+
+config BR2_PACKAGE_OPTEE_EXAMPLES_EXT_SITE
+ string "OP-TEE examples path"
+ default ""
+ help
+ The path to the source directory of OP-TEE examples
+
+config BR2_PACKAGE_OPTEE_EXAMPLES_EXT_SDK
+ string "OPTEE SDK path"
+ default ""
+ help
+ some help
+
+config BR2_PACKAGE_OPTEE_EXAMPLES_EXT_CROSS_COMPILE
+ string "OPTEE cross compiler"
+ default ""
+ help
+ some help
+
+endif
diff --git a/br-ext/package/optee_examples_ext/optee_examples_ext.mk b/br-ext/package/optee_examples_ext/optee_examples_ext.mk
new file mode 100644
index 0000000..f98ee8f
--- /dev/null
+++ b/br-ext/package/optee_examples_ext/optee_examples_ext.mk
@@ -0,0 +1,29 @@
+OPTEE_EXAMPLES_EXT_VERSION = 1.0
+OPTEE_EXAMPLES_EXT_SOURCE = local
+OPTEE_EXAMPLES_EXT_SITE = $(BR2_PACKAGE_OPTEE_EXAMPLES_EXT_SITE)
+OPTEE_EXAMPLES_EXT_SITE_METHOD = local
+OPTEE_EXAMPLES_EXT_INSTALL_STAGING = YES
+OPTEE_EXAMPLES_EXT_DEPENDENCIES = optee_client_ext host-python-pycrypto
+OPTEE_EXAMPLES_EXT_SDK = $(BR2_PACKAGE_OPTEE_EXAMPLES_EXT_SDK)
+OPTEE_EXAMPLES_EXT_CONF_OPTS = -DOPTEE_EXAMPLES_SDK=$(OPTEE_EXAMPLES_EXT_SDK)
+
+define OPTEE_EXAMPLES_EXT_BUILD_TAS
+ @$(foreach f,$(wildcard $(@D)/*/ta/Makefile), \
+ echo Building $f && \
+ $(MAKE) CROSS_COMPILE="$(shell echo $(BR2_PACKAGE_OPTEE_EXAMPLES_EXT_CROSS_COMPILE))" \
+ O=out TA_DEV_KIT_DIR=$(OPTEE_EXAMPLES_EXT_SDK) \
+ $(TARGET_CONFIGURE_OPTS) -C $(dir $f) all &&) true
+endef
+
+define OPTEE_EXAMPLES_EXT_INSTALL_TAS
+ @$(foreach f,$(wildcard $(@D)/*/ta/out/*.ta), \
+ mkdir -p $(TARGET_DIR)/lib/optee_armtz && \
+ $(INSTALL) -v -p --mode=444 \
+ --target-directory=$(TARGET_DIR)/lib/optee_armtz $f \
+ &&) true
+endef
+
+OPTEE_EXAMPLES_EXT_POST_BUILD_HOOKS += OPTEE_EXAMPLES_EXT_BUILD_TAS
+OPTEE_EXAMPLES_EXT_POST_INSTALL_TARGET_HOOKS += OPTEE_EXAMPLES_EXT_INSTALL_TAS
+
+$(eval $(cmake-package))
diff --git a/br-ext/package/optee_os/optee_os.mk b/br-ext/package/optee_os/optee_os.mk
deleted file mode 100644
index 2ca50d1..0000000
--- a/br-ext/package/optee_os/optee_os.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-OPTEE_OS_VERSION = 1.0
-OPTEE_OS_SOURCE = local
-OPTEE_OS_SITE = $(BR2_PACKAGE_OPTEE_OS_SITE)
-OPTEE_OS_SITE_METHOD = local
-OPTEE_OS_SDK = $(BR2_PACKAGE_OPTEE_OS_SDK)
-
-define OPTEE_OS_INSTALL_OPTEE_OS_SHLIBS
- @mkdir -p $(TARGET_DIR)/lib/optee_armtz && \
- for f in $(OPTEE_OS_SDK)/lib/*.ta; do \
- [ -f "$$f" ] || continue; \
- $(INSTALL) -v -p --mode=444 \
- --target-directory=$(TARGET_DIR)/lib/optee_armtz $$f; \
- done
-endef
-
-OPTEE_OS_POST_INSTALL_TARGET_HOOKS += OPTEE_OS_INSTALL_OPTEE_OS_SHLIBS
-
-$(eval $(cmake-package))
diff --git a/br-ext/package/optee_os/CMakeLists.txt b/br-ext/package/optee_os_ext/CMakeLists.txt
similarity index 100%
rename from br-ext/package/optee_os/CMakeLists.txt
rename to br-ext/package/optee_os_ext/CMakeLists.txt
diff --git a/br-ext/package/optee_os/Config.in b/br-ext/package/optee_os_ext/Config.in
similarity index 81%
rename from br-ext/package/optee_os/Config.in
rename to br-ext/package/optee_os_ext/Config.in
index d41909a..2326850 100644
--- a/br-ext/package/optee_os/Config.in
+++ b/br-ext/package/optee_os_ext/Config.in
@@ -1,4 +1,4 @@
-config BR2_PACKAGE_OPTEE_OS
+config BR2_PACKAGE_OPTEE_OS_EXT
bool "optee_os"
help
OP-TEE OS, http://github.org/OP-TEE/optee_os.
@@ -7,15 +7,15 @@
libraries used by TAs when CFG_ULIBS_SHARED=y.
The build of optee_os itself is assumed to have been done previously.
-config BR2_PACKAGE_OPTEE_OS_SITE
+config BR2_PACKAGE_OPTEE_OS_EXT_SITE
string "OP-TEE OS installation package path"
default ""
help
The path to this installation package.
-if BR2_PACKAGE_OPTEE_OS
+if BR2_PACKAGE_OPTEE_OS_EXT
-config BR2_PACKAGE_OPTEE_OS_SDK
+config BR2_PACKAGE_OPTEE_OS_EXT_SDK
string "OPTEE SDK path"
default ""
help
diff --git a/br-ext/package/optee_os_ext/optee_os_ext.mk b/br-ext/package/optee_os_ext/optee_os_ext.mk
new file mode 100644
index 0000000..665b451
--- /dev/null
+++ b/br-ext/package/optee_os_ext/optee_os_ext.mk
@@ -0,0 +1,18 @@
+OPTEE_OS_EXT_VERSION = 1.0
+OPTEE_OS_EXT_SOURCE = local
+OPTEE_OS_EXT_SITE = $(BR2_PACKAGE_OPTEE_OS_EXT_SITE)
+OPTEE_OS_EXT_SITE_METHOD = local
+OPTEE_OS_EXT_SDK = $(BR2_PACKAGE_OPTEE_OS_EXT_SDK)
+
+define OPTEE_OS_EXT_INSTALL_OPTEE_OS_SHLIBS
+ @mkdir -p $(TARGET_DIR)/lib/optee_armtz && \
+ for f in $(OPTEE_OS_EXT_SDK)/lib/*.ta; do \
+ [ -f "$$f" ] || continue; \
+ $(INSTALL) -v -p --mode=444 \
+ --target-directory=$(TARGET_DIR)/lib/optee_armtz $$f; \
+ done
+endef
+
+OPTEE_OS_EXT_POST_INSTALL_TARGET_HOOKS += OPTEE_OS_EXT_INSTALL_OPTEE_OS_SHLIBS
+
+$(eval $(cmake-package))
diff --git a/br-ext/package/optee_test/Config.in b/br-ext/package/optee_test/Config.in
deleted file mode 100644
index 8a435d1..0000000
--- a/br-ext/package/optee_test/Config.in
+++ /dev/null
@@ -1,27 +0,0 @@
-config BR2_PACKAGE_OPTEE_TEST
- bool "optee_test"
- select BR2_PACKAGE_OPTEE_CLIENT
- help
- http://github.org/OP-TEE/optee_test
-
-if BR2_PACKAGE_OPTEE_TEST
-
-config BR2_PACKAGE_OPTEE_TEST_SITE
- string "OP-TEE test path"
- default ""
- help
- The path to the source directory of OP-TEE test
-
-config BR2_PACKAGE_OPTEE_TEST_SDK
- string "OPTEE SDK path"
- default ""
- help
- some help
-
-config BR2_PACKAGE_OPTEE_TEST_CROSS_COMPILE
- string "OPTEE cross compiler"
- default ""
- help
- some help
-
-endif
diff --git a/br-ext/package/optee_test/optee_test.mk b/br-ext/package/optee_test/optee_test.mk
deleted file mode 100644
index 2759206..0000000
--- a/br-ext/package/optee_test/optee_test.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-OPTEE_TEST_VERSION = 1.0
-OPTEE_TEST_SOURCE = local
-OPTEE_TEST_SITE = $(BR2_PACKAGE_OPTEE_TEST_SITE)
-OPTEE_TEST_SITE_METHOD = local
-OPTEE_TEST_INSTALL_STAGING = YES
-OPTEE_TEST_DEPENDENCIES = optee_client openssl host-python-pycrypto
-OPTEE_TEST_SDK = $(BR2_PACKAGE_OPTEE_TEST_SDK)
-OPTEE_TEST_CONF_OPTS = -DOPTEE_TEST_SDK=$(OPTEE_TEST_SDK)
-
-define OPTEE_TEST_BUILD_TAS
- @(set -e; for f in $(@D)/ta/*/Makefile; \
- do \
- echo Building $$f && \
- $(MAKE) CROSS_COMPILE="$(shell echo $(BR2_PACKAGE_OPTEE_TEST_CROSS_COMPILE))" \
- O=out TA_DEV_KIT_DIR=$(OPTEE_TEST_SDK) \
- $(TARGET_CONFIGURE_OPTS) -C $${f%/*} all; \
- done)
-endef
-
-define OPTEE_TEST_INSTALL_TAS
- @$(foreach f,$(wildcard $(@D)/ta/*/out/*.ta), \
- mkdir -p $(TARGET_DIR)/lib/optee_armtz && \
- $(INSTALL) -v -p --mode=444 \
- --target-directory=$(TARGET_DIR)/lib/optee_armtz $f \
- &&) true
-endef
-
-OPTEE_TEST_POST_BUILD_HOOKS += OPTEE_TEST_BUILD_TAS
-OPTEE_TEST_POST_INSTALL_TARGET_HOOKS += OPTEE_TEST_INSTALL_TAS
-
-$(eval $(cmake-package))
diff --git a/br-ext/package/optee_test_ext/Config.in b/br-ext/package/optee_test_ext/Config.in
new file mode 100644
index 0000000..47bc8ca
--- /dev/null
+++ b/br-ext/package/optee_test_ext/Config.in
@@ -0,0 +1,27 @@
+config BR2_PACKAGE_OPTEE_TEST_EXT
+ bool "optee_test"
+ select BR2_PACKAGE_OPTEE_CLIENT_EXT
+ help
+ http://github.org/OP-TEE/optee_test
+
+if BR2_PACKAGE_OPTEE_TEST_EXT
+
+config BR2_PACKAGE_OPTEE_TEST_EXT_SITE
+ string "OP-TEE test path"
+ default ""
+ help
+ The path to the source directory of OP-TEE test
+
+config BR2_PACKAGE_OPTEE_TEST_EXT_SDK
+ string "OPTEE SDK path"
+ default ""
+ help
+ some help
+
+config BR2_PACKAGE_OPTEE_TEST_EXT_CROSS_COMPILE
+ string "OPTEE cross compiler"
+ default ""
+ help
+ some help
+
+endif
diff --git a/br-ext/package/optee_test_ext/optee_test_ext.mk b/br-ext/package/optee_test_ext/optee_test_ext.mk
new file mode 100644
index 0000000..38f5212
--- /dev/null
+++ b/br-ext/package/optee_test_ext/optee_test_ext.mk
@@ -0,0 +1,29 @@
+OPTEE_TEST_EXT_VERSION = 1.0
+OPTEE_TEST_EXT_SOURCE = local
+OPTEE_TEST_EXT_SITE = $(BR2_PACKAGE_OPTEE_TEST_EXT_SITE)
+OPTEE_TEST_EXT_SITE_METHOD = local
+OPTEE_TEST_EXT_INSTALL_STAGING = YES
+OPTEE_TEST_EXT_DEPENDENCIES = optee_client_ext openssl host-python-pycrypto
+OPTEE_TEST_EXT_SDK = $(BR2_PACKAGE_OPTEE_TEST_EXT_SDK)
+OPTEE_TEST_EXT_CONF_OPTS = -DOPTEE_TEST_SDK=$(OPTEE_TEST_EXT_SDK)
+
+define OPTEE_TEST_EXT_BUILD_TAS
+ @$(foreach f,$(wildcard $(@D)/ta/*/Makefile), \
+ echo Building $f && \
+ $(MAKE) CROSS_COMPILE="$(shell echo $(BR2_PACKAGE_OPTEE_TEST_EXT_CROSS_COMPILE))" \
+ O=out TA_DEV_KIT_DIR=$(OPTEE_TEST_EXT_SDK) \
+ $(TARGET_CONFIGURE_OPTS) -C $(dir $f) all &&) true
+endef
+
+define OPTEE_TEST_EXT_INSTALL_TAS
+ @$(foreach f,$(wildcard $(@D)/ta/*/out/*.ta), \
+ mkdir -p $(TARGET_DIR)/lib/optee_armtz && \
+ $(INSTALL) -v -p --mode=444 \
+ --target-directory=$(TARGET_DIR)/lib/optee_armtz $f \
+ &&) true
+endef
+
+OPTEE_TEST_EXT_POST_BUILD_HOOKS += OPTEE_TEST_EXT_BUILD_TAS
+OPTEE_TEST_EXT_POST_INSTALL_TARGET_HOOKS += OPTEE_TEST_EXT_INSTALL_TAS
+
+$(eval $(cmake-package))