svn commit: r212424 - head/share/mk

Rui Paulo rpaulo at FreeBSD.org
Fri Sep 10 16:27:10 UTC 2010


Author: rpaulo
Date: Fri Sep 10 16:27:09 2010
New Revision: 212424
URL: http://svn.freebsd.org/changeset/base/212424

Log:
  Add bsd.dtrace.mk. This allows userland programs and libraries to
  define USDT probes on a provider.d file and then use this new make
  infrastructure to build the corresponding header file and object file.
  
  This will only take effect when the user defines WITH_DTRACE when building.
  
  Sponsored by:	The FreeBSD Foundation

Added:
  head/share/mk/bsd.dtrace.mk   (contents, props changed)
Modified:
  head/share/mk/Makefile

Modified: head/share/mk/Makefile
==============================================================================
--- head/share/mk/Makefile	Fri Sep 10 16:21:09 2010	(r212423)
+++ head/share/mk/Makefile	Fri Sep 10 16:27:09 2010	(r212424)
@@ -3,7 +3,8 @@
 
 FILES=	bsd.README
 FILES+=	bsd.arch.inc.mk
-FILES+=	bsd.compat.mk bsd.cpu.mk bsd.dep.mk bsd.doc.mk bsd.endian.mk
+FILES+=	bsd.compat.mk bsd.cpu.mk bsd.dep.mk bsd.doc.mk bsd.dtrace.mk
+FILES+=	bsd.endian.mk
 FILES+=	bsd.files.mk bsd.incs.mk bsd.info.mk bsd.init.mk
 FILES+=	bsd.kmod.mk
 FILES+=	bsd.lib.mk bsd.libnames.mk bsd.links.mk bsd.man.mk bsd.nls.mk

Added: head/share/mk/bsd.dtrace.mk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/share/mk/bsd.dtrace.mk	Fri Sep 10 16:27:09 2010	(r212424)
@@ -0,0 +1,55 @@
+# $FreeBSD$
+#
+# Copyright (c) 2010 The FreeBSD Foundation 
+# All rights reserved. 
+# 
+# This software was developed by Rui Paulo under sponsorship from the
+# FreeBSD Foundation. 
+#  
+# Redistribution and use in source and binary forms, with or without 
+# modification, are permitted provided that the following conditions 
+# are met: 
+# 1. Redistributions of source code must retain the above copyright 
+#    notice, this list of conditions and the following disclaimer. 
+# 2. Redistributions in binary form must reproduce the above copyright 
+#    notice, this list of conditions and the following disclaimer in the 
+#    documentation and/or other materials provided with the distribution. 
+# 
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
+# SUCH DAMAGE. 
+# 
+#
+# The only variable that you should define on your Makefile is 'DTRACEOBJS'.
+#
+
+.if defined(WITH_DTRACE)
+
+CFLAGS+=-DWITH_DTRACE
+DTRACEHEADERS=${DTRACEOBJS:S/o$/h/}
+DTRACESRCS=${DTRACEOBJS:S/o$/d/}
+CLEANFILES+=${DTRACEOBJS} ${DTRACEHEADERS}
+.if defined(PROG)
+_DTRACELINKING:=${OBJS}
+OBJS+=${DTRACEOBJS}
+.else
+_DTRACELINKING:=${SOBJS}
+SOBJS+=${DTRACEOBJS}
+.endif
+DPADD+=${LIBELF}
+LDADD+=-lelf
+
+beforedepend:
+	${DTRACE} -C -h -s ${DTRACESRCS}
+beforelinking:
+	${DTRACE} -G -s ${DTRACESRCS} ${_DTRACELINKING}
+
+.endif


More information about the svn-src-head mailing list