Use "make --no-builtin-variables" to build client applications

Commit 1d7d9ad85650 ("host/Makefiles: Allow CC variable to be derived
from env") changed the client application Makfiles so that $(CC) will
not be modified if already set. The intent was to take into account
the values derived from the environment or the command line.
Unfortunately, the "?=" syntax will also consider 'default' (built-in)
variables as shown in this example:

  $ cat Makefile
  $(info CC=$(CC) origin: $(origin CC))
  CC ?= foo
  $(info CC=$(CC) origin: $(origin CC))

  all:
  $ make
  CC=cc origin: default
  CC=cc origin: default
  make: Nothing to be done for 'all'.

As a result, unless CC is specified via the environment or the command
line, its value defaults to 'cc' which is not what we want for cross
compilation.

This commit fixes the issue in a similar way to optee_test, by
disabling built-in variables. This in turn requires adding explicit
compilation rules (%.o: %.c).

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Fixes: 1d7d9ad85650 ("host/Makefiles: Allow CC variable to be derived from env")
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
8 files changed
tree: 02de605aff02dd0895999cb061b8042364c4f67b
  1. aes/
  2. docs/
  3. hello_world/
  4. hotp/
  5. random/
  6. .gitignore
  7. Android.mk
  8. CMakeLists.txt
  9. CMakeToolchain.txt
  10. LICENSE
  11. Makefile
  12. README.md
README.md

OP-TEE Sample Applications

Contents

  1. Introduction
  2. List of sample applications
  3. How to build a Trusted Application

1. Introduction

This document describes the sample applications that are included in the OP-TEE, that aim to showcase specific functionality and use case.

For sake of simplicity, all OP-TEE example test application are prefixed with optee_example_.


2. List of sample applications

Directory hello_world/:

  • A very simple Trusted Application to answer a hello command and incrementing an integer value.
  • Test application: optee_example_hello_world
  • Trusted application UUID: 8aaaf200-2450-11e4-abe2-0002a5d5c51b

Directory random/:

  • Generates a random UUID using capabilities of TEE API (TEE_GenerateRandom()).
  • Test application: optee_example_random
  • Trusted application UUID: b6c53aba-9669-4668-a7f2-205629d00f86

Directory aes/:

  • Runs an AES encryption and decryption from a TA using the GPD TEE Internal Core API. Non secure test application provides the key, initial vector and ciphered data.
  • Test application: optee_example_aes
  • Trusted application UUID: 5dbac793-f574-4871-8ad3-04331ec17f24

3. How to build a Trusted Application

TA basics documentation presents the basics for implementing and building an OP-TEE trusted application.

One can also refer to the examples provided: source files and make scripts.