]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libpmc/Makefile
MFV: xz 5.4.4.
[FreeBSD/FreeBSD.git] / lib / libpmc / Makefile
1 # $FreeBSD$
2
3 LIB_CXX= pmc
4
5 SRCS=   libpmc.c pmclog.c libpmc_pmu_util.c libpmc_json.cc
6 INCS=   pmc.h pmclog.h pmcformat.h
7
8 CFLAGS+= -I${SRCTOP}/${RELDIR:H}/libpmcstat
9
10 .if ${MACHINE_CPUARCH} == "aarch64"
11 EVENT_ARCH="arm64"
12 .elif ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
13 EVENT_ARCH="x86"
14 .elif ${MACHINE_CPUARCH} == "powerpc" && ${MACHINE_ARCH:Mpowerpc64*} != ""
15 EVENT_ARCH="powerpc"
16 .else
17 # This will generate an empty events table
18 EVENT_ARCH="none"
19 .endif
20
21 .if ${MK_DIRDEPS_BUILD} == "yes"
22 # avoid circular dependency
23 GENDIRDEPS_FILTER+= N${RELDIR:H}/libpmcstat
24 JEVENTS?= ${HOST_OBJTOP}/${RELDIR}/pmu-events/jevents
25 .else
26 JEVENTS= ${BTOOLSPATH:U.}/pmu-events/jevents
27
28 # This file is built in a subdirectory so never try to rebuild it here.
29 ${JEVENTS}: .PHONY
30 .if make(*clean*)
31 SUBDIR+= pmu-events
32 .endif
33 .endif
34
35 libpmc_events.c: ${JEVENTS} .META
36         ${JEVENTS} ${EVENT_ARCH} ${.CURDIR}/pmu-events/arch ${.TARGET}.tmp
37         if [ ! -e ${.TARGET} ] || ! cmp -s ${.TARGET} ${.TARGET}.tmp; then \
38                 mv -f ${.TARGET}.tmp ${.TARGET}; \
39         fi
40 CLEANFILES+=    libpmc_events.c libpmc_events.c.tmp
41 SRCS+=  libpmc_events.c
42
43 WARNS?= 3
44
45 CFLAGS+= -I${.CURDIR} -I${SRCTOP}/sys
46 CWARNFLAGS.gcc+= -Wno-shadow -Wno-cast-align
47
48 MAN=    pmc.3
49 MAN+=   pmc_allocate.3
50 MAN+=   pmc_attach.3
51 MAN+=   pmc_capabilities.3
52 MAN+=   pmc_configure_logfile.3
53 MAN+=   pmc_disable.3
54 MAN+=   pmc_event_names_of_class.3
55 MAN+=   pmc_get_driver_stats.3
56 MAN+=   pmc_get_msr.3
57 MAN+=   pmc_init.3
58 MAN+=   pmc_name_of_capability.3
59 MAN+=   pmc_read.3
60 MAN+=   pmc_set.3
61 MAN+=   pmc_start.3
62 MAN+=   pmclog.3
63 MAN+=   pmc.soft.3
64
65 # PMC-dependent manual pages
66 MAN+=   pmc.atom.3
67 MAN+=   pmc.atomsilvermont.3
68 MAN+=   pmc.cmn-600.3
69 MAN+=   pmc.core.3
70 MAN+=   pmc.core2.3
71 MAN+=   pmc.corei7.3
72 MAN+=   pmc.corei7uc.3
73 MAN+=   pmc.dmc-620.3
74 MAN+=   pmc.haswell.3
75 MAN+=   pmc.haswelluc.3
76 MAN+=   pmc.haswellxeon.3
77 MAN+=   pmc.iaf.3
78 MAN+=   pmc.ivybridge.3
79 MAN+=   pmc.ivybridgexeon.3
80 MAN+=   pmc.k7.3
81 MAN+=   pmc.k8.3
82 MAN+=   pmc.sandybridge.3
83 MAN+=   pmc.sandybridgeuc.3
84 MAN+=   pmc.sandybridgexeon.3
85 MAN+=   pmc.tsc.3
86 MAN+=   pmc.ucf.3
87 MAN+=   pmc.westmere.3
88 MAN+=   pmc.westmereuc.3
89
90 MLINKS+= \
91         pmc_allocate.3 pmc_release.3 \
92         pmc_attach.3 pmc_detach.3 \
93         pmc_capabilities.3 pmc_ncpu.3 \
94         pmc_capabilities.3 pmc_npmc.3 \
95         pmc_capabilities.3 pmc_pmcinfo.3 \
96         pmc_capabilities.3 pmc_cpuinfo.3 \
97         pmc_capabilities.3 pmc_width.3 \
98         pmc_configure_logfile.3 pmc_flush_logfile.3 \
99         pmc_configure_logfile.3 pmc_writelog.3 \
100         pmc_disable.3 pmc_enable.3 \
101         pmc_name_of_capability.3 pmc_name_of_class.3 \
102         pmc_name_of_capability.3 pmc_name_of_cputype.3 \
103         pmc_name_of_capability.3 pmc_name_of_disposition.3 \
104         pmc_name_of_capability.3 pmc_name_of_event.3 \
105         pmc_name_of_capability.3 pmc_name_of_mode.3 \
106         pmc_name_of_capability.3 pmc_name_of_state.3 \
107         pmc_read.3 pmc_rw.3 \
108         pmc_read.3 pmc_write.3 \
109         pmc_start.3 pmc_stop.3
110
111 MLINKS+= \
112         pmclog.3 pmclog_open.3 \
113         pmclog.3 pmclog_close.3 \
114         pmclog.3 pmclog_feed.3 \
115         pmclog.3 pmclog_read.3
116
117 .include <bsd.lib.mk>