prefix=/usr/local

default: build
	/bin/true

files1=gprog.py modunits.py num_den_boxcar_average.py blocksize_optimizer.py
files2=gprog-clone-partition fsent_mod.py

go9:
	bash -x ./gprog-ssh-df-tar --host localhost --mount-point / | tar tvf -

build:
	ln -sf gprog gprog.py
	ctags-exuberant ${files1} ${files2} || ctags ${files1} ${files2}
	# Note that I have only unit-tested the type-annotated version. I have not done a clone with it yet. Feb 25 2021.
	python3 -m mypy --disallow-untyped-calls --ignore-missing-imports ${files1}
	python3 -m mypy --disallow-untyped-calls --ignore-missing-imports ${files2}

go8: build
	./gprog-clone-partition --source-partition /dev/sdg1 --destination-partition /dev/sdf1 --dry-run

go: build
	ln -sf gprog gprog.py
	seq 10000 | while read number; do seq 1000; sleep 0.001; done | tee teed | ./gprog --size-estimate 38930000 --quit-when-done > not-teed
	cmp teed not-teed
	rm -f teed not-teed
	# ./gprog --min-blocksize 1 --max-blocksize 3 --initial-blocksize 2 < /dev/random > /dev/null
	./tst

go7:
	./gprog < /etc/passwd

go6:
	./gprog-buf < /etc/passwd

go5:
	./gprogtest

go4:
	./chart

go3:
	./num_den_boxcar_average.py

go2:
	./boxcar_average.py

clean:
	rm -f *.pyc input output processed-input unprocessed-input gprog.py tags teed not-teed
	rm -rf __pycache__ .mypy_cache

install:
	# sudo mkdir -p ${prefix}/bin ${prefix}/lib
	./install-file --file blocksize_optimizer.py --directory ${prefix}/lib/.
	./install-file --file modunits.py --directory ${prefix}/lib/.
	./install-file --file bashquote.py --directory ${prefix}/lib/.
	./install-file --file num_den_boxcar_average.py --directory ${prefix}/lib/.
	./install-file --file readline0.py --directory ${prefix}/lib/.
	./install-file --file gprog --directory ${prefix}/bin/.
	./install-file --file gprog-buf --directory ${prefix}/bin/.
	./install-file --file gprog-du-tar --directory ${prefix}/bin/.
	./install-file --file gprog-ssh-du-tar --directory ${prefix}/bin/.
	./install-file --file gprog-df-tar --directory ${prefix}/bin/.
	./install-file --file gprog-ssh-df-tar --directory ${prefix}/bin/.
	./install-file --file gprog-backshift-extract --directory ${prefix}/bin/.
	./install-file --file count --directory ${prefix}/bin/.
	./install-file --file get-disk-free --directory ${prefix}/bin/.
	# This might be helpful, but it could be a default package, too. It includes /bin/findmnt.
	# ./install-package --deb-packages util-linux
	./install-package --deb-packages parted --brew-packages gnu-tar
	./install-file --file gprog-clone-partition --directory ${prefix}/bin/.
	./install-file --file fsent_mod.py --directory ${prefix}/lib/.
	./install-via-pip --python-path /usr/bin/python3 --module-to-import treap --pip-package treap
	# ./install-via-pip --pip-path /usr/bin/pip3 --python-path /usr/bin/python3 --module-to-import pyx_treap --pip-package pyx_treap \
	#	|| true
	./install-via-pip --python-path /usr/bin/python3 \
		--module-to-import dupdict_mod --pip-package dupdict-mod

#publish:
#	tar cvzf ~/public_html/gprog/releases/gprog-$$(cat Version).tar.gz *