mirror of
https://github.com/clearlinux/graphene.git
synced 2026-10-03 15:39:36 +00:00
Allowing concurrent builds of different PALs
This commit is contained in:
committed by
Don Porter
parent
a8e7749d08
commit
7f5a4cc87f
@@ -1,7 +1,6 @@
|
|||||||
RUNTIME_DIR = $(CURDIR)/../../../Runtime
|
RUNTIME_DIR = $(CURDIR)/../../../Runtime
|
||||||
|
|
||||||
SYS ?= $(shell gcc -dumpmachine)
|
include ../../../Pal/src/Makefile.Host
|
||||||
export SYS
|
|
||||||
|
|
||||||
CC = gcc
|
CC = gcc
|
||||||
AS = gcc
|
AS = gcc
|
||||||
@@ -25,7 +24,7 @@ ASFLAGS = -Wa,--noexecstack -x assembler-with-cpp -I../include
|
|||||||
LDFLAGS = -shared -nostdlib --version-script shim.map -T shim.lds \
|
LDFLAGS = -shared -nostdlib --version-script shim.map -T shim.lds \
|
||||||
-z combreloc -z relro -z defs \
|
-z combreloc -z relro -z defs \
|
||||||
-dynamic-link=libpal.so \
|
-dynamic-link=libpal.so \
|
||||||
-rpath-link=$(abspath ../../../Pal/src)
|
-rpath-link=$(abspath $(RUNTIME_DIR))
|
||||||
LDFLAGS-debug = $(patsubst shim.map,shim-debug.map,$(LDFLAGS))
|
LDFLAGS-debug = $(patsubst shim.map,shim-debug.map,$(LDFLAGS))
|
||||||
ARFLAGS =
|
ARFLAGS =
|
||||||
|
|
||||||
@@ -46,7 +45,7 @@ objs = $(addprefix bookkeep/shim_,handle vma thread signal) \
|
|||||||
async parser debug) syscallas start \
|
async parser debug) syscallas start \
|
||||||
$(patsubst %.c,%,$(wildcard sys/*.c))
|
$(patsubst %.c,%,$(wildcard sys/*.c))
|
||||||
graphene_lib = .lib/graphene-lib.a
|
graphene_lib = .lib/graphene-lib.a
|
||||||
pal_lib = $(abspath ../../../Pal/src/libpal.so)
|
pal_lib = $(RUNTIME_DIR)/libpal-$(PAL_HOST).so
|
||||||
headers = ../include/*.h ../../../Pal/lib/*.h ../../../Pal/include/pal/*.h
|
headers = ../include/*.h ../../../Pal/lib/*.h ../../../Pal/include/pal/*.h
|
||||||
|
|
||||||
all: $(files_to_build) $(files_to_install)
|
all: $(files_to_build) $(files_to_install)
|
||||||
@@ -79,9 +78,13 @@ libsysdb_debug.so: $(addsuffix .o,$(filter-out syscallas,$(objs))) \
|
|||||||
$(LD) $(LDFLAGS-debug) -o $@ $(filter-out %.map %.lds,$^) -soname $@ \
|
$(LD) $(LDFLAGS-debug) -o $@ $(filter-out %.map %.lds,$^) -soname $@ \
|
||||||
-e shim_start
|
-e shim_start
|
||||||
|
|
||||||
|
.lib/host_endian.h: ../../../Pal/src/host/$(PAL_HOST)/host_endian.h
|
||||||
|
@mkdir -p .lib
|
||||||
|
cp -f $< $@
|
||||||
|
|
||||||
.PHONY: $(graphene_lib)
|
.PHONY: $(graphene_lib)
|
||||||
$(graphene_lib):
|
$(graphene_lib): .lib/host_endian.h
|
||||||
$(MAKE) -C ../../../Pal/lib $(debug) target=$(shell pwd)/.lib/
|
$(MAKE) -C ../../../Pal/lib target=$(abspath .lib)/
|
||||||
|
|
||||||
libsysdb.a: $(addsuffix .o,$(objs))
|
libsysdb.a: $(addsuffix .o,$(objs))
|
||||||
@echo [ $@ ]
|
@echo [ $@ ]
|
||||||
|
|||||||
+9
-4
@@ -12,6 +12,14 @@ include ../src/host/$(PAL_HOST)/Makefile.am
|
|||||||
|
|
||||||
CFLAGS += -I. -I../include -I../src
|
CFLAGS += -I. -I../include -I../src
|
||||||
|
|
||||||
|
# Include host_endian.h from either the host-specific directory,
|
||||||
|
# or directly under the target directory.
|
||||||
|
ifeq ($(target),)
|
||||||
|
CFLAGS += -I../src/host/$(PAL_HOST)
|
||||||
|
else
|
||||||
|
CFLAGS += -I$(target)
|
||||||
|
endif
|
||||||
|
|
||||||
subdirs = string stdlib network graphene util crypto
|
subdirs = string stdlib network graphene util crypto
|
||||||
headers = api.h pal_crypto.h
|
headers = api.h pal_crypto.h
|
||||||
|
|
||||||
@@ -61,10 +69,7 @@ $(target)graphene-lib.a: $(addprefix $(target),$(objs))
|
|||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
@$(AR) $(ARFLAGS) $@ $^
|
@$(AR) $(ARFLAGS) $@ $^
|
||||||
|
|
||||||
../src/host_endian.h:
|
$(target)%.o: %.c $(headers)
|
||||||
@$(MAKE) -C ../src host_endian.h
|
|
||||||
|
|
||||||
$(target)%.o: %.c $(headers) ../src/host_endian.h
|
|
||||||
@echo [ $(notdir $@) ]
|
@echo [ $(notdir $@) ]
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
@$(CC) $(CFLAGS) -c $< -o $@
|
@$(CC) $(CFLAGS) -c $< -o $@
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
SYS ?= $(shell gcc -dumpmachine)
|
include ../src/Makefile.Host
|
||||||
|
|
||||||
CC = gcc
|
CC = gcc
|
||||||
CFLAGS = -Wall -O2 -std=gnu99 -fgnu89-inline -fno-builtin -nostdlib \
|
CFLAGS = -Wall -O2 -std=gnu99 -fgnu89-inline -fno-builtin -nostdlib \
|
||||||
@@ -11,7 +11,7 @@ manifests = manifest $(patsubst %.manifest.template,%.manifest,$(wildcard *.ma
|
|||||||
target = $(executables) $(manifests)
|
target = $(executables) $(manifests)
|
||||||
|
|
||||||
graphene_lib = .lib/graphene-lib.a
|
graphene_lib = .lib/graphene-lib.a
|
||||||
pal_lib = ../src/libpal.so
|
pal_lib = ../../Runtime/libpal-$(PAL_HOST).so
|
||||||
headers = $(wildcard ../include/pal/*.h)
|
headers = $(wildcard ../include/pal/*.h)
|
||||||
|
|
||||||
.PHONY: default
|
.PHONY: default
|
||||||
@@ -57,8 +57,12 @@ $(executables): %: %.c ../src/user_start.o \
|
|||||||
@echo [ $@ ]
|
@echo [ $@ ]
|
||||||
@$(CC) $(CFLAGS) $^ -o $@
|
@$(CC) $(CFLAGS) $^ -o $@
|
||||||
|
|
||||||
$(graphene_lib):
|
.lib/host_endian.h: ../src/host/$(PAL_HOST)/host_endian.h
|
||||||
$(MAKE) -C ../lib target=$(shell pwd)/.lib/
|
@mkdir -p .lib
|
||||||
|
cp -f $< $@
|
||||||
|
|
||||||
|
$(graphene_lib): .lib/host_endian.h
|
||||||
|
$(MAKE) -C ../lib target=$(abspath .lib)/
|
||||||
|
|
||||||
else
|
else
|
||||||
.IGNORE: $(preloads) $(executables)
|
.IGNORE: $(preloads) $(executables)
|
||||||
|
|||||||
+48
-43
@@ -2,16 +2,10 @@ export PAL_DIR = $(CURDIR)
|
|||||||
export RUNTIME_DIR = $(CURDIR)/../../Runtime
|
export RUNTIME_DIR = $(CURDIR)/../../Runtime
|
||||||
|
|
||||||
include Makefile.Host
|
include Makefile.Host
|
||||||
-include Makefile.Status
|
|
||||||
|
|
||||||
ifeq ($(DEBUG),1)
|
|
||||||
BUILD_TARGET = $(PAL_HOST)-debug
|
|
||||||
else
|
|
||||||
BUILD_TARGET = $(PAL_HOST)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Customizable PAL Targets
|
# Customizable PAL Targets
|
||||||
# (specify in Makefile.am in host-specific directories)
|
# (specify in Makefile.am in host-specific directories)
|
||||||
|
# For concurrent builds, all PAL targets must be in host-specific directories
|
||||||
pal_loader =
|
pal_loader =
|
||||||
pal_sec =
|
pal_sec =
|
||||||
pal_lib =
|
pal_lib =
|
||||||
@@ -22,12 +16,21 @@ pal_gdb =
|
|||||||
|
|
||||||
include host/$(PAL_HOST)/Makefile.am
|
include host/$(PAL_HOST)/Makefile.am
|
||||||
|
|
||||||
CFLAGS += -I. -I../include -Ihost/$(PAL_HOST) -I../lib
|
HOST_DIR = host/$(PAL_HOST)
|
||||||
|
LIB_DIR = $(HOST_DIR)/.lib
|
||||||
|
OBJ_DIR = $(HOST_DIR)/.obj
|
||||||
|
|
||||||
|
CFLAGS += -I. -I../include -I$(HOST_DIR) -I../lib
|
||||||
|
|
||||||
ifeq ($(PROFILING),1)
|
ifeq ($(PROFILING),1)
|
||||||
CFLAGS += -DPROFILING=1
|
CFLAGS += -DPROFILING=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Build Targets:
|
||||||
|
# (1) Host-specific targets are in "host/{Host Name}".
|
||||||
|
# (2) Generic targets are in "host/{Host Name}/.obj".
|
||||||
|
# (3) API library targets are in "host/{Host Name}/.lib".
|
||||||
|
|
||||||
files_to_build = $(pal_lib) $(pal_lib_post) $(pal_static) \
|
files_to_build = $(pal_lib) $(pal_lib_post) $(pal_static) \
|
||||||
$(pal_loader) $(pal_sec)
|
$(pal_loader) $(pal_sec)
|
||||||
|
|
||||||
@@ -35,9 +38,10 @@ defs = -DIN_PAL -DHOST_TYPE="$(PAL_HOST)" -D$(PAL_HOST_MACRO) -DPAL_DIR=$(PAL_DI
|
|||||||
-DRUNTIME_DIR=$(RUNTIME_DIR)
|
-DRUNTIME_DIR=$(RUNTIME_DIR)
|
||||||
objs = $(addprefix db_,streams memory threading mutex events process \
|
objs = $(addprefix db_,streams memory threading mutex events process \
|
||||||
object main misc ipc exception rtld) slab printf
|
object main misc ipc exception rtld) slab printf
|
||||||
graphene_lib = .lib/graphene-lib.a
|
|
||||||
host_lib = host/$(PAL_HOST)/libpal-$(PAL_HOST).a
|
graphene_lib = $(LIB_DIR)/graphene-lib.a
|
||||||
headers = $(wildcard *.h) $(wildcard ../lib/*.h) host/$(PAL_HOST)/pal_host.h
|
host_lib = $(HOST_DIR)/libpal-$(PAL_HOST).a
|
||||||
|
headers = $(wildcard *.h) $(wildcard ../lib/*.h) $(HOST_DIR)/pal_host.h
|
||||||
|
|
||||||
ifeq ($(findstring x86_64,$(SYS))$(findstring linux,$(SYS)),x86_64linux)
|
ifeq ($(findstring x86_64,$(SYS))$(findstring linux,$(SYS)),x86_64linux)
|
||||||
files_to_build += user_start.o user_shared_start.o
|
files_to_build += user_start.o user_shared_start.o
|
||||||
@@ -49,6 +53,12 @@ CFLAGS += -DDEBUG
|
|||||||
endif
|
endif
|
||||||
export DEBUG
|
export DEBUG
|
||||||
|
|
||||||
|
# Install Targets (all in RUNTIME_DIR):
|
||||||
|
# pal-{Host Name}: loader for PAL (as an executable)
|
||||||
|
# libpal-{Host Name}.so: dynamic-linking library
|
||||||
|
# pal_sec-{Host Name}: secure loader for PAL (as an executable)
|
||||||
|
# pal_gdb-{Host Name}: debugger for PAL (as an executable)
|
||||||
|
|
||||||
runtime_loader = $(RUNTIME_DIR)/pal-$(PAL_HOST)
|
runtime_loader = $(RUNTIME_DIR)/pal-$(PAL_HOST)
|
||||||
|
|
||||||
ifneq ($(pal_lib),)
|
ifneq ($(pal_lib),)
|
||||||
@@ -65,30 +75,22 @@ endif
|
|||||||
|
|
||||||
files_to_install = $(runtime_loader) $(runtime_lib) $(runtime_sec) $(runtime_gdb)
|
files_to_install = $(runtime_loader) $(runtime_lib) $(runtime_sec) $(runtime_gdb)
|
||||||
|
|
||||||
|
|
||||||
|
###########################
|
||||||
|
## Generic Build Rules ##
|
||||||
|
###########################
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: | check_target $(files_to_build) $(files_to_install)
|
all: $(files_to_build) $(files_to_install)
|
||||||
|
|
||||||
ifndef SAVED_TARGET
|
$(LIB_DIR)/host_endian.h: $(HOST_DIR)/host_endian.h
|
||||||
SAVED_TARGET = $(BUILD_TARGET)
|
@mkdir -p $(LIB_DIR)
|
||||||
endif
|
cp -f $< $@
|
||||||
|
|
||||||
SAVED_OS = $(patsubst %-debug,%,$(SAVED_TARGET))
|
|
||||||
|
|
||||||
.PHONY: check_target
|
|
||||||
check_target:
|
|
||||||
@echo "Building target: $(BUILD_TARGET)"
|
|
||||||
ifneq ($(SAVED_TARGET),$(BUILD_TARGET))
|
|
||||||
$(error "A different target is built earlier. Prune the directory first.")
|
|
||||||
endif
|
|
||||||
@echo "SAVED_TARGET = $(BUILD_TARGET)" > Makefile.Status
|
|
||||||
|
|
||||||
.PHONY: $(host_lib) $(graphene_lib) $(pal_lib) $(pal_sec)
|
.PHONY: $(host_lib) $(graphene_lib) $(pal_lib) $(pal_sec)
|
||||||
|
|
||||||
$(graphene_lib): host_endian.h
|
$(graphene_lib): $(LIB_DIR)/host_endian.h
|
||||||
$(MAKE) -C ../lib target=$(shell pwd)/.lib/
|
$(MAKE) -C ../lib target=$(abspath $(LIB_DIR))/
|
||||||
|
|
||||||
host_endian.h: host/$(PAL_HOST)/host_endian.h
|
|
||||||
ln -sf $< $@
|
|
||||||
|
|
||||||
$(host_lib): $(graphene_lib)
|
$(host_lib): $(graphene_lib)
|
||||||
@[ ! -d host/$(PAL_HOST) ] || $(MAKE) -C host/$(PAL_HOST)
|
@[ ! -d host/$(PAL_HOST) ] || $(MAKE) -C host/$(PAL_HOST)
|
||||||
@@ -99,7 +101,8 @@ $(runtime_loader): $(pal_loader)
|
|||||||
cp -f $< $@
|
cp -f $< $@
|
||||||
|
|
||||||
ifneq ($(pal_lib),)
|
ifneq ($(pal_lib),)
|
||||||
$(pal_lib): $(addsuffix .o,$(objs)) $(host_lib) $(graphene_lib) $(pal_lib_deps)
|
$(pal_lib): $(addprefix $(OBJ_DIR)/,$(addsuffix .o,$(objs))) \
|
||||||
|
$(host_lib) $(graphene_lib) $(pal_lib_deps)
|
||||||
@echo [ $@ ]
|
@echo [ $@ ]
|
||||||
$(LD) $(LDFLAGS) -o $@ $(filter-out %.map %.lds,$^) $(LDFLAGS-suffix)
|
$(LD) $(LDFLAGS) -o $@ $(filter-out %.map %.lds,$^) $(LDFLAGS-suffix)
|
||||||
|
|
||||||
@@ -126,15 +129,18 @@ endif
|
|||||||
|
|
||||||
ifneq ($(pal_lib_post),)
|
ifneq ($(pal_lib_post),)
|
||||||
$(pal_lib_post): $(pal_lib)
|
$(pal_lib_post): $(pal_lib)
|
||||||
$(MAKE) -C host/$(PAL_HOST) ../../$@
|
@$(MAKE) -C $(HOST_DIR) $@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(pal_static): $(addsuffix .o,$(objs)) $(host_lib) $(graphene_lib)
|
$(pal_static): $(addprefix $(OBJ_DIR)/,$(addsuffix .o,$(objs))) \
|
||||||
|
$(host_lib) $(graphene_lib)
|
||||||
@echo [ $@ ]
|
@echo [ $@ ]
|
||||||
$(AR) $(ARFLAGS) $@ $^ $(ARFLAGS-suffix)
|
@$(AR) $(ARFLAGS) $@ $^ $(ARFLAGS-suffix)
|
||||||
|
|
||||||
%.asm: %.c $(headers)
|
$(OBJ_DIR)/%.asm: %.c $(headers)
|
||||||
$(CC) $(CFLAGS) $(defs) -c $< -o $<.o
|
@mkdir -p $(OBJ_DIR)
|
||||||
|
@echo [ $@ ]
|
||||||
|
@$(CC) $(CFLAGS) $(defs) -c $< -o $<.o
|
||||||
@objdump -S $<.o > $@
|
@objdump -S $<.o > $@
|
||||||
@rm $<.o
|
@rm $<.o
|
||||||
|
|
||||||
@@ -146,19 +152,18 @@ user_shared_start.o: user_start.S
|
|||||||
@echo [ $@ ]
|
@echo [ $@ ]
|
||||||
@$(CC) -DSHARED -fPIC -c $< -o $@
|
@$(CC) -DSHARED -fPIC -c $< -o $@
|
||||||
|
|
||||||
%.o: %.c $(headers)
|
$(OBJ_DIR)/%.o: %.c $(headers)
|
||||||
|
@mkdir -p $(OBJ_DIR)
|
||||||
@echo [ $@ ]
|
@echo [ $@ ]
|
||||||
@$(CC) $(CFLAGS) $(defs) -c $< -o $@ $(CFLAGS-suffix)
|
@$(CC) $(CFLAGS) $(defs) -c $< -o $@ $(CFLAGS-suffix)
|
||||||
|
|
||||||
%.e: %.c $(headers)
|
$(OBJ_DIR)/%.e: %.c $(headers)
|
||||||
|
@mkdir -p $(OBJ_DIR)
|
||||||
@echo [ $@ ]
|
@echo [ $@ ]
|
||||||
@$(CC) $(CFLAGS) $(defs) -E $< -o $@ $(CFLAGS-suffix)
|
@$(CC) $(CFLAGS) $(defs) -E $< -o $@ $(CFLAGS-suffix)
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
ifneq ($(SAVED_OS),$(PAL_HOST))
|
rm -rf $(LIB_DIR) $(OBJ_DIR)
|
||||||
$(MAKE) clean PAL_HOST=$(SAVED_OS)
|
@[ ! -d $(HOST_DIR) ] || $(MAKE) -C $(HOST_DIR) clean
|
||||||
endif
|
|
||||||
rm -rf $(addsuffix .o,$(objs)) $(files_to_build) host_endian.h .lib Makefile.Status
|
|
||||||
@[ ! -d host/$(PAL_HOST) ] || $(MAKE) -C host/$(PAL_HOST) clean
|
|
||||||
@[ ! -d security/$(PAL_HOST) ] || $(MAKE) -C security/$(PAL_HOST) clean
|
@[ ! -d security/$(PAL_HOST) ] || $(MAKE) -C security/$(PAL_HOST) clean
|
||||||
|
|||||||
@@ -94,7 +94,6 @@ static void read_environments (const char *** envpp)
|
|||||||
int len, idx;
|
int len, idx;
|
||||||
} * setenvs = NULL;
|
} * setenvs = NULL;
|
||||||
int nsetenvs = 0;
|
int nsetenvs = 0;
|
||||||
int size;
|
|
||||||
|
|
||||||
if (!pal_state.root_config)
|
if (!pal_state.root_config)
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ defs = -DIN_PAL -DPAL_DIR="$(PAL_DIR)"
|
|||||||
objs = $(addprefix db_,files devices pipes sockets streams memory threading \
|
objs = $(addprefix db_,files devices pipes sockets streams memory threading \
|
||||||
semaphore mutex events process object main rtld misc ipc \
|
semaphore mutex events process object main rtld misc ipc \
|
||||||
exception) rfork_thread
|
exception) rfork_thread
|
||||||
graphene_lib = ../../../lib/graphene-lib.a
|
graphene_lib = .lib/graphene-lib.a
|
||||||
headers = $(wildcard *.h) $(wildcard ../../*.h) $(wildcard ../../../lib/*.h)
|
headers = $(wildcard *.h) $(wildcard ../../*.h) $(wildcard ../../../lib/*.h)
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
@@ -30,10 +30,7 @@ CFLAGS += -DDEBUG
|
|||||||
export DEBUG
|
export DEBUG
|
||||||
endif
|
endif
|
||||||
|
|
||||||
../../host_endian.h: host_endian.h
|
pal-gdb: pal-gdb.template
|
||||||
$(MAKE) -C ../.. $<
|
|
||||||
|
|
||||||
../../pal-gdb: pal-gdb
|
|
||||||
sed -e 's:\$$(PAL_DIR):$(PWD):g' $< > $@
|
sed -e 's:\$$(PAL_DIR):$(PWD):g' $< > $@
|
||||||
chmod 755 $@
|
chmod 755 $@
|
||||||
|
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ LDFLAGS = -shared -nostdlib -z combreloc -z defs \
|
|||||||
--version-script $(HOST_DIR)/pal.map -T $(HOST_DIR)/pal.lds
|
--version-script $(HOST_DIR)/pal.map -T $(HOST_DIR)/pal.lds
|
||||||
ARFLAGS =
|
ARFLAGS =
|
||||||
|
|
||||||
pal_loader = libpal.so
|
pal_loader = $(HOST_DIR)/libpal.so
|
||||||
pal_sec = $(SEC_DIR)/libpal_sec.so
|
pal_sec =
|
||||||
pal_lib = libpal.so
|
pal_lib = $(HOST_DIR)/libpal.so
|
||||||
pal_lib_deps = $(HOST_DIR)/pal.map $(HOST_DIR)/pal.lds
|
pal_lib_deps = $(HOST_DIR)/pal.map $(HOST_DIR)/pal.lds
|
||||||
pal_lib_post =
|
pal_lib_post =
|
||||||
pal_static = libpal.a
|
pal_static = $(HOST_DIR)/libpal.a
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ enclave-objs = $(addprefix db_,files devices pipes sockets streams memory \
|
|||||||
enclave-asm-objs = enclave_entry
|
enclave-asm-objs = enclave_entry
|
||||||
urts-objs = $(addprefix sgx_,enclave framework main rtld thread process exception graphene)
|
urts-objs = $(addprefix sgx_,enclave framework main rtld thread process exception graphene)
|
||||||
urts-asm-objs = sgx_entry
|
urts-asm-objs = sgx_entry
|
||||||
graphene_lib = ../../.lib/graphene-lib.a
|
graphene_lib = .lib/graphene-lib.a
|
||||||
headers = $(wildcard *.h) $(wildcard ../../*.h) $(wildcard ../../../lib/*.h) \
|
headers = $(wildcard *.h) $(wildcard ../../*.h) $(wildcard ../../../lib/*.h) \
|
||||||
$(addprefix sgx-driver/,graphene-sgx.h isgx_version.h)
|
$(addprefix sgx-driver/,graphene-sgx.h isgx_version.h)
|
||||||
|
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ CFLAGS += -DCRYPTO_USE_MBEDTLS
|
|||||||
|
|
||||||
pal_loader = $(HOST_DIR)/pal-sgx
|
pal_loader = $(HOST_DIR)/pal-sgx
|
||||||
pal_sec =
|
pal_sec =
|
||||||
pal_lib = libpal.so
|
pal_lib = $(HOST_DIR)/libpal.so
|
||||||
pal_lib_deps = $(HOST_DIR)/enclave.lds $(HOST_DIR)/pal.map
|
pal_lib_deps = $(HOST_DIR)/enclave.lds $(HOST_DIR)/pal.map
|
||||||
pal_static = libpal.a
|
pal_static = $(HOST_DIR)/libpal.a
|
||||||
pal_gdb = $(HOST_DIR)/debugger/gdb
|
pal_gdb = $(HOST_DIR)/debugger/gdb
|
||||||
pal_signer = pal-sgx-get-token pal-sgx-sign aesm_pb2.py
|
pal_signer = pal-sgx-get-token pal-sgx-sign aesm_pb2.py
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ defs = -DIN_PAL -DPAL_DIR=$(PAL_DIR) -DRUNTIME_DIR=$(RUNTIME_DIR)
|
|||||||
objs = $(addprefix db_,files devices pipes sockets streams memory threading \
|
objs = $(addprefix db_,files devices pipes sockets streams memory threading \
|
||||||
mutex events process object main rtld misc ipc \
|
mutex events process object main rtld misc ipc \
|
||||||
exception) manifest clone-x86_64 gettimeofday-x86_64
|
exception) manifest clone-x86_64 gettimeofday-x86_64
|
||||||
graphene_lib = ../../.lib/graphene-lib.a
|
graphene_lib = .lib/graphene-lib.a
|
||||||
headers = $(wildcard *.h) $(wildcard ../../*.h) $(wildcard ../../../lib/*.h)
|
headers = $(wildcard *.h) $(wildcard ../../*.h) $(wildcard ../../../lib/*.h)
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
@@ -27,9 +27,6 @@ CFLAGS += -DDEBUG
|
|||||||
export DEBUG
|
export DEBUG
|
||||||
endif
|
endif
|
||||||
|
|
||||||
../../host_endian.h: host_endian.h
|
|
||||||
$(MAKE) -C ../.. $<
|
|
||||||
|
|
||||||
libpal-Linux.a: $(addsuffix .o,$(objs)) $(graphene_lib)
|
libpal-Linux.a: $(addsuffix .o,$(objs)) $(graphene_lib)
|
||||||
@echo [ host/Linux/$@ ]
|
@echo [ host/Linux/$@ ]
|
||||||
@$(AR) $(ARFLAGS) $@ $^
|
@$(AR) $(ARFLAGS) $@ $^
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ LDFLAGS = -shared -nostdlib -z combreloc -z defs \
|
|||||||
--version-script $(HOST_DIR)/pal.map -T $(HOST_DIR)/pal.lds
|
--version-script $(HOST_DIR)/pal.map -T $(HOST_DIR)/pal.lds
|
||||||
ARFLAGS =
|
ARFLAGS =
|
||||||
|
|
||||||
pal_loader = libpal.so
|
pal_loader = $(HOST_DIR)/libpal.so
|
||||||
pal_sec = $(SEC_DIR)/libpal_sec.so
|
pal_sec = $(SEC_DIR)/libpal_sec.so
|
||||||
pal_lib = libpal.so
|
pal_lib = $(HOST_DIR)/libpal.so
|
||||||
pal_lib_deps = $(HOST_DIR)/pal.map $(HOST_DIR)/pal.lds
|
pal_lib_deps = $(HOST_DIR)/pal.map $(HOST_DIR)/pal.lds
|
||||||
pal_lib_post =
|
pal_lib_post =
|
||||||
pal_static = libpal.a
|
pal_static = $(HOST_DIR)/libpal.a
|
||||||
pal_gdb =
|
pal_gdb =
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ CFLAGS = -Wall -fPIC -O2 -std=gnu99 -fgnu89-inline -Wall -U_FORTIFY_SOURCE \
|
|||||||
LDFLAGS = -shared -nostdlib -z combreloc -z defs --version-script pal-sec.map -e start
|
LDFLAGS = -shared -nostdlib -z combreloc -z defs --version-script pal-sec.map -e start
|
||||||
|
|
||||||
objs = bpf_helper filter main manifest printf
|
objs = bpf_helper filter main manifest printf
|
||||||
graphene_lib = ../../.lib/graphene-lib.a
|
graphene_lib = ../../host/Linux/.lib/graphene-lib.a
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: libpal_sec.so
|
all: libpal_sec.so
|
||||||
|
|||||||
+8
-4
@@ -1,4 +1,4 @@
|
|||||||
SYS ?= $(shell gcc -dumpmachine)
|
include ../src/Makefile.Host
|
||||||
|
|
||||||
CC = gcc
|
CC = gcc
|
||||||
CFLAGS = -Wall -O2 -std=gnu99 -fgnu89-inline -fno-builtin -nostdlib \
|
CFLAGS = -Wall -O2 -std=gnu99 -fgnu89-inline -fno-builtin -nostdlib \
|
||||||
@@ -16,7 +16,7 @@ manifests = manifest
|
|||||||
target = $(executables) $(manifests)
|
target = $(executables) $(manifests)
|
||||||
|
|
||||||
graphene_lib = .lib/graphene-lib.a
|
graphene_lib = .lib/graphene-lib.a
|
||||||
pal_lib = ../src/libpal.so
|
pal_lib = ../../Runtime/libpal-$(PAL_HOST).so
|
||||||
headers = $(wildcard ../include/pal/*.h)
|
headers = $(wildcard ../include/pal/*.h)
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
@@ -41,8 +41,12 @@ $(executables): %: %.c $(graphene_lib) $(pal_lib) ../src/user_start.o
|
|||||||
@echo [ $@ ]
|
@echo [ $@ ]
|
||||||
@$(CC) $(CFLAGS) $(if $(filter Pie,$@),-fPIC -pie,) $^ -o $@
|
@$(CC) $(CFLAGS) $(if $(filter Pie,$@),-fPIC -pie,) $^ -o $@
|
||||||
|
|
||||||
$(graphene_lib):
|
.lib/host_endian.h: ../src/host/$(PAL_HOST)/host_endian.h
|
||||||
$(MAKE) -C ../lib target=$(shell pwd)/.lib/
|
@mkdir -p .lib
|
||||||
|
cp -f $< $@
|
||||||
|
|
||||||
|
$(graphene_lib): .lib/host_endian.h
|
||||||
|
$(MAKE) -C ../lib target=$(abspath .lib)/
|
||||||
else
|
else
|
||||||
.IGNORE: $(executables)
|
.IGNORE: $(executables)
|
||||||
$(executables):
|
$(executables):
|
||||||
|
|||||||
Reference in New Issue
Block a user