linux/tools/testing/selftests/sgx/Makefile
<<
>>
Prefs
   1top_srcdir = ../../../..
   2
   3include ../lib.mk
   4
   5.PHONY: all clean
   6
   7CAN_BUILD_X86_64 := $(shell ../x86/check_cc.sh $(CC) \
   8                            ../x86/trivial_64bit_program.c)
   9
  10ifndef OBJCOPY
  11OBJCOPY := $(CROSS_COMPILE)objcopy
  12endif
  13
  14INCLUDES := -I$(top_srcdir)/tools/include
  15HOST_CFLAGS := -Wall -Werror -g $(INCLUDES) -fPIC -z noexecstack
  16ENCL_CFLAGS := -Wall -Werror -static -nostdlib -nostartfiles -fPIC \
  17               -fno-stack-protector -mrdrnd $(INCLUDES)
  18
  19TEST_CUSTOM_PROGS := $(OUTPUT)/test_sgx
  20
  21ifeq ($(CAN_BUILD_X86_64), 1)
  22all: $(TEST_CUSTOM_PROGS) $(OUTPUT)/test_encl.elf
  23endif
  24
  25$(OUTPUT)/test_sgx: $(OUTPUT)/main.o \
  26                    $(OUTPUT)/load.o \
  27                    $(OUTPUT)/sigstruct.o \
  28                    $(OUTPUT)/call.o \
  29                    $(OUTPUT)/sign_key.o
  30        $(CC) $(HOST_CFLAGS) -o $@ $^ -lcrypto
  31
  32$(OUTPUT)/main.o: main.c
  33        $(CC) $(HOST_CFLAGS) -c $< -o $@
  34
  35$(OUTPUT)/load.o: load.c
  36        $(CC) $(HOST_CFLAGS) -c $< -o $@
  37
  38$(OUTPUT)/sigstruct.o: sigstruct.c
  39        $(CC) $(HOST_CFLAGS) -c $< -o $@
  40
  41$(OUTPUT)/call.o: call.S
  42        $(CC) $(HOST_CFLAGS) -c $< -o $@
  43
  44$(OUTPUT)/sign_key.o: sign_key.S
  45        $(CC) $(HOST_CFLAGS) -c $< -o $@
  46
  47$(OUTPUT)/test_encl.elf: test_encl.lds test_encl.c test_encl_bootstrap.S
  48        $(CC) $(ENCL_CFLAGS) -T $^ -o $@
  49
  50EXTRA_CLEAN := \
  51        $(OUTPUT)/test_encl.elf \
  52        $(OUTPUT)/load.o \
  53        $(OUTPUT)/call.o \
  54        $(OUTPUT)/main.o \
  55        $(OUTPUT)/sigstruct.o \
  56        $(OUTPUT)/test_sgx \
  57        $(OUTPUT)/test_sgx.o \
  58