mirror of
https://github.com/clearlinux/graphene.git
synced 2026-08-28 21:35:52 +00:00
2c351eeca4
Running `make` without arguments (as advertized in the README) previously resulted in "make: *** No rule to make target 'all'", because of ".DEFAULT_GOAL := all" in Scripts/Makefile.Host.
111 lines
4.3 KiB
Makefile
111 lines
4.3 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
|
|
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|$$(GRAPHENEDEBUG)|'"$(GRAPHENEDEBUG)"'|g' \
|
|
$< > $@
|
|
|
|
label_image.manifest.sgx: label_image.manifest
|
|
$(GRAPHENEDIR)/Pal/src/host/Linux-SGX/signer/pal-sgx-sign \
|
|
-libpal $(GRAPHENEDIR)/Runtime/libpal-Linux-SGX.so \
|
|
-key $(SGX_SIGNER_KEY) \
|
|
-manifest $< -output $@ \
|
|
-exec label_image
|
|
$(GRAPHENEDIR)/Pal/src/host/Linux-SGX/signer/pal-sgx-get-token \
|
|
-output label_image.token -sig label_image.sig
|
|
|
|
.PHONY: check
|
|
check: default
|
|
$(GRAPHENEDIR)/Runtime/pal_loader ./label_image -m inception_v3.tflite -i image.bmp -t 4
|
|
|
|
.PHONY: run-native
|
|
run-native: default
|
|
./label_image -m inception_v3.tflite -i image.bmp -t 4
|
|
|
|
.PHONY: run-graphene
|
|
run-graphene: default
|
|
$(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
|