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 2009 Sun Microsystems, Inc.  All rights reserved.
  23 # Use is subject to license terms.
  24 #
  25 
  26 #
  27 # Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  28 # Copyright (c) 2012 by Delphix. All rights reserved.
  29 # Copyright (c) 2012 Joyent, Inc. All rights reserved.
  30 #
  31 
  32 .KEEP_STATE:
  33 .SUFFIXES:
  34 
  35 SRCS += \
  36         ffs.c \
  37         mdb.c \
  38         mdb_addrvec.c \
  39         mdb_argvec.c \
  40         mdb_callb.c \
  41         mdb_cmdbuf.c \
  42         mdb_cmds.c \
  43         mdb_conf.c \
  44         mdb_context.c \
  45         mdb_create.c \
  46         mdb_ctf.c \
  47         mdb_ctf_open.c \
  48         mdb_debug.c \
  49         mdb_demangle.c \
  50         mdb_disasm.c \
  51         mdb_dump.c \
  52         mdb_err.c \
  53         mdb_evset.c \
  54         mdb_fdio.c \
  55         mdb_fmt.c \
  56         mdb_frame.c \
  57         mdb_gelf.c \
  58         mdb_help.c \
  59         mdb_io.c \
  60         mdb_kb_kvm.c \
  61         mdb_kproc.c \
  62         mdb_kvm.c \
  63         mdb_logio.c \
  64         mdb_list.c \
  65         mdb_macalias.c \
  66         mdb_main.c \
  67         mdb_memio.c \
  68         mdb_modapi.c \
  69         mdb_module.c \
  70         mdb_module_load.c \
  71         mdb_nm.c \
  72         mdb_nv.c \
  73         mdb_pipeio.c \
  74         mdb_print.c \
  75         mdb_proc.c \
  76         mdb_pservice.c \
  77         mdb_rawfile.c \
  78         mdb_set.c \
  79         mdb_shell.c \
  80         mdb_signal.c \
  81         mdb_stdlib.c \
  82         mdb_string.c \
  83         mdb_strio.c \
  84         mdb_tab.c \
  85         mdb_target.c \
  86         mdb_tdb.c \
  87         mdb_termio.c \
  88         mdb_typedef.c \
  89         mdb_umem.c \
  90         mdb_value.c \
  91         mdb_vcb.c \
  92         mdb_wcb.c \
  93         mdb_whatis.c
  94 
  95 $(NOT_RELEASE_BUILD)CPPFLAGS += -DDEBUG
  96 CPPFLAGS += -D_MDB -I. -I../.. -I../../../common
  97 
  98 CSTD=   $(CSTD_GNU99)
  99 C99LMODE=       -Xc99=%all
 100 
 101 LDLIBS += -lcurses -lkvm -lproc -lrtld_db -lctf -lumem -ldisasm -lscf
 102 LDLIBS += -lsysdemangle
 103 
 104 CERRWARN += -_gcc=-Wno-uninitialized
 105 CERRWARN += -_gcc=-Wno-char-subscripts
 106 CERRWARN += -_gcc=-Wno-clobbered
 107 CERRWARN += -_gcc=-Wno-parentheses
 108 CERRWARN += -_gcc=-Wno-unused-label
 109 CERRWARN += -_gcc=-Wno-unused-variable
 110 
 111 #
 112 # -erroff=E_INCONS_ARG_DECL2 works around a problem where lint gets confused
 113 # about how struct mdb_tgt_gregset is used in mdb_tgt_stack_f() and
 114 # mdb_tgt_stack_iter_f(). Will be resolved as part of fix for CR 6749868.
 115 #
 116 LINTFLAGS += -n -errtags=yes -erroff=E_INCONS_ARG_DECL2
 117 LINTFILES = $(SRCS:%.c=%.ln)
 118 
 119 PROG = mdb
 120 OBJS = $(SRCS:%.c=%.o) mdb_lex.o mdb_grammar.o
 121 
 122 LINK = adb
 123 ROOTLINK = $(ROOTBIN)/$(LINK)
 124 ROOTLINK32 = $(LINK:%=$(ROOTBIN32)/%)
 125 ROOTLINK64 = $(LINK:%=$(ROOTBIN64)/%)
 126 
 127 .NO_PARALLEL:
 128 .PARALLEL: $(OBJS) $(LINTFILES)
 129 
 130 all: $(PROG)
 131 
 132 $(PROG): $(OBJS)
 133         $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
 134         $(CTFMERGE) -L VERSION -o $@ $(OBJS)
 135         $(POST_PROCESS)
 136 
 137 $(ROOTLINK32): $(ROOTPROG32)
 138         $(RM) $@
 139         $(LN) $(ROOTPROG32) $@
 140 
 141 $(ROOTLINK64): $(ROOTPROG64)
 142         $(RM) $@
 143         $(LN) $(ROOTPROG64) $@
 144 
 145 mdb_lex.c: ../../../common/mdb/mdb_lex.l mdb_grammar.h
 146         $(LEX) $(LFLAGS) ../../../common/mdb/mdb_lex.l > $@
 147 
 148 mdb_grammar.h mdb_grammar.c: ../../../common/mdb/mdb_grammar.y
 149         $(YACC) $(YFLAGS) ../../../common/mdb/mdb_grammar.y
 150         @$(MV) y.tab.h mdb_grammar.h
 151         @$(MV) y.tab.c mdb_grammar.c
 152 
 153 mdb_lex.o mdb_grammar.o := CCVERBOSE =
 154 
 155 mdb_conf.o := CPPFLAGS += -DMDB_VERSION='$(MDB_VERSION)'
 156 
 157 inet_ntop.o := CPPFLAGS += -Dsnprintf=mdb_snprintf
 158 
 159 ffs.o ffs.ln := CPPFLAGS += -Dffs=mdb_ffs
 160 
 161 %.o: ../../../common/mdb/%.c
 162         $(COMPILE.c) $<
 163         $(CTFCONVERT_O)
 164 
 165 %.o: ../../mdb/%.c
 166         $(COMPILE.c) $<
 167         $(CTFCONVERT_O)
 168 
 169 %.o: %.c
 170         $(COMPILE.c) $<
 171         $(CTFCONVERT_O)
 172 
 173 %.o: $(SRC)/common/net/util/%.c
 174         $(COMPILE.c) $<
 175         $(CTFCONVERT_O)
 176 
 177 %.o: $(SRC)/common/util/%.c
 178         $(COMPILE.c) $<
 179         $(CTFCONVERT_O)
 180 
 181 clean.lint:
 182         $(RM) $(LINTFILES)
 183 
 184 clean:
 185         $(RM) $(OBJS)
 186         $(RM) mdb_lex.c mdb_grammar.c mdb_grammar.h y.tab.h y.tab.c y.output
 187 
 188 clobber: clean clean.lint
 189         $(RM) $(PROG)
 190 
 191 %.ln: ../../../common/mdb/%.c
 192         $(LINT.c) -c $<
 193 
 194 %.ln: ../../mdb/%.c
 195         $(LINT.c) -c $<
 196 
 197 %.ln: %.c
 198         $(LINT.c) -c $<
 199 
 200 %.ln: $(SRC)/common/net/util/%.c
 201         $(LINT.c) -c $<
 202 
 203 %.ln: $(SRC)/common/util/%.c
 204         $(LINT.c) -c $<
 205 
 206 lint: $(LINTFILES)
 207         $(LINT) $(LINTFLAGS) $(LINTFILES)
 208 
 209 dmods: