162306a36Sopenharmony_citop_srcdir = ../../../..
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciinclude ../lib.mk
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci.PHONY: all clean
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciCAN_BUILD_X86_64 := $(shell ../x86/check_cc.sh "$(CC)" \
862306a36Sopenharmony_ci			    ../x86/trivial_64bit_program.c)
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciifndef OBJCOPY
1162306a36Sopenharmony_ciOBJCOPY := $(CROSS_COMPILE)objcopy
1262306a36Sopenharmony_ciendif
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciINCLUDES := -I$(top_srcdir)/tools/include
1562306a36Sopenharmony_ciHOST_CFLAGS := -Wall -Werror -g $(INCLUDES) -fPIC -z noexecstack
1662306a36Sopenharmony_ciENCL_CFLAGS := -Wall -Werror -static -nostdlib -nostartfiles -fPIC \
1762306a36Sopenharmony_ci	       -fno-stack-protector -mrdrnd $(INCLUDES)
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciifeq ($(CAN_BUILD_X86_64), 1)
2062306a36Sopenharmony_ciTEST_CUSTOM_PROGS := $(OUTPUT)/test_sgx
2162306a36Sopenharmony_ciTEST_FILES := $(OUTPUT)/test_encl.elf
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciall: $(TEST_CUSTOM_PROGS) $(OUTPUT)/test_encl.elf
2462306a36Sopenharmony_ciendif
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci$(OUTPUT)/test_sgx: $(OUTPUT)/main.o \
2762306a36Sopenharmony_ci		    $(OUTPUT)/load.o \
2862306a36Sopenharmony_ci		    $(OUTPUT)/sigstruct.o \
2962306a36Sopenharmony_ci		    $(OUTPUT)/call.o \
3062306a36Sopenharmony_ci		    $(OUTPUT)/sign_key.o
3162306a36Sopenharmony_ci	$(CC) $(HOST_CFLAGS) -o $@ $^ -lcrypto
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci$(OUTPUT)/main.o: main.c
3462306a36Sopenharmony_ci	$(CC) $(HOST_CFLAGS) -c $< -o $@
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci$(OUTPUT)/load.o: load.c
3762306a36Sopenharmony_ci	$(CC) $(HOST_CFLAGS) -c $< -o $@
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci$(OUTPUT)/sigstruct.o: sigstruct.c
4062306a36Sopenharmony_ci	$(CC) $(HOST_CFLAGS) -c $< -o $@
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci$(OUTPUT)/call.o: call.S
4362306a36Sopenharmony_ci	$(CC) $(HOST_CFLAGS) -c $< -o $@
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci$(OUTPUT)/sign_key.o: sign_key.S
4662306a36Sopenharmony_ci	$(CC) $(HOST_CFLAGS) -c $< -o $@
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci$(OUTPUT)/test_encl.elf: test_encl.lds test_encl.c test_encl_bootstrap.S
4962306a36Sopenharmony_ci	$(CC) $(ENCL_CFLAGS) -T $^ -o $@ -Wl,--build-id=none
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciEXTRA_CLEAN := \
5262306a36Sopenharmony_ci	$(OUTPUT)/test_encl.elf \
5362306a36Sopenharmony_ci	$(OUTPUT)/load.o \
5462306a36Sopenharmony_ci	$(OUTPUT)/call.o \
5562306a36Sopenharmony_ci	$(OUTPUT)/main.o \
5662306a36Sopenharmony_ci	$(OUTPUT)/sigstruct.o \
5762306a36Sopenharmony_ci	$(OUTPUT)/test_sgx \
5862306a36Sopenharmony_ci	$(OUTPUT)/test_sgx.o \
59