-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
85 lines (73 loc) · 2.57 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
OS_ID = generic
MACHINE = generic
UNAME_S := $(shell uname -s)
UNAME_M := $(shell uname -m)
ifeq ($(UNAME_S),Linux)
OS_ID = Linux_$(UNAME_M)
endif
ifeq ($(UNAME_S),Darwin)
OS_ID = Darwin_$(UNAME_M)
endif
CODE_NAME = ldap-tool
SOURCES = $(CODE_NAME).go \
mod/vars/vars.go \
mod/initializer/initializer.go \
mod/ldap/create.go \
mod/ldap/ldap.go \
mod/ldap/delete.go \
mod/ldap/search.go \
mod/ldap/modify.go \
mod/ldap/get.go \
mod/ldap/password.go \
mod/cmds/delete/group/group.go \
mod/cmds/delete/user/user.go \
mod/cmds/delete/menu/menu.go \
mod/cmds/delete/sudo/sudo.go \
mod/cmds/limit/search.go \
mod/cmds/limit/modify.go \
mod/cmds/modify/group/group.go \
mod/cmds/modify/user/user.go \
mod/cmds/modify/menu/menu.go \
mod/cmds/modify/sudo/sudo.go \
mod/cmds/search/group/groups.go \
mod/cmds/search/group/group.go \
mod/cmds/search/user/users.go \
mod/cmds/search/user/user.go \
mod/cmds/search/menu/menu.go \
mod/cmds/search/sudo/sudo.go \
mod/cmds/search/sudo/sudos.go \
mod/cmds/common/delete.go \
mod/cmds/common/search.go \
mod/cmds/create/group/group.go \
mod/cmds/create/user/user.go \
mod/cmds/create/menu/menu.go \
mod/cmds/create/sudo/sudo.go \
mod/logs/logs.go \
mod/configurator/configurator.go
BUILT_SOURCES = $(SOURCES)
TOOL_VERSION := $(shell cat mod/vars/vars.go | grep MyVersion | egrep -v MyProgname | awk '{print $$3}')
all: release/$(CODE_NAME)_$(OS_ID) \
release/$(CODE_NAME)_$(OS_ID).tar.gz \
release/$(CODE_NAME)_$(OS_ID).sha256
release/$(CODE_NAME)_$(OS_ID): $(BUILT_SOURCES)
@echo "build the $(CODE_NAME)_$(OS_ID) binary..."
@go build -o release/$(CODE_NAME)_$(OS_ID) $(CODE_NAME).go
@echo "set owner and strip the binary"
@chown luc:$(GID) release/$(CODE_NAME)_$(OS_ID)
@strip release/$(CODE_NAME)_$(OS_ID)
release/$(CODE_NAME)_$(OS_ID).tar.gz: release/$(CODE_NAME)_$(OS_ID)
@echo "create the $(CODE_NAME)_$(OS_ID).tar.gz archive..."
@(cd release ; tar zcf $(CODE_NAME)_$(OS_ID).tar.gz $(CODE_NAME)_$(OS_ID))
release/$(CODE_NAME)_$(OS_ID).sha256: release/$(CODE_NAME)_$(OS_ID).tar.gz
@echo "create the sha256 information file..."
@sha256sum release/$(CODE_NAME)_$(OS_ID).tar.gz | awk '{print $$1}' > release/$(CODE_NAME)_$(OS_ID).sha256
@echo "SHA256: $$(cat release/$(CODE_NAME)_$(OS_ID).sha256)"
install: release/$(CODE_NAME)_$(OS_ID)
@echo "Installing the new $(CODE_NAME) binary..."
@sudo cp release/$(CODE_NAME)_$(OS_ID) /usr/local/sbin/$(CODE_NAME)
@sudo chmod 0755 /usr/local/sbin/$(CODE_NAME)
@sudo chown 0:0 /usr/local/sbin/$(CODE_NAME)
clean:
@rm -f release/*$(OS_ID)*
changelog:
@echo "version built $(TOOL_VERSION)"