summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile37
1 files changed, 30 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index aa394e8..e95e43b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,21 +1,44 @@
prefix = /usr/local
bindir = $(prefix)/bin
+libdir = $(prefix)/lib
+systemddir = $(libdir)/systemd
-export GOPATH=$(realpath $(dir $(lastword $(MAKEFILE_LIST))))
+GOPATH := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
all: build
-generate:
+deps = golang.org/x/exp/inotify gopkg.in/yaml.v2
+
+$(foreach d,$(deps),$(eval src/$d: ; GOPATH='$(GOPATH)' go get -d -u $d))
+
+generate: generate-nslcd_proto $(addprefix src/,$(deps))
+generate-nslcd_proto:
$(MAKE) -C src/nslcd_proto
+.PHONY: generate-nslcd_proto
build: generate
- go install nshd
+ GOPATH='$(GOPATH)' go install nshd
clean:
- rm -rf -- pkg bin
+ rm -rf -- pkg bin src/*.*/
$(MAKE) -C src/nslcd_proto clean
-install: build
- install -Dm755 bin/nshd $(bindir)/nshd
+install = $(addprefix $(DESTDIR),$(bindir)/nshd $(systemddir)/system/nshd.socket $(systemddir)/system/nshd.service)
+
+install: $(install)
+
+uninstall:
+ rm -f -- $(install)
+ rmdir -p -- $(sort $(dir $(install))) 2>/dev/null || true
+
+bin/nshd: build
+
+$(DESTDIR)$(bindir)/%: bin/%
+ install -Dm755 $< $@
+$(DESTDIR)$(systemddir)/system/%.socket: %.socket
+ install -Dm644 $< $@
+$(DESTDIR)$(systemddir)/system/%.service: %.service
+ install -Dm644 $< $@
-.PHONY: all generate build clean
+.PHONY: all generate build clean install uninstall
+.SECONDARY: