f6f9a29fcf4624a2aeaf6466deff6f938eaffa8c
[mspang/pyceo.git] / src / Makefile
1 CFLAGS   := -g3 -O2 -Wall -Werror -DDEBUG
2 LDFLAGS  := -Wl,--as-needed
3 INCLUDES := $(shell krb5-config --cflags)
4 override CFLAGS  += -std=gnu99 $(INCLUDES)
5
6 DESTDIR :=
7 PREFIX  := /usr/local
8
9 BIN_PROGS := addmember addclub ceod
10 LIB_PROGS := ceoc op-adduser
11 EXT_PROGS := config-test
12
13 LDAP_OBJECTS   := ldap.o
14 LDAP_LIBS      := -lldap
15 LDAP_PROGS     := op-adduser
16 KRB5_OBJECTS   := krb5.o kadm.o
17 KRB5_LIBS      := $(shell krb5-config --libs krb5 kadm-client)
18 KRB5_PROGS     := addmember addclub op-adduser
19 HOME_OBJECTS   := homedir.o
20 HOME_LIBS      := -lacl
21 HOME_PROGS     := op-adduser
22 NET_OBJECTS    := net.o gss.o ops.o
23 NET_LIBS       := -lsctp $(shell krb5-config --libs gssapi)
24 NET_PROGS      := ceod ceoc
25 PROTO_OBJECTS  := ceo.pb-c.o
26 PROTO_LIBS     := -lprotobuf-c
27 PROTO_PROGS    := op-adduser addmember addclub
28 CONFIG_OBJECTS := config.o parser.o
29 CONFIG_LIBS    :=
30 CONFIG_PROGS   := $(LDAP_PROGS) $(KRB5_PROGS) $(NET_PROGS)
31 UTIL_OBJECTS   := util.o strbuf.o
32 UTIL_PROGS     := config-test $(CONFIG_PROGS)
33
34 all: $(BIN_PROGS) $(LIB_PROGS) $(EXT_PROGS)
35
36 clean:
37         rm -f $(BIN_PROGS) $(LIB_PROGS) $(EXT_PROGS) *.o ceo.pb-c.c ceo.pb-c.h
38
39 op-adduser.o addmember.o addclub.o: ceo.pb-c.h
40
41 ceo.pb-c.c ceo.pb-c.h: ceo.proto
42         protoc-c --c_out=. ceo.proto
43
44 %: %.o
45         $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
46
47 ceod: dmaster.o dslave.o
48         $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
49
50 config-test: config-test.o parser.o
51
52 config.o: config.h config-vars.h
53
54 install_clients:
55         install -d $(DESTDIR)$(PREFIX)/bin $(DESTDIR)$(PREFIX)/lib/ceod
56         install addmember addclub $(DESTDIR)$(PREFIX)/bin
57         install ceoc $(DESTDIR)$(PREFIX)/lib/ceod
58
59 install_daemon:
60         install -d $(DESTDIR)$(PREFIX)/sbin $(DESTDIR)$(PREFIX)/lib/ceod
61         install ceod $(DESTDIR)$(PREFIX)/sbin
62         install op-adduser $(DESTDIR)$(PREFIX)/lib/ceod
63
64 install: install_clients install_daemon
65
66 $(NET_PROGS):    LDLIBS += $(NET_LIBS)
67 $(NET_PROGS):    $(NET_OBJECTS)
68 $(LDAP_PROGS):   LDLIBS += $(LDAP_LIBS)
69 $(LDAP_PROGS):   $(LDAP_OBJECTS)
70 $(KRB5_PROGS):   LDLIBS += $(KRB5_LIBS)
71 $(KRB5_PROGS):   $(KRB5_OBJECTS)
72 $(HOME_PROGS):   LDLIBS += $(HOME_LIBS)
73 $(HOME_PROGS):   $(HOME_OBJECTS)
74 $(PROTO_PROGS):  LDLIBS += $(PROTO_LIBS)
75 $(PROTO_PROGS):  $(PROTO_OBJECTS)
76 $(CONFIG_PROGS): LDLIBS += $(CONFIG_LIBS)
77 $(CONFIG_PROGS): $(CONFIG_OBJECTS)
78 $(UTIL_PROGS):   LDLIBS += $(UTIL_LIBS)
79 $(UTIL_PROGS):   $(UTIL_OBJECTS)
80
81 .PHONY: clean all install install_clients install_daemon