Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
##
## Copyright (C) by Hewlett-Packard Development Company, L.P.
## See copyright in top level directory
##

ACLOCAL_AMFLAGS = -I confdb

AM_CFLAGS = $(CFLAGS)
AM_CPPFLAGS = $(CPPFLAGS)
AM_LDFLAGS = $(LDFLAGS)

pfm_sources =
examples_list =
perf_examples_list =
testlist =
dist_noinst_SCRIPTS = autogen.sh
noinst_HEADERS =
bin_PROGRAMS =
include_HEADERS =
man_MANS =
EXTRA_PROGRAMS =
EXTRA_DIST = README COPYING

include $(top_srcdir)/lib/Makefile.mk
include $(top_srcdir)/tests/Makefile.mk
include $(top_srcdir)/include/Makefile.mk
include $(top_srcdir)/docs/Makefile.mk
include $(top_srcdir)/perf_examples/Makefile.mk
include $(top_srcdir)/examples/Makefile.mk

if EMBEDDED_BUILD
noinst_LTLIBRARIES = libpfm.la
libpfm_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
else
lib_LTLIBRARIES = libpfm.la
libpfm_la_LDFLAGS = $(AM_LDFLAGS) $(PFMLIB_VERSION)
endif

libpfm_la_SOURCES = $(pfm_sources)
libpfm_la_CPPFLAGS = $(AM_CPPFLAGS)
libpfm_la_LIBADD = $(LIBS)

perf_examples: $(perf_examples_list)

examples: $(examples_list)

tests: $(testlist)
3 changes: 3 additions & 0 deletions autogen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh

autoreconf -ivf
177 changes: 177 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
##
## Copyright (C) by Hewlett-Packard Development Company, L.P.
## See copyright in top level directory
##

m4_include([maint/version.m4])

