LISP=@LISP_PROGRAM@

clisp_BUILDOPTS=-on-error exit < ./make-image.lisp
sbcl_BUILDOPTS=--disable-debugger --load ./make-image.lisp
ccl_BUILDOPTS=--load ./make-image.lisp
ecl_BUILDOPTS=-shell ./make-image.lisp
lw_BUILDOPTS=-build ./make-image.lisp

clisp_INFOOPTS=-on-error exit -x "(load \"/usr/share/common-lisp/source/cl-asdf/asdf.lisp\") (load (compile-file \"load-stumpwm.lisp\")) (load (compile-file \"manual.lisp\")) (stumpwm::generate-manual) (ext:exit)"
sbcl_INFOOPTS=--disable-debugger --eval "(progn (load \"load-stumpwm.lisp\") (load \"manual.lisp\"))" --eval "(progn (stumpwm::generate-manual) (sb-ext:quit))"
ccl_INFOOPTS=--eval "(load \"load-stumpwm.lisp\")" --load manual.lisp --eval "(progn (stumpwm::generate-manual) (quit))"
ecl_INFOOPTS=-eval "(progn (load \"load-stumpwm.lisp\") (load \"manual.lisp\"))" -eval "(progn (stumpwm::generate-manual) (ext:quit))"
lw_INFOOPTS=-eval "(progn (load \"load-stumpwm.lisp\") (load \"manual.lisp\"))" -eval "(progn (stumpwm::generate-manual) (lw:quit))"

datarootdir = @datarootdir@
prefix=@prefix@
exec_prefix= @exec_prefix@
bindir=@bindir@
infodir=@infodir@

# You shouldn't have to edit past this

FILES=stumpwm.asd $(shell grep -o ":file \".*\"" stumpwm.asd | sed 's,:file ",,g' | sed 's,",.lisp,g' )

all: stumpwm stumpwm.info

travis: stumpwm
stumpwm.info: stumpwm.texi
	makeinfo stumpwm.texi

# FIXME: This rule is too hardcoded
stumpwm.texi: stumpwm.texi.in
	$(LISP) $(@LISP@_INFOOPTS)

stumpwm: $(FILES)
	$(LISP) $(@LISP@_BUILDOPTS)

release:
	git tag -a -m "version @PACKAGE_VERSION@" @PACKAGE_VERSION@
	git archive --format=tar --prefix=stumpwm-@PACKAGE_VERSION@/ HEAD > stumpwm-@PACKAGE_VERSION@.tar
	tar xf stumpwm-@PACKAGE_VERSION@.tar
	cd stumpwm-@PACKAGE_VERSION@ && tar zxf @PPCRE_PATH@/../cl-ppcre.tar.gz && mv cl-ppcre-* cl-ppcre
	git log > stumpwm-@PACKAGE_VERSION@/ChangeLog
	cp configure stumpwm-@PACKAGE_VERSION@/
	tar zcf stumpwm-@PACKAGE_VERSION@.tgz stumpwm-@PACKAGE_VERSION@
	rm -fr stumpwm-@PACKAGE_VERSION@/ stumpwm-@PACKAGE_VERSION@.tar

upload-release:
	gpg -b stumpwm-@PACKAGE_VERSION@.tgz
	scp stumpwm-@PACKAGE_VERSION@.tgz stumpwm-@PACKAGE_VERSION@.tgz.sig sabetts@dl.sv.nongnu.org:/releases/stumpwm/
	( echo rm stumpwm-latest.tgz.sig && echo rm stumpwm-latest.tgz && echo ln stumpwm-@PACKAGE_VERSION@.tgz stumpwm-latest.tgz && echo ln stumpwm-@PACKAGE_VERSION@.tgz.sig stumpwm-latest.tgz.sig ) | sftp -b - sabetts@dl.sv.nongnu.org:/releases/stumpwm/

clean:
	rm -f *.fasl *.fas *.lib *.*fsl
	rm -f *.log *.fns *.fn *.aux *.cp *.ky *.log *.toc *.pg *.tp *.vr *.vrs
	rm -f stumpwm stumpwm.texi stumpwm.info

install: stumpwm.info stumpwm
	test -z "$(destdir)$(bindir)" || mkdir -p "$(destdir)$(bindir)"
	install -m 755 stumpwm "$(destdir)$(bindir)"
	test -z "$(destdir)$(infodir)" || mkdir -p "$(destdir)$(infodir)"
	install -m 644 stumpwm.info "$(destdir)$(infodir)"
	install-info --info-dir="$(destdir)$(infodir)" "$(destdir)$(infodir)/stumpwm.info"
install-modules:
	git clone https://github.com/stumpwm/stumpwm-contrib.git ~/.stumpwm.d/modules
uninstall:
	rm "$(destdir)$(bindir)/stumpwm"
	install-info --info-dir="$(destdir)$(infodir)" --remove "$(destdir)$(infodir)/stumpwm.info"
	rm "$(destdir)$(infodir)/stumpwm.info"

# End of file
