47bbc9894bf20ce4fde0ad15acef4624cb0cc598
[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 LDFLAGS += -std=gnu99 $(INCLUDES)
5 override CFLAGS  += -std=gnu99 $(INCLUDES)
6
7 DESTDIR :=
8 PREFIX  := /usr/local
9
10 BIN_PROGS := addmember addclub ceod
11 LIB_PROGS := ceoc op-adduser
12 EXT_PROGS := config-test
13
14 LDAP_OBJECTS   := ldap.o
15 LDAP_LIBS      := -lldap
16 LDAP_PROGS     := addmember addclub op-adduser
17 KRB5_OBJECTS   := krb5.o kadm.o
18 KRB5_LIBS      := $(shell krb5-config --libs krb5 kadm-client)
19 KRB5_PROGS     := addmember addclub op-adduser
20 HOME_OBJECTS   := homedir.o
21 HOME_LIBS      := -lacl
22 HOME_PROGS     := op-adduser
23 NET_OBJECTS    := net.o gss.o ops.o
24 NET_LIBS       := -lsctp $(shell krb5-config --libs gssapi)
25 NET_PROGS      := ceod ceoc
26 PROTO_OBJECTS  := ceo.pb-c.o
27 PROTO_LIBS     := -lprotobuf-c
28 PROTO_PROGS    := op-adduser addmember addclub
29 CONFIG_OBJECTS := config.o parser.o
30 CONFIG_LIBS    :=
31 CONFIG_PROGS   := $(LDAP_PROGS) $(KRB5_PROGS) $(NET_PROGS)
32 UTIL_OBJECTS   := util.o strbuf.o
33 UTIL_PROGS     := config-test $(CONFIG_PROGS)
34
35 all: $(BIN_PROGS) $(LIB_PROGS) $(EXT_PROGS)
36
37 clean:
38         rm -f $(BIN_PROGS) $(LIB_PROGS) $(EXT_PROGS) *.o ceo.pb-c.c ceo.pb-c.h
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 ceod: dmaster.o dslave.o
46         $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
47
48 config-test: config-test.o parser.o
49
50 config.o: config.h config-vars.h
51
52 install:
53         install -d $(DESTDIR)$(PREFIX)/sbin $(DESTDIR)$(PREFIX)/bin $(DESTDIR)$(PREFIX)/lib/ceod
54         install ceod $(DESTDIR)$(PREFIX)/sbin
55         install addmember addclub $(DESTDIR)$(PREFIX)/bin
56         install ceoc op-adduser $(DESTDIR)$(PREFIX)/lib/ceod
57
58 $(NET_PROGS):    LDLIBS += $(NET_LIBS)
59 $(NET_PROGS):    $(NET_OBJECTS)
60 $(LDAP_PROGS):   LDLIBS += $(LDAP_LIBS)
61 $(LDAP_PROGS):   $(LDAP_OBJECTS)
62 $(KRB5_PROGS):   LDLIBS += $(KRB5_LIBS)
63 $(KRB5_PROGS):   $(KRB5_OBJECTS)
64 $(HOME_PROGS):   LDLIBS += $(HOME_LIBS)
65 $(HOME_PROGS):   $(HOME_OBJECTS)
66 $(PROTO_PROGS):  LDLIBS += $(PROTO_LIBS)
67 $(PROTO_PROGS):  $(PROTO_OBJECTS)
68 $(CONFIG_PROGS): LDLIBS += $(CONFIG_LIBS)
69 $(CONFIG_PROGS): $(CONFIG_OBJECTS)
70 $(UTIL_PROGS):   LDLIBS += $(UTIL_LIBS)
71 $(UTIL_PROGS):   $(UTIL_OBJECTS)
72
73 .PHONY: clean all
74 .SECONDARY: ceoc.o addmember.o addclub.o