79 lines
2.1 KiB
Makefile
79 lines
2.1 KiB
Makefile
.PHONY: control
|
|
|
|
VERSION=0.6.2
|
|
BASENAME=tensorflow
|
|
|
|
help:
|
|
@echo
|
|
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
@echo
|
|
|
|
all: download clean extract DEBIAN build
|
|
|
|
build-deb:
|
|
# apt install -y gcc g++ git gnupg make zip unzip
|
|
# pip install tensorflow
|
|
# this actually seems to work:
|
|
pip install tf-nightly-cpu
|
|
|
|
build:
|
|
apt install python3-dev python3-pip
|
|
pip install -U --user pip numpy wheel packaging requests opt_einsum
|
|
pip install -U --user keras_preprocessing --no-deps
|
|
apt install bazel
|
|
mkdir ~/tmp; cd ~/tmp/ && git clone https://github.com/tensorflow/tensorflow.git
|
|
./configure
|
|
bazel build [--config=option] //tensorflow/tools/pip_package:build_pip_package # for cpu support
|
|
bazel build --config=cuda [--config=option] //tensorflow/tools/pip_package:build_pip_package # for gpu support
|
|
./bazel-bin/tensorflow/tools/pip_package/build_pip_package --nightly_flag /tmp/tensorflow_pkg
|
|
pip install /tmp/tensorflow_pkg/tensorflow-version
|
|
|
|
clean:
|
|
rm -rf ../files
|
|
rm -f ../*.deb
|
|
rm -f ../*.tar.xz data.tar.xz
|
|
rm -rf DEBIAN
|
|
|
|
download:
|
|
@echo
|
|
@echo This uses the binary /usr/local/bin/tensorflow
|
|
@echo
|
|
@echo pip install tensorflow
|
|
|
|
extract:
|
|
cp -a files ../
|
|
mkdir -p ../files/usr/bin
|
|
cp /usr/local/bin/tensorflow ../files/usr/bin
|
|
|
|
# makes the DEBIAN/ directory
|
|
DEBIAN:
|
|
mkdir -p DEBIAN
|
|
|
|
# make the md5sum file
|
|
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../md5sums
|
|
mv ../md5sums DEBIAN/
|
|
|
|
# make the control there
|
|
mkdir -p DEBIAN
|
|
cp control DEBIAN/
|
|
# echo Version: ${VERSION} >>DEBIAN/control
|
|
|
|
cp postinst DEBIAN
|
|
|
|
build:
|
|
mv DEBIAN ../files/
|
|
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}_amd64.deb
|
|
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
|
|
# how to make a debian package "raw" just using tar and ar
|
|
#
|
|
# READ THIS AGAIN:
|
|
#
|
|
# A .deb file is just output from 'ar rcs'
|
|
#
|
|
tar-ar: control
|
|
cd DEBIAN && tar --ignore-failed-read -cvJf ../control.tar.xz .
|
|
cd files && tar -cvJf ../data.tar.xz .
|
|
ar rcs ${BASENAME}_${VERSION}_amd64.deb debian-binary control.tar.xz data.tar.xz
|
|
dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|