From ae1e76535e6fb0fe9487161d78df993adff930b3 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 11 Oct 2014 19:11:59 +0200 Subject: prepare for adding info manual and auto-completion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- Makefile | 221 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 190 insertions(+), 31 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index d974ec0..f4b1f9d 100644 --- a/Makefile +++ b/Makefile @@ -3,51 +3,210 @@ # notice and this notice are preserved. This file is offered as-is, # without any warranty. +# The package path prefix, if you want to install to another root, set DESTDIR to that root PREFIX = /usr -DATA = /share +# The command path excluding prefix BIN = /bin -PKGNAME = auto-auto-complete +# The resource path excluding prefix +DATA = /share +# The command path including prefix +BINDIR = $(PREFIX)$(BIN) +# The resource path including prefix +DATADIR = $(PREFIX)$(DATA) +# The generic documentation path including prefix +DOCDIR = $(DATADIR)/doc +# The info manual documentation path including prefix +INFODIR = $(DATADIR)/info +# The license base path including prefix +LICENSEDIR = $(DATADIR)/licenses + +# Python 3 command to use in shebangs SHEBANG = /usr$(BIN)/env python3 +# The name of the command as it should be installed COMMAND = auto-auto-complete -LICENSES = $(PREFIX)$(DATA) +# The name of the package as it should be installed +PKGNAME = auto-auto-complete + +# Build rules -all: auto-auto-complete #doc +.PHONY: default +default: command # info # shell -#doc: info -# -#info: auto-auto-complete.info.gz -# -#%.info.gz: info/%.texinfo -# makeinfo "$<" -# gzip -9 -f "$*.info" +.PHONY: all +all: command # doc # shell -auto-auto-complete: auto-auto-complete.py + +# Build rules for the command + +.PHONY: command +command: bin/auto-auto-complete + +bin/auto-auto-complete: src/auto-auto-complete.py + @mkdir -p bin cp "$<" "$@" sed -i 's:#!/usr/bin/env python3:#!$(SHEBANG):' "$@" -install: auto-auto-complete #auto-auto-complete.info.gz - install -dm755 "$(DESTDIR)$(PREFIX)$(BIN)" - install -m755 auto-auto-complete "$(DESTDIR)$(PREFIX)$(BIN)/$(COMMAND)" - install -dm755 "$(DESTDIR)$(LICENSES)/$(PKGNAME)" - install -m644 COPYING LICENSE "$(DESTDIR)$(LICENSES)/$(PKGNAME)" - install -dm755 "$(DESTDIR)$(PREFIX)$(DATA)/doc/$(PKGNAME)" - install -m644 example "$(DESTDIR)$(PREFIX)$(DATA)/doc/$(PKGNAME)" -# install -dm755 "$(DESTDIR)$(PREFIX)$(DATA)/info" -# install -m644 auto-auto-complete.info.gz "$(DESTDIR)$(PREFIX)$(DATA)/info/$(PKGNAME).info.gz" + +# Build rules for documentation + +.PHONY: doc +doc: info pdf dvi ps + +.PHONY: info +info: bin/auto-auto-complete.info +bin/%.info: info/%.texinfo info/fdl.texinfo + @mkdir -p bin + makeinfo $< + mv $*.pdf $@ + +.PHONY: pdf +pdf: bin/auto-auto-complete.pdf +bin/%.pdf: info/%.texinfo info/fdl.texinfo + @mkdir -p obj bin + cd obj ; yes X | texi2pdf ../$< + mv obj/$*.pdf $@ + +.PHONY: dvi +dvi: bin/auto-auto-complete.dvi +bin/%.dvi: info/%.texinfo info/fdl.texinfo + @mkdir -p obj bin + cd obj ; yes X | $(TEXI2DVI) ../$< + mv obj/$*.pdf $@ + +.PHONY: ps +ps: bin/auto-auto-complete.ps +bin/%.ps: info/%.texinfo info/fdl.texinfo + @mkdir -p obj bin + cd obj ; yes X | texi2pdf --ps ../$< + mv obj/$*.pdf $@ + + +# Build rules for shell auto-completion + +.PHONY: shell +shell: bash zsh fish + +.PHONY: bash +bash: bin/auto-auto-complete.bash +bin/auto-auto-complete.bash: src/completion bin/auto-auto-complete + @mkdir -p bin + bin/auto-auto-complete bash --output $@ --source $< + +.PHONY: zsh +zsh: bin/auto-auto-complete.zsh +bin/auto-auto-complete.zsh: src/completion bin/auto-auto-complete + @mkdir -p bin + bin/auto-auto-complete zsh --output $@ --source $< + +.PHONY: fish +fish: bin/auto-auto-complete.fish +bin/auto-auto-complete.fish: src/completion bin/auto-auto-complete + @mkdir -p bin + bin/auto-auto-complete fish --output $@ --source $< + + +# Install rules + +.PHONY: install +install: install-base install-examples # install-info # install-shell + +.PHONY: install +install-all: install-base install-doc # install-shell + +# Install base rules + +.PHONY: install-base +install-base: install-command install-license + +.PHONY: install-command-bin +install-command: bin/auto-auto-complete + install -dm755 -- "$(DESTDIR)$(BINDIR)" + install -m755 $< -- "$(DESTDIR)$(BINDIR)/$(COMMAND)" + +.PHONY: install-license +install-license: + install -dm755 -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" + install -m644 COPYING LICENSE -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" + +# Install documentation + +.PHONY: install-doc +install-doc: install-examples # install-info install-pdf install-ps install-dvi + +.PHONY: install-examples +install-examples: doc/example + install -dm755 -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME)" + install -m644 $^ -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME)/example" + +.PHONY: install-info +install-info: bin/auto-auto-complete.info + install -dm755 -- "$(DESTDIR)$(INFODIR)" + install -m644 $< -- "$(DESTDIR)$(INFODIR)/$(PKGNAME).info" + +.PHONY: install-pdf +install-pdf: bin/auto-auto-complete.pdf + install -dm755 -- "$(DESTDIR)$(DOCDIR)" + install -m644 $< -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).pdf" + +.PHONY: install-ps +install-ps: bin/auto-auto-complete.ps + install -dm755 -- "$(DESTDIR)$(DOCDIR)" + install -m644 $< -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).ps" + +.PHONY: install-dvi +install-dvi: bin/auto-auto-complete.dvi + install -dm755 -- "$(DESTDIR)$(DOCDIR)" + install -m644 $< -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).dvi" + +# Install shell auto-completion + +.PHONY: install-shell +install-shell: install-bash install-zsh install-fish + +.PHONY: install-bash +install-bash: bin/auto-auto-complete.bash + install -dm755 -- "$(DESTDIR)$(DATADIR)/bash-completion/completions" + install -m644 $< -- "$(DESTDIR)$(DATADIR)/bash-completion/completions/$(COMMAND)" + +.PHONY: install-zsh +install-zsh: bin/auto-auto-complete.zsh + install -dm755 -- "$(DESTDIR)$(DATADIR)/zsh/site-functions" + install -m644 $< -- "$(DESTDIR)$(DATADIR)/zsh/site-functions/_$(COMMAND)" + +.PHONY: install-fish +install-fish: bin/auto-auto-complete.fish + install -dm755 -- "$(DESTDIR)$(DATADIR)/fish/completions" + install -m644 $< -- "$(DESTDIR)$(DATADIR)/fish/completions/$(COMMAND).fish" + + +# Uninstall rules uninstall: - rm -- "$(DESTDIR)$(PREFIX)$(BIN)/$(COMMAND)" - rm -- "$(DESTDIR)$(LICENSES)/$(PKGNAME)/COPYING" - rm -- "$(DESTDIR)$(LICENSES)/$(PKGNAME)/LICENSE" - rm -- "$(DESTDIR)$(PREFIX)$(DATA)/doc/$(PKGNAME)/example" - rmdir -- "$(DESTDIR)$(PREFIX)$(DATA)/doc/$(PKGNAME)" -# rmdir -- "$(DESTDIR)$(LICENSES)/$(PKGNAME)" -# rm -- "$(DESTDIR)$(PREFIX)$(DATA)/info/$(PKGNAME).info.gz" + -rm -- "$(DESTDIR)$(BINDIR)/$(COMMAND)" + -rm -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/COPYING" + -rm -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/LICENSE" + -rmdir -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" + -rm -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME)/example" + -rmdir -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME)" + -rm -- "$(DESTDIR)$(INFODIR)/$(PKGNAME).info" + -rm -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).pdf" + -rm -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).ps" + -rm -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).dvi" + -rm -- "$(DESTDIR)$(DATADIR)/fish/completions/$(COMMAND).fish" + -rmdir -- "$(DESTDIR)$(DATADIR)/fish/completions" + -rmdir -- "$(DESTDIR)$(DATADIR)/fish" + -rm -- "$(DESTDIR)$(DATADIR)/zsh/site-functions/_$(COMMAND)" + -rmdir -- "$(DESTDIR)$(DATADIR)/zsh/site-functions" + -rmdir -- "$(DESTDIR)$(DATADIR)/zsh" + -rm -- "$(DESTDIR)$(DATADIR)/bash-completion/completions/$(COMMAND)" + -rmdir -- "$(DESTDIR)$(DATADIR)/bash-completion/completions" + -rmdir -- "$(DESTDIR)$(DATADIR)/bash-completion" -clean: - -rm -f auto-auto-complete #auto-auto-complete.info.gz +# Clean rules -.PHONY: all install uninstall clean +.PHONY: clean +clean: + -rm -fr bin obj -- cgit v1.2.3-70-g09d2