Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. ## Options
  2. PY=python3
  3. ZIP=zip -0 -q
  4. PYLINT=pylint -E
  5. PYC=$(PY) -c "from py_compile import compile; from sys import argv; compile(argv[1], cfile=argv[1]+'c', doraise=True, optimize=2)"
  6.  
  7. PREFIX=/usr/bin
  8.  
  9. ##Default uses direcory name, replace if neccessary
  10. NAME=$(shell basename $$PWD)
  11. OUT=$(NAME).pyz
  12.  
  13. ## Files
  14. SRC = $(wildcard *.py)
  15. OBJ = $(SRC:%.py=%.pyc)
  16. CLEAN = $(wildcard *.pyc) $(wildcard *.pyz.zip) $(wildcard *.pyz) $(wildcard *.py.lint)
  17.  
  18. ## Build Targets
  19. $(OUT) : $(OUT).zip
  20. @printf " PYZ\t$@ <= $<\n"
  21. @echo "#!$$(which $(PY))" | cat - $(OUT).zip >$(OUT)
  22. @chmod +x $(OUT)
  23.  
  24. $(OUT).zip : $(OBJ)
  25. @printf " ZIP\t$@ <= $+\n"
  26. @$(ZIP) $(OUT).zip $(OBJ)
  27.  
  28. %.py.lint : %.py
  29. @printf " LINT $<\n"
  30. @$(PYLINT) $<
  31.  
  32. %.pyc : %.py %.py.lint
  33. @printf " PYC\t$@\n"
  34. @$(PYC) $<
  35.  
  36. ## Phony Targets
  37. .PHONY: clean all dist check install
  38. clean :
  39. @for x in $(CLEAN); do printf " RM\t$$x\n"; rm -rf $$x; done
  40.  
  41. all : dist
  42.  
  43. dist : $(OUT)
  44.  
  45. check : dist
  46. @printf " CHK\t$(OUT).zip\n"
  47. @zip -T $(OUT).zip
  48.  
  49. install : dist
  50. @printf " INST\t$(OUT) => $(PREFIX)/$(NAME)\n"
  51. @install -m 755 $(OUT) $(PREFIX)/$(NAME)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement