PAPIINC = ..
PAPILIB = ../libpapi.a
CC = gcc
CFLAGS += -I$(PAPIINC)
OS = $(shell uname)
TARGETS_NTHD = PAPI_set_domain sprofile multiplex PAPI_state PAPI_reset PAPI_profil PAPI_perror PAPI_get_virt_cyc PAPI_get_real_cyc PAPI_get_opt PAPI_hw_info PAPI_get_executable_info PAPI_ipc PAPI_flops PAPI_flips PAPI_overflow PAPI_add_remove_event high_level PAPI_add_remove_events
TARGETS_PTHREAD = locks_pthreads overflow_pthreads
ifeq ($(OS), SunOS)
LDFLAGS = $(PAPILIB) -lcpc
LDFLAGS_PTHREAD = $(PAPILIB) -lpthread -lcpc
TARGETS = $(TARGETS_NTHD) $(TARGETS_PTHREAD)
else
ifeq ($(OS), AIX)
CC = xlc
LDFLAGS = $(PAPILIB) -lpmapi
LDFLAGS_PTHREAD = $(PAPILIB) -lpthread -lpmapi
TARGETS = $(TARGETS_NTHD) $(TARGETS_PTHREAD)
else
ifeq ($(OS), OSF1)
LDFLAGS = $(PAPILIB) -lrt
LDFLAGS_PTHREAD = $(PAPILIB) -lpthread -lrt
TARGETS = $(TARGETS_NTHD)
else
ifeq ($(OS), Linux)
TARGETS = $(TARGETS_NTHD) $(TARGETS_PTHREAD)
else
TARGETS = $(TARGETS_NTHD)
endif
LDFLAGS = $(PAPILIB)
LDFLAGS_PTHREAD = $(PAPILIB) -lpthread
endif
endif
endif
all: $(TARGETS)
$(TARGETS_NTHD): %:%.o
$(CC) -o $@ $(CFLAGS) $^ $(LDFLAGS)
$(TARGETS_PTHREAD): %:%.o
$(CC) -o $@ $(CFLAGS) $^ $(LDFLAGS_PTHREAD)
clean:
$(RM) *.o $(TARGETS)