From caf029024616464acdd51fbf9670bea9eea7b1c0 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 15 Jun 2016 19:32:19 -0400 Subject: use autothing --- Makefile | 95 +++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 46 insertions(+), 49 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 7f98070..80031c7 100644 --- a/Makefile +++ b/Makefile @@ -19,74 +19,71 @@ # License along with this manual; if not, see # . -MAKEFLAGS += --no-builtin-rules - -prefix = /usr/local -bindir = $(prefix)/bin -libdir = $(prefix)/lib +PACKAGE = parabola-hackers systemddir = $(libdir)/systemd - -Q ?= @ +conf_file = $(sysconfdir)/$(PACKAGE).yml +NET ?= #NET ?= FORCE - user = nshd group = nshd +CFLAGS = -Wall -Wextra -Werror -pedantic +CC = gcc -std=c99 + +MAKEFLAGS += --no-builtin-rules +topsrcdir := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) +topoutdir := $(topsrcdir) +include $(topsrcdir)/build-aux/Makefile.head.mk -CFLAGS = -std=c99 -Wall -Wextra -Werror -pedantic CGO_CFLAGS = $(CFLAGS) -Wno-unused-parameter CGO_ENABLED = 1 -deps += gopkg.in/yaml.v2 -deps += lukeshu.com/git/go/libgnulinux.git -deps += lukeshu.com/git/go/libnslcd.git -deps += lukeshu.com/git/go/libsystemd.git - -srcdir := $(abspath $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))) -topdir := $(srcdir) +at.subdirs += src/lukeshu.com/git/go/libnslcd.git/proto -subdirs = src/lukeshu.com/git/go/libnslcd.git/proto +scripts = $(notdir $(wildcard $(srcdir)/scripts/*)) -generate += $(addprefix $(topdir)/src/,$(deps)) -generate += $(topdir)/LICENSE.lgpl-2.1.txt $(topdir)/LICENSE.gpl-2.txt $(topdir)/LICENSE.apache-2.0.txt -generate_secondary += $(topdir)/src/*.*/ -build += $(topdir)/bin/nshd $(topdir)/nshd.service $(topdir)/nshd.socket $(topdir)/test/runner -build_secondary += $(topdir)/bin $(topdir)/pkg $(topdir)/test/*.o .var.* -install += $(addprefix $(DESTDIR),$(bindir)/nshd $(systemddir)/system/nshd.socket $(systemddir)/system/nshd.service) +std.gen_files += LICENSE.lgpl-2.1.txt LICENSE.gpl-2.txt LICENSE.apache-2.0.txt +std.out_files += bin/nshd nshd.service nshd.socket test/runner +std.sys_files += $(addprefix $(bindir)/,nshd $(scripts)) $(systemddir)/system/nshd.socket $(systemddir)/system/nshd.service +std.clean_files += test/*.o pkg/ -ifeq (1,$(words $(MAKEFILE_LIST))) - include $(topdir)/common.mk -endif -src/lukeshu.com/git/go/libnslcd.git/proto/Makefile: $(topdir)/src/lukeshu.com/git/go/libnslcd.git - -$(topdir)/LICENSE.lgpl-2.1.txt: $(NET) +$(srcdir)/LICENSE.lgpl-2.1.txt: $(NET) curl https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt > $@ -$(topdir)/LICENSE.gpl-2.txt: $(NET) +$(srcdir)/LICENSE.gpl-2.txt: $(NET) curl https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt > $@ -$(topdir)/LICENSE.apache-2.0.txt: $(NET) +$(srcdir)/LICENSE.apache-2.0.txt: $(NET) curl https://www.apache.org/licenses/LICENSE-2.0 > $@ -$(topdir)/LICENSE.wtfpl-2.txt: $(NET) +$(srcdir)/LICENSE.wtfpl-2.txt: $(NET) curl http://www.wtfpl.net/txt/copying/ > $@ - -include $(topdir)/golang.mk - -$(call goget,$(topdir),$(deps)) -$(topdir)/bin/nshd: $(generate) $(configure) $(call gosrc,$(topdir)) - $(call goinstall,$(topdir),nshd) +$(outdir)/bin/nshd: private golang.FLAGS+=-ldflags '-X nshd.conf_file=$(conf_file)' +$(outdir)/bin/nshd: src/lukeshu.com/git/go/libnslcd.git/proto/server/interface_backend.go +$(outdir)/bin/nshd: src/lukeshu.com/git/go/libnslcd.git/proto/server/func_handlerequest.go +$(outdir)/bin/nshd: src/lukeshu.com/git/go/libnslcd.git/proto/server/type_nilbackend.go +$(outdir)/bin/nshd: $(call golang.src,$(srcdir)) $(var)conf_file + $(call golang.install,$(topsrcdir),nshd) -%.o: %.c .var.CC .var.CPPFLAGS .var.CFLAGS - $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $(filter-out .var.%,$^) -%: %.o .var.CC .var.LDFLAGS .var.LOADLIBES .var.LDLIBS - $(CC) $(LDFLAGS) -o $@ $(filter-out .var.%,$^) $(LOADLIBES) $(LDLIBS) +$(outdir)/%.o: $(srcdir)/%.c $(var)CC $(var)CPPFLAGS $(var)CFLAGS + $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $(filter-out $(var)%,$^) +$(outdir)/%: $(outdir)/%.o $(var)CC $(var)LDFLAGS + $(CC) $(LDFLAGS) -o $@ $(filter-out $(var)%,$^) -%: %.in - < $< sed $(foreach v,$(patsubst .var.%,%,$(filter .var.%,$^)), -e 's|@$v@|$($v)|g' ) > $@ -$(topdir)/nshd.service: .var.bindir .var.user .var.group -$(topdir)/nshd.socket: .var.user .var.group +$(outdir)/%: $(srcdir)/%.in + < $< sed $(foreach v,$(patsubst $(var)%,%,$(filter $(var)%,$^)), -e 's|@$v@|$($v)|g' ) > $@ +$(outdir)/nshd.service: $(var)user $(var)group $(var)bindir +$(outdir)/nshd.socket: $(var)user $(var)group -$(DESTDIR)$(bindir)/%: bin/% +$(DESTDIR)$(bindir)/%: $(outdir)/bin/% install -TDm755 $< $@ -$(DESTDIR)$(systemddir)/system/%.socket: %.socket +$(DESTDIR)$(bindir)/%: $(srcdir)/scripts/% + install -TDm755 $< $@ +$(DESTDIR)$(bindir)/common.rb: $(srcdir)/scripts/common.rb + install -TDm644 $< $@ +$(DESTDIR)$(systemddir)/system/%.socket: $(outdir)/%.socket install -TDm644 $< $@ -$(DESTDIR)$(systemddir)/system/%.service: %.service +$(DESTDIR)$(systemddir)/system/%.service: $(outdir)/%.service install -TDm644 $< $@ + +.PHONY: FORCE +.SECONDARY: +.DELETE_ON_ERROR: +include $(topsrcdir)/build-aux/Makefile.tail.mk -- cgit v1.2.2