From cbb267f60bb13baa1cac65517f60249b1b5bd436 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 8 Nov 2015 00:56:44 -0500 Subject: tidy Makefile --- proto/Makefile | 48 +++++++++++++----------------------------------- proto/common.mk | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 35 deletions(-) create mode 100644 proto/common.mk diff --git a/proto/Makefile b/proto/Makefile index e4730d5..6c15198 100644 --- a/proto/Makefile +++ b/proto/Makefile @@ -15,45 +15,23 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 USA -d := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) +srcdir := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) -generate += $d/server/interface_backend.go -generate += $d/server/func_handlerequest.go -generate += $d/server/type_nilbackend.go -secondary += $d/requests.txt - -ifeq (1,$(words $(MAKEFILE_LIST))) - -all: generate -.PHONY: all - -generate: $(generate) -.PHONY: generate - -clean: - rm -f -- $(secondary) -.PHONY: clean -maintainer-clean: clean - rm -f -- $(generate) -.PHONY: maintainer-clean - -.DELETE_ON_ERROR: -.SECONDARY: - -else - -# fix these to the current value of `d` -generate := $(generate) -secondary := $(secondary) +generate += $(srcdir)/server/interface_backend.go +generate += $(srcdir)/server/func_handlerequest.go +generate += $(srcdir)/server/type_nilbackend.go +generate_secondary += $(srcdir)/requests.txt +ifeq (1,$(words $(MAKEFILE_LIST))) + include common.mk endif - -$d/requests.txt: $d/nslcd_h.go $d/Makefile + +$(srcdir)/requests.txt: $(srcdir)/nslcd_h.go $(srcdir)/Makefile < $< grep -Eo '\btype Request_([^_ ]+)(_\S+)?' | sed 's/^type Request_//' > $@ %.go: %.go.sh - ./$^ > $@ + $(call rel,$^) > $@ -$d/server/interface_backend.go: $d/requests.txt -$d/server/func_handlerequest.go: $d/requests.txt -$d/server/type_nilbackend.go: $d/server/interface_backend.go +$(srcdir)/server/interface_backend.go: $(srcdir)/requests.txt +$(srcdir)/server/func_handlerequest.go: $(srcdir)/requests.txt +$(srcdir)/server/type_nilbackend.go: $(srcdir)/server/interface_backend.go diff --git a/proto/common.mk b/proto/common.mk new file mode 100644 index 0000000..41f5c79 --- /dev/null +++ b/proto/common.mk @@ -0,0 +1,55 @@ +# Copyright © 2015 Luke Shumaker +# This work is free. You can redistribute it and/or modify it under the +# terms of the Do What The Fuck You Want To Public License, Version 2, +# as published by Sam Hocevar. See http://www.wtfpl.net/ for more details. + +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 -- cgit v1.2.3