1c6b3f47fSJohn BaldwinLIB_CXX= pmc 2ebccf1e3SJoseph Koshy 3f992dd4bSMatt MacySRCS= libpmc.c pmclog.c libpmc_pmu_util.c libpmc_json.cc 4f992dd4bSMatt MacyINCS= pmc.h pmclog.h pmcformat.h 5ebccf1e3SJoseph Koshy 6483955deSEmmanuel VadotCFLAGS+= -I${SRCTOP}/${RELDIR:H}/libpmcstat 7483955deSEmmanuel Vadot 82a6803deSAndrew Turner.if ${MACHINE_CPUARCH} == "aarch64" 9959826caSMatt MacyEVENT_ARCH="arm64" 103864da30SMitchell Horne.elif ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" 11959826caSMatt MacyEVENT_ARCH="x86" 12507d6898SMitchell Horne.elif ${MACHINE_CPUARCH} == "powerpc" && ${MACHINE_ARCH:Mpowerpc64*} != "" 13959826caSMatt MacyEVENT_ARCH="powerpc" 14689c7e79SMitchell Horne.else 15689c7e79SMitchell Horne# This will generate an empty events table 16689c7e79SMitchell HorneEVENT_ARCH="none" 17959826caSMatt Macy.endif 18959826caSMatt Macy 19312809feSSimon J. Gerraty.if ${MK_DIRDEPS_BUILD} == "yes" 20312809feSSimon J. Gerraty# avoid circular dependency 21312809feSSimon J. GerratyGENDIRDEPS_FILTER+= N${RELDIR:H}/libpmcstat 22312809feSSimon J. GerratyJEVENTS?= ${HOST_OBJTOP}/${RELDIR}/pmu-events/jevents 23312809feSSimon J. Gerraty.else 24959826caSMatt MacyJEVENTS= ${BTOOLSPATH:U.}/pmu-events/jevents 25312809feSSimon J. Gerraty 26b6b193e9SBryan Drewery# This file is built in a subdirectory so never try to rebuild it here. 27b6b193e9SBryan Drewery${JEVENTS}: .PHONY 28b6b193e9SBryan Drewery.if make(*clean*) 29b6b193e9SBryan DrewerySUBDIR+= pmu-events 30b6b193e9SBryan Drewery.endif 31312809feSSimon J. Gerraty.endif 32959826caSMatt Macy 33a9ea0047SAlex Richardsonlibpmc_events.c: ${JEVENTS} .META 34a9ea0047SAlex Richardson ${JEVENTS} ${EVENT_ARCH} ${.CURDIR}/pmu-events/arch ${.TARGET}.tmp 35a9ea0047SAlex Richardson if [ ! -e ${.TARGET} ] || ! cmp -s ${.TARGET} ${.TARGET}.tmp; then \ 36a9ea0047SAlex Richardson mv -f ${.TARGET}.tmp ${.TARGET}; \ 37a9ea0047SAlex Richardson fi 38a9ea0047SAlex RichardsonCLEANFILES+= libpmc_events.c libpmc_events.c.tmp 39959826caSMatt MacySRCS+= libpmc_events.c 40959826caSMatt Macy 41b3d01a2aSEnji CooperWARNS?= 3 42b3d01a2aSEnji Cooper 431f567956SToomas SoomeCFLAGS+= -I${.CURDIR} -I${SRCTOP}/sys 44b3d01a2aSEnji CooperCWARNFLAGS.gcc+= -Wno-shadow -Wno-cast-align 45b3d01a2aSEnji Cooper 46f28834c1SJoseph KoshyMAN= pmc.3 47f28834c1SJoseph KoshyMAN+= pmc_allocate.3 48677d4530SJoseph KoshyMAN+= pmc_attach.3 49677d4530SJoseph KoshyMAN+= pmc_capabilities.3 50f28834c1SJoseph KoshyMAN+= pmc_configure_logfile.3 51f28834c1SJoseph KoshyMAN+= pmc_disable.3 52f28834c1SJoseph KoshyMAN+= pmc_event_names_of_class.3 53677d4530SJoseph KoshyMAN+= pmc_get_driver_stats.3 54677d4530SJoseph KoshyMAN+= pmc_get_msr.3 55f28834c1SJoseph KoshyMAN+= pmc_init.3 56677d4530SJoseph KoshyMAN+= pmc_name_of_capability.3 57677d4530SJoseph KoshyMAN+= pmc_read.3 58677d4530SJoseph KoshyMAN+= pmc_set.3 59677d4530SJoseph KoshyMAN+= pmc_start.3 60115cadfdSJoseph KoshyMAN+= pmclog.3 61f5f9340bSFabien ThomasMAN+= pmc.soft.3 62ebccf1e3SJoseph Koshy 63d41debcaSJoseph Koshy# PMC-dependent manual pages 64*b2934971SMitchell HorneMAN+= pmc.amd.3 657042d3b9SJoseph KoshyMAN+= pmc.atom.3 66e8f021a3SHiren PanchasaraMAN+= pmc.atomsilvermont.3 67da4e1e31SAleksandr RybalkoMAN+= pmc.cmn-600.3 687042d3b9SJoseph KoshyMAN+= pmc.core.3 697042d3b9SJoseph KoshyMAN+= pmc.core2.3 704bbdf747SUlrich SpörleinMAN+= pmc.corei7.3 714bbdf747SUlrich SpörleinMAN+= pmc.corei7uc.3 72cedbdaf0SAleksandr RybalkoMAN+= pmc.dmc-620.3 73cc0c1555SSean BrunoMAN+= pmc.haswell.3 74cc0c1555SSean BrunoMAN+= pmc.haswelluc.3 75aa5f0024SEdward Tomasz NapieralaMAN+= pmc.haswellxeon.3 767042d3b9SJoseph KoshyMAN+= pmc.iaf.3 771e862e5aSFabien ThomasMAN+= pmc.ivybridge.3 783f929d8cSSean BrunoMAN+= pmc.ivybridgexeon.3 7978d763a2SDavide ItalianoMAN+= pmc.sandybridge.3 8078d763a2SDavide ItalianoMAN+= pmc.sandybridgeuc.3 81fabe02f5SSean BrunoMAN+= pmc.sandybridgexeon.3 824bbdf747SUlrich SpörleinMAN+= pmc.tsc.3 834bbdf747SUlrich SpörleinMAN+= pmc.ucf.3 841fa7f10bSFabien ThomasMAN+= pmc.westmere.3 851fa7f10bSFabien ThomasMAN+= pmc.westmereuc.3 86d41debcaSJoseph Koshy 87ebccf1e3SJoseph KoshyMLINKS+= \ 888fe4cbb6SJoseph Koshy pmc_allocate.3 pmc_release.3 \ 89677d4530SJoseph Koshy pmc_attach.3 pmc_detach.3 \ 90677d4530SJoseph Koshy pmc_capabilities.3 pmc_ncpu.3 \ 91677d4530SJoseph Koshy pmc_capabilities.3 pmc_npmc.3 \ 92677d4530SJoseph Koshy pmc_capabilities.3 pmc_pmcinfo.3 \ 93677d4530SJoseph Koshy pmc_capabilities.3 pmc_cpuinfo.3 \ 94677d4530SJoseph Koshy pmc_capabilities.3 pmc_width.3 \ 95f28834c1SJoseph Koshy pmc_configure_logfile.3 pmc_flush_logfile.3 \ 96f28834c1SJoseph Koshy pmc_configure_logfile.3 pmc_writelog.3 \ 971ddf079eSJoseph Koshy pmc_disable.3 pmc_enable.3 \ 98fcdeaa05SJoseph Koshy pmc_name_of_capability.3 pmc_name_of_class.3 \ 99fcdeaa05SJoseph Koshy pmc_name_of_capability.3 pmc_name_of_cputype.3 \ 100fcdeaa05SJoseph Koshy pmc_name_of_capability.3 pmc_name_of_disposition.3 \ 101fcdeaa05SJoseph Koshy pmc_name_of_capability.3 pmc_name_of_event.3 \ 102fcdeaa05SJoseph Koshy pmc_name_of_capability.3 pmc_name_of_mode.3 \ 103fcdeaa05SJoseph Koshy pmc_name_of_capability.3 pmc_name_of_state.3 \ 104677d4530SJoseph Koshy pmc_read.3 pmc_rw.3 \ 105677d4530SJoseph Koshy pmc_read.3 pmc_write.3 \ 106677d4530SJoseph Koshy pmc_start.3 pmc_stop.3 107ebccf1e3SJoseph Koshy 108f263522aSJoseph KoshyMLINKS+= \ 109f263522aSJoseph Koshy pmclog.3 pmclog_open.3 \ 110f263522aSJoseph Koshy pmclog.3 pmclog_close.3 \ 111f263522aSJoseph Koshy pmclog.3 pmclog_feed.3 \ 112f263522aSJoseph Koshy pmclog.3 pmclog_read.3 113f263522aSJoseph Koshy 114*b2934971SMitchell Horne# Class aliases 115*b2934971SMitchell HorneMLINKS+= \ 116*b2934971SMitchell Horne pmc.amd.3 pmc.k8.3 117*b2934971SMitchell Horne 118ebccf1e3SJoseph Koshy.include <bsd.lib.mk> 119