# Copyright 2015 Luke Shumaker # # This is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # The GNU General Public License's references to "object code" and # "executables" are to be interpreted to also include the output of # any document formatting or typesetting system, including # intermediate and printed output. # # This software is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public # License along with this manual; if not, see # . rel = $(patsubst $(abspath .)/%,./%,$(abspath $1)) all: build .PHONY: all -include $(addsuffix /Makefile,$(subdirs)) generate: $(generate) .PHONY: generate configure: generate $(configure) .PHONY: configure build: configure $(build) .PHONY: build install: build $(install) .PHONY: install # un-build clean: rm -rf -- $(build) $(build_secondary) .PHONY: clean # un-configure distclean: clean rm -rf -- $(configure) $(configure_secondary) .PHONY: distclean # un-generate maintainer-clean: distclean rm -rf -- $(generate) $(generate_secondary) .PHONY: maintainer-clean # un-install uninstall: rm -f -- $(install) rmdir -p -- $(sort $(dir $(install))) 2>/dev/null || true .PHONY: uninstall # Now, this is magic. It stores the values of environment variables, # so that if you change them in a way that would cause something to be # rebuilt, then Make knows. .var.%: FORCE $(Q)printf '%s' '$($*)' > .tmp$@ && { cmp -s .tmp$@ $@ && rm -f -- .tmp$@ || mv -Tf .tmp$@ $@; } || { rm -f -- .tmp$@; false; } .DELETE_ON_ERROR: .SECONDARY: .PHONY: FORCE