mirror of
https://github.com/corda/corda.git
synced 2024-12-30 17:57:02 +00:00
a639839a68
* ENT-1188 - Remove unused scripts and dependencies * ENT-1188 - Update references to removed scripts * ENT-1188 - Clean up Makefile for container build of SGX JVM * ENT-1188 - Group udev rules into separate folder * ENT-1188 - Remove old references to dependencies folder
94 lines
2.5 KiB
Makefile
94 lines
2.5 KiB
Makefile
MAKEFILE_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
|
SHELL=/bin/bash
|
|
|
|
JDK_IMAGE=$(MAKEFILE_DIR)/jdk8u/build/linux-x86_64-normal-server-release/images/j2re-image
|
|
|
|
.PHONY: all
|
|
|
|
all: \
|
|
jvm-enclave/standalone/build/standalone_sgx_verify \
|
|
linux-sgx-driver/isgx.ko
|
|
|
|
# === JVM Enclave ===
|
|
|
|
jvm-enclave/standalone/build/standalone_sgx_verify: \
|
|
avian linux-sgx/build/linux/aesm_service
|
|
JAVA_HOME=$(JAVA_HOME) JDK_IMAGE=$(JDK_IMAGE) $(MAKE) -C jvm-enclave
|
|
|
|
# === Avian with SGX Support ===
|
|
|
|
AVIAN_EXTRA_CFLAGS="-I/usr/include -I/usr/include/x86_64-linux-gnu"
|
|
AVIAN_EXTRA_LDFLAGS="-L/usr/lib -L/usr/lib/x86_64-linux-gnu -ldl -lpthread -lz"
|
|
.PHONY: avian
|
|
avian: | $(JDK_IMAGE)
|
|
PATH=/usr/bin:$(PATH) $(MAKE) -C avian \
|
|
build-lflags=$(AVIAN_EXTRA_LDFLAGS) \
|
|
extra-lflags=$(AVIAN_EXTRA_LDFLAGS) \
|
|
extra-build-cflags+=$(AVIAN_EXTRA_CFLAGS) \
|
|
extra-cflags+=$(AVIAN_EXTRA_CFLAGS) \
|
|
mode=debug \
|
|
openjdk=$(JAVA_HOME) \
|
|
openjdk-src=$(MAKEFILE_DIR)/jdk8u/jdk/src \
|
|
openjdk-image=$(JDK_IMAGE) \
|
|
system=sgx
|
|
|
|
# === Deterministic JDK ===
|
|
|
|
jdk8u:
|
|
git clone -b deterministic-jvm8 --single-branch https://github.com/corda/openjdk $@
|
|
|
|
$(JDK_IMAGE): jdk8u
|
|
cd jdk8u && \
|
|
ALSA_NOT_NEEDED=yes CUPS_NOT_NEEDED=yes FREETYPE_NOT_NEEDED=yes \
|
|
PULSE_NOT_NEEDED=yes X11_NOT_NEEDED=yes $(SHELL) ./configure && \
|
|
$(MAKE) JOBS=2 images docs
|
|
|
|
# === SGX SDK ===
|
|
|
|
# Poor man's up-to-date check (they don't have one in the SDK)
|
|
LINUX_SGX_SOURCES=$(shell find linux-sgx \
|
|
\( \
|
|
-name '*.c' -o \
|
|
-name '*.cpp' -o \
|
|
-name '*.h' -o \
|
|
-name '*.edl' \
|
|
\) ! \( \
|
|
-name '*_u.?' -o \
|
|
-name '*_t.?' -o \
|
|
-name '*.pb.h' -o \
|
|
-path 'linux-sgx/sdk/cpprt/linux/libunwind/*' -o \
|
|
-path 'linux-sgx/external/rdrand/src/config.h' \
|
|
\))
|
|
linux-sgx/build/linux/aesm_service: \
|
|
$(LINUX_SGX_SOURCES) \
|
|
linux-sgx/external/ippcp_internal/inc
|
|
$(MAKE) -C linux-sgx DEBUG=1
|
|
|
|
linux-sgx/external/ippcp_internal/inc:
|
|
cd linux-sgx && $(SHELL) ./download_prebuilt.sh
|
|
|
|
# === SGX Driver ===
|
|
|
|
linux-sgx-driver/isgx.ko:
|
|
$(MAKE) -C linux-sgx-driver
|
|
|
|
# === Directories and Clean ===
|
|
|
|
build:
|
|
mkdir -p $@
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
$(MAKE) -C jvm-enclave clean
|
|
$(MAKE) -C linux-sgx clean
|
|
$(MAKE) -C linux-sgx-driver clean
|
|
[ ! -d jdk8u ] || $(MAKE) -C jdk8u clean
|
|
../gradlew -p .. verify-enclave:clean
|
|
$(MAKE) -C avian clean
|
|
|
|
.PHONY: distclean
|
|
distclean: clean
|
|
$(RM) -r jdk8u
|
|
$(RM) -r linux-sgx/external/{ippcp_internal,libirc,libm}
|
|
|