xref: /illumos-gate/usr/src/cmd/krb5/slave/Makefile (revision 3665ce8aeee26b1a84fb98951ef011e0779e1ae2)
1#
2# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
3# Use is subject to license terms.
4#
5# Copyright (c) 2018, Joyent, Inc.
6
7PROG1=kprop
8PROG2=kpropd
9PROG3=kprop_script
10PROG=$(PROG1) $(PROG2) $(PROG3)
11MANIFEST=	krb5_prop.xml
12
13OBJS	= \
14	kprop.o\
15	utils.o\
16	kpropd.o \
17	kpropd_rpc.o \
18	iprop_xdr.o
19
20COMMONOBJS= utils.o
21COMMONSRCS= utils.c
22CLIENTOBJS= kprop.o
23CLIENTSRCS= kprop.c
24SERVEROBJS= kpropd.o kpropd_rpc.o
25SERVERSRCS= kpropd.c kpropd_rpc.c
26DERIVED_OBJS= iprop_xdr.o
27DERIVED_SRCS= iprop_xdr.c
28SRCS	= $(OBJS:.o=.c)
29
30# Definitions needed to rpcgen iprop-related files
31ISRC= iprop.h iprop_xdr.c
32KRB5IPROPDIR= $(SRC)/cmd/krb5/iprop
33CMD= grep -v "usr/src/cmd/krb5/iprop" > $@
34
35DEFS =  -DHAVE_LIBSOCKET=1 -DHAVE_LIBNSL=1 \
36	-DHAVE_COMPILE=1 \
37	-DHAVE_STEP=1
38
39CLOBBERFILES += $(RSRC)
40
41include ../../Makefile.cmd
42include $(SRC)/lib/gss_mechs/mech_krb5/Makefile.mech_krb5
43
44ROOTMANIFESTDIR=	$(ROOTSVCNETWORKSECURITY)
45
46TEXT_DOMAIN = SUNW_OST_OSCMD
47POFILE = kprop.po
48POFILES = generic.po
49
50CFLAGS += $(XESS) $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
51CPPFLAGS +=	-I. \
52		-I$(KRB5IPROPDIR) \
53		-I$(SRC)/lib/gss_mechs/mech_krb5/include \
54		-I$(SRC)/lib/gss_mechs/mech_krb5/include/krb5\
55		-I$(SRC)/lib/krb5 \
56		-I$(SRC)/lib/krb5/kadm5 \
57		-I$(SRC)/uts/common/gssapi/mechs/krb5/include
58
59CERRWARN +=	-_gcc=-Wno-unused-variable
60CERRWARN +=	-_gcc=-Wno-unused-function
61CERRWARN +=	-_gcc=-Wno-implicit-function-declaration
62CERRWARN +=	-_gcc=-Wno-parentheses
63CERRWARN +=	$(CNOWARN_UNINIT)
64CERRWARN +=	-_gcc=-Wno-unused-value
65CERRWARN +=	-_gcc=-Wno-address
66
67# not linted
68SMATCH=off
69
70LDFLAGS +=	$(KRUNPATH) $(KERBRUNPATH)
71LDLIBS +=	-lmech_krb5 -lsocket
72$(PROG1) :=	LDLIBS += -L$(KRB5LIB) -lkadm5srv
73$(PROG2) :=	LDLIBS += -L$(KRB5LIB) -lnsl -lkdb -lkadm5clnt
74
75.KEEP_STATE:
76
77all: $(PROG)
78
79$(PROG1): $(CLIENTOBJS) $(COMMONOBJS)
80	$(LINK.c) $(CLIENTOBJS) $(COMMONOBJS) -o $@ $(DEPLIBS) $(LDFLAGS) $(LDARGS) $(LDLIBS)
81	$(POST_PROCESS)
82
83$(PROG2): $(SERVEROBJS) $(DERIVED_OBJS) $(COMMONOBJS) $(DEPLIBS)
84	$(LINK.c) $(SERVEROBJS) $(DERIVED_OBJS) $(COMMONOBJS) -o $@ $(DEPLIBS) $(LDFLAGS) $(LDARGS) $(LDLIBS)
85	$(POST_PROCESS)
86
87# Rules to rpcgen-erate derived files from the iprop.x spec file
88iprop.h:	$(KRB5IPROPDIR)/iprop.x
89	$(RM) $@
90	$(RPCGEN) -h $(KRB5IPROPDIR)/iprop.x > $@
91
92iprop_xdr.c:	iprop.h $(KRB5IPROPDIR)/iprop.x
93	$(RM) $@
94	$(RPCGEN) -c $(KRB5IPROPDIR)/iprop.x | $(CMD)
95
96# Make dependencies explicit so make sees it.
97$(KRB5LIB)/$(PROG3): $(PROG3)
98$(OBJS): iprop.h
99
100install: $(KRB5LIBPROG) $(ROOTSVCMETHOD) $(ROOTMANIFEST)
101
102check:	$(CHKMANIFEST)
103
104install_h:
105clean:
106	$(RM) $(CLIENTOBJS) $(SERVEROBJS) $(DERIVED_OBJS) $(COMMONOBJS) $(PROG) $(ISRC)
107
108lint:
109	$(LINT.c) $(CLIENTSRCS) $(COMMONSRCS) $(LDLIBS)
110	$(LINT.c) $(SERVERSRCS) $(DERIVED_SRCS) $(COMMONSRCS) $(LDLIBS)
111
112include ../../Makefile.targ
113
114$(POFILE): $(DERIVED_FILES) .WAIT $(POFILES)
115	$(RM) $@
116	$(CAT) $(POFILES) > $@
117
118generic.po: FRC
119	$(RM) messages.po
120	$(XGETTEXT) $(XGETFLAGS) `$(GREP) -l gettext *.[ch]`
121	$(SED) "/^domain/d" messages.po > $@
122	$(RM) messages.po
123
124FRC:
125