1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- SGX_DIR = $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
- RUNTIME_DIR = $(SGX_DIR)/../../../../Runtime
- LIBPAL = $(RUNTIME_DIR)/libpal-Linux-SGX.so
- SGX_SIGNER_KEY = $(SGX_DIR)/signer/enclave-key.pem
- SGX_SIGN = $(SGX_DIR)/signer/pal-sgx-sign -libpal $(LIBPAL) -key $(SGX_SIGNER_KEY)
- SGX_GET_TOKEN = $(SGX_DIR)/signer/pal-sgx-get-token
- ifeq ($(SGX_RUN),1)
- expand_target = $(foreach t,$(filter-out manifest,$(1)),$(patsubst %.manifest,%,$(t)).token)
- %.token: %.sig
- @echo [ Token: $(patsubst %.token,%,$@) ]
- @$(SGX_GET_TOKEN) -output $@ -sig $(patsubst %.token,%.sig,$@)
- else
- expand_target = $(1) $(foreach t,$(filter-out manifest,$(1)), \
- $(patsubst %.manifest,%,$(t)).manifest.sgx) *.sig *.token
- $(SGX_SIGNER_KEY):
- $(error "Cannot find any enclave key. Generate $(abspath $(SGX_SIGNER_KEY)) or specify 'SGX_SIGNER_KEY=' with make")
- prerequisite = \
- for f in `grep -Po 'sgx.trusted_children.[^\\s=]+\\s*=\\s*file:\\K\\S+' $(1)`; do \
- $(MAKE) $${f%.sig}.manifest.sgx; \
- done
- find_manifest = $(patsubst %.template,%,$(if $(wildcard $(1).manifest.template),$(1).manifest.template,manifest.template))
- %.manifest.sgx: % $(LIBPAL) $(SGX_SIGNER_KEY)
- $(eval $@-manifest := $(call find_manifest,$<))
- @$(MAKE) $($@-manifest)
- $(call prerequisite,$($@-manifest))
- @echo [ $@ ]
- $(SGX_SIGN) -output $@ -exec $< -manifest $($@-manifest)
- %.manifest.sgx: %.manifest $(LIBPAL) $(SGX_SIGNER_KEY)
- $(call prerequisite,$<)
- @$(MAKE) $<
- @echo [ $@ ]
- $(SGX_SIGN) -output $@ -manifest $<
- *.sig *.token nothing:
- endif
|