84 lines
2.3 KiB
Makefile
84 lines
2.3 KiB
Makefile
MAIN_MAKEFILE := $(firstword $(MAKEFILE_LIST))
|
|
INCLUDE_MAKEFILE := $(lastword $(MAKEFILE_LIST))
|
|
CUR_DIR := $(shell dirname $(realpath $(MAIN_MAKEFILE)))
|
|
PROJECT_DIR := $(realpath $(CUR_DIR)/../../)
|
|
|
|
CC := /usr/local/occlum/bin/musl-clang
|
|
C_SRCS := $(wildcard *.c)
|
|
S_FILES := $(C_SRCS:%.c=%.S)
|
|
C_OBJS := $(C_SRCS:%.c=%.o)
|
|
BIN_NAME := bin
|
|
BIN_ENC_NAME := bin.encrypted
|
|
OBJDUMP_FILE := bin.objdump
|
|
READELF_FILE := bin.readelf
|
|
FS_NAME := fs
|
|
SEFS_NAME := sefs
|
|
|
|
CLANG_BIN_PATH := $(shell clang -print-prog-name=clang)
|
|
LLVM_PATH := $(abspath $(dir $(CLANG_BIN_PATH))../)
|
|
|
|
C_FLAGS = -Wall -O0 $(EXTRA_C_FLAGS)
|
|
C_FLAGS += -Xclang -load -Xclang $(LLVM_PATH)/lib/LLVMMDSFIIRInserter.so
|
|
LINK_FLAGS = $(C_FLAGS) $(EXTRA_LINK_FLAGS)
|
|
|
|
.PHONY: all test debug clean
|
|
|
|
#############################################################################
|
|
# Build
|
|
#############################################################################
|
|
|
|
all: $(BIN_ENC_NAME) $(SEFS_NAME)
|
|
|
|
$(BIN_ENC_NAME): $(BIN_NAME)
|
|
@$(RM) -f $(BIN_ENC_NAME)
|
|
@cd $(PROJECT_DIR)/deps/sgx_protect_file/ && \
|
|
./sgx_protect_file encrypt \
|
|
-i $(CUR_DIR)/$(BIN_NAME) \
|
|
-o $(CUR_DIR)/$(BIN_ENC_NAME) \
|
|
-k 123 > /dev/null
|
|
@echo "GEN => $@"
|
|
|
|
$(SEFS_NAME):
|
|
@mkdir -p $(FS_NAME)
|
|
@$(RM) -rf $(SEFS_NAME)
|
|
@cd $(PROJECT_DIR)/deps/sefs/sefs-fuse/bin/ && \
|
|
./app \
|
|
$(CUR_DIR)/$(SEFS_NAME) \
|
|
$(CUR_DIR)/$(FS_NAME) \
|
|
zip
|
|
@echo "SEFS => $@"
|
|
|
|
debug: $(OBJDUMP_FILE) $(READELF_FILE)
|
|
|
|
$(OBJDUMP_FILE): $(BIN_NAME)
|
|
@objdump -d $(BIN_NAME) > $(OBJDUMP_FILE)
|
|
@echo "OBJDUMP => $@"
|
|
|
|
$(READELF_FILE): $(BIN_NAME)
|
|
@readelf -a -d $(BIN_NAME) > $(READELF_FILE)
|
|
@echo "READELF => $@"
|
|
|
|
$(BIN_NAME): $(C_OBJS)
|
|
@$(CC) $^ $(LINK_FLAGS) -o $(BIN_NAME)
|
|
@echo "LINK => $@"
|
|
|
|
$(C_OBJS): %.o: %.c
|
|
@$(CC) $(C_FLAGS) -c $< -o $@
|
|
@echo "CC <= $@"
|
|
|
|
#############################################################################
|
|
# Test
|
|
#############################################################################
|
|
|
|
test: $(BIN_ENC_NAME)
|
|
# run test on current directory
|
|
@ln -sf ../pal ../libocclum.signed.so $(CUR_DIR)
|
|
@cd $(CUR_DIR) && RUST_BACKTRACE=1 ./pal $(BIN_ENC_NAME) $(BIN_ARGS)
|
|
|
|
#############################################################################
|
|
# Misc
|
|
#############################################################################
|
|
|
|
clean:
|
|
@-$(RM) -f *.o *.S $(BIN_NAME) $(BIN_ENC_NAME) $(OBJDUMP_FILE) $(READELF_FILE)
|