LISP=sbcl PREFIX=${HOME}/.local REAL_PREFIX=$(PREFIX) override SRCS=clash.asd format.lisp parse-date.lisp clash.lisp override LOAD_CLASH=--eval "(ql:quickload '(:cl-ppcre :clingon :local-time :uiop :trivial-features :osicat))" \ --eval '(require "asdf")' \ --eval '(asdf:load-asd (merge-pathnames "../cl-xdg-trash/cl-xdg-trash.asd" (uiop:getcwd)))' \ --eval '(asdf:load-asd (merge-pathnames "clash.asd" (uiop:getcwd)))' \ --eval '(asdf:load-system :clash)' all: clash clash.1 clash: $(SRCS) $(LISP) $(LOAD_CLASH) \ --eval '(asdf:make :clash)' \ --eval '(uiop:quit)' clash.md: $(SRCS) $(LISP) $(LOAD_CLASH) \ --eval '(clash:make-markdown-doc)' \ --eval '(uiop:quit)' \ -- clash.md clash.1: clash.md go-md2man clash.1 install: clash clash.1 install -D clash $(PREFIX)/bin/clash install -m0644 -D clash.1 $(PREFIX)/share/man/man1/clash.1 override DEPLOY_OUTPUT=bin/clash bin/libosicat.so bin/librt.so.1 deploy-build: $(DEPLOY_OUTPUT) $(DEPLOY_OUTPUT): $(SRCS) $(LISP) --eval '(push :deploy-console *features*)' \ $(LOAD_CLASH) \ --eval '(ql:quickload :deploy)' \ --eval "(asdf:operate 'deploy:deploy-op :clash)" \ --eval '(uiop:quit)' deploy-install: deploy-build clash.1 mkdir -p "$(PREFIX)/lib/clash/" cp $(DEPLOY_OUTPUT) "$(PREFIX)/lib/clash/" mkdir -p "$(PREFIX)/bin/" ln -sf "$(REAL_PREFIX)/lib/clash/clash" "$(PREFIX)/bin/clash" mkdir -p "$(PREFIX)/share/man/man1/" cp clash.1 "$(PREFIX)/share/man/man1/" clean: rm -f clash clash.md clash.1 rm -rf bin/ .PHONY: all deploy-build deploy-install clean