xref: /freebsd/lib/libpmc/Makefile (revision 2a6803de1cdbc7e34dfe4dc185a2dd98b9a787fb)
1ebccf1e3SJoseph Koshy# $FreeBSD$
2ebccf1e3SJoseph Koshy
3ebccf1e3SJoseph KoshyLIB=	pmc
4ebccf1e3SJoseph Koshy
5f992dd4bSMatt MacySRCS=	libpmc.c pmclog.c libpmc_pmu_util.c libpmc_json.cc
6f992dd4bSMatt MacyINCS=	pmc.h pmclog.h pmcformat.h
7ebccf1e3SJoseph Koshy
8483955deSEmmanuel VadotCFLAGS+= -I${SRCTOP}/${RELDIR:H}/libpmcstat
9483955deSEmmanuel Vadot
10*2a6803deSAndrew Turner.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_ARCH} == "amd64" || \
11c039e959SEd Maste    ${MACHINE_ARCH} == "i386"
12959826caSMatt Macy
13*2a6803deSAndrew Turner.if ${MACHINE_CPUARCH} == "aarch64"
14959826caSMatt MacyEVENT_ARCH="arm64"
157d1c2b74SMatt Macy.elif ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
16959826caSMatt MacyEVENT_ARCH="x86"
177d1c2b74SMatt Macy.elif ${MACHINE_ARCH} == "powerpc"
18959826caSMatt MacyEVENT_ARCH="powerpc"
19959826caSMatt Macy.endif
20959826caSMatt Macy
21312809feSSimon J. Gerraty.if ${MK_DIRDEPS_BUILD} == "yes"
22312809feSSimon J. Gerraty# avoid circular dependency
23312809feSSimon J. GerratyGENDIRDEPS_FILTER+= N${RELDIR:H}/libpmcstat
24312809feSSimon J. GerratyJEVENTS?= ${HOST_OBJTOP}/${RELDIR}/pmu-events/jevents
25312809feSSimon J. Gerraty.else
26959826caSMatt MacyJEVENTS= ${BTOOLSPATH:U.}/pmu-events/jevents
27312809feSSimon J. Gerraty
28b6b193e9SBryan Drewery# This file is built in a subdirectory so never try to rebuild it here.
29b6b193e9SBryan Drewery${JEVENTS}: .PHONY
30b6b193e9SBryan Drewery.if make(*clean*)
31b6b193e9SBryan DrewerySUBDIR+= pmu-events
32b6b193e9SBryan Drewery.endif
33312809feSSimon J. Gerraty.endif
34959826caSMatt Macy
35a9ea0047SAlex Richardsonlibpmc_events.c: ${JEVENTS} .META
36a9ea0047SAlex Richardson	${JEVENTS} ${EVENT_ARCH} ${.CURDIR}/pmu-events/arch ${.TARGET}.tmp
37a9ea0047SAlex Richardson	if [ ! -e ${.TARGET} ] || ! cmp -s ${.TARGET} ${.TARGET}.tmp; then \
38a9ea0047SAlex Richardson		mv -f ${.TARGET}.tmp ${.TARGET}; \
39a9ea0047SAlex Richardson	fi
40a9ea0047SAlex RichardsonCLEANFILES+=	libpmc_events.c libpmc_events.c.tmp
41959826caSMatt MacySRCS+=	libpmc_events.c
42959826caSMatt Macy.endif
43959826caSMatt Macy
44b3d01a2aSEnji CooperWARNS?=	3
45b3d01a2aSEnji Cooper
46b3d01a2aSEnji CooperCFLAGS+= -I${.CURDIR}
47b3d01a2aSEnji CooperCWARNFLAGS.gcc+= -Wno-shadow -Wno-cast-align
48b3d01a2aSEnji Cooper
492c3f47a7SDimitry Andric# Silence warnings about usage of deprecated std::auto_ptr
502c3f47a7SDimitry AndricCXXWARNFLAGS+=	-Wno-deprecated-declarations
512c3f47a7SDimitry Andric
52f28834c1SJoseph KoshyMAN=	pmc.3
53f28834c1SJoseph KoshyMAN+=	pmc_allocate.3
54677d4530SJoseph KoshyMAN+=	pmc_attach.3
55677d4530SJoseph KoshyMAN+=	pmc_capabilities.3
56f28834c1SJoseph KoshyMAN+=	pmc_configure_logfile.3
57f28834c1SJoseph KoshyMAN+=	pmc_disable.3
58f28834c1SJoseph KoshyMAN+=	pmc_event_names_of_class.3
59677d4530SJoseph KoshyMAN+=	pmc_get_driver_stats.3
60677d4530SJoseph KoshyMAN+=	pmc_get_msr.3
61f28834c1SJoseph KoshyMAN+=	pmc_init.3
62677d4530SJoseph KoshyMAN+=	pmc_name_of_capability.3
63677d4530SJoseph KoshyMAN+=	pmc_read.3
64677d4530SJoseph KoshyMAN+=	pmc_set.3
65677d4530SJoseph KoshyMAN+=	pmc_start.3
66115cadfdSJoseph KoshyMAN+=	pmclog.3
67f5f9340bSFabien ThomasMAN+=	pmc.soft.3
68ebccf1e3SJoseph Koshy
69d41debcaSJoseph Koshy# PMC-dependent manual pages
707042d3b9SJoseph KoshyMAN+=	pmc.atom.3
71e8f021a3SHiren PanchasaraMAN+=	pmc.atomsilvermont.3
727042d3b9SJoseph KoshyMAN+=	pmc.core.3
737042d3b9SJoseph KoshyMAN+=	pmc.core2.3
744bbdf747SUlrich SpörleinMAN+=	pmc.corei7.3
754bbdf747SUlrich SpörleinMAN+=	pmc.corei7uc.3
76cc0c1555SSean BrunoMAN+=	pmc.haswell.3
77cc0c1555SSean BrunoMAN+=	pmc.haswelluc.3
78aa5f0024SEdward Tomasz NapieralaMAN+=	pmc.haswellxeon.3
797042d3b9SJoseph KoshyMAN+=	pmc.iaf.3
801e862e5aSFabien ThomasMAN+=	pmc.ivybridge.3
813f929d8cSSean BrunoMAN+=	pmc.ivybridgexeon.3
82d41debcaSJoseph KoshyMAN+=	pmc.k7.3
83d41debcaSJoseph KoshyMAN+=	pmc.k8.3
844bbdf747SUlrich SpörleinMAN+=	pmc.mips24k.3
854bbdf747SUlrich SpörleinMAN+=	pmc.octeon.3
86d41debcaSJoseph KoshyMAN+=	pmc.p4.3
87d41debcaSJoseph KoshyMAN+=	pmc.p5.3
88d41debcaSJoseph KoshyMAN+=	pmc.p6.3
8978d763a2SDavide ItalianoMAN+=	pmc.sandybridge.3
9078d763a2SDavide ItalianoMAN+=	pmc.sandybridgeuc.3
91fabe02f5SSean BrunoMAN+=	pmc.sandybridgexeon.3
924bbdf747SUlrich SpörleinMAN+=	pmc.tsc.3
934bbdf747SUlrich SpörleinMAN+=	pmc.ucf.3
941fa7f10bSFabien ThomasMAN+=	pmc.westmere.3
951fa7f10bSFabien ThomasMAN+=	pmc.westmereuc.3
96c81b12e0SWarner LoshMAN+=	pmc.xscale.3
97d41debcaSJoseph Koshy
98ebccf1e3SJoseph KoshyMLINKS+= \
998fe4cbb6SJoseph Koshy	pmc_allocate.3 pmc_release.3 \
100677d4530SJoseph Koshy	pmc_attach.3 pmc_detach.3 \
101677d4530SJoseph Koshy	pmc_capabilities.3 pmc_ncpu.3 \
102677d4530SJoseph Koshy	pmc_capabilities.3 pmc_npmc.3 \
103677d4530SJoseph Koshy	pmc_capabilities.3 pmc_pmcinfo.3 \
104677d4530SJoseph Koshy	pmc_capabilities.3 pmc_cpuinfo.3 \
105677d4530SJoseph Koshy	pmc_capabilities.3 pmc_width.3 \
106f28834c1SJoseph Koshy	pmc_configure_logfile.3 pmc_flush_logfile.3 \
107f28834c1SJoseph Koshy	pmc_configure_logfile.3 pmc_writelog.3 \
1081ddf079eSJoseph Koshy	pmc_disable.3 pmc_enable.3 \
109fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_class.3 \
110fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_cputype.3 \
111fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_disposition.3 \
112fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_event.3 \
113fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_mode.3 \
114fcdeaa05SJoseph Koshy	pmc_name_of_capability.3 pmc_name_of_state.3 \
115677d4530SJoseph Koshy	pmc_read.3 pmc_rw.3 \
116677d4530SJoseph Koshy	pmc_read.3 pmc_write.3 \
117677d4530SJoseph Koshy	pmc_start.3 pmc_stop.3
118ebccf1e3SJoseph Koshy
119f263522aSJoseph KoshyMLINKS+= \
120f263522aSJoseph Koshy	pmclog.3 pmclog_open.3 \
121f263522aSJoseph Koshy	pmclog.3 pmclog_close.3 \
122f263522aSJoseph Koshy	pmclog.3 pmclog_feed.3 \
123f263522aSJoseph Koshy	pmclog.3 pmclog_read.3
124f263522aSJoseph Koshy
125ebccf1e3SJoseph Koshy.include <bsd.lib.mk>
126