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 
 103 CERRWARN += -_gcc=-Wno-uninitialized
 104 CERRWARN += -_gcc=-Wno-char-subscripts
 105 CERRWARN += -_gcc=-Wno-clobbered
 106 CERRWARN += -_gcc=-Wno-parentheses
 107 CERRWARN += -_gcc=-Wno-unused-label
 108 CERRWARN += -_gcc=-Wno-unused-variable
 109 
 110 #
 111 # -erroff=E_INCONS_ARG_DECL2 works around a problem where lint gets confused
 112 # about how struct mdb_tgt_gregset is used in mdb_tgt_stack_f() and
 113 # mdb_tgt_stack_iter_f(). Will be resolved as part of fix for CR 6749868.
 114 #
 115 LINTFLAGS += -n -errtags=yes -erroff=E_INCONS_ARG_DECL2
 116 LINTFILES = $(SRCS:%.c=%.ln)
 117 
 118 PROG = mdb
 119 OBJS = $(SRCS:%.c=%.o) mdb_lex.o mdb_grammar.o
 120 
 121 LINK = adb
 122 ROOTLINK = $(ROOTBIN)/$(LINK)
 123 ROOTLINK32 = $(LINK:%=$(ROOTBIN32)/%)
 124 ROOTLINK64 = $(LINK:%=$(ROOTBIN64)/%)
 125 
 126 .NO_PARALLEL:
 127 .PARALLEL: $(OBJS) $(LINTFILES)
 128 
 129 all: $(PROG)
 130 
 131 $(PROG): $(OBJS)
 132         $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
 133         $(CTFMERGE) -L VERSION -o $@ $(OBJS)
 134         $(POST_PROCESS)
 135 
 136 $(ROOTLINK32): $(ROOTPROG32)
 137         $(RM) $@
 138         $(LN) $(ROOTPROG32) $@
 139 
 140 $(ROOTLINK64): $(ROOTPROG64)
 141         $(RM) $@
 142         $(LN) $(ROOTPROG64) $@
 143 
 144 mdb_lex.c: ../../../common/mdb/mdb_lex.l mdb_grammar.h
 145         $(LEX) $(LFLAGS) ../../../common/mdb/mdb_lex.l > $@
 146 
 147 mdb_grammar.h mdb_grammar.c: ../../../common/mdb/mdb_grammar.y
 148         $(YACC) $(YFLAGS) ../../../common/mdb/mdb_grammar.y
 149         @$(MV) y.tab.h mdb_grammar.h
 150         @$(MV) y.tab.c mdb_grammar.c
 151 
 152 mdb_lex.o mdb_grammar.o := CCVERBOSE =
 153 
 154 mdb_conf.o := CPPFLAGS += -DMDB_VERSION='$(MDB_VERSION)'
 155 
 156 inet_ntop.o := CPPFLAGS += -Dsnprintf=mdb_snprintf
 157 
 158 ffs.o ffs.ln := CPPFLAGS += -Dffs=mdb_ffs
 159 
 160 %.o: ../../../common/mdb/%.c
 161         $(COMPILE.c) $<
 162         $(CTFCONVERT_O)
 163 
 164 %.o: ../../mdb/%.c
 165         $(COMPILE.c) $<
 166         $(CTFCONVERT_O)
 167 
 168 %.o: %.c
 169         $(COMPILE.c) $<
 170         $(CTFCONVERT_O)
 171 
 172 %.o: $(SRC)/common/net/util/%.c
 173         $(COMPILE.c) $<
 174         $(CTFCONVERT_O)
 175 
 176 %.o: $(SRC)/common/util/%.c
 177         $(COMPILE.c) $<
 178         $(CTFCONVERT_O)
 179 
 180 clean.lint:
 181         $(RM) $(LINTFILES)
 182 
 183 clean:
 184         $(RM) $(OBJS)
 185         $(RM) mdb_lex.c mdb_grammar.c mdb_grammar.h y.tab.h y.tab.c y.output
 186 
 187 clobber: clean clean.lint
 188         $(RM) $(PROG)
 189 
 190 %.ln: ../../../common/mdb/%.c
 191         $(LINT.c) -c $<
 192 
 193 %.ln: ../../mdb/%.c
 194         $(LINT.c) -c $<
 195 
 196 %.ln: %.c
 197         $(LINT.c) -c $<
 198 
 199 %.ln: $(SRC)/common/net/util/%.c
 200         $(LINT.c) -c $<
 201 
 202 %.ln: $(SRC)/common/util/%.c
 203         $(LINT.c) -c $<
 204 
 205 lint: $(LINTFILES)
 206         $(LINT) $(LINTFLAGS) $(LINTFILES)
 207 
 208 dmods: