aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile93
1 files changed, 76 insertions, 17 deletions
diff --git a/Makefile b/Makefile
index 67fcff8..45ece5e 100644
--- a/Makefile
+++ b/Makefile
@@ -21,6 +21,8 @@ BIN = /bin
BINDIR = $(PREFIX)$(BIN)
DATA = /share
DATADIR = $(PREFIX)$(DATA)
+DOCDIR = $(DATADIR)/doc
+INFODIR = $(DATADIR)/info
LICENSEDIR = $(DATADIR)/licenses
MANUAL = adjbacklight
@@ -40,50 +42,104 @@ WARN = -Wall -Wextra -Wdouble-promotion -Wformat=2 -Winit-self -Wmissing-include
# compile the package
+.PHONY: default
+default: code info
+
.PHONY: all
-all: code info
+all: code doc
.PHONY: code
code: bin/adjbacklight
bin/adjbacklight: src/adjbacklight.c
- mkdir -p bin
+ @mkdir -p bin
$(CC) $(OPTIMISATION) $(WARN) -std=gnu90 -o "$@" "$<"
+.PHONY: code
+doc: info pdf dvi ps
+
.PHONY: info
-info: $(MANUAL).info
-%.info: $(MANUALDIR)%.texinfo
+info: bin/$(MANUAL).info
+bin/%.info: $(MANUALDIR)%.texinfo
+ @mkdir -p bin
$(MAKEINFO) "$<"
+ mv $*.info $@
.PHONY: pdf
-pdf: $(MANUAL).pdf
-%.pdf: $(MANUALDIR)%.texinfo
- texi2pdf "$<"
+pdf: bin/$(MANUAL).pdf
+bin/%.pdf: $(MANUALDIR)%.texinfo
+ @! test -d obj/pdf || rm -rf obj/pdf
+ @mkdir -p bin obj/pdf
+ cd obj/pdf && texi2pdf ../../"$<" < /dev/null
+ mv obj/pdf/$*.pdf $@
.PHONY: dvi
-dvi: $(MANUAL).dvi
-%.dvi: $(MANUALDIR)%.texinfo
- $(TEXI2DVI) "$<"
+dvi: bin/$(MANUAL).dvi
+bin/%.dvi: $(MANUALDIR)%.texinfo
+ @! test -d obj/dvi || rm -rf obj/dvi
+ @mkdir -p bin obj/dvi
+ cd obj/dvi && $(TEXI2DVI) ../../"$<" < /dev/null
+ mv obj/dvi/$*.dvi $@
+
+.PHONY: ps
+ps: bin/$(MANUAL).ps
+bin/%.ps: $(MANUALDIR)%.texinfo
+ @! test -d obj/ps || rm -rf obj/ps
+ @mkdir -p bin obj/ps
+ cd obj/ps && texi2pdf --ps ../../"$<" < /dev/null
+ mv obj/ps/$*.ps $@
# install to system
.PHONY: install
-install: install-cmd install-license install-info
+install: install-base install-info
+
+.PHONY: install-all
+install-all: install-base install-doc
+
+.PHONY: install-base
+install-base: install-cmd install-copyright
.PHONY: install-cmd
install-cmd: bin/adjbacklight
install -d -- "$(DESTDIR)$(BINDIR)"
install -m4755 -- bin/adjbacklight "$(DESTDIR)$(BINDIR)/$(COMMAND)"
+.PHONY: install-copyright
+install-copyright: install-copying install-license
+
+.PHONY: install-copying
+install-copying:
+ install -d -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)"
+ install -m644 -- COPYING "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)"
+
.PHONY: install-license
install-license:
install -d -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)"
- install -m644 -- COPYING LICENSE "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)"
+ install -m644 -- LICENSE "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)"
+
+.PHONY: install-doc
+install-doc: install-info install-pdf install-dvi install-ps
.PHONY: install-info
-install-info: $(MANUAL).info
- install -d -- "$(DESTDIR)$(DATADIR)/info"
- install -m644 -- "$(MANUAL).info" "$(DESTDIR)$(DATADIR)/info/$(PKGNAME).info"
+install-info: bin/$(MANUAL).info
+ install -d -- "$(DESTDIR)$(INFODIR)"
+ install -m644 -- "$<" "$(DESTDIR)$(INFODIR)/$(PKGNAME).info"
+
+.PHONY: install-pdf
+install-pdf: bin/$(MANUAL).pdf
+ install -d -- "$(DESTDIR)$(DOCDIR)"
+ install -m644 -- "$<" "$(DESTDIR)$(DOCDIR)/$(PKGNAME).pdf"
+
+.PHONY: install-dvi
+install-dvi: bin/$(MANUAL).dvi
+ install -d -- "$(DESTDIR)$(DOCDIR)"
+ install -m644 -- "$<" "$(DESTDIR)$(DOCDIR)/$(PKGNAME).dvi"
+
+.PHONY: install-ps
+install-ps: bin/$(MANUAL).ps
+ install -d -- "$(DESTDIR)$(DOCDIR)"
+ install -m644 -- "$<" "$(DESTDIR)$(DOCDIR)/$(PKGNAME).ps"
# remove files created by `install`
@@ -93,11 +149,14 @@ uninstall:
-rm -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/COPYING"
-rm -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/LICENSE"
-rm -d -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)"
- -rm -- "$(DESTDIR)$(DATADIR)/info/$(PKGNAME).info.gz"
+ -rm -- "$(DESTDIR)$(INFODIR)/$(PKGNAME).info"
+ -rm -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).pdf"
+ -rm -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).dvi"
+ -rm -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).ps"
# remove files created by `all`
.PHONY: clean
clean:
- -rm -r *.{class,t2d,aux,cp,cps,fn,ky,log,pg,pgs,toc,tp,vr,vrs,op,ops,bak,info,pdf,ps,dvi,gz,install} bin
+ -rm -r bin obj