xref: /freebsd/lib/libpmc/Makefile (revision b293497146fea63d76a1c7492c3a21e4e5bf8f48)
1ebccf1e3SJoseph Koshy
2c6b3f47fSJohn BaldwinLIB_CXX= pmc
3ebccf1e3SJoseph Koshy
4f992dd4bSMatt MacySRCS=	libpmc.c pmclog.c libpmc_pmu_util.c libpmc_json.cc
5f992dd4bSMatt MacyINCS=	pmc.h pmclog.h pmcformat.h
6ebccf1e3SJoseph Koshy
7483955deSEmmanuel VadotCFLAGS+= -I${SRCTOP}/${RELDIR:H}/libpmcstat
8483955deSEmmanuel Vadot
92a6803deSAndrew Turner.if ${MACHINE_CPUARCH} == "aarch64"
10959826caSMatt MacyEVENT_ARCH="arm64"
113864da30SMitchell Horne.elif ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
12959826caSMatt MacyEVENT_ARCH="x86"
13507d6898SMitchell Horne.elif ${MACHINE_CPUARCH} == "powerpc" && ${MACHINE_ARCH:Mpowerpc64*} != ""
14959826caSMatt MacyEVENT_ARCH="powerpc"
15689c7e79SMitchell Horne.else
16689c7e79SMitchell Horne# This will generate an empty events table
17689c7e79SMitchell HorneEVENT_ARCH="none"
18959826caSMatt Macy.endif
19959826caSMatt Macy
20312809feSSimon J. Gerraty.if ${MK_DIRDEPS_BUILD} == "yes"
21312809feSSimon J. Gerraty# avoid circular dependency
22312809feSSimon J. GerratyGENDIRDEPS_FILTER+= N${RELDIR:H}/libpmcstat
23312809feSSimon J. GerratyJEVENTS?= ${HOST_OBJTOP}/${RELDIR}/pmu-events/jevents
24312809feSSimon J. Gerraty.else
25959826caSMatt MacyJEVENTS= ${BTOOLSPATH:U.}/pmu-events/jevents
26312809feSSimon J. Gerraty
27b6b193e9SBryan Drewery# This file is built in a subdirectory so never try to rebuild it here.
28b6b193e9SBryan Drewery${JEVENTS}: .PHONY
29b6b193e9SBryan Drewery.if make(*clean*)
30b6b193e9SBryan DrewerySUBDIR+= pmu-events
31b6b193e9SBryan Drewery.endif
32312809feSSimon J. Gerraty.endif
33959826caSMatt Macy
34a9ea0047SAlex Richardsonlibpmc_events.c: ${JEVENTS} .META
35a9ea0047SAlex Richardson	${JEVENTS} ${EVENT_ARCH} ${.CURDIR}/pmu-events/arch ${.TARGET}.tmp
36a9ea0047SAlex Richardson	if [ ! -e ${.TARGET} ] || ! cmp -s ${.TARGET} ${.TARGET}.tmp; then \
37a9ea0047SAlex Richardson		mv -f ${.TARGET}.tmp ${.TARGET}; \
38a9ea0047SAlex Richardson	fi
39a9ea0047SAlex RichardsonCLEANFILES+=	libpmc_events.c libpmc_events.c.tmp
40959826caSMatt MacySRCS+=	libpmc_events.c
41959826caSMatt Macy
42b3d01a2aSEnji CooperWARNS?=	3
43b3d01a2aSEnji Cooper
441f567956SToomas SoomeCFLAGS+= -I${.CURDIR} -I${SRCTOP}/sys
45b3d01a2aSEnji CooperCWARNFLAGS.gcc+= -Wno-shadow -Wno-cast-align
46b3d01a2aSEnji Cooper
47f28834c1SJoseph KoshyMAN=	pmc.3
48f28834c1SJoseph KoshyMAN+=	pmc_allocate.3
49677d4530SJoseph KoshyMAN+=	pmc_attach.3
50677d4530SJoseph KoshyMAN+=	pmc_capabilities.3
51f28834c1SJoseph KoshyMAN+=	pmc_configure_logfile.3
52f28834c1SJoseph KoshyMAN+=	pmc_disable.3
53f28834c1SJoseph KoshyMAN+=	pmc_event_names_of_class.3
54677d4530SJoseph KoshyMAN+=	pmc_get_driver_stats.3
55677d4530SJoseph KoshyMAN+=	pmc_get_msr.3
56f28834c1SJoseph KoshyMAN+=	pmc_init.3
57677d4530SJoseph KoshyMAN+=	pmc_name_of_capability.3
58677d4530SJoseph KoshyMAN+=	pmc_read.3
59677d4530SJoseph KoshyMAN+=	pmc_set.3
60677d4530SJoseph KoshyMAN+=	pmc_start.3
61115cadfdSJoseph KoshyMAN+=	pmclog.3
62f5f9340bSFabien ThomasMAN+=	pmc.soft.3
63ebccf1e3SJoseph Koshy
64d41debcaSJoseph Koshy# PMC-dependent manual pages
65*b2934971SMitchell HorneMAN+=	pmc.amd.3
667042d3b9SJoseph KoshyMAN+=	pmc.atom.3
67e8f021a3SHiren PanchasaraMAN+=	pmc.atomsilvermont.3
68da4e1e31SAleksandr RybalkoMAN+=	pmc.cmn-600.3
697042d3b9SJoseph KoshyMAN+=	pmc.core.3
707042d3b9SJoseph KoshyMAN+=	pmc.core2.3
714bbdf747SUlrich SpörleinMAN+=	pmc.corei7.3
724bbdf747SUlrich SpörleinMAN+=	pmc.corei7uc.3
73cedbdaf0SAleksandr RybalkoMAN+=	pmc.dmc-620.3
74cc0c1555SSean BrunoMAN+=	pmc.haswell.3
75cc0c1555SSean BrunoMAN+=	pmc.haswelluc.3
76aa5f0024SEdward Tomasz NapieralaMAN+=	pmc.haswellxeon.3
777042d3b9SJoseph KoshyMAN+=	pmc.iaf.3
781e862e5aSFabien ThomasMAN+=	pmc.ivybridge.3
793f929d8cSSean BrunoMAN+=	pmc.ivybridgexeon.3
8078d763a2SDavide ItalianoMAN+=	pmc.sandybridge.3
8178d763a2SDavide ItalianoMAN+=	pmc.sandybridgeuc.3
82fabe02f5SSean BrunoMAN+=	pmc.sandybridgexeon.3
834bbdf747SUlrich SpörleinMAN+=	pmc.tsc.3
844bbdf747SUlrich SpörleinMAN+=	pmc.ucf.3
851fa7f10bSFabien ThomasMAN+=	pmc.westmere.3
861fa7f10bSFabien ThomasMAN+=	pmc.westmereuc.3
87d41debcaSJoseph Koshy
88ebccf1e3SJoseph KoshyMLINKS+= \
898fe4cbb6SJoseph Koshy	pmc_allocate.3 pmc_release.3 \
90677d4530SJoseph Koshy	pmc_attach.3 pmc_detach.3 \
91677d4530SJoseph Koshy	pmc_capabilities.3 pmc_ncpu.3 \
92677d4530SJoseph Koshy	pmc_capabilities.3 pmc_npmc.3 \
93677d4530SJoseph Koshy	pmc_capabilities.3 pmc_pmcinfo.3 \
94677d4530SJoseph Koshy	pmc_capabilities.3 pmc_cpuinfo.3 \
95677d4530SJoseph Koshy	pmc_capabilities.3 pmc_width.3 \
96f28834c1SJoseph Koshy	pmc_configure_logfile.3 pmc_flush_logfile.3 \
97f28834c1SJoseph Koshy	pmc_configure_logfile.3 pmc_writelog.3 \
981ddf079eSJoseph Koshy	pmc_disable.3 pmc_enable.3 \
99fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_class.3 \
100fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_cputype.3 \
101fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_disposition.3 \
102fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_event.3 \
103fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_mode.3 \
104fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_state.3 \
105677d4530SJoseph Koshy	pmc_read.3 pmc_rw.3 \
106677d4530SJoseph Koshy	pmc_read.3 pmc_write.3 \
107677d4530SJoseph Koshy	pmc_start.3 pmc_stop.3
108ebccf1e3SJoseph Koshy
109f263522aSJoseph KoshyMLINKS+= \
110f263522aSJoseph Koshy	pmclog.3 pmclog_open.3 \
111f263522aSJoseph Koshy	pmclog.3 pmclog_close.3 \
112f263522aSJoseph Koshy	pmclog.3 pmclog_feed.3 \
113f263522aSJoseph Koshy	pmclog.3 pmclog_read.3
114f263522aSJoseph Koshy
115*b2934971SMitchell Horne# Class aliases
116*b2934971SMitchell HorneMLINKS+= \
117*b2934971SMitchell Horne	pmc.amd.3 pmc.k8.3
118*b2934971SMitchell Horne
119ebccf1e3SJoseph Koshy.include <bsd.lib.mk>
120