1 #
   2 # CDDL HEADER START
   3 #
   4 # The contents of this file are subject to the terms of the
   5 # Common Development and Distribution License (the "License").
   6 # You may not use this file except in compliance with the License.
   7 #
   8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9 # or http://www.opensolaris.org/os/licensing.
  10 # See the License for the specific language governing permissions
  11 # and limitations under the License.
  12 #
  13 # When distributing Covered Code, include this CDDL HEADER in each
  14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15 # If applicable, add the following below this CDDL HEADER, with the
  16 # fields enclosed by brackets "[]" replaced with your own identifying
  17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 #
  22 # Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
  23 # Copyright (c) 2018, Joyent, Inc.
  24 #
  25 # cmd/ldap/Makefile.com
  26 # Native LDAP II commands (makestyle clean).
  27 #
  28 include $(SRC)/cmd/Makefile.cmd
  29 
  30 LDAPMOD=        ldapmodify
  31 LDAPADD=        ldapadd
  32 LDAPPROG=       ldapmodrdn ldapsearch ldapdelete $(LDAPMOD)
  33 LDAPSRCS=       $(LDAPPROG:%=../common/%.c)
  34 LDAPOBJS=       $(LDAPPROG:%=%.o)
  35 
  36 #ldap common
  37 LDAPCOMMSRC=    common.c ldaptool-sasl.c fileurl.c convutf8.c
  38 LDAPCOMMOBJS=   $(LDAPCOMMSRC:%.c=%.o)
  39 
  40 # LDAP Naming service commands
  41 # idsconfig command
  42 IDSCONFIGPROG=  idsconfig
  43 IDSCONFIGSRC=   idsconfig.sh
  44 
  45 # ldaplist command
  46 LDAPLISTPROG=   ldaplist
  47 LDAPLISTSRCS=   ldaplist.c mapping.c printResult.c standalone.c
  48 LDAPLISTOBJS=   $(LDAPLISTSRCS:%.c=%.o)
  49 
  50 # ldapaddent command
  51 LDAPADDENTPROG= ldapaddent
  52 LDAPADDENTSRCS= ldapaddent.c ldapaddrbac.c ldapaddtsol.c standalone.c
  53 LDAPADDENTOBJS= $(LDAPADDENTSRCS:%.c=%.o)
  54 
  55 # ldapclient command
  56 LDAPCLIENTPROG= ldapclient
  57 LDAPCLIENTSRCS= ldapclient.c standalone.c
  58 LDAPCLIENTOBJS= $(LDAPCLIENTSRCS:%.c=%.o)
  59 
  60 
  61 NSLDAPOBJS=     $(LDAPLISTOBJS) $(LDAPADDENTOBJS) $(LDAPCLIENTOBJS)
  62 NSLDAPSRCS=     $(LDAPLISTSRCS) $(LDAPADDENTSRCS) $(LDAPCLIENTSRCS)
  63 
  64 OBJS=           $(LDAPOBJS) $(NSLDAPOBJS) $(LDAPCOMMOBJS)
  65 SRCS=           $(LDAPSRCS) $(NSLDAPSRCS)
  66 ROOTUSRSBIN=    $(ROOT)/usr/sbin
  67 ROOTUSRLIBLDAP= $(ROOT)/usr/lib/ldap
  68 
  69 ROOTSCRIPT=     $(IDSCONFIGPROG:%=$(ROOTUSRLIBLDAP)/%)
  70 ROOTSBIN=       $(LDAPADDENTPROG:%=$(ROOTUSRSBIN)/%) \
  71                 $(LDAPCLIENTPROG:%=$(ROOTUSRSBIN)/%)
  72 
  73 PROG=           $(LDAPPROG) $(LDAPLISTPROG)
  74 ROOTADD=        $(ROOTBIN)/$(LDAPADD)
  75 ROOTMOD=        $(ROOTBIN)/$(LDAPMOD)
  76 ALLPROG=        all $(ROOTADD)
  77 
  78 CLOBBERFILES += $(OBJS) $(PROG) $(LDAPCLIENTPROG) $(LDAPADDENTPROG) \
  79                 $(IDSCONFIGPROG) $(LINTOUT)
  80 
  81 # creating /var/ldap directory
  82 ROOTVAR_LDAP=   $(ROOT)/var/ldap
  83 
  84 LINTFLAGS += -erroff=E_INCONS_ARG_DECL2
  85 LINTFLAGS += -erroff=E_INCONS_VAL_TYPE_DECL2
  86 
  87 CERRWARN +=     -_gcc=-Wno-implicit-function-declaration
  88 CERRWARN +=     -_gcc=-Wno-parentheses
  89 CERRWARN +=     -_gcc=-Wno-unused-function
  90 CERRWARN +=     -_gcc=-Wno-unused-variable
  91 CERRWARN +=     $(CNOWARN_UNINIT)
  92 
  93 # not linted
  94 SMATCH=off
  95 
  96 all:=           TARGET= all
  97 install:=       TARGET= install
  98 clean:=         TARGET= clean
  99 clobber:=       TARGET= clobber
 100 lint:=          TARGET= lint
 101 
 102 # C Pre-Processor flags used by C, CC & lint
 103 CPPFLAGS +=     -DSUN -DSVR4 -DSOLARIS_LDAP_CMD \
 104                 -I $(SRC)/lib/libldap5/include/ldap \
 105                 -I $(SRC)/lib/libsldap/common \
 106                 -I $(SRC)/lib/libnsl/include/rpcsvc \
 107                 -DNO_LIBLCACHE -DLDAP_REFERRALS -DNET_SSL -DLDAPSSLIO \
 108                 -DHAVE_SASL_OPTIONS -DSOLARIS_LDAP_CMD
 109 LDLIBS +=       $(COMPLIB)
 110 
 111 ldapmodrdn :=   LDLIBS += -lldap
 112 ldapsearch :=   LDLIBS += -lldap
 113 ldapdelete :=   LDLIBS += -lldap
 114 ldapmodify :=   LDLIBS += -lldap
 115 ldaplist :=     LDLIBS += -lsldap
 116 ldapaddent :=   LDLIBS += -lsldap -lnsl -lsecdb
 117 ldapclient :=   LDLIBS += -lsldap -lscf
 118 
 119 ldaplist :=     CSTD = $(CSTD_GNU99)
 120 ldapaddent :=   CSTD = $(CSTD_GNU99)
 121 ldapclient :=   CSTD = $(CSTD_GNU99)
 122 
 123 lint :=         LDLIBS += -lldap
 124 
 125 .KEEP_STATE:
 126 
 127 all:    $(PROG) $(LDAPCLIENTPROG) $(LDAPADDENTPROG) $(IDSCONFIGPROG)
 128 
 129 $(LDAPADD):     $(LDAPMOD)
 130                 @$(RM) $(LDAPADD); $(LN) $(LDAPMOD) $(LDAPADD)
 131 
 132 $(LDAPPROG):    ../common/$$@.c $(LDAPCOMMOBJS)
 133                 $(LINK.c) -o $@ ../common/$@.c $(LDAPCOMMOBJS) $(LDLIBS)
 134                 $(POST_PROCESS)
 135 
 136 %.o:            ../common/%.c
 137                 $(COMPILE.c) -o $@ $<
 138                 $(POST_PROCESS_O)
 139 
 140 %.o:            ../ns_ldap/%.c
 141                 $(COMPILE.c) -o $@ $<
 142                 $(POST_PROCESS_O)
 143 
 144 idsconfig:      ../ns_ldap/$$@.sh
 145                 $(CP) ../ns_ldap/$(IDSCONFIGSRC) $(IDSCONFIGPROG)
 146                 $(CHMOD) 755 $(IDSCONFIGPROG)
 147 
 148 ldaplist:       $(LDAPLISTOBJS)
 149                 $(LINK.c) -o $@ $(LDAPLISTOBJS) $(LDLIBS)
 150                 $(POST_PROCESS)
 151 
 152 ldapaddent:     $(LDAPADDENTOBJS)
 153                 $(LINK.c) -o $@ $(LDAPADDENTOBJS) $(LDLIBS)
 154                 $(POST_PROCESS)
 155 
 156 ldapclient:     $(LDAPCLIENTOBJS)
 157                 $(LINK.c) -o $@ $(LDAPCLIENTOBJS) $(LDLIBS)
 158                 $(POST_PROCESS)
 159 
 160 install: all $(ROOTVAR_LDAP) $(ROOTUSRLIBLDAP) $(ROOTADD) $(ROOTSBIN) \
 161                 $(ROOTSCRIPT)
 162 
 163 $(ROOTUSRLIBLDAP):
 164                 $(INS.dir)
 165 
 166 $(ROOTVAR_LDAP):
 167                 $(INS.dir)
 168 
 169 $(ROOTADD):     $(ROOTPROG)
 170                 $(RM) $@
 171                 $(LN) $(ROOTMOD) $@
 172 
 173 $(ROOTUSRLIBLDAP)/%:    %
 174                 $(INS.file)
 175 
 176 FRC:
 177 
 178 clean:
 179         $(RM) $(OBJS)
 180 
 181 # Not linted Mozilla upstream commands
 182 lint: lintns_ldaplist lintns_ldapaddent lintns_ldapclient
 183 
 184 lintns_ldaplist := CSTD = $(CSTD_GNU99)
 185 
 186 lintns_ldaplist:
 187         $(LINT.c) $(LDAPLISTSRCS:%=../ns_ldap/%) $(LDLIBS) -lsldap
 188 
 189 lintns_ldapaddent := CSTD = $(CSTD_GNU99)
 190 
 191 lintns_ldapaddent:
 192         $(LINT.c) $(LDAPADDENTSRCS:%=../ns_ldap/%) $(LDLIBS) -lsldap -lnsl \
 193                 -lsecdb
 194 
 195 lintns_ldapclient := CSTD = $(CSTD_GNU99)
 196 
 197 lintns_ldapclient:
 198         $(LINT.c) $(LDAPCLIENTSRCS:%=../ns_ldap/%) $(LDLIBS) -lsldap -lscf
 199 
 200 lintc_%:
 201         $(LINT.c) $(@:lintc_%=../common/%.c) $(LDAPCOMMSRC:%=../common/%) \
 202                  $(LDLIBS)
 203 
 204 include $(SRC)/cmd/Makefile.targ