-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
80 lines (61 loc) · 1.85 KB
/
Makefile
File metadata and controls
80 lines (61 loc) · 1.85 KB
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
prefix = /usr
sbindir = $(prefix)/sbin
binaries = libnss_puavoadmins.so.2 \
puavoadmins-ssh-authorized-keys \
puavoadmins-validate-orgjson
sysconfdir = /etc
INSTALL = install
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644
CFLAGS = -g -fPIC -std=gnu99 -Wall -Wextra
LDFLAGS = -lm
CFLAGS += $(shell pkg-config --cflags json)
LDFLAGS += $(shell pkg-config --libs json)
# For some reason ruby lib directory is different under /usr and /usr/local
ifeq ($(prefix),/usr/local)
RUBY_LIB_DIR = $(prefix)/lib/site_ruby
else
RUBY_LIB_DIR = $(prefix)/lib/ruby/vendor_ruby
endif
all: $(binaries)
bundle install --standalone --path lib/puavoadmins-vendor
puavoadmins-validate-orgjson: puavoadmins-validate-orgjson.o orgjson.o
gcc -o $@ $^ $(LDFLAGS)
puavoadmins-ssh-authorized-keys: puavoadmins-ssh-authorized-keys.o orgjson.o
gcc -o $@ $^ $(LDFLAGS)
libnss_puavoadmins.so.2: passwd.o group.o orgjson.o
gcc -shared -o $@ -Wl,-soname,$@ $^ $(LDFLAGS)
%.o: %.c %.h common.h
gcc $(CFLAGS) -c $< -o $@
%.o: %.c common.h
gcc $(CFLAGS) -c $< -o $@
installdirs:
mkdir -p $(DESTDIR)$(sbindir)
mkdir -p $(DESTDIR)$(prefix)/lib
mkdir -p $(DESTDIR)$(RUBY_LIB_DIR)
mkdir -p $(DESTDIR)/var/lib/puavoadmins
mkdir -p $(DESTDIR)$(sysconfdir)/puavoadmins/skel
install: installdirs all
$(INSTALL_PROGRAM) -t $(DESTDIR)$(prefix)/lib \
libnss_puavoadmins.so.2 \
puavoadmins-ssh-authorized-keys \
puavoadmins-validate-orgjson \
puavoadmins-validate-pam-user
$(INSTALL_PROGRAM) -t $(DESTDIR)$(sbindir) \
puavoadmins-update
$(INSTALL_DATA) -t $(DESTDIR)/var/lib/puavoadmins \
org.json.lock
cp -r lib/* $(DESTDIR)$(RUBY_LIB_DIR)
install-deb-deps:
mk-build-deps -i -t "apt-get --yes --force-yes" -r debian/control
clean:
rm -rf *.o
rm -rf $(binaries)
deb :
dpkg-buildpackage -us -uc
.PHONY: all \
clean \
deb \
install \
install-deb-deps \
installdirs