Makefile revision 313486
1# $FreeBSD: stable/10/tools/test/dtrace/Makefile 313486 2017-02-09 22:04:56Z ngie $ 2 3TESTSRCDIR= ${.CURDIR}/../../../cddl/contrib/opensolaris/cmd/dtrace/test 4CFLAGS+= -w 5DTEST= ${TESTSRCDIR}/cmd/scripts/dtest.pl -n 6 7IGNORE= \ 8 ${TESTSRCDIR}/tst/common/aggs/tst.subr.d \ 9 ${TESTSRCDIR}/tst/common/buffering/tst.cputime.ksh \ 10 ${TESTSRCDIR}/tst/common/buffering/tst.ring3.d \ 11 ${TESTSRCDIR}/tst/common/cpc/err.D_PDESC_ZERO.lowfrequency.d \ 12 ${TESTSRCDIR}/tst/common/cpc/err.D_PDESC_ZERO.malformedoverflow.d\ 13 ${TESTSRCDIR}/tst/common/cpc/err.D_PDESC_ZERO.nonexistentevent.d\ 14 ${TESTSRCDIR}/tst/common/cpc/err.cpcvscpustatpart1.ksh \ 15 ${TESTSRCDIR}/tst/common/cpc/err.cpcvscpustatpart2.ksh \ 16 ${TESTSRCDIR}/tst/common/cpc/err.cputrackfailtostart.ksh \ 17 ${TESTSRCDIR}/tst/common/cpc/err.cputrackterminates.ksh \ 18 ${TESTSRCDIR}/tst/common/cpc/err.toomanyenablings.d \ 19 ${TESTSRCDIR}/tst/common/cpc/tst.allcpus.ksh \ 20 ${TESTSRCDIR}/tst/common/cpc/tst.genericevent.d \ 21 ${TESTSRCDIR}/tst/common/cpc/tst.platformevent.ksh \ 22 ${TESTSRCDIR}/tst/common/dtraceUtil/man.ListProbesWithFunctions \ 23 ${TESTSRCDIR}/tst/common/dtraceUtil/man.ListProbesWithModules \ 24 ${TESTSRCDIR}/tst/common/dtraceUtil/man.ListProbesWithNames \ 25 ${TESTSRCDIR}/tst/common/dtraceUtil/man.ListProbesWithProviders \ 26 ${TESTSRCDIR}/tst/common/dtraceUtil/man.TraceFunctions \ 27 ${TESTSRCDIR}/tst/common/dtraceUtil/man.TraceModule \ 28 ${TESTSRCDIR}/tst/common/dtraceUtil/man.TraceNames \ 29 ${TESTSRCDIR}/tst/common/dtraceUtil/man.TraceProvider \ 30 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.InvalidModule3.d.ksh \ 31 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.InvalidProvider3.d.ksh \ 32 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.InvalidTraceFunc7.d.ksh \ 33 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.InvalidTraceModule6.d.ksh\ 34 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.InvalidTraceProvider4.d.ksh\ 35 ${TESTSRCDIR}/tst/common/funcs/tst.bcopy.d \ 36 ${TESTSRCDIR}/tst/common/funcs/tst.copyin.d \ 37 ${TESTSRCDIR}/tst/common/funcs/tst.copyinto.d \ 38 ${TESTSRCDIR}/tst/common/funcs/tst.ddi_pathname.d \ 39 ${TESTSRCDIR}/tst/common/funcs/tst.index.d \ 40 ${TESTSRCDIR}/tst/common/inline/err.D_OP_INCOMPAT.badxlate.d \ 41 ${TESTSRCDIR}/tst/common/inline/tst.InlineTypedef.d \ 42 ${TESTSRCDIR}/tst/common/io/tst.fds.c \ 43 ${TESTSRCDIR}/tst/common/java_api/tst.FunctionLookup.c \ 44 ${TESTSRCDIR}/tst/common/java_api/tst.ProbeData.c \ 45 ${TESTSRCDIR}/common/misc/tst.include.ksh \ 46 ${TESTSRCDIR}/tst/common/misc/tst.roch.d \ 47 ${TESTSRCDIR}/tst/common/nfs/tst.call.c \ 48 ${TESTSRCDIR}/tst/common/nfs/tst.call.d \ 49 ${TESTSRCDIR}/tst/common/nfs/tst.call3.c \ 50 ${TESTSRCDIR}/tst/common/nfs/tst.call3.d \ 51 ${TESTSRCDIR}/tst/common/offsetof/err.D_OFFSETOF_BITFIELD.bitfield.d\ 52 ${TESTSRCDIR}/tst/common/pointers/err.D_OP_LVAL.AddressChange.d \ 53 ${TESTSRCDIR}/tst/common/pointers/tst.GlobalVar.d \ 54 ${TESTSRCDIR}/tst/common/pointers/tst.basic1.d \ 55 ${TESTSRCDIR}/tst/common/pointers/tst.basic2.d \ 56 ${TESTSRCDIR}/tst/common/predicates/tst.argsnotcached.d \ 57 ${TESTSRCDIR}/tst/common/privs/tst.func_access.ksh \ 58 ${TESTSRCDIR}/tst/common/privs/tst.op_access.ksh \ 59 ${TESTSRCDIR}/tst/common/proc/tst.discard.ksh \ 60 ${TESTSRCDIR}/tst/common/proc/tst.signal.ksh \ 61 ${TESTSRCDIR}/tst/common/proc/tst.startexit.ksh \ 62 ${TESTSRCDIR}/tst/common/scalars/tst.misc.d \ 63 ${TESTSRCDIR}/tst/common/scalars/tst.selfarray2.d \ 64 ${TESTSRCDIR}/tst/common/sysevent/tst.post.c \ 65 ${TESTSRCDIR}/tst/common/sysevent/tst.post.d \ 66 ${TESTSRCDIR}/tst/common/sysevent/tst.post_chan.c \ 67 ${TESTSRCDIR}/tst/common/sysevent/tst.post_chan.d \ 68 ${TESTSRCDIR}/tst/common/trace/tst.misc.d \ 69 ${TESTSRCDIR}/tst/common/tracemem/err.D_TRACEMEM_ADDR.badaddr.d \ 70 ${TESTSRCDIR}/tst/common/tracemem/tst.rootvp.d \ 71 ${TESTSRCDIR}/tst/common/translators/tst.ProcModelTrans.d \ 72 ${TESTSRCDIR}/tst/common/types/err.D_XLATE_REDECL.ResultDynType.d\ 73 ${TESTSRCDIR}/tst/common/types/tst.ptrops.d \ 74 ${TESTSRCDIR}/tst/common/types/tst.struct.d \ 75 ${TESTSRCDIR}/tst/common/types/tst.typedef.d \ 76 ${TESTSRCDIR}/tst/common/vars/tst.ucaller.ksh \ 77 ${TESTSRCDIR}/tst/common/vars/tst.walltimestamp.d \ 78 ${TESTSRCDIR}/tst/common/usdt/tst.argmap.c \ 79 ${TESTSRCDIR}/tst/common/usdt/tst.args.c \ 80 ${TESTSRCDIR}/tst/common/usdt/tst.forker.c \ 81 ${TESTSRCDIR}/tst/common/ip/tst.ipv4localtcp.ksh \ 82 ${TESTSRCDIR}/tst/common/ip/tst.ipv4localudp.ksh \ 83 ${TESTSRCDIR}/tst/common/ip/tst.ipv4remotetcp.ksh \ 84 ${TESTSRCDIR}/tst/common/ip/tst.ipv4remoteudp.ksh \ 85 ${TESTSRCDIR}/tst/common/ip/tst.localtcpstate.ksh \ 86 ${TESTSRCDIR}/tst/common/ip/tst.remotetcpstate.ksh \ 87 ${TESTSRCDIR}/tst/common/scripting/tst.projid.ksh \ 88 ${TESTSRCDIR}/tst/common/scripting/tst.taskid.ksh 89 90 91 92NOTWORK+= \ 93 ${TESTSRCDIR}/tst/common/io/tst.fds.d \ 94 ${TESTSRCDIR}/tst/common/java_api/tst.Abort.ksh \ 95 ${TESTSRCDIR}/tst/common/java_api/tst.Bean.ksh \ 96 ${TESTSRCDIR}/tst/common/java_api/tst.Close.ksh \ 97 ${TESTSRCDIR}/tst/common/java_api/tst.Drop.ksh \ 98 ${TESTSRCDIR}/tst/common/java_api/tst.Enable.ksh \ 99 ${TESTSRCDIR}/tst/common/java_api/tst.FunctionLookup.ksh \ 100 ${TESTSRCDIR}/tst/common/java_api/tst.GetAggregate.ksh \ 101 ${TESTSRCDIR}/tst/common/java_api/tst.MaxConsumers.ksh \ 102 ${TESTSRCDIR}/tst/common/java_api/tst.MultiAggPrinta.ksh \ 103 ${TESTSRCDIR}/tst/common/java_api/tst.ProbeData.ksh \ 104 ${TESTSRCDIR}/tst/common/java_api/tst.ProbeDescription.ksh \ 105 ${TESTSRCDIR}/tst/common/java_api/tst.StateMachine.ksh \ 106 ${TESTSRCDIR}/tst/common/java_api/tst.StopLock.ksh \ 107 ${TESTSRCDIR}/tst/common/java_api/tst.printa.d \ 108 ${TESTSRCDIR}/tst/common/lexer/err.D_CHR_NL.char.d \ 109 ${TESTSRCDIR}/tst/common/lexer/err.D_STR_NL.string.d \ 110 ${TESTSRCDIR}/tst/common/mdb/tst.dtracedcmd.ksh \ 111 ${TESTSRCDIR}/tst/common/mib/tst.icmp.ksh \ 112 ${TESTSRCDIR}/tst/common/mib/tst.tcp.ksh \ 113 ${TESTSRCDIR}/tst/common/mib/tst.udp.ksh \ 114 ${TESTSRCDIR}/tst/common/profile-n/tst.func.ksh \ 115 ${TESTSRCDIR}/tst/common/profile-n/tst.mod.ksh \ 116 ${TESTSRCDIR}/tst/common/profile-n/tst.sym.ksh \ 117 ${TESTSRCDIR}/tst/common/safety/tst.basename.d \ 118 ${TESTSRCDIR}/tst/common/safety/tst.caller.d \ 119 ${TESTSRCDIR}/tst/common/safety/tst.cleanpath.d \ 120 ${TESTSRCDIR}/tst/common/safety/tst.copyin.d \ 121 ${TESTSRCDIR}/tst/common/safety/tst.copyin2.d \ 122 ${TESTSRCDIR}/tst/common/safety/tst.ddi_pathname.d \ 123 ${TESTSRCDIR}/tst/common/safety/tst.dirname.d \ 124 ${TESTSRCDIR}/tst/common/safety/tst.errno.d \ 125 ${TESTSRCDIR}/tst/common/safety/tst.execname.d \ 126 ${TESTSRCDIR}/tst/common/safety/tst.gid.d \ 127 ${TESTSRCDIR}/tst/common/safety/tst.hton.d \ 128 ${TESTSRCDIR}/tst/common/safety/tst.index.d \ 129 ${TESTSRCDIR}/tst/common/safety/tst.msgdsize.d \ 130 ${TESTSRCDIR}/tst/common/safety/tst.msgsize.d \ 131 ${TESTSRCDIR}/tst/common/safety/tst.null.d \ 132 ${TESTSRCDIR}/tst/common/safety/tst.pid.d \ 133 ${TESTSRCDIR}/tst/common/safety/tst.ppid.d \ 134 ${TESTSRCDIR}/tst/common/safety/tst.progenyof.d \ 135 ${TESTSRCDIR}/tst/common/safety/tst.random.d \ 136 ${TESTSRCDIR}/tst/common/safety/tst.rw.d \ 137 ${TESTSRCDIR}/tst/common/safety/tst.shortstr.d \ 138 ${TESTSRCDIR}/tst/common/safety/tst.stack.d \ 139 ${TESTSRCDIR}/tst/common/safety/tst.stackdepth.d \ 140 ${TESTSRCDIR}/tst/common/safety/tst.stddev.d \ 141 ${TESTSRCDIR}/tst/common/safety/tst.strchr.d \ 142 ${TESTSRCDIR}/tst/common/safety/tst.strjoin.d \ 143 ${TESTSRCDIR}/tst/common/safety/tst.strstr.d \ 144 ${TESTSRCDIR}/tst/common/safety/tst.strtok.d \ 145 ${TESTSRCDIR}/tst/common/safety/tst.substr.d \ 146 ${TESTSRCDIR}/tst/common/safety/tst.ucaller.d \ 147 ${TESTSRCDIR}/tst/common/safety/tst.uid.d \ 148 ${TESTSRCDIR}/tst/common/safety/tst.unalign.d \ 149 ${TESTSRCDIR}/tst/common/safety/tst.ustack.d \ 150 ${TESTSRCDIR}/tst/common/safety/tst.ustackdepth.d \ 151 ${TESTSRCDIR}/tst/common/safety/tst.vahole.d \ 152 ${TESTSRCDIR}/tst/common/safety/tst.violentdeath.ksh \ 153 ${TESTSRCDIR}/tst/common/safety/tst.zonename.d \ 154 ${TESTSRCDIR}/tst/common/sched/tst.enqueue.d \ 155 ${TESTSRCDIR}/tst/common/sched/tst.oncpu.d \ 156 ${TESTSRCDIR}/tst/common/sched/tst.stackdepth.d \ 157 ${TESTSRCDIR}/tst/common/usdt/argmap.d \ 158 ${TESTSRCDIR}/tst/common/usdt/args.d \ 159 ${TESTSRCDIR}/tst/common/usdt/forker.d \ 160 ${TESTSRCDIR}/tst/common/usdt/tst.andpid.ksh \ 161 ${TESTSRCDIR}/tst/common/usdt/tst.argmap.d \ 162 ${TESTSRCDIR}/tst/common/usdt/tst.args.d \ 163 ${TESTSRCDIR}/tst/common/usdt/tst.badguess.ksh \ 164 ${TESTSRCDIR}/tst/common/usdt/tst.dlclose1.ksh \ 165 ${TESTSRCDIR}/tst/common/usdt/tst.dlclose2.ksh \ 166 ${TESTSRCDIR}/tst/common/usdt/tst.dlclose3.ksh \ 167 ${TESTSRCDIR}/tst/common/usdt/tst.eliminate.ksh \ 168 ${TESTSRCDIR}/tst/common/usdt/tst.enabled.ksh \ 169 ${TESTSRCDIR}/tst/common/usdt/tst.entryreturn.ksh \ 170 ${TESTSRCDIR}/tst/common/usdt/tst.fork.ksh \ 171 ${TESTSRCDIR}/tst/common/usdt/tst.forker.ksh \ 172 ${TESTSRCDIR}/tst/common/usdt/tst.guess32.ksh \ 173 ${TESTSRCDIR}/tst/common/usdt/tst.guess64.ksh \ 174 ${TESTSRCDIR}/tst/common/usdt/tst.header.ksh \ 175 ${TESTSRCDIR}/tst/common/usdt/tst.include.ksh \ 176 ${TESTSRCDIR}/tst/common/usdt/tst.linkpriv.ksh \ 177 ${TESTSRCDIR}/tst/common/usdt/tst.linkunpriv.ksh \ 178 ${TESTSRCDIR}/tst/common/usdt/tst.multiple.ksh \ 179 ${TESTSRCDIR}/tst/common/usdt/tst.nodtrace.ksh \ 180 ${TESTSRCDIR}/tst/common/usdt/tst.onlyenabled.ksh \ 181 ${TESTSRCDIR}/tst/common/usdt/tst.reeval.ksh \ 182 ${TESTSRCDIR}/tst/common/usdt/tst.static.ksh \ 183 ${TESTSRCDIR}/tst/common/usdt/tst.static2.ksh \ 184 ${TESTSRCDIR}/tst/common/usdt/tst.user.ksh \ 185 ${TESTSRCDIR}/tst/common/misc/tst.schrock.ksh 186 187# -------------------------------------------------------------------------------- 188# Tests that just don't complete (even to fail) at the moment... 189 190NOTWORK+= \ 191 ${TESTSRCDIR}/tst/common/dtraceUtil/tst.ZeroModuleProbes.d.ksh \ 192 ${TESTSRCDIR}/tst/common/printa/tst.many.d \ 193 ${TESTSRCDIR}/tst/common/scalars/err.D_OP_INCOMPAT.dupgtype.d \ 194 ${TESTSRCDIR}/tst/common/scalars/err.D_OP_INCOMPAT.dupltype.d \ 195 ${TESTSRCDIR}/tst/common/scalars/err.D_OP_INCOMPAT.dupttype.d \ 196 ${TESTSRCDIR}/tst/common/vars/tst.gid.d \ 197 ${TESTSRCDIR}/tst/common/vars/tst.uid.d \ 198 199# -------------------------------------------------------------------------------- 200# Tests that currently hang the system: 201 202NOTWORK+= \ 203 ${TESTSRCDIR}/tst/common/fbtprovider/tst.basic.d \ 204 ${TESTSRCDIR}/tst/common/fbtprovider/tst.return.d \ 205 ${TESTSRCDIR}/tst/common/grammar/tst.stmts.d \ 206 ${TESTSRCDIR}/tst/common/misc/tst.enablerace.ksh \ 207 ${TESTSRCDIR}/tst/common/predicates/tst.predcache.ksh \ 208 ${TESTSRCDIR}/tst/common/proc/tst.exitkilled.ksh \ 209 210.if ${MACHINE_ARCH} == "i386" 211 212NOTWORK+= ${TESTSRCDIR}/tst/common/dtraceUtil/tst.DataModel64.d.ksh 213 214NOTWORK+= ${TESTSRCDIR}/tst/common/dtraceUtil/tst.DataModel64.d.ksh 215 216# -------------------------------------------------------------------------------- 217# This test causes i386 to go kaboom in a big way. There is a problem in the 218# fbt exception code which needs to be fixed. 219 220NOTWORK+= \ 221 ${TESTSRCDIR}/tst/common/fbtprovider/tst.tailcall.d 222 223# Some tests that don't complete on i386.... :-/ 224 225NOTWORK+= ${TESTSRCDIR}/tst/common/funcs/tst.chill.ksh 226NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.create.ksh 227NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.exec.ksh 228NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.execfail.ENOENT.ksh 229NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.execfail.ksh 230NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.exitcore.ksh 231NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.exitexit.ksh 232NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.exitkilled.ksh 233NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.signal.ksh 234NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.sigwait.c 235NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.sigwait.d 236NOTWORK+= ${TESTSRCDIR}/tst/common/proc/tst.startexit.ksh 237NOTWORK+= ${TESTSRCDIR}/tst/common/struct/tst.StructDataTypes.d 238NOTWORK+= ${TESTSRCDIR}/tst/common/union/tst.UnionDataTypes.d 239 240.endif 241 242# -------------------------------------------------------------------------------- 243# Interrupt priority isn't relevant on FreeBSD. 244 245NOTWORK+= ${TESTSRCDIR}/tst/common/builtinvar/tst.ipl.d \ 246 ${TESTSRCDIR}/tst/common/builtinvar/tst.ipl1.d 247 248# -------------------------------------------------------------------------------- 249# These tests relies on the Solaris ping behaviour of exiting after a number of 250# pings. On FreeBSD ping doesn't do that. 251 252NOTWORK+= ${TESTSRCDIR}/tst/common/funcs/tst.system.d \ 253 ${TESTSRCDIR}/tst/common/ip/tst.ipv6remoteicmp.ksh \ 254 ${TESTSRCDIR}/tst/common/ip/tst.ipv6localicmp.ksh \ 255 ${TESTSRCDIR}/tst/common/ip/tst.ipv4localicmp.ksh \ 256 ${TESTSRCDIR}/tst/common/ip/tst.ipv4remoteicmp.ksh 257 258# -------------------------------------------------------------------------------- 259# This test checks for a leading tab on a line before #define. That is illegal 260# on Solaris, but the gcc pre-processor on FreeBSD is happy with code like that. 261 262NOTWORK+= ${TESTSRCDIR}/tst/common/preprocessor/err.D_PRAGCTL_INVAL.tabdefine.d 263 264# -------------------------------------------------------------------------------- 265# This test is coded to use Solaris syscall names. FreeBSD has none with 'lwp" 266# in them, so the test fails because of that. 267 268NOTWORK+= ${TESTSRCDIR}/tst/common/probes/tst.probestar.d 269 270NOTYET= ${IGNORE} ${NOTWORK} 271 272# -------------------------------------------------------------------------------- 273# Only prepare the test lists if we need to: 274 275.if !make(obj) && !make(clean) && !make(cleandir) && !make(listerrors) 276 277# -------------------------------------------------------------------------------- 278# Get a list of tests, named according to the directory they are in: 279 280_COMMONDIRS!= cd ${TESTSRCDIR}/tst/common; find . -depth 1 -type d 281COMMONDIRS= ${_COMMONDIRS:S/.\///} 282 283listtests : 284 @echo ${COMMONDIRS} 285 286# -------------------------------------------------------------------------------- 287# Create a test target for each directory: 288 289ALL_TESTFILES= 290 291# Process each common test directory: 292.for _d in ${COMMONDIRS} 293 294# Get a list of test files in the test directory: 295${_d}_ERR!= find ${TESTSRCDIR}/tst/common/${_d} -name "err.*.d" 296${_d}_TSTD!= find ${TESTSRCDIR}/tst/common/${_d} -name "tst.*.d" 297${_d}_TSTC!= find ${TESTSRCDIR}/tst/common/${_d} -name "tst.*.c" 298${_d}_SHERR!= find ${TESTSRCDIR}/tst/common/${_d} -name "err.*.ksh" 299${_d}_SHTST!= find ${TESTSRCDIR}/tst/common/${_d} -name "tst.*.ksh" 300${_d}_TF= ${${_d}_ERR} ${${_d}_TSTD} ${${_d}_SHERR} ${${_d}_SHTST} 301 302# Go through the list of test files and prepare another list that contains 303# none of the test files listed in the NOTYET list: 304.for _f in ${${_d}_TF} 305.if (${NOTYET:M${_f}} == "") 306${_d}_TFS+= ${_f} 307.endif 308.endfor 309 310# Add the list of tests to the overall test list: 311ALL_TESTFILES+= ${${_d}_TFS} 312 313.for _f in ${${_d}_TSTC} 314.if (${NOTYET:M${_f}} == "") 315${_d}_TFCS+= ${_f} 316.endif 317.endfor 318 319ALL_TESTCFILES+= ${${_d}_TFCS} 320 321${_d} : ${${_d}_TFCS:T:S/c$/exe/} 322 @${DTEST} ${${_d}_TFS} 323.endfor 324 325# -------------------------------------------------------------------------------- 326# 327 328PRGS= ${ALL_TESTCFILES:T:S/c$/exe/} 329 330listprgs : 331 @echo ${PRGS} 332 333# -------------------------------------------------------------------------------- 334# 335 336.for _f in ${ALL_TESTCFILES} 337${_f:T:S/c$/exe/} : ${_f} 338 ${CC} -o ${.TARGET} ${_f} -lrt 339.endfor 340 341listcfiles : 342 @echo ${ALL_TESTCFILES} 343 344# -------------------------------------------------------------------------------- 345# A target to build all tests: 346 347all : ${PRGS} 348 @sync; sync; sync; sync; sync 349 @${DTEST} ${ALL_TESTFILES} 350 351# -------------------------------------------------------------------------------- 352# A target to build the tests flagged as not working yet: 353 354ignore : 355 @${DTEST} ${IGNORE} 356 357.endif 358 359listerrors : 360 @find ${.OBJDIR} -name "*.err" -exec cat {} \; -print 361 362 363# -------------------------------------------------------------------------------- 364# Test failures are written to failure.N directories in the object tree. 365# Get a list of directories in the object tree for 'make clean'. 366 367.if ${.OBJDIR} != ${.CURDIR} && !empty(${.OBJDIR}) 368CLEANDIRS!= cd ${.OBJDIR} && ls -d * 369.endif 370 371# -------------------------------------------------------------------------------- 372# Insist on using an object directory. Things get messy otherwsie. 373 374.if ${.OBJDIR} == ${.CURDIR} && !make(obj) && !make(clean) && !make(cleandir) 375.error ERROR: You must run 'make obj' first! 376.endif 377 378# -------------------------------------------------------------------------------- 379# Load the DTrace module set if necessary. 380 381.BEGIN : 382 @if ! kldstat -q -m dtrace_test; then kldload dtrace_test; fi 383 384.include <bsd.obj.mk> 385 386