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 #
  23 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  24 # Use is subject to license terms.
  25 #
  26 
  27 PROG:sh = basename `cd ..; pwd`
  28 
  29 OBJS = $(PROG).o
  30 
  31 SRCS = ../$(PROG).c
  32 
  33 FILEMODE = 0555
  34 
  35 # libproc is added individually as pwait doesn't need it.
  36 # These are defined this way so lint can use them
  37 LDLIBS_pargs            = -lproc
  38 LDLIBS_pcred            = -lproc
  39 LDLIBS_pfiles           = -lproc -lnsl
  40 LDLIBS_pflags           = -lproc
  41 LDLIBS_pldd             = -lproc
  42 LDLIBS_plgrp            = -lproc -llgrp
  43 LDLIBS_pmap             = -lproc
  44 LDLIBS_pmadvise         = -lproc
  45 LDLIBS_ppriv            = -lproc
  46 LDLIBS_preap            = -lproc
  47 LDLIBS_prun             = -lproc
  48 LDLIBS_psecflags        = -lproc -lproject
  49 LDLIBS_psig             = -lproc
  50 LDLIBS_pstack           = -lproc -lc_db
  51 LDLIBS_pstop            = -lproc
  52 LDLIBS_ptime            = -lproc
  53 LDLIBS_ptree            = -lproc -lcontract
  54 LDLIBS_pwdx             = -lproc
  55 
  56 LDLIBS += $(LDLIBS_$(PROG))
  57 
  58 CERRWARN_plgrp  += -_gcc=-Wno-parentheses
  59 
  60 CERRWARN_ppriv  += -_gcc=-Wno-parentheses
  61 CERRWARN_ppriv  += -_gcc=-Wno-uninitialized
  62 
  63 CERRWARN_ptree  += -_gcc=-Wno-parentheses
  64 
  65 CERRWARN_pstack += -_gcc=-Wno-uninitialized
  66 CERRWARN_pstack += -_gcc=-Wno-clobbered
  67 
  68 CERRWARN_pargs  += -_gcc=-Wno-clobbered
  69 CERRWARN_pargs  += -_gcc=-Wno-type-limits
  70 
  71 CERRWARN += $(CERRWARN_$(PROG))
  72 
  73 # pargs depends on ../../common/elfcap components
  74 # pmadvise depends on pmap components
  75 
  76 ELFCAP =        $(SRC)/common/elfcap
  77 PMAP =          $(SRC)/cmd/ptools/pmap
  78 
  79 CPPFLAGS_pargs =        -I$(ELFCAP)
  80 OBJS_pargs =            elfcap.o
  81 SRCS_pargs =            $(ELFCAP)/elfcap.c
  82 
  83 CPPFLAGS_pmap =         -I$(PMAP)
  84 OBJS_pmap =             pmap_common.o
  85 SRCS_pmap =             $(PMAP)/pmap_common.c
  86 
  87 CPPFLAGS_pmadvise =     -I$(PMAP)
  88 OBJS_pmadvise =         pmap_common.o
  89 SRCS_pmadvise =         $(PMAP)/pmap_common.c
  90 
  91 CPPFLAGS +=     $(CPPFLAGS_$(PROG))
  92 OBJS +=         $(OBJS_$(PROG))
  93 SRCS +=         $(SRCS_$(PROG))
  94 
  95 INSTALL_NEW=
  96 INSTALL_LEGACY=$(RM) $(ROOTPROCBINSYMLINK) ; \
  97         $(LN) -s ../../bin/$(PROG) $(ROOTPROCBINSYMLINK)
  98 
  99 .KEEP_STATE:
 100 
 101 elfcap.o:       $(ELFCAP)/elfcap.c
 102                 $(COMPILE.c) -o $@ $(ELFCAP)/elfcap.c
 103 
 104 pmap_common.o:  $(PMAP)/pmap_common.c
 105                 $(COMPILE.c) -o $@ $(PMAP)/pmap_common.c
 106 
 107 %.o:    ../%.c
 108         $(COMPILE.c) $<
 109 
 110 all:    $(PROG)
 111 
 112 ROOTBINPROG=$(ROOTBIN)/$(PROG)
 113 ROOTPROCBINSYMLINK=$(ROOT)/usr/proc/bin/$(PROG)
 114 
 115 $(PROG): $$(OBJS)
 116         $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
 117         $(POST_PROCESS)
 118 
 119 #
 120 # Install the ptool, symlinking it into /usr/proc/bin if PTOOL_TYPE is set
 121 # to LEGACY.
 122 #
 123 install: all $(ROOTISAPROG)
 124         -$(RM) $(ROOTBINPROG)
 125         -$(LN) $(ISAEXEC) $(ROOTBINPROG)
 126         -$(INSTALL_$(PTOOL_TYPE))
 127 
 128 clean:
 129         $(RM) $(OBJS)
 130 
 131 lint:
 132         $(LINT.c) $(SRCS) $(LDLIBS)