From 187f08d46e3509826f38e5a5d163460d025aa3f6 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 15 Oct 2016 01:31:53 -0400 Subject: simplify Makefiles for go generate --- proto/.gitignore | 3 --- proto/Makefile | 32 ++++++-------------------------- proto/server/.gitignore | 3 +++ proto/server/Makefile | 36 ++++++++++++++++++++++++++++++++++++ proto/server/doc.go | 4 +++- 5 files changed, 48 insertions(+), 30 deletions(-) create mode 100644 proto/server/.gitignore create mode 100644 proto/server/Makefile diff --git a/proto/.gitignore b/proto/.gitignore index b3f9749..9330212 100644 --- a/proto/.gitignore +++ b/proto/.gitignore @@ -1,4 +1 @@ /requests.txt -/server/func_handlerequest.go -/server/interface_backend.go -/server/type_nilbackend.go diff --git a/proto/Makefile b/proto/Makefile index 98f0f4a..2716cbc 100644 --- a/proto/Makefile +++ b/proto/Makefile @@ -15,32 +15,12 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 USA -ifeq ($(origin topsrcdir),undefined) -srcdir := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) -.DEFAULT_GOAL = all -else -include $(topsrcdir)/build-aux/Makefile.head.mk -endif +files.src.gen += requests.txt -std.gen_files += server/interface_backend.go -std.gen_files += server/func_handlerequest.go -std.gen_files += server/type_nilbackend.go -std.secondary_gen_files += requests.txt +files.generate: $(files.src.gen) +maintainer-clean: + rm -f -- $(files.src.gen) +.PHONY: files.generate maintainer-clean -$(srcdir)/requests.txt: $(srcdir)/nslcd_h.go $(srcdir)/Makefile +requests.txt: nslcd_h.go Makefile < $< grep -Eo '\btype Request_([^_ ]+)(_\S+)?' | sed 's/^type Request_//' > $@ - -_nslcd.srcdir := $(srcdir) -_nslcd.rel=$(patsubst $(abspath $(_nslcd.srcdir))/%,./%,$(abspath $1)) -$(srcdir)/%.go: $(srcdir)/%.go.sh - cd $(_nslcd.srcdir) && $(call _nslcd.rel,$^) > $(call _nslcd.rel,$@) - -$(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 - -ifeq ($(origin topsrcdir),undefined) -include $(srcdir)/common.mk -else -include $(topsrcdir)/build-aux/Makefile.tail.mk -endif diff --git a/proto/server/.gitignore b/proto/server/.gitignore new file mode 100644 index 0000000..ff46733 --- /dev/null +++ b/proto/server/.gitignore @@ -0,0 +1,3 @@ +/func_handlerequest.go +/interface_backend.go +/type_nilbackend.go diff --git a/proto/server/Makefile b/proto/server/Makefile new file mode 100644 index 0000000..1bbfc58 --- /dev/null +++ b/proto/server/Makefile @@ -0,0 +1,36 @@ +# Copyright (C) 2015-2016 Luke Shumaker +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301 USA + +files.src.gen += interface_backend.go +files.src.gen += func_handlerequest.go +files.src.gen += type_nilbackend.go + +files.generate: $(files.src.gen) +maintainer-clean: + rm -f -- $(files.src.gen) +.PHONY: files.generate maintainer-clean + +%.go: %.go.sh + ./$^ > $@ + +interface_backend.go: ../requests.txt +func_handlerequest.go: ../requests.txt +type_nilbackend.go: interface_backend.go + +../requests.txt: + $(MAKE) -C $(@D) $(@F) + diff --git a/proto/server/doc.go b/proto/server/doc.go index 72ae2fe..1cf7552 100644 --- a/proto/server/doc.go +++ b/proto/server/doc.go @@ -1,4 +1,4 @@ -// Copyright (C) 2015 Luke Shumaker +// Copyright (C) 2015-2016 Luke Shumaker // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -15,6 +15,8 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA // 02110-1301 USA +//go:generate make + // Package nslcd_server is a framework for implementing an nslcd // server. // -- cgit v1.2.3-2-g168b