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 
   7 PROG1=kprop
   8 PROG2=kpropd
   9 PROG3=kprop_script
  10 PROG=$(PROG1) $(PROG2) $(PROG3)
  11 MANIFEST=       krb5_prop.xml
  12 
  13 OBJS    = \
  14         kprop.o\
  15         utils.o\
  16         kpropd.o \
  17         kpropd_rpc.o \
  18         iprop_xdr.o
  19 
  20 COMMONOBJS= utils.o
  21 COMMONSRCS= utils.c
  22 CLIENTOBJS= kprop.o
  23 CLIENTSRCS= kprop.c
  24 SERVEROBJS= kpropd.o kpropd_rpc.o
  25 SERVERSRCS= kpropd.c kpropd_rpc.c
  26 DERIVED_OBJS= iprop_xdr.o
  27 DERIVED_SRCS= iprop_xdr.c
  28 SRCS    = $(OBJS:.o=.c)
  29 
  30 # Definitions needed to rpcgen iprop-related files
  31 ISRC= iprop.h iprop_xdr.c
  32 KRB5IPROPDIR= $(SRC)/cmd/krb5/iprop
  33 CMD= grep -v "usr/src/cmd/krb5/iprop" > $@
  34 
  35 DEFS =  -DHAVE_LIBSOCKET=1 -DHAVE_LIBNSL=1 \
  36         -DHAVE_COMPILE=1 \
  37         -DHAVE_STEP=1
  38 
  39 CLOBBERFILES += $(RSRC)
  40 
  41 include ../../Makefile.cmd
  42 include $(SRC)/lib/gss_mechs/mech_krb5/Makefile.mech_krb5
  43 
  44 ROOTMANIFESTDIR=        $(ROOTSVCNETWORKSECURITY)
  45 
  46 TEXT_DOMAIN = SUNW_OST_OSCMD
  47 POFILE = kprop.po
  48 POFILES = generic.po
  49 
  50 CFLAGS += $(XESS) $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
  51 CPPFLAGS +=     -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 
  59 CERRWARN +=     -_gcc=-Wno-unused-variable
  60 CERRWARN +=     -_gcc=-Wno-unused-function
  61 CERRWARN +=     -_gcc=-Wno-implicit-function-declaration
  62 CERRWARN +=     -_gcc=-Wno-parentheses
  63 CERRWARN +=     $(CNOWARN_UNINIT)
  64 CERRWARN +=     -_gcc=-Wno-unused-value
  65 CERRWARN +=     -_gcc=-Wno-address
  66 
  67 # not linted
  68 SMATCH=off
  69 
  70 LDFLAGS +=      $(KRUNPATH) $(KERBRUNPATH)
  71 LDLIBS +=       -lmech_krb5 -lsocket
  72 $(PROG1) :=     LDLIBS += -L$(KRB5LIB) -lkadm5srv
  73 $(PROG2) :=     LDLIBS += -L$(KRB5LIB) -lnsl -lkdb -lkadm5clnt
  74 
  75 .KEEP_STATE:
  76 
  77 all: $(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
  88 iprop.h:        $(KRB5IPROPDIR)/iprop.x
  89         $(RM) $@
  90         $(RPCGEN) -h $(KRB5IPROPDIR)/iprop.x > $@
  91 
  92 iprop_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 
 100 install: $(KRB5LIBPROG) $(ROOTSVCMETHOD) $(ROOTMANIFEST)
 101 
 102 check:  $(CHKMANIFEST)
 103 
 104 install_h:
 105 clean:
 106         $(RM) $(CLIENTOBJS) $(SERVEROBJS) $(DERIVED_OBJS) $(COMMONOBJS) $(PROG) $(ISRC)
 107 
 108 lint:
 109         $(LINT.c) $(CLIENTSRCS) $(COMMONSRCS) $(LDLIBS)
 110         $(LINT.c) $(SERVERSRCS) $(DERIVED_SRCS) $(COMMONSRCS) $(LDLIBS)
 111 
 112 include ../../Makefile.targ
 113 
 114 $(POFILE): $(DERIVED_FILES) .WAIT $(POFILES)
 115         $(RM) $@
 116         $(CAT) $(POFILES) > $@
 117 
 118 generic.po: FRC
 119         $(RM) messages.po
 120         $(XGETTEXT) $(XGETFLAGS) `$(GREP) -l gettext *.[ch]`
 121         $(SED) "/^domain/d" messages.po > $@
 122         $(RM) messages.po
 123 
 124 FRC: