# Override PREFIX for another root installation directory PREFIX ?= $(HOME)/.local BINDIR := $(PREFIX)/bin MANDIR := $(PREFIX)/man/man1 DATADIR := $(PREFIX)/share/mkproj TESTSDIR := $(DATADIR)/tests TESTSSRCDIR := $(TESTSDIR)/src TPLS := $(addprefix $(DATADIR)/, $(notdir $(wildcard tpl/*))) TESTFILES := $(addprefix $(TESTSDIR)/, $(notdir $(wildcard tpl/tests/*))) TESTSRCFILES := $(addprefix $(TESTSSRCDIR)/, $(notdir $(wildcard tpl/tests/src/*))) # Pattern rules $(DATADIR)/%: tpl/% install -m 0644 $< $@ $(TESTSDIR)/%: tpl/tests/% install -m 0644 $< $@ $(TESTSSRCDIR)/%: tpl/tests/src/% install -m 0644 $< $@ # Targets .PHONY: all all: \ $(BINDIR) \ $(MANDIR) \ $(DATADIR) \ $(TESTSDIR) \ $(TESTSSRCDIR) \ $(BINDIR)/mkproj \ $(MANDIR)/mkproj.1 \ $(TPLS) \ $(TESTFILES) \ $(TESTSDIR)/Makefile \ $(TESTSRCFILES) \ $(TESTSSRCDIR)/src/precomp.hpp \ $(HOME)/.config/mkprojrc $(BINDIR): mkdir -p $@ @printf "\e[m33%s\n\e[m" "Please make sure that $(BINDIR) is in your path." $(BINDIR)/mkproj: mkproj.sh install -m 0755 $< $@ $(MANDIR): mkdir -p $@ $(MANDIR)/mkproj.1: mkproj.1 install -m 0644 $< $@ $(DATADIR): mkdir -p $@ $(TESTSDIR): mkdir -p $@ $(TESTSDIR)/Makefile: cd $(TESTSDIR) && ln -fs ../Makefile Makefile $(TESTSSRCDIR): mkdir -p $@ $(TESTSSRCDIR)/src/precomp.hpp: cd $(TESTSSRCDIR) && ln -fs ../../src/precomp.hpp precomp.hpp $(HOME)/.config/mkprojrc: echo "tplroot=\"$(DATADIR)\"" > $@