Switch from SCTP to TCP
[public/pyceo-broken.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 op-mail
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       := $(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 op-mail addmember addclub
28 CONFIG_OBJECTS := config.o parser.o
29 CONFIG_LIBS    :=
30 CONFIG_PROGS   := $(LDAP_PROGS) $(KRB5_PROGS) $(NET_PROGS) $(PROTO_PROGS)
31 UTIL_OBJECTS   := util.o strbuf.o
32 UTIL_PROGS     := config-test $(CONFIG_PROGS)
33
34 all: $(BIN_PROGS) $(LIB_PROGS) $(EXT_PROGS) ../ceo/ceo_pb2.py
35
36 clean:
37         rm -f $(BIN_PROGS) $(LIB_PROGS) $(EXT_PROGS) *.o ceo.pb-c.c ceo.pb-c.h
38         rm -f ceo_pb2.py ../ceo/ceo_pb2.py
39
40 op-adduser.o addmember.o addclub.o: ceo.pb-c.h
41
42 ceo.pb-c.c ceo.pb-c.h: ceo.proto
43         protoc-c --c_out=. ceo.proto
44
45 %: %.o
46         $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
47
48 ../ceo/ceo_pb2.py: ceo.proto
49         protoc --python_out=../ceo ceo.proto
50
51 ceod: dmaster.o dslave.o
52         $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
53
54 config-test: config-test.o parser.o
55
56 config.o: config.h config-vars.h
57
58 install_clients:
59         install -d $(DESTDIR)$(PREFIX)/bin $(DESTDIR)$(PREFIX)/lib/ceod
60         install addmember addclub $(DESTDIR)$(PREFIX)/bin
61         install ceoc $(DESTDIR)$(PREFIX)/lib/ceod
62
63 install_daemon:
64         install -d $(DESTDIR)$(PREFIX)/sbin $(DESTDIR)$(PREFIX)/lib/ceod
65         install ceod $(DESTDIR)$(PREFIX)/sbin
66         install op-adduser $(DESTDIR)$(PREFIX)/lib/ceod
67         install op-mail $(DESTDIR)$(PREFIX)/lib/ceod
68
69 install: install_clients install_daemon
70
71 $(NET_PROGS):    LDLIBS += $(NET_LIBS)
72 $(NET_PROGS):    $(NET_OBJECTS)
73 $(LDAP_PROGS):   LDLIBS += $(LDAP_LIBS)
74 $(LDAP_PROGS):   $(LDAP_OBJECTS)
75 $(KRB5_PROGS):   LDLIBS += $(KRB5_LIBS)
76 $(KRB5_PROGS):   $(KRB5_OBJECTS)
77 $(HOME_PROGS):   LDLIBS += $(HOME_LIBS)
78 $(HOME_PROGS):   $(HOME_OBJECTS)
79 $(PROTO_PROGS):  LDLIBS += $(PROTO_LIBS)
80 $(PROTO_PROGS):  $(PROTO_OBJECTS)
81 $(CONFIG_PROGS): LDLIBS += $(CONFIG_LIBS)
82 $(CONFIG_PROGS): $(CONFIG_OBJECTS)
83 $(UTIL_PROGS):   LDLIBS += $(UTIL_LIBS)
84 $(UTIL_PROGS):   $(UTIL_OBJECTS)
85
86 .PHONY: clean all install install_clients install_daemon