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) 1990, 2010, Oracle and/or its affiliates. All rights reserved.
  23 # Copyright (c) 2013 RackTop Systems.
  24 # Copyright (c) 2013 Gary Mills
  25 #
  26 # Copyright (c) 2018, Joyent, Inc.
  27 
  28 DEFAULTFILES= useradd.dfl
  29 
  30 include ../../Makefile.cmd
  31 
  32 GREP=           grep
  33 
  34 USERADD=        useradd
  35 USERDEL=        userdel
  36 USERMOD=        usermod
  37 ROLEADD=        roleadd
  38 ROLEDEL=        roledel
  39 ROLEMOD=        rolemod
  40 
  41 SBINPROG=       $(USERADD)   $(USERDEL)   $(USERMOD)
  42 #
  43 #       Removing sysadm: deleted $(SYSADMPROG) from this target.
  44 #
  45 PROG=           $(SBINPROG)
  46 PRODUCT=        $(PROG)
  47 
  48 ADD_OBJ=        useradd.o     homedir.o        groups.o     call_pass.o \
  49                 userdefs.o    messages.o       val_lgrp.o   funcs.o \
  50                 val_lprj.o    proj.o
  51 
  52 DEL_OBJ=        userdel.o     call_pass.o      homedir.o    isbusy.o \
  53                 groups.o      messages.o       funcs.o      proj.o
  54 
  55 MOD_OBJ=        usermod.o     movedir.o        groups.o     homedir.o \
  56                 call_pass.o   isbusy.o         userdefs.o \
  57                 messages.o    val_lgrp.o       funcs.o      val_lprj.o \
  58                 proj.o
  59 
  60 OBJECTS=        $(ADD_OBJ)     $(DEL_OBJ)    $(MOD_OBJ)
  61 
  62 SRCS=           $(OBJECTS:.o=.c)
  63 
  64 LIBDIR=         ../lib
  65 LIBUSRGRP=      $(LIBDIR)/lib.a
  66 LIBADM=         -ladm
  67 LOCAL=          ../inc
  68 HERE=           .
  69 LINTFLAGS=      -u
  70 
  71 ROOTSKEL=       $(ROOTETC)/skel
  72 INSSBINPROG=    $(SBINPROG:%=$(ROOTUSRSBIN)/%)
  73 INSSKELFILE=    $(SKELFILE:%=$(ROOTSKEL)/%)
  74 
  75 CPPFLAGS=       -I$(HERE) -I$(LOCAL) $(CPPFLAGS.master)
  76 CERRWARN +=     -_gcc=-Wno-implicit-function-declaration
  77 
  78 # not linted
  79 SMATCH=off
  80 
  81 $(INSSBINPROG)  := FILEMODE = 0555
  82 $(INSSYSADMPROG):= FILEMODE = 0500
  83 $(INSSKELFILE)  := FILEMODE = 0644
  84 
  85 $(USERADD) :=   OBJS = $(ADD_OBJ)
  86 $(USERADD) :=   LIBS = $(LIBUSRGRP)
  87 $(USERADD) :=   LDLIBS += -lcmdutils
  88 
  89 $(USERDEL) :=   OBJS = $(DEL_OBJ)
  90 $(USERDEL) :=   LIBS = $(LIBUSRGRP)
  91 
  92 $(USERMOD) :=   OBJS = $(MOD_OBJ)
  93 $(USERMOD) :=   LIBS = $(LIBUSRGRP)
  94 
  95 LDLIBS +=       -lbsm -lnsl -lsecdb -lproject -lzfs -ltsol
  96 
  97 .PARALLEL: $(OBJECTS)
  98 
  99 all:    $(PRODUCT)
 100 
 101 $(PROG):        $$(OBJS) $$(LIBS)
 102         $(LINK.c) $(OBJS) -o $@ $(LIBS) $(LDLIBS)
 103         $(POST_PROCESS)
 104 
 105 $(USERADD):     $(ADD_OBJ)
 106 $(USERMOD):     $(MOD_OBJ)
 107 $(USERDEL):     $(DEL_OBJ)
 108 
 109 install:        all $(ROOTETCDEFAULTFILES) .WAIT \
 110                         $(ROOTSKEL) $(INSSBINPROG) $(INSSKELFILE)
 111                 $(RM) $(ROOTUSRSBIN)/$(ROLEADD)
 112                 $(LN) $(ROOTUSRSBIN)/$(USERADD) $(ROOTUSRSBIN)/$(ROLEADD)
 113                 $(RM) $(ROOTUSRSBIN)/$(ROLEDEL)
 114                 $(LN) $(ROOTUSRSBIN)/$(USERDEL) $(ROOTUSRSBIN)/$(ROLEDEL)
 115                 $(RM) $(ROOTUSRSBIN)/$(ROLEMOD)
 116                 $(LN) $(ROOTUSRSBIN)/$(USERMOD) $(ROOTUSRSBIN)/$(ROLEMOD)
 117 
 118 clean:
 119         $(RM) $(OBJECTS)
 120 
 121 lint:   lint_SRCS
 122 
 123 include ../../Makefile.targ