sgx_u.without_app.mk 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. ######## Intel(R) SGX SDK Settings ########
  2. SGX_SDK ?= $(SdkPathFromPlugin)
  3. SGX_MODE ?= SIM
  4. SGX_ARCH ?= x64
  5. UNTRUSTED_DIR=untrusted
  6. SGX_EDL_FILE := $(baseName).edl
  7. ifeq ($(shell getconf LONG_BIT), 32)
  8. SGX_ARCH := x86
  9. else ifeq ($(findstring -m32, $(CXXFLAGS)), -m32)
  10. SGX_ARCH := x86
  11. endif
  12. ifeq ($(SGX_ARCH), x86)
  13. SGX_COMMON_CFLAGS := -m32
  14. SGX_EDGER8R := $(SGX_SDK)/bin/x86/sgx_edger8r
  15. else
  16. SGX_COMMON_CFLAGS := -m64
  17. SGX_EDGER8R := $(SGX_SDK)/bin/x64/sgx_edger8r
  18. endif
  19. ifeq ($(SGX_DEBUG), 1)
  20. ifeq ($(SGX_PRERELEASE), 1)
  21. $(error Cannot set SGX_DEBUG and SGX_PRERELEASE at the same time!!)
  22. endif
  23. endif
  24. ifeq ($(SGX_DEBUG), 1)
  25. SGX_COMMON_CFLAGS += -O0 -g
  26. else
  27. SGX_COMMON_CFLAGS += -O2
  28. endif
  29. ######## App Settings ########
  30. App_Include_Paths := -IInclude -I$(UNTRUSTED_DIR) -I$(SGX_SDK)/include
  31. App_C_Flags := $(SGX_COMMON_CFLAGS) -fPIC -Wno-attributes $(App_Include_Paths)
  32. # Three configuration modes - Debug, prerelease, release
  33. # Debug - Macro DEBUG enabled.
  34. # Prerelease - Macro NDEBUG and EDEBUG enabled.
  35. # Release - Macro NDEBUG enabled.
  36. ifeq ($(SGX_DEBUG), 1)
  37. App_C_Flags += -DDEBUG -UNDEBUG -UEDEBUG
  38. else ifeq ($(SGX_PRERELEASE), 1)
  39. App_C_Flags += -DNDEBUG -DEDEBUG -UDEBUG
  40. else
  41. App_C_Flags += -DNDEBUG -UEDEBUG -UDEBUG
  42. endif
  43. App_Cpp_Flags := $(App_C_Flags) -std=c++11
  44. .PHONY: all run
  45. all: $(UNTRUSTED_DIR)/$(baseName)_u.o $(UNTRUSTED_DIR)/$(baseName).o
  46. ######## App Objects ########
  47. $(UNTRUSTED_DIR)/$(baseName)_u.c: $(SGX_EDGER8R) $(SGX_EDL_FILE)
  48. @mkdir -p $(UNTRUSTED_DIR) && cd $(UNTRUSTED_DIR) && $(SGX_EDGER8R) --untrusted $(SGX_EDL_FILE) --search-path .. --search-path $(SGX_SDK)/include
  49. @echo "GEN => $@"
  50. $(UNTRUSTED_DIR)/$(baseName)_u.o: $(UNTRUSTED_DIR)/$(baseName)_u.c
  51. @$(CC) $(App_C_Flags) -c $< -o $@
  52. @echo "CC <= $<"
  53. $(UNTRUSTED_DIR)/$(baseName).o: $(UNTRUSTED_DIR)/$(baseName).cpp
  54. @$(CC) $(App_Cpp_Flags) -c $< -o $@
  55. @echo "CC <= $<"
  56. .PHONY: clean
  57. clean:
  58. @rm -f $(UNTRUSTED_DIR)/$(baseName)_u.* $(UNTRUSTED_DIR)/$(baseName).o