.PHONY: all pdf release update-dates update-versions clean # Constant declarations PROGRAM_NAME = lemonbuddy VERSION = $(shell git describe --tags) DATE = $(shell date +%Y-%m-%d) # Sources MAN_SOURCES = $(wildcard *.1 *.5) GZ_FILES = $(addsuffix .gz,$(MAN_SOURCES)) PS_FILES = $(addsuffix .ps,$(MAN_SOURCES)) PDF_TARGET = $(PROGRAM_NAME).pdf # Targets all: $(GZ_FILES) pdf: $(PDF_TARGET) release: clean update-dates update-versions # Program targets update-versions: @sed -i '1 s/"$(PROGRAM_NAME) [^"]*"/"$(PROGRAM_NAME) $(VERSION)"/' $(MAN_SOURCES) update-dates: @sed -i '1 s/[0-9]{4}\-[0-9]{2}\-[0-9]{2}/$(DATE)/' $(MAN_SOURCES) # Documentation targets %.1.gz: %.1 @echo '[GZ] $(notdir $@)' @gzip -c $< > $@ %.5.gz: %.5 @echo '[GZ] $(notdir $@)' @gzip -c $< > $@ %.1.ps: %.1 @echo '[PS] $(notdir $@)' @groff -Tps -mandoc $< > $@ %.5.ps: %.5 @echo '[PS] $(notdir $@)' @groff -Tps -mandoc $< > $@ $(PDF_TARGET): $(PS_FILES) @echo '[PDF] $(notdir $@)' @gs -q -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \ -sOutputFile=$@ $^ lemonbuddy: lemonbuddy.1 mandoc -a $< lemonbuddy_wrapper: lemonbuddy_wrapper.1 mandoc -a $< lemonbuddy_terminate: lemonbuddy_terminate.1 mandoc -a $< lemonbuddy_config: lemonbuddy_config.5 mandoc -a $< clean: @echo '[CLEAN]' @rm -f $(GZ_FILES) $(PS_FILES) $(PDF_TARGET) # vim:ts=2 sw=2 noet nolist