AC_PREREQ([2.69])
AC_INIT([PFM],
PFM_VERSION_m4,
[eranian@gmail.com],
[pfm],
[http://perfmon2.sourceforge.net])

AC_CONFIG_SRCDIR([examples/check_events.c])
AC_CONFIG_HEADERS([config.h])

AC_CONFIG_AUX_DIR([confdb])
AC_CONFIG_MACRO_DIR([confdb])

AC_CANONICAL_TARGET
AC_CANONICAL_BUILD
AC_CANONICAL_HOST

AC_USE_SYSTEM_EXTENSIONS

PFMLIB_VERSION="-release PFM_VERSION_m4"
AC_SUBST(PFMLIB_VERSION)

# Enable Automake
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
AM_PROG_AR
AM_SILENT_RULES([yes])

# Enable Libtool support
LT_INIT()

# Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET

# Checks for config parameters
AS_CASE([$host_os],
[linux*], [
CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_OS_LINUX"
CONFIG_PFMLIB_NOPYTHON=y
CONFIG_PFMLIB_OS_LINUX=y
],
[cygwin*|mingw*],
[
CPPFLAGS="$CPPFLAGS -DPFMLIB_WINDOWS"
CONFIG_PFMLIB_OS_WINDOWS=y
],
[])

AS_CASE([$host_cpu],
[ia64], [CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_IA64"],
[x86_64], [CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_X86 -DCONFIG_PFMLIB_ARCH_X86_64"],
[i386], [CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_I386"],
[mips], [CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_MIPS"],
[powerpc],[CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_POWERPC"],
[sparc], [CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_SPARC"],
[arm], [CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_ARM"],
[aarch64],[CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_ARM64"],
[arm64], [CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_ARM64"],
[s390x], [CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_S390X"],
[cell], [CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_ARCH_CELL"],
[])

AC_ARG_ENABLE([debug],
[AC_HELP_STRING([--enable-debug],
[Build libpfm with debug symbols])],
[
CFLAGS="$CFLAGS -g"
CPPFLAGS="$CPPFLAGS -DCONFIG_PFMLIB_DEBUG"
],
[])

AC_ARG_ENABLE([embedded],
[AS_HELP_STRING([--enable-embedded],
[Enables embedded builds])],
[enable_embedded=y],
[enable_embedded=n])

CFLAGS="$CFLAGS -O2"

AC_MSG_CHECKING([for ncurses devel])
LIBS=-lncurses
AC_LINK_IFELSE([AC_LANG_SOURCE([
#include <ncurses.h>
int main(void) {
printw();
return 0;
}
])],
[
have_ncurses_dev=y
AC_MSG_RESULT([yes])
],
[
have_ncurses_dev=n
AC_MSG_RESULT([no])
LIBS=
])

AM_CONDITIONAL([BUILD_PFMLIB_ARCH_IA64], [test "$host_cpu" = "ia64"])
AM_CONDITIONAL([BUILD_PFMLIB_ARCH_X86], [test "$host_cpu" = "x86_64"])
AM_CONDITIONAL([BUILD_PFMLIB_ARCH_I386], [test "$host_cpu" = "i386"])
AM_CONDITIONAL([BUILD_PFMLIB_ARCH_MIPS], [test "$host_cpu" = "mips"])
AM_CONDITIONAL([BUILD_PFMLIB_ARCH_POWERPC],[test "$host_cpu" = "powerpc"])
AM_CONDITIONAL([BUILD_PFMLIB_ARCH_SPARC], [test "$host_cpu" = "sparc"])
AM_CONDITIONAL([BUILD_PFMLIB_ARCH_ARM], [test "$host_cpu" = "arm"])
AM_CONDITIONAL([BUILD_PFMLIB_ARCH_ARM64], [test "$host_cpu" = "aarch64"])
AM_CONDITIONAL([BUILD_PFMLIB_ARCH_ARM64], [test "$host_cpu" = "arm64"])
AM_CONDITIONAL([BUILD_PFMLIB_ARCH_S390X], [test "$host_cpu" = "s390x"])
AM_CONDITIONAL([BUILD_PFMLIB_ARCH_CELL], [test "$host_cpu" = "cell"])
AM_CONDITIONAL([BUILD_PFMLIB_NOPYTHON], [test "x$CONFIG_PFMLIB_NOPYTHON" = "xy"])
AM_CONDITIONAL([BUILD_PFMLIB_OS_LINUX], [test "x$CONFIG_PFMLIB_OS_LINUX" = "xy"])
AM_CONDITIONAL([BUILD_PFMLIB_OS_WINDOWS], [test "x$CONFIG_PFMLIB_OS_WINDOWS" = "xy"])
AM_CONDITIONAL([BUILD_RTOP], [test "x$have_ncurses_dev" = "xy"])
AM_CONDITIONAL([EMBEDDED_BUILD], [test "x$enable_embedded" = "xy"])

# Checks for header files.
AC_CHECK_HEADERS([fcntl.h \
inttypes.h \
limits.h \
locale.h \
malloc.h \
stdlib.h \
string.h \
sys/ioctl.h \
sys/param.h \
sys/time.h \
termios.h \
unistd.h])

# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_UINT8_T

# Checks for library functions.
AC_FUNC_FORK
AC_FUNC_MALLOC
AC_FUNC_MMAP
AC_FUNC_REALLOC
AC_CHECK_FUNCS([alarm \
getpagesize \
gettimeofday \
memset \
munmap \
putenv \
regcomp \
setenv \
setlocale \
strcasecmp \
strchr \
strdup \
strerror \
strncasecmp \
strpbrk \
strstr \
strtol \
strtoul \
strtoull])

AC_CONFIG_FILES([Makefile])
AC_OUTPUT
142 changes: 142 additions & 0 deletions docs/Makefile.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
##
## Copyright (C) by Hewlett-Packard Development Company, L.P.
## See copyright in top level directory
##

man_MANS += \
docs/man3/libpfm.3 \
docs/man3/pfm_find_event.3 \
docs/man3/pfm_get_event_attr_info.3 \
docs/man3/pfm_get_event_info.3 \
docs/man3/pfm_get_event_encoding.3 \
docs/man3/pfm_get_event_next.3 \
docs/man3/pfm_get_pmu_info.3 \
docs/man3/pfm_get_os_event_encoding.3 \
docs/man3/pfm_get_version.3 \
docs/man3/pfm_initialize.3 \
docs/man3/pfm_terminate.3 \
docs/man3/pfm_strerror.3

if BUILD_PFMLIB_ARCH_X86
man_MANS += \
docs/man3/libpfm_intel_core.3 \
docs/man3/libpfm_intel_x86_arch.3 \
docs/man3/libpfm_amd64.3 \
docs/man3/libpfm_amd64_k7.3 \
docs/man3/libpfm_amd64_k8.3 \
docs/man3/libpfm_amd64_fam10h.3 \
docs/man3/libpfm_amd64_fam15h.3 \
docs/man3/libpfm_amd64_fam16h.3 \
docs/man3/libpfm_amd64_fam17h.3 \
docs/man3/libpfm_amd64_fam17h_zen2.3 \
docs/man3/libpfm_amd64_fam19h_zen3.3 \
docs/man3/libpfm_amd64_fam19h_zen4.3 \
docs/man3/libpfm_amd64_fam19h_zen3_l3.3 \
docs/man3/libpfm_intel_atom.3 \
docs/man3/libpfm_intel_nhm.3 \
docs/man3/libpfm_intel_nhm_unc.3 \
docs/man3/libpfm_intel_wsm.3 \
docs/man3/libpfm_intel_wsm_unc.3 \
docs/man3/libpfm_intel_snb.3 \
docs/man3/libpfm_intel_snb_unc.3 \
docs/man3/libpfm_intel_ivb.3 \
docs/man3/libpfm_intel_ivb_unc.3 \
docs/man3/libpfm_intel_hsw.3 \
docs/man3/libpfm_intel_bdw.3 \
docs/man3/libpfm_intel_rapl.3 \
docs/man3/libpfm_intel_slm.3 \
docs/man3/libpfm_intel_tmt.3 \
docs/man3/libpfm_intel_skl.3 \
docs/man3/libpfm_intel_icl.3 \
docs/man3/libpfm_intel_icx.3 \
docs/man3/libpfm_intel_spr.3 \
docs/man3/libpfm_intel_glm.3 \
docs/man3/libpfm_intel_knl.3 \
docs/man3/libpfm_intel_knm.3 \
docs/man3/libpfm_intel_snbep_unc_cbo.3 \
docs/man3/libpfm_intel_snbep_unc_ha.3 \
docs/man3/libpfm_intel_snbep_unc_imc.3 \
docs/man3/libpfm_intel_snbep_unc_pcu.3 \
docs/man3/libpfm_intel_snbep_unc_qpi.3 \
docs/man3/libpfm_intel_snbep_unc_ubo.3 \
docs/man3/libpfm_intel_snbep_unc_r2pcie.3 \
docs/man3/libpfm_intel_snbep_unc_r3qpi.3 \
docs/man3/libpfm_intel_ivbep_unc_cbo.3 \
docs/man3/libpfm_intel_ivbep_unc_ha.3 \
docs/man3/libpfm_intel_ivbep_unc_imc.3 \
docs/man3/libpfm_intel_ivbep_unc_pcu.3 \
docs/man3/libpfm_intel_ivbep_unc_qpi.3 \
docs/man3/libpfm_intel_ivbep_unc_ubo.3 \
docs/man3/libpfm_intel_ivbep_unc_r2pcie.3 \
docs/man3/libpfm_intel_ivbep_unc_r3qpi.3 \
docs/man3/libpfm_intel_ivbep_unc_irp.3 \
docs/man3/libpfm_intel_knc.3 \
docs/man3/libpfm_intel_hswep_unc_cbo.3 \
docs/man3/libpfm_intel_hswep_unc_ha.3 \
docs/man3/libpfm_intel_hswep_unc_imc.3 \
docs/man3/libpfm_intel_hswep_unc_irp.3 \
docs/man3/libpfm_intel_hswep_unc_pcu.3 \
docs/man3/libpfm_intel_hswep_unc_qpi.3 \
docs/man3/libpfm_intel_hswep_unc_r2pcie.3 \
docs/man3/libpfm_intel_hswep_unc_r3qpi.3 \
docs/man3/libpfm_intel_hswep_unc_sbo.3 \
docs/man3/libpfm_intel_hswep_unc_ubo.3 \
docs/man3/libpfm_intel_bdx_unc_cbo.3 \
docs/man3/libpfm_intel_bdx_unc_ha.3 \
docs/man3/libpfm_intel_bdx_unc_imc.3 \
docs/man3/libpfm_intel_bdx_unc_irp.3 \
docs/man3/libpfm_intel_bdx_unc_pcu.3 \
docs/man3/libpfm_intel_bdx_unc_qpi.3 \
docs/man3/libpfm_intel_bdx_unc_r2pcie.3 \
docs/man3/libpfm_intel_bdx_unc_r3qpi.3 \
docs/man3/libpfm_intel_bdx_unc_sbo.3 \
docs/man3/libpfm_intel_bdx_unc_ubo.3 \
docs/man3/libpfm_intel_skx_unc_cha.3 \
docs/man3/libpfm_intel_skx_unc_imc.3 \
docs/man3/libpfm_intel_skx_unc_irp.3 \
docs/man3/libpfm_intel_skx_unc_m2m.3 \
docs/man3/libpfm_intel_skx_unc_m3upi.3 \
docs/man3/libpfm_intel_skx_unc_pcu.3 \
docs/man3/libpfm_intel_skx_unc_ubo.3 \
docs/man3/libpfm_intel_skx_unc_upi.3 \
docs/man3/libpfm_intel_spr.3
endif # end of BUILD_PFMLIB_ARCH_X86

if BUILD_PFMLIB_ARCH_I386
man_MANS += \
docs/man3/libpfm_intel_p6.3 \
docs/man3/libpfm_intel_coreduo.3
endif # end of BUILD_PFMLIB_ARCH_I386

if BUILD_PFMLIB_ARCH_ARM
man_MANS += \
docs/man3/libpfm_arm_xgene.3 \
docs/man3/libpfm_arm_ac7.3 \
docs/man3/libpfm_arm_ac57.3 \
docs/man3/libpfm_arm_ac53.3 \
docs/man3/libpfm_arm_ac15.3 \
docs/man3/libpfm_arm_ac8.3 \
docs/man3/libpfm_arm_ac9.3 \
docs/man3/libpfm_arm_qcom_krait.3 \
docs/man3/libpfm_arm_neoverse_n1.3 \
docs/man3/libpfm_arm_neoverse_n2.3
endif # end of BUILD_PFMLIB_ARCH_ARM

if BUILD_PFMLIB_ARCH_ARM64
man_MANS += \
docs/man3/libpfm_arm_xgene.3 \
docs/man3/libpfm_arm_ac57.3 \
docs/man3/libpfm_arm_ac53.3 \
docs/man3/libpfm_arm_a64fx.3 \
docs/man3/libpfm_arm_neoverse_n2.3
endif # end of BUILD_PFMLIB_ARCH_ARM64

if BUILD_PFMLIB_ARCH_MIPS
man_MANS += docs/man3/libpfm_mips_74k.3
endif # end of BUILD_PFMLIB_ARCH_MIPS

if BUILD_PFMLIB_OS_LINUX
man_MANS += \
docs/man3/pfm_get_perf_event_encoding.3 \
docs/man3/libpfm_perf_event_raw.3
endif
22 changes: 22 additions & 0 deletions examples/Makefile.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
##
## Copyright (C) by Hewlett-Packard Development Company, L.P.
## See copyright in top level directory
##

EXTRA_PROGRAMS += $(examples_list)

AM_CPPFLAGS += -I$(top_srcdir)/examples -D_GNU_SOURCE
LDADD += -lm

if BUILD_PFMLIB_OS_LINUX
AM_LDFLAGS += -pthread
LDADD += -lrt
endif # end of BUILD_PFMLIB_OS_LINUX

if BUILD_PFMLIB_OS_WINDOWS
LDADD += -lgnurx
endif # end of BUILD_PFMLIB_OS_WINDOWS

examples_list += \
examples/showevtinfo \
examples/check_events
Loading