occlum/test/src/Makefile
2019-02-16 16:23:30 +08:00

68 lines
2.0 KiB
Makefile

CUR_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
PROJECT_DIR := $(realpath $(CUR_DIR)/../../)
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
C_FLAGS := -Wall -fno-builtin -fno-stack-protector -fverbose-asm -fpic
C_FLAGS += -I../include -L../rusgx_stub -lrusgx_stub
C_FLAGS += -O0
LINK_FLAGS := -pie -nostdlib -L../rusgx_stub -lrusgx_stub
.PHONY: all clean test test-without-rusgx
#############################################################################
# Build
#############################################################################
all: $(BIN_NAME) $(OBJDUMP_FILE) $(READELF_FILE)
$(OBJDUMP_FILE): $(BIN_NAME)
objdump -d $(BIN_NAME) > $(OBJDUMP_FILE)
$(READELF_FILE): $(BIN_NAME)
readelf -a -d $(BIN_NAME) > $(READELF_FILE)
$(BIN_NAME): $(C_OBJS)
$(CC) $^ $(LINK_FLAGS) -o $(BIN_NAME)
$(C_OBJS): %.o: %.S
$(CC) $(C_FLAGS) -c $< -o $@
$(S_FILES): %.S: %.c
$(CC) $(C_FLAGS) -S $< -o $@
# ./override_ds_with_fs.sh $@
#############################################################################
# Test
#############################################################################
test: pal librusgx.signed.so $(BIN_ENC_NAME)
RUST_BACKTRACE=1 ./pal ./bin.encrypted
pal:
cp $(PROJECT_DIR)/src/pal/pal pal
librusgx.signed.so:
cp $(PROJECT_DIR)/src/libos/librusgx.signed.so librusgx.signed.so
$(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
test-without-rusgx: $(BIN_ENC_NAME)
LD_LIBRARY_PATH=../rusgx_stub/ ./$(BIN_NAME)
#############################################################################
# Misc
#############################################################################
clean:
$(RM) -f *.o *.S $(BIN_NAME) $(BIN_ENC_NAME) $(OBJDUMP_FILE) $(READELF_FILE) pal librusgx.signed.so