mirror of
https://github.com/clearlinux/graphene.git
synced 2026-04-28 19:23:39 +00:00
Instead of 'loader.debug_type', introduce 'loader.log_level' and 'loader.log_file', along with a set of definitions for logging at a chosen level. For now, the call sites keep using the legacy macros (SGX_DBG and debug()), because converting them all will conflict with other big changes in the code base. The existing LibOS calls are assumed to be at 'info' level.
110 lines
4.4 KiB
Makefile
110 lines
4.4 KiB
Makefile
manifests = $(addsuffix .manifest,label_image)
|
|
exec_target = $(manifests)
|
|
target = label_image
|
|
|
|
GRAPHENEDIR ?= ../..
|
|
SGX_SIGNER_KEY ?= $(GRAPHENEDIR)/Pal/src/host/Linux-SGX/signer/enclave-key.pem
|
|
TF_DIR ?= tensorflow
|
|
BAZEL_BIN ?= $(HOME)/bin/bazel
|
|
|
|
GIT_COMMIT ?= v1.9.0
|
|
TAR_SHA256 ?= ffc3151b06823d57b4a408261ba8efe53601563dfe93af0866751d4f6ca5068c
|
|
|
|
.PHONY: all
|
|
all: label_image.manifest
|
|
ifeq ($(SGX),1)
|
|
all: label_image.manifest.sgx label_image.sig label_image.token
|
|
endif
|
|
|
|
include ../../Scripts/Makefile.configs
|
|
|
|
$(TF_DIR)/configure:
|
|
$(GRAPHENEDIR)/Scripts/download --output tensorflow.tar.gz --sha256 $(TAR_SHA256)\
|
|
--url https://github.com/tensorflow/tensorflow/archive/$(GIT_COMMIT).tar.gz
|
|
mkdir $(TF_DIR)
|
|
tar -C $(TF_DIR) --strip-components=1 -xf tensorflow.tar.gz
|
|
|
|
$(TF_DIR)/bazel-bin/tensorflow/contrib/lite/examples/label_image/label_image: $(TF_DIR)/configure
|
|
cd $(TF_DIR) && $(BAZEL_BIN) build tensorflow/contrib/lite/examples/label_image
|
|
|
|
label_image: $(TF_DIR)/bazel-bin/tensorflow/contrib/lite/examples/label_image/label_image
|
|
cp $^ .
|
|
|
|
libtensorflow_framework.so: label_image
|
|
cp $(TF_DIR)/bazel-bin/tensorflow/libtensorflow_framework.so $@
|
|
|
|
INCEPTION_HASH=b1a1f91276e48a9ddf0cb0d854f044ebfbf985dc2c2cedceb52b3d668894299a
|
|
inception_v3.tflite:
|
|
$(GRAPHENEDIR)/Scripts/download --output inception_v3_2018_04_27.tgz --sha256 $(INCEPTION_HASH)\
|
|
--url https://storage.googleapis.com/download.tensorflow.org/models/tflite/model_zoo/upload_20180427/inception_v3_2018_04_27.tgz
|
|
tar xfz inception_v3_2018_04_27.tgz
|
|
|
|
labels.txt: $(TF_DIR)/tensorflow/contrib/lite/java/ovic/src/testdata/labels.txt
|
|
cp $^ $@
|
|
|
|
image.bmp: $(TF_DIR)/tensorflow/contrib/lite/examples/label_image/testdata/grace_hopper.bmp
|
|
cp $^ $@
|
|
|
|
$(GRAPHENEDIR)/Runtime/libgcc_s.so.1:
|
|
cp $(ARCH_LIBDIR)/libgcc_s.so.1 $@
|
|
|
|
$(GRAPHENEDIR)/Runtime/libstdc++.so.6:
|
|
cp /usr/$(ARCH_LIBDIR)/libstdc++.so.6 $@
|
|
|
|
label_image.manifest: libtensorflow_framework.so label_image inception_v3.tflite labels.txt image.bmp
|
|
label_image.manifest: $(GRAPHENEDIR)/Runtime/libgcc_s.so.1 $(GRAPHENEDIR)/Runtime/libstdc++.so.6
|
|
label_image.manifest: label_image.manifest.template
|
|
sed -e 's|$$(GRAPHENEDIR)|'"$(GRAPHENEDIR)"'|g' \
|
|
-e 's|$$(GRAPHENE_LOG_LEVEL)|'"$(GRAPHENE_LOG_LEVEL)"'|g' \
|
|
$< > $@
|
|
|
|
label_image.manifest.sgx: label_image.manifest inception_v3.tflite labels.txt
|
|
$(GRAPHENEDIR)/Pal/src/host/Linux-SGX/signer/pal-sgx-sign \
|
|
-libpal $(GRAPHENEDIR)/Runtime/libpal-Linux-SGX.so \
|
|
-key $(SGX_SIGNER_KEY) \
|
|
-manifest $< -output $@
|
|
$(GRAPHENEDIR)/Pal/src/host/Linux-SGX/signer/pal-sgx-get-token \
|
|
-output label_image.token -sig label_image.sig
|
|
|
|
.PHONY: check
|
|
check: all
|
|
$(GRAPHENEDIR)/Runtime/pal_loader ./label_image -m inception_v3.tflite -i image.bmp -t 4
|
|
|
|
.PHONY: run-native
|
|
run-native: all
|
|
./label_image -m inception_v3.tflite -i image.bmp -t 4
|
|
|
|
.PHONY: run-graphene
|
|
run-graphene: all
|
|
$(GRAPHENEDIR)/Runtime/pal_loader ./label_image -m inception_v3.tflite -i image.bmp -t 4
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
$(RM) label_image.manifest label_image.manifest.sgx label_image.sig label_image.token
|
|
|
|
.PHONY: distclean
|
|
distclean: clean
|
|
$(RM) -r label_image
|
|
$(RM) inception_v3_2018_04_27.tgz inception_v3.pb inception_v3.tflite labels.txt image.bmp
|
|
$(RM) -r $(TF_DIR) tensorflow.tar.gz libtensorflow_framework.so bazel-*-installer-linux-*.sh
|
|
|
|
BAZEL_INSTALLER_HASH=17ab70344645359fd4178002f367885e9019ae7507c9c1ade8220f3628383444
|
|
.PHONY: install-dependencies-ubuntu
|
|
install-dependencies-ubuntu:
|
|
apt-get update
|
|
apt-get install -y python-dev python-pip wget git
|
|
# https://docs.bazel.build/versions/master/install-ubuntu.html
|
|
apt-get install -y pkg-config zip g++ zlib1g-dev unzip python
|
|
$(GRAPHENEDIR)/Scripts/download --output bazel-0.16.1-installer-linux-x86_64.sh --sha256 $(BAZEL_INSTALLER_HASH)\
|
|
--url https://github.com/bazelbuild/bazel/releases/download/0.16.1/bazel-0.16.1-installer-linux-x86_64.sh
|
|
chmod +x bazel-0.16.1-installer-linux-x86_64.sh
|
|
./bazel-0.16.1-installer-linux-x86_64.sh --user
|
|
|
|
.PHONY: install-dependencies-fedora
|
|
install-dependencies-fedora:
|
|
dnf -y install python3-devel python3-pip wget git pkg-config zip gcc-g++ zlib-devel unzip
|
|
$(GRAPHENEDIR)/Scripts/download --output bazel-0.16.1-installer-linux-x86_64.sh --sha256 $(BAZEL_INSTALLER_HASH)\
|
|
--url https://github.com/bazelbuild/bazel/releases/download/0.16.1/bazel-0.16.1-installer-linux-x86_64.sh
|
|
chmod +x bazel-0.16.1-installer-linux-x86_64.sh
|
|
./bazel-0.16.1-installer-linux-x86_64.sh --user
|