diff --git a/lib/Makefile b/lib/Makefile index 1b4220f..c9c43f4 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -14,14 +14,28 @@ export PACKAGES = svtplay_dl \ svtplay_dl.utils \ svtplay_dl.service \ svtplay_dl.subtitle -export PYFILES = $(addsuffix /*.py,$(subst .,/,$(PACKAGES))) +export PYFILES = $(sort $(addsuffix /*.py,$(subst .,/,$(PACKAGES)))) PYTHON ?= /usr/bin/env python svtplay-dl: $(PYFILES) - zip -X --quiet svtplay-dl $(PYFILES) - zip -X --quiet --junk-paths svtplay-dl svtplay_dl/__main__.py + @# Verify that there's no .build already \ + ! [ -d .build ] || { \ + echo "ERROR: build already in progress? (or remove $(PWD)/.build/)"; \ + exit 1; \ + }; \ + mkdir -p .build + + @# Stage the files in .build for postprocessing + for py in $(PYFILES); do install -D $$py .build/$$py; done + + @# reset timestamps, to avoid non-determinism in zip file + find .build/ -exec touch -m -t 198001010000 {} \; + + (cd .build && zip -X --quiet svtplay-dl $(PYFILES)) + (cd .build && zip -X --quiet --junk-paths svtplay-dl svtplay_dl/__main__.py) + echo '#!$(PYTHON)' > svtplay-dl - cat svtplay-dl.zip >> svtplay-dl - rm svtplay-dl.zip + cat .build/svtplay-dl.zip >> svtplay-dl + rm -rf .build chmod a+x svtplay-dl