|
Packit |
577717 |
DESCR = "Linux with PerfCtr $(VERSION) patch and library, and perfmon2 libpfm library"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
ifneq (/usr,$(PERFCTR_PREFIX))
|
|
Packit |
577717 |
PWD = $(shell pwd)
|
|
Packit |
577717 |
ifeq (,$(PERFCTR_LIB_PATH))
|
|
Packit |
577717 |
ifeq (,$(PERFCTR_ROOT))
|
|
Packit |
577717 |
PERFCTR_ROOT := $(PWD)/perfctr-$(VERSION)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
PERFCTR_LIB_PATH := $(PERFCTR_ROOT)/usr.lib
|
|
Packit |
577717 |
CC_SHR += -Wl,-rpath-link -Wl,$(PERFCTR_LIB_PATH)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
ifeq (,$(PERFCTR_INC_PATH))
|
|
Packit |
577717 |
ifeq (,$(PERFCTR_ROOT))
|
|
Packit |
577717 |
PERFCTR_ROOT := $(PWD)/perfctr-$(VERSION)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
PERFCTR_INC_PATH := $(PERFCTR_ROOT)/usr.lib
|
|
Packit |
577717 |
PERFCTR_KINC_PATH := $(PERFCTR_ROOT)/linux/include
|
|
Packit |
577717 |
else
|
|
Packit |
577717 |
PERFCTR_KINC_PATH := $(PERFCTR_INC_PATH)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
ifneq (/usr/include,$(PERFCTR_INC_PATH))
|
|
Packit |
577717 |
CFLAGS += -I$(PERFCTR_INC_PATH)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
ifneq (/usr/include/linux/include,$(PERFCTR_KINC_PATH))
|
|
Packit |
577717 |
CFLAGS += -I$(PERFCTR_KINC_PATH)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
|
|
Packit |
577717 |
CFLAGS-2.6.x := -DPERFCTR26
|
|
Packit |
577717 |
CFLAGS-2.7.x := $(CFLAGS-2.6.x)
|
|
Packit |
577717 |
CFLAGS += $(CFLAGS-$(VERSION))
|
|
Packit |
577717 |
MISCHDRS += linux-lock.h mb.h
|
|
Packit |
577717 |
MISCSRCS += $(ARCH_SPEC_EVTS)
|
|
Packit |
577717 |
PERFCTR_OBJS = $(shell $(AR) t $(PERFCTR_LIB_PATH)/libperfctr.a 2> /dev/null)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
ifeq (,$(PERFCTR_OBJS))
|
|
Packit |
577717 |
$(PERFCTR_LIB_PATH)/libperfctr.a:
|
|
Packit |
577717 |
ifneq (,${PERFCTR_ROOT})
|
|
Packit |
577717 |
ifeq (ppc64,${ARCH})
|
|
Packit |
577717 |
$(MAKE) CC='$(CC) $(BITFLAGS)' -C $(PERFCTR_ROOT)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
ifeq (x86_64,${ARCH})
|
|
Packit |
577717 |
ifeq (-m32,${BITFLAGS})
|
|
Packit |
577717 |
$(MAKE) CC='$(CC) $(BITFLAGS)' LD_FLAGS="-melf_i386" ARCH="i386" -C $(PERFCTR_ROOT)
|
|
Packit |
577717 |
else
|
|
Packit |
577717 |
$(MAKE) CC="$(CC)" -C $(PERFCTR_ROOT)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
else
|
|
Packit |
577717 |
$(MAKE) CC="$(CC) -C $(PERFCTR_ROOT)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
else
|
|
Packit |
577717 |
@echo '$@ not installed!'; exit 1
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
$(MAKE)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#Dynamic linking loader needs correct version of libperfctr
|
|
Packit |
577717 |
ifeq ($(VERSION),2.7.x)
|
|
Packit |
577717 |
SO_ABIVER=6
|
|
Packit |
577717 |
else
|
|
Packit |
577717 |
ifeq ($(VERSION),2.6.x)
|
|
Packit |
577717 |
i386_ABIVER=5
|
|
Packit |
577717 |
x86_64_ABIVER=6
|
|
Packit |
577717 |
ppc_ABIVER=5
|
|
Packit |
577717 |
SO_ABIVER=$($(ARCH)_ABIVER)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
|
|
Packit |
577717 |
POST_BUILD = cp $(PERFCTR_LIB_PATH)/libperfctr.so .;ln -fs libperfctr.so libperfctr.so.$(SO_ABIVER)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
####################################################################
|
|
Packit |
577717 |
# This section builds libpfm to get at its support for native events
|
|
Packit |
577717 |
ifneq (/usr,$(PFM_PREFIX))
|
|
Packit |
577717 |
PWD = $(shell pwd)
|
|
Packit |
577717 |
ifeq (,$(PFM_LIB_PATH))
|
|
Packit |
577717 |
ifeq (,$(PFM_ROOT))
|
|
Packit |
577717 |
PFM_ROOT := $(PWD)/libpfm-3.y
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
PFM_LIB_PATH := $(PFM_ROOT)/lib
|
|
Packit |
577717 |
CC_SHR += -Wl,-rpath-link -Wl,$(PFM_LIB_PATH)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
ifeq (,$(PFM_INC_PATH))
|
|
Packit |
577717 |
ifeq (,$(PFM_ROOT))
|
|
Packit |
577717 |
PFM_ROOT := $(PWD)/libpfm-3.y
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
PFM_INC_PATH := $(PFM_ROOT)/include
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
ifneq (/usr/include,$(PFM_INC_PATH))
|
|
Packit |
577717 |
CFLAGS += -I$(PFM_INC_PATH)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
|
|
Packit |
577717 |
CFLAGS += -DPERFCTR_PFM_EVENTS
|
|
Packit |
577717 |
PFM_OBJS=$(shell $(AR) t $(PFM_LIB_PATH)/libpfm.a 2>/dev/null)
|
|
Packit |
577717 |
PFM_LIBS=-L$(PFM_LIB_PATH) -lpfm
|
|
Packit |
577717 |
MISCSRCS += papi_libpfm3_events.c
|
|
Packit |
577717 |
MISCOBJS += $(PERFCTR_OBJS) $(PFM_OBJS) $(MISCSRCS:.c=.o)
|
|
Packit |
577717 |
MISCHDRS += papi_libpfm_events.h
|
|
Packit |
577717 |
SHLIBDEPS = -Bdynamic -L$(PERFCTR_LIB_PATH) -lperfctr $(PFM_LIBS)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
ifeq (,$(PFM_OBJS))
|
|
Packit |
577717 |
$(PFM_LIB_PATH)/libpfm.a:
|
|
Packit |
577717 |
$(MAKE) -C $(PFM_ROOT) ARCH="$(ARCH)" CC="$(CC)" lib
|
|
Packit |
577717 |
$(MAKE)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
####################################################################
|
|
Packit |
577717 |
|
|
Packit |
577717 |
include Makefile.inc
|
|
Packit |
577717 |
|
|
Packit |
577717 |
config.h:
|
|
Packit |
577717 |
@echo 'Please clobber your build and run ./configure. Direct Makefile access has been deprecated.'
|
|
Packit |
577717 |
|
|
Packit |
577717 |
$(PERFCTR_OBJS): $(PERFCTR_LIB_PATH)/libperfctr.a
|
|
Packit |
577717 |
$(AR) xv $<
|
|
Packit |
577717 |
|
|
Packit |
577717 |
$(PFM_OBJS): $(PFM_LIB_PATH)/libpfm.a
|
|
Packit |
577717 |
$(AR) xv $<
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#perfctr.o: perfctr.c $(HEADERS)
|
|
Packit |
577717 |
# $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c perfctr.c -o $@
|
|
Packit |
577717 |
|
|
Packit |
577717 |
papi_libpfm3_events.o: papi_libpfm3_events.c $(HEADERS)
|
|
Packit |
577717 |
$(CC) $(LIBCFLAGS) $(OPTFLAGS) -c papi_libpfm3_events.c -o $@
|
|
Packit |
577717 |
|
|
Packit |
577717 |
native_clean:
|
|
Packit |
577717 |
-rm -f $(MISCOBJS) libperfctr.so*
|
|
Packit |
577717 |
ifneq (,${PERFCTR_ROOT})
|
|
Packit |
577717 |
$(MAKE) -C $(PERFCTR_ROOT) clean
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
ifneq (,${PFM_ROOT})
|
|
Packit |
577717 |
$(MAKE) -C $(PFM_ROOT) ARCH="$(ARCH)" clean
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
|
|
Packit |
577717 |
native_install:
|
|
Packit |
577717 |
-install -d $(DESTDIR)$(DATADIR)
|
|
Packit |
577717 |
-cp -f ./papi_events.csv $(DESTDIR)$(DATADIR)
|
|
Packit |
577717 |
ifeq ($(ARCH),ppc64)
|
|
Packit |
577717 |
cp -Rf ./event_data $(DESTDIR)$(DATADIR)
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
ifneq (,${PFM_ROOT})
|
|
Packit |
577717 |
-$(MAKE) -C $(PFM_ROOT) ARCH="$(ARCH)" CC=$(CC) DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) install_prefix=$(PREFIX) LIBDIR=$(LIBDIR) INCDIR=$(INCDIR) MANDIR=$(MANDIR) install
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
ifneq (,${PERFCTR_ROOT})
|
|
Packit |
577717 |
ifeq (-m32,${BITFLAGS})
|
|
Packit |
577717 |
$(MAKE) -C $(PERFCTR_ROOT) PREFIX=$(DESTDIR)$(PREFIX) BINDIR=$(DESTDIR)$(BINDIR) LIBDIR=$(DESTDIR)$(LIBDIR) INCLDIR=$(DESTDIR)$(INCDIR) ARCH="i386" install
|
|
Packit |
577717 |
else
|
|
Packit |
577717 |
$(MAKE) -C $(PERFCTR_ROOT) PREFIX=$(DESTDIR)$(PREFIX) BINDIR=$(DESTDIR)$(BINDIR) LIBDIR=$(DESTDIR)$(LIBDIR) INCLDIR=$(DESTDIR)$(INCDIR) install
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
|
|
Packit |
577717 |
native_clobber:
|
|
Packit |
577717 |
ifneq (,${PERFCTR_ROOT})
|
|
Packit |
577717 |
$(MAKE) -C $(PERFCTR_ROOT) distclean
|
|
Packit |
577717 |
endif
|
|
Packit |
577717 |
ifneq (,${PFM_ROOT})
|
|
Packit |
577717 |
$(MAKE) -C $(PFM_ROOT) ARCH="$(ARCH)" distclean
|
|
Packit |
577717 |
endif
|