PAPI_SRCDIR = $(PWD) SOURCES = $(MISCSRCS) papi.c papi_internal.c papi_hl.c extras.c sw_multiplex.c \ papi_fwrappers.c papi_fwrappers_.c papi_fwrappers__.c upper_PAPI_FWRAPPERS.c \ threads.c cpus.c $(OSFILESSRC) $(CPUCOMPONENT_C) papi_preset.c \ papi_vector.c papi_memory.c $(COMPSRCS) OBJECTS = $(MISCOBJS) papi.o papi_internal.o papi_hl.o extras.o sw_multiplex.o \ papi_fwrappers.o papi_fwrappers_.o papi_fwrappers__.o upper_PAPI_FWRAPPERS.o \ threads.o cpus.o $(OSFILESOBJ) $(CPUCOMPONENT_OBJ) papi_preset.o \ papi_vector.o papi_memory.o $(COMPOBJS) PAPI_EVENTS_TABLE = papi_events_table.h HEADERS = $(MISCHDRS) $(OSFILESHDR) $(PAPI_EVENTS_TABLE) \ papi.h papi_internal.h papiStdEventDefs.h \ papi_preset.h threads.h cpus.h papi_vector.h \ papi_memory.h config.h \ extras.h sw_multiplex.h papi_hl.h \ papi_common_strings.h components_config.h LIBCFLAGS += -I. $(CFLAGS) -DOSLOCK=\"$(OSLOCK)\" -DOSCONTEXT=\"$(OSCONTEXT)\" FHEADERS = fpapi.h f77papi.h f90papi.h # pkgconfig directory LIBPC = $(LIBDIR)/pkgconfig all: $(SHOW_CONF) $(LIBS) utils tests .PHONY : all test fulltest tests testlib utils ctests ftests comp_tests validation_tests null include $(COMPONENT_RULES) showconf: @echo "Host architecture : $(DESCR)"; @echo "Host CPU component : $(CPUCOMPONENT_NAME)"; @echo "Installation DESTDIR: $(DESTDIR)"; @echo "Installation PREFIX : $(PREFIX)"; @echo "Installation EPREFIX: $(EPREFIX)"; @echo "Installation INCDIR : $(INCDIR)"; @echo "Installation LIBDIR : $(LIBDIR)"; @echo "Installation BINDIR : $(BINDIR)"; @echo "Installation MANDIR : $(MANDIR)"; @echo "Installation DOCDIR : $(DOCDIR)"; @echo "Installation DATADIR: $(DATADIR)"; @echo show_bgp_conf: @echo; @echo "BG/P System Path : $(BGP_SYSDIR)"; @echo "BG/P Install Path : $(BGP_INSTALLDIR)"; @echo "BG/P GNU/Linux Path: $(BGP_GNU_LINUX_PATH)"; @echo "BG/P ARCH Path : $(BGP_ARCH_PATH)"; @echo "BG/P Runtime Path : $(BGP_RUNTIME_PATH)"; @echo static: $(LIBRARY) $(LIBRARY): $(OBJECTS) rm -f $(LIBRARY) $(AR) $(ARG64) rv $(LIBRARY) $(OBJECTS) shared: libpapi.so libpapi.so.$(PAPIVER) libpapi.so libpapi.so.$(PAPIVER): $(SHLIB) ln -sf $(SHLIB) $@ $(SHLIB): $(HEADERS) $(SOURCES) $(SHLIBOBJS) rm -f $(SHLIB) libpapi.so libpapi.so.$(PAPIVER); $(CC_SHR) $(LIBCFLAGS) $(OPTFLAGS) $(SOURCES) $(SHLIBOBJS) -o $@ $(SHLIBDEPS) $(LDFLAGS) @if test "$(POST_BUILD)" != "" ; then \ -$(POST_BUILD) ; \ fi papi_fwrappers_.c: papi_fwrappers.c $(HEADERS) $(CPP) -DFORTRANUNDERSCORE papi_fwrappers.c > papi_fwrappers_.c papi_fwrappers__.c: papi_fwrappers.c $(HEADERS) $(CPP) -DFORTRANDOUBLEUNDERSCORE papi_fwrappers.c > papi_fwrappers__.c upper_PAPI_FWRAPPERS.c: papi_fwrappers.c $(HEADERS) $(CPP) -DFORTRANCAPS papi_fwrappers.c > upper_PAPI_FWRAPPERS.c papi_fwrappers.o: papi_fwrappers.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c papi_fwrappers.c -o papi_fwrappers.o papi_fwrappers_.o: papi_fwrappers_.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c papi_fwrappers_.c -o papi_fwrappers_.o papi_fwrappers__.o: papi_fwrappers__.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c papi_fwrappers__.c -o papi_fwrappers__.o upper_PAPI_FWRAPPERS.o: upper_PAPI_FWRAPPERS.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c upper_PAPI_FWRAPPERS.c -o upper_PAPI_FWRAPPERS.o papi.o: papi.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c papi.c -o papi.o papi_internal.o: papi_internal.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c papi_internal.c -o papi_internal.o threads.o: threads.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c threads.c -o threads.o cpus.o: cpus.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c cpus.c -o cpus.o papi_hl.o: papi_hl.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c papi_hl.c -o papi_hl.o aix-memory.o: aix-memory.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c aix-memory.c -o aix-memory.o solaris-memory.o: solaris-memory.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c solaris-memory.c -o solaris-memory.o solaris-common.o: solaris-common.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c solaris-common.c -o solaris-common.o linux-bgp-memory.o: linux-bgp-memory.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c linux-bgp-memory.c -o linux-bgp-memory.o linux-bgq-memory.o: linux-bgq-memory.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c linux-bgq-memory.c -o linux-bgq-memory.o darwin-memory.o: darwin-memory.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c darwin-memory.c -o darwin-memory.o darwin-common.o: darwin-common.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c darwin-common.c -o darwin-common.o linux-memory.o: linux-memory.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c linux-memory.c -o linux-memory.o linux-timer.o: linux-timer.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c linux-timer.c -o linux-timer.o linux-common.o: linux-common.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c linux-common.c -o linux-common.o extras.o: extras.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c extras.c -o extras.o papi_memory.o: papi_memory.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c papi_memory.c -o papi_memory.o papi_vector.o: papi_vector.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c papi_vector.c -o papi_vector.o papi_preset.o: papi_preset.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c papi_preset.c -o papi_preset.o sw_multiplex.o: sw_multiplex.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c sw_multiplex.c -o sw_multiplex.o $(CPUCOMPONENT_OBJ): $(CPUCOMPONENT_C) $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c $(CPUCOMPONENT_C) -o $(CPUCOMPONENT_OBJ) x86_cpuid_info.o: x86_cpuid_info.c x86_cpuid_info.h $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c x86_cpuid_info.c -o x86_cpuid_info.o $(PAPI_EVENTS_TABLE): $(PAPI_EVENTS_CSV) papi_events_table.sh sh papi_events_table.sh $(PAPI_EVENTS_CSV) > $@ $(ARCH_EVENTS)_map.o: $(ARCH_EVENTS)_map.c $(HEADERS) $(CC) $(LIBCFLAGS) $(OPTFLAGS) -c $(ARCH_EVENTS)_map.c -o $(ARCH_EVENTS)_map.o # Required for BGP .SUFFIXES: .rts.o .c.rts.o: $(CC) $(CFLAGS) -c $< -o $@ bgp_tests:$(LIBRARY) null $(SETPATH) cd ctests/bgp; $(MAKE) CC="$(CC)" CC_R="$(CC_R)" MPICC="$(MPICC)" CFLAGS="-I.. -I../.. $(CFLAGS)" TOPTFLAGS="$(TOPTFLAGS)" SMPCFLGS="$(SMPCFLGS)" OMPCFLGS="$(OMPCFLGS)" NOOPT="$(NOOPT)" LDFLAGS="$(LDFLAGS) $(STATIC)" LIBRARY="../../$(LINKLIB)" bgp_tests #Required for freebsd freebsd-memory.o: freebsd-memory.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map.o: freebsd/map.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-unknown.o: freebsd/map-unknown.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-p6.o: freebsd/map-p6.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-p6-m.o: freebsd/map-p6-m.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-p6-3.o: freebsd/map-p6-3.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-p6-2.o: freebsd/map-p6-2.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-p6-c.o: freebsd/map-p6-c.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-k7.o: freebsd/map-k7.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-k8.o: freebsd/map-k8.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-p4.o: freebsd/map-p4.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-atom.o: freebsd/map-atom.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-core.o: freebsd/map-core.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-core2.o: freebsd/map-core2.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-core2-extreme.o: freebsd/map-core2-extreme.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-i7.o: freebsd/map-i7.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ freebsd/map-westmere.o: freebsd/map-westmere.c $(HEADERS) $(CC) $(LIBCFLAGS) -c $< -o $@ test: ctests $(SETPATH) ctests/zero fulltest: tests $(SETPATH) sh run_tests.sh tests: $(TESTS) testlib: $(SETPATH) cd testlib; $(MAKE) utils: $(LIBS) testlib cd utils && $(MAKE) validation_tests: $(LIBS) testlib $(SETPATH) cd validation_tests; $(MAKE) ctests: $(LIBS) testlib validation_tests $(SETPATH) cd ctests; $(MAKE) ftests: $(LIBS) testlib $(SETPATH) cd ftests; $(MAKE) # compile tests added to components comp_tests: $(LIBS) testlib ifneq (${COMPONENTS},) @for comp in ${COMPONENTS} ; do \ $$comp_tests: $(LIBS) testlib null ; \ $(SETPATH) cd components/$$comp/tests ; $(MAKE) ; \ $(SETPATH) cd ../../.. ; done endif clean: comp_tests_clean native_clean -rm -rf $(LIBRARY) $(SHLIB) libpapi.so libpapi.so.$(PAPIVER) $(OBJECTS) core rii_files genpapifdef *~ so_locations papi_fwrappers_.c papi_fwrappers__.c upper_PAPI_FWRAPPERS.c -cd ../doc; $(MAKE) clean -cd ctests; $(MAKE) clean -cd ftests; $(MAKE) clean -cd testlib; $(MAKE) clean -cd utils; $(MAKE) clean -cd validation_tests; $(MAKE) clean # Component tests cleaning comp_tests_clean: ifneq (${COMPONENTS},) @for comp in ${COMPONENTS} ; do \ cd components/$$comp/tests ; \ $(MAKE) clean ; \ cd ../../.. ; \ done endif clobber distclean: clean native_clobber -cd ../doc; $(MAKE) distclean -cd ctests; $(MAKE) distclean -cd ftests; $(MAKE) distclean -cd testlib; $(MAKE) distclean -cd utils; $(MAKE) distclean -cd validation_tests; $(MAKE) distclean -cd components; $(MAKE) -f Makefile_comp_tests distclean -rm -f $(LIBRARY) $(SHLIB) $(EXTRALIBS) Makefile config.h libpapi.so papi.pc components_config.h $(PAPI_EVENTS_TABLE) -rm -f config.log config.status f77papi.h f90papi.h fpapi.h null: dist: $(MAKE) install-all PREFIX=`pwd`/papi-$(CPUCOMPONENT_NAME) tar cfv ./papi-$(CPUCOMPONENT).tar ./papi-$(CPUCOMPONENT_NAME) gzip ./papi-$(CPUCOMPONENT_NAME).tar rm -rf ./papi-$(CPUCOMPONENT_NAME) install-all: install install-tests install: install-lib install-man install-utils install-pkgconf install-lib: native_install @echo "Headers (INCDIR) being installed in: \"$(DESTDIR)$(INCDIR)\""; -mkdir -p $(DESTDIR)$(INCDIR) -chmod go+rx $(DESTDIR)$(INCDIR) cp $(FHEADERS) papi.h papiStdEventDefs.h $(DESTDIR)$(INCDIR) cd $(DESTDIR)$(INCDIR); chmod go+r $(FHEADERS) papi.h papiStdEventDefs.h @echo "Libraries (LIBDIR) being installed in: \"$(DESTDIR)$(LIBDIR)\""; -mkdir -p $(DESTDIR)$(LIBDIR) -chmod go+rx $(DESTDIR)$(LIBDIR) @if test -r $(LIBRARY) ; then \ cp $(LIBRARY) $(DESTDIR)$(LIBDIR); \ chmod go+r $(DESTDIR)$(LIBDIR)/$(LIBRARY); \ fi @if test -r $(SHLIB) ; then \ cp -p $(SHLIB) $(DESTDIR)$(LIBDIR)/libpapi.so.$(PAPIVER).$(PAPIREV).$(PAPIAGE).$(PAPIINC); \ chmod go+r $(DESTDIR)$(LIBDIR)/libpapi.so.$(PAPIVER).$(PAPIREV).$(PAPIAGE).$(PAPIINC) ; \ cd $(DESTDIR)$(LIBDIR); ln -sf libpapi.so.$(PAPIVER).$(PAPIREV).$(PAPIAGE).$(PAPIINC) libpapi.so.$(PAPIVER).$(PAPIREV).$(PAPIAGE); \ cd $(DESTDIR)$(LIBDIR); ln -sf libpapi.so.$(PAPIVER).$(PAPIREV).$(PAPIAGE).$(PAPIINC) libpapi.so.$(PAPIVER); \ cd $(DESTDIR)$(LIBDIR); ln -sf libpapi.so.$(PAPIVER).$(PAPIREV).$(PAPIAGE).$(PAPIINC) libpapi.so; \ fi install-man: cd ../man && $(MAKE) DOCDIR=$(DESTDIR)$(DOCDIR) MANDIR=$(DESTDIR)$(MANDIR) install install-utils: $(SETPATH) cd utils; $(MAKE) BINDIR="$(DESTDIR)$(BINDIR)" CC="$(CC)" CC_R="$(CC_R)" CFLAGS="-I.. $(CFLAGS)" TOPTFLAGS="$(TOPTFLAGS)" SMPCFLGS="$(SMPCFLGS)" OMPCFLGS="$(OMPCFLGS)" NOOPT="$(NOOPT)" LDFLAGS="$(LDFLAGS) $(STATIC)" LIBRARY="../$(LINKLIB)" install install-tests: install-comp_tests $(SETPATH) cd testlib; $(MAKE) install $(SETPATH) cd ctests; $(MAKE) install $(SETPATH) cd ftests; $(MAKE) install $(SETPATH) cd validation_tests; $(MAKE) install -cp run_tests.sh $(DESTDIR)$(DATADIR) -cp run_tests_exclude_cuda.txt $(DESTDIR)$(DATADIR) -cp run_tests_exclude.txt $(DESTDIR)$(DATADIR) -chmod go+rx $(DESTDIR)$(DATADIR)/run_tests.sh -chmod go+r $(DESTDIR)$(DATADIR)/run_tests_exclude_cuda.txt $(DESTDIR)$(DATADIR)/run_tests_exclude.txt # Component tests installing install-comp_tests: ifneq (${COMPONENTS},) @for comp in ${COMPONENTS} ; do \ cd components/$$comp/tests ; \ $(MAKE) DATADIR="$(DESTDIR)$(DATADIR)/components" install ; \ cd ../../.. ; \ done endif install-pkgconf: @echo "pkcongfig being installed in: \"$(DESTDIR)$(LIBPC)\""; -mkdir -p $(DESTDIR)$(LIBPC) -chmod go+rx $(DESTDIR)$(LIBPC) cp papi.pc $(DESTDIR)$(LIBPC)/papi-$(PAPIVER).$(PAPIREV).$(PAPIAGE).$(PAPIINC).pc cd $(DESTDIR)$(LIBPC); ln -sf papi-$(PAPIVER).$(PAPIREV).$(PAPIAGE).$(PAPIINC).pc papi-$(PAPIVER).$(PAPIREV).$(PAPIAGE).pc; cd $(DESTDIR)$(LIBPC); ln -sf papi-$(PAPIVER).$(PAPIREV).$(PAPIAGE).$(PAPIINC).pc papi-$(PAPIVER).pc; cd $(DESTDIR)$(LIBPC); ln -sf papi-$(PAPIVER).$(PAPIREV).$(PAPIAGE).$(PAPIINC).pc papi.pc; # # Dummy targets for configurations that do not also include a Rules file with targets # native_clean: native_install: native_clobber: