Fix redundant arguments to linker
[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
11 EXT_PROGS := config-test
12
13 LDAP_OBJECTS   := ldap.o
14 LDAP_LIBS      := -lldap
15 LDAP_PROGS     := addmember addclub 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 ceod: dmaster.o dslave.o
45         $(CC) $(LDFLAGS) $^ $(CFLAGS) $(LDLIBS) -o $@
46
47 config-test: config-test.o parser.o
48
49 config.o: config.h config-vars.h
50
51 install:
52         install -d $(DESTDIR)$(PREFIX)/sbin $(DESTDIR)$(PREFIX)/bin $(DESTDIR)$(PREFIX)/lib/ceod
53         install ceod $(DESTDIR)$(PREFIX)/sbin
54         install addmember addclub $(DESTDIR)$(PREFIX)/bin
55         install ceoc op-adduser $(DESTDIR)$(PREFIX)/lib/ceod
56
57 $(NET_PROGS):    LDLIBS += $(NET_LIBS)
58 $(NET_PROGS):    $(NET_OBJECTS)
59 $(LDAP_PROGS):   LDLIBS += $(LDAP_LIBS)
60 $(LDAP_PROGS):   $(LDAP_OBJECTS)
61 $(KRB5_PROGS):   LDLIBS += $(KRB5_LIBS)
62 $(KRB5_PROGS):   $(KRB5_OBJECTS)
63 $(HOME_PROGS):   LDLIBS += $(HOME_LIBS)
64 $(HOME_PROGS):   $(HOME_OBJECTS)
65 $(PROTO_PROGS):  LDLIBS += $(PROTO_LIBS)
66 $(PROTO_PROGS):  $(PROTO_OBJECTS)
67 $(CONFIG_PROGS): LDLIBS += $(CONFIG_LIBS)
68 $(CONFIG_PROGS): $(CONFIG_OBJECTS)
69 $(UTIL_PROGS):   LDLIBS += $(UTIL_LIBS)
70 $(UTIL_PROGS):   $(UTIL_OBJECTS)
71
72 .PHONY: clean all
73 .SECONDARY: ceoc.o addmember.o addclub.o