By providing Occlum PAL as a shared library, it is now possible to embed and use Occlum in an user-controled process (instead of an Occlum-controlled one). The APIs of Occlum PAL can be found in `src/pal/include/occlum_pal_api.h`. The Occlum PAL library, namely `libocclum-pal.so`, can be found in `.occlum/build/lib`. To use the library, check out the source code of `occlum-run` (under `src/run`), which can be seen as a sample code for using the Occlum PAL library.
31 lines
680 B
Makefile
31 lines
680 B
Makefile
include ../sgxenv.mk
|
|
|
|
BIN := $(BUILD_DIR)/bin/occlum-run
|
|
|
|
C_SRCS := $(sort $(wildcard *.c))
|
|
C_OBJS := $(addprefix $(BUILD_DIR)/src/run/,$(C_SRCS:.c=.o))
|
|
|
|
C_COMMON_FLAGS := -I$(PROJECT_DIR)/src/pal/include
|
|
C_FLAGS := $(C_COMMON_FLAGS) $(SGX_CFLAGS_U)
|
|
LINK_FLAGS := $(SGX_LFLAGS_U) -L$(BUILD_DIR)/lib -lsgx_uprotected_fs -locclum-pal
|
|
|
|
ALL_BUILD_SUBDIRS := $(sort $(patsubst %/,%,$(dir $(BIN) $(C_OBJS))))
|
|
|
|
.PHONY: all clean
|
|
|
|
all: $(ALL_BUILD_SUBDIRS) $(BIN)
|
|
|
|
$(ALL_BUILD_SUBDIRS):
|
|
@mkdir -p $@
|
|
|
|
$(BIN): $(C_OBJS)
|
|
@$(CC) $^ -o $@ $(LINK_FLAGS)
|
|
@echo "LINK => $@"
|
|
|
|
$(BUILD_DIR)/src/run/%.o: %.c
|
|
@$(CC) $(C_FLAGS) -c $< -o $@
|
|
@echo "CC <= $@"
|
|
|
|
clean:
|
|
@-$(RM) -f $(BIN) $(C_OBJS)
|