]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libpmc/Makefile
patch(1): Fix a few mandoc related issues
[FreeBSD/FreeBSD.git] / lib / libpmc / Makefile
1 # $FreeBSD$
2
3 LIB=    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" || ${MACHINE_ARCH} == "amd64" || \
11     ${MACHINE_ARCH} == "i386"
12
13 .if ${MACHINE_CPUARCH} == "aarch64"
14 EVENT_ARCH="arm64"
15 .elif ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
16 EVENT_ARCH="x86"
17 .elif ${MACHINE_ARCH} == "powerpc"
18 EVENT_ARCH="powerpc"
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 .endif
43
44 WARNS?= 3
45
46 CFLAGS+= -I${.CURDIR}
47 CWARNFLAGS.gcc+= -Wno-shadow -Wno-cast-align
48
49 # Silence warnings about usage of deprecated std::auto_ptr
50 CXXWARNFLAGS+=  -Wno-deprecated-declarations
51
52 MAN=    pmc.3
53 MAN+=   pmc_allocate.3
54 MAN+=   pmc_attach.3
55 MAN+=   pmc_capabilities.3
56 MAN+=   pmc_configure_logfile.3
57 MAN+=   pmc_disable.3
58 MAN+=   pmc_event_names_of_class.3
59 MAN+=   pmc_get_driver_stats.3
60 MAN+=   pmc_get_msr.3
61 MAN+=   pmc_init.3
62 MAN+=   pmc_name_of_capability.3
63 MAN+=   pmc_read.3
64 MAN+=   pmc_set.3
65 MAN+=   pmc_start.3
66 MAN+=   pmclog.3
67 MAN+=   pmc.soft.3
68
69 # PMC-dependent manual pages
70 MAN+=   pmc.atom.3
71 MAN+=   pmc.atomsilvermont.3
72 MAN+=   pmc.core.3
73 MAN+=   pmc.core2.3
74 MAN+=   pmc.corei7.3
75 MAN+=   pmc.corei7uc.3
76 MAN+=   pmc.haswell.3
77 MAN+=   pmc.haswelluc.3
78 MAN+=   pmc.haswellxeon.3
79 MAN+=   pmc.iaf.3
80 MAN+=   pmc.ivybridge.3
81 MAN+=   pmc.ivybridgexeon.3
82 MAN+=   pmc.k7.3
83 MAN+=   pmc.k8.3
84 MAN+=   pmc.mips24k.3
85 MAN+=   pmc.octeon.3
86 MAN+=   pmc.p4.3
87 MAN+=   pmc.p5.3
88 MAN+=   pmc.p6.3
89 MAN+=   pmc.sandybridge.3
90 MAN+=   pmc.sandybridgeuc.3
91 MAN+=   pmc.sandybridgexeon.3
92 MAN+=   pmc.tsc.3
93 MAN+=   pmc.ucf.3
94 MAN+=   pmc.westmere.3
95 MAN+=   pmc.westmereuc.3
96 MAN+=   pmc.xscale.3
97
98 MLINKS+= \
99         pmc_allocate.3 pmc_release.3 \
100         pmc_attach.3 pmc_detach.3 \
101         pmc_capabilities.3 pmc_ncpu.3 \
102         pmc_capabilities.3 pmc_npmc.3 \
103         pmc_capabilities.3 pmc_pmcinfo.3 \
104         pmc_capabilities.3 pmc_cpuinfo.3 \
105         pmc_capabilities.3 pmc_width.3 \
106         pmc_configure_logfile.3 pmc_flush_logfile.3 \
107         pmc_configure_logfile.3 pmc_writelog.3 \
108         pmc_disable.3 pmc_enable.3 \
109         pmc_name_of_capability.3 pmc_name_of_class.3 \
110         pmc_name_of_capability.3 pmc_name_of_cputype.3 \
111         pmc_name_of_capability.3 pmc_name_of_disposition.3 \
112         pmc_name_of_capability.3 pmc_name_of_event.3 \
113         pmc_name_of_capability.3 pmc_name_of_mode.3 \
114         pmc_name_of_capability.3 pmc_name_of_state.3 \
115         pmc_read.3 pmc_rw.3 \
116         pmc_read.3 pmc_write.3 \
117         pmc_start.3 pmc_stop.3
118
119 MLINKS+= \
120         pmclog.3 pmclog_open.3 \
121         pmclog.3 pmclog_close.3 \
122         pmclog.3 pmclog_feed.3 \
123         pmclog.3 pmclog_read.3
124
125 .include <bsd.lib.mk>