]> git.tuebingen.mpg.de Git - lopsub.git/blobdiff - Makefile
build: Honor the Filesystem Hierarchy Standard.
[lopsub.git] / Makefile
index 427850561fea03bd2426ff364c6c56f84bcbf483..7e44330b4ee335e75327c4c5318bbd234a5b112f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -6,6 +6,8 @@ MAKEFLAGS += -Rr
 ifeq ("$(origin CC)", "default")
         CC := cc
 endif
+.ONESHELL:
+.SHELLFLAGS := -ec
 
 PREFIX ?= /usr/local
 M4 := m4
@@ -16,13 +18,15 @@ AR := ar
 GROFF := groff
 CP := cp
 INSTALL := install
+GZIP := gzip -f9
+ZCAT := zcat
 
 DATE := $(shell date '+%B %Y')
 GIT_VERSION := $(shell ./version-gen.sh)
 
-m4_man_pages := lopsub-suite.5 lopsub.7
-all := $(m4_man_pages) liblopsub.a lopsubgen lopsubgen.1 \
-       lopsubex lopsubex.1
+m4_man_pages := lopsub-suite.5.gz lopsub.7.gz
+all := $(m4_man_pages) liblopsub.a lopsubgen lopsubgen.1.gz \
+       lopsubex lopsubex.1.gz
 all: $(all)
 
 # deps
@@ -37,8 +41,8 @@ version.o: version.c
 gendoc := gendoc/gendoc.m4
 %.h: %.h.m4 $(gendoc)
        $(M4) -DOUTPUT_MODE=C $(gendoc) $< > $@
-$(m4_man_pages): %: %.m4 version.c
-       $(M4) -DGIT_VERSION=$(GIT_VERSION) -DDATE="$(DATE)" $< > $@
+$(m4_man_pages): %.gz: %.m4 version.c
+       $(M4) -DGIT_VERSION=$(GIT_VERSION) -DDATE="$(DATE)" $< | $(GZIP) > $@
 
 # flex
 %.c: %.l
@@ -52,8 +56,9 @@ lopsubgen.lsg.c lopsubgen.lsg.h: lopsubgen.suite lopsubgen-stage1 \
        ./lopsubgen --gen-c < $<
 %.lsg.h: %.suite lopsubgen
        ./lopsubgen --gen-header < $<
-%.1: %.suite lopsubgen
-       ./lopsubgen --gen-man=$@ --version-string $(GIT_VERSION) < $<
+%.1.gz: %.suite lopsubgen
+       ./lopsubgen --gen-man=${@:.gz=} --version-string $(GIT_VERSION) < $<
+       $(GZIP) ${@:.gz=}
 
 # compiling
 lsg1_objs := lopsubgen.o lsg1.o version.o
@@ -91,23 +96,25 @@ web/lopsub-api.html: lopsub.h.m4
                $< web/footer.html > $@
 web/index.html: web/lopsub.7.html
        $(LN) -s $(notdir $<) $@
-web/%.html: %
+web/%.html: %.gz
        $(CP) web/header.html $@
-       $(GROFF) -m man -Thtml $< | sed -e '1,/^<body>/d' >> $@
-
-install: liblopsub.a lopsub.7
-       $(INSTALL) -d $(PREFIX)/lib $(PREFIX)/include $(PREFIX)/man/man1 \
-                $(PREFIX)/man/man5 $(PREFIX)/man/man7 $(PREFIX)/bin
-       $(INSTALL) -m 755 liblopsub.a $(PREFIX)/lib
-       $(INSTALL) -m 755 lopsubgen $(PREFIX)/bin
-       $(INSTALL) -m 644 lopsub.h $(PREFIX)/include
-       $(INSTALL) -m 644 lopsub-internal.h $(PREFIX)/include
-       $(INSTALL) -m 644 lopsubgen.1 $(PREFIX)/man/man1
-       $(INSTALL) -m 644 lopsub-suite.5 $(PREFIX)/man/man5
-       $(INSTALL) -m 644 lopsub.7 $(PREFIX)/man/man7
+       $(ZCAT) $< | $(GROFF) -m man -Thtml | sed -e '1,/^<body>/d' >> $@
+
+install: $(all)
+       $(INSTALL) -d $(DESTDIR)$(PREFIX)/lib $(DESTDIR)$(PREFIX)/include \
+               $(DESTDIR)$(PREFIX)/share/man/man1 $(DESTDIR)$(PREFIX)/share/man/man5 \
+               $(DESTDIR)$(PREFIX)/share/man/man7 $(DESTDIR)$(PREFIX)/bin
+       $(INSTALL) -m 644 liblopsub.a $(DESTDIR)$(PREFIX)/lib
+       $(INSTALL) -m 755 lopsubgen $(DESTDIR)$(PREFIX)/bin
+       $(INSTALL) -m 644 lopsub.h $(DESTDIR)$(PREFIX)/include
+       $(INSTALL) -m 644 lopsub-internal.h $(DESTDIR)$(PREFIX)/include
+       $(INSTALL) -m 644 lopsubgen.1.gz $(DESTDIR)$(PREFIX)/share/man/man1
+       $(INSTALL) -m 644 lopsub-suite.5.gz $(DESTDIR)$(PREFIX)/share/man/man5
+       $(INSTALL) -m 644 lopsub.7.gz $(DESTDIR)$(PREFIX)/share/man/man7
 
 clean:
-       $(RM) $(all) $(html) *.o *.man *.lsg.c *.lsg.h \
-               lopsubgen.c config_file.c lopsubgen-stage1 \
+       $(RM) $(all) $(html) *.o *.man
+distclean: clean
+       $(RM) *.lsg.c *.lsg.h lopsubgen.c config_file.c lopsubgen-stage1 \
                lopsub.h lopsub.7 lopsub-suite.5 version.c