58 lines
1.7 KiB
Makefile
58 lines
1.7 KiB
Makefile
SGX_SDK ?= /opt/intel/sgxsdk
|
|
OCCLUM_PREFIX ?= /opt/occlum
|
|
SGX_MODE ?= HW
|
|
|
|
BUILD_DIR := build
|
|
BIN := $(BUILD_DIR)/bench_driver
|
|
|
|
C_SRCS := $(sort $(wildcard *.c))
|
|
C_OBJS := $(addprefix $(BUILD_DIR)/,$(C_SRCS:.c=.o))
|
|
|
|
ifneq ($(SGX_MODE), HW)
|
|
URTS_LIBRARY_NAME := sgx_urts_sim
|
|
UAE_SERVICE_LIBRARY_NAME := sgx_uae_service_sim
|
|
OCCLUM_PAL_LIB := occlum-pal_sim
|
|
else
|
|
URTS_LIBRARY_NAME := sgx_urts
|
|
UAE_SERVICE_LIBRARY_NAME := sgx_uae_service
|
|
OCCLUM_PAL_LIB := occlum-pal
|
|
endif
|
|
|
|
MAJOR_VER_NUM = $(shell grep '\#define OCCLUM_MAJOR_VERSION' $(OCCLUM_PREFIX)/include/occlum_version.h | awk '{print $$3}')
|
|
MINOR_VER_NUM = $(shell grep '\#define OCCLUM_MINOR_VERSION' $(OCCLUM_PREFIX)/include/occlum_version.h | awk '{print $$3}')
|
|
PATCH_VER_NUM = $(shell grep '\#define OCCLUM_PATCH_VERSION' $(OCCLUM_PREFIX)/include/occlum_version.h | awk '{print $$3}')
|
|
VERSION_NUM = $(MAJOR_VER_NUM).$(MINOR_VER_NUM).$(PATCH_VER_NUM)
|
|
|
|
C_FLAGS := -Wall \
|
|
-I$(SGX_SDK)/include \
|
|
-I$(OCCLUM_PREFIX)/include
|
|
LINK_FLAGS := $(C_FLAGS) -lpthread \
|
|
-L$(SGX_SDK)/lib64 -l$(URTS_LIBRARY_NAME) -l$(UAE_SERVICE_LIBRARY_NAME) -lsgx_uprotected_fs \
|
|
-L$(BUILD_DIR) -locclum-pal
|
|
|
|
ALL_BUILD_SUBDIRS := $(sort $(patsubst %/,%,$(dir $(BIN) $(C_OBJS))))
|
|
|
|
.PHONY: all clean
|
|
|
|
all: $(BIN)
|
|
|
|
$(BIN) $(C_OBJS): $(ALL_BUILD_SUBDIRS)
|
|
|
|
$(BIN): $(C_OBJS) libocclum-pal.so
|
|
@$(CC) $(C_OBJS) -o $@ $(LINK_FLAGS)
|
|
@echo "LINK => $@"
|
|
|
|
$(BUILD_DIR)/%.o: %.c
|
|
@$(CC) $(C_FLAGS) -c $< -o $@
|
|
@echo "CC <= $@"
|
|
|
|
libocclum-pal.so: $(ALL_BUILD_SUBDIRS)
|
|
@cd $(BUILD_DIR) && ln -sf $(OCCLUM_PREFIX)/build/lib/lib$(OCCLUM_PAL_LIB).so.$(VERSION_NUM) libocclum-pal.so.$(MAJOR_VER_NUM) && \
|
|
ln -sf libocclum-pal.so.$(MAJOR_VER_NUM) libocclum-pal.so
|
|
|
|
$(ALL_BUILD_SUBDIRS):
|
|
@mkdir -p $@
|
|
|
|
clean:
|
|
@-$(RM) -rf $(BUILD_DIR)
|