Makefile is able to use papi libs not installed

This commit is contained in:
Thomas Preud'homme 2009-06-25 16:44:46 +02:00 committed by Thomas Preud'homme
parent 6b9777cb9b
commit a29aafe25e
1 changed files with 17 additions and 6 deletions

View File

@ -6,8 +6,17 @@ INCDIR:=include
LIBDIR:=lib
LOGDIR:=logs
LOCALDIR:=$(HOME)/local
PAPIHIGHLEVELLIBDIR:=lib
PAPIHIGHLEVELINCDIR:=include
# PHL stands for PAPI High Level
PHL_LIB_INSTALLDIR:=lib
PHL_INC_INSTALLDIR:=lib
PHL_LIBDIR:=lib
PHL_INCDIR:=include
PHLDIR:=../papihighlevel
PAPI_LIB_INSTALLDIR:=lib
PAPIDIR:=$(PHLDIR)/papi
PAPI_LIBDIR:=src
PAPI_PFMDIR:=$(PAPI_LIBDIR)/libpfm-3.y/lib
CALCDIR:=calculation
COMMDIR:=communication
@ -15,7 +24,9 @@ COMMDIR:=communication
# I know -finline-functions and -finline-functions-called-once are enabled by
# -O3 but I did this in case gcc behaviour change one day
CFLAGS:=-c -O3 -finline-functions -finline-functions-called-once -Wall -Werror
LDFLAGS:=-L$(LIBDIR) -L$(LOCALDIR)/$(PAPIHIGHLEVELLIBDIR) -Wl,-rpath-link,$(HOME)/local/lib -lpthread -lpapihighlevel -ldl
LDFLAGS:=-L$(LIBDIR) -L$(LOCALDIR)/$(PHL_LIB_INSTALLDIR) -L$(PHLDIR)/$(PHL_LIBDIR)
LDFLAGS:=$(LDFLAGS) -Wl,-rpath-link,$(LOCALDIR)/$(PAPI_LIB_INSTALLDIR):$(PAPIDIR)/$(PAPI_LIBDIR):$(PAPIDIR)/$(PAPI_PFMDIR)
LDFLAGS:=$(LDFLAGS) -lpthread -lpapihighlevel -ldl
# Executables
CC=gcc
@ -49,7 +60,7 @@ $(LIBDIR)/$(COMMDIR)/lib%.a: $(OBJDIR)/$(COMMDIR)/%.o $(patsubst %,$(OBJDIR)/$(C
$(LIBDIR)/$(CALCDIR)/libcalc_%.so.1: $(OBJDIR)/$(CALCDIR)/calc_%.o
if [ ! -d $(LIBDIR) ] ; then mkdir $(LIBDIR) ; fi
if [ ! -d $(LIBDIR)/$(CALCDIR) ] ; then mkdir $(LIBDIR)/$(CALCDIR) ; fi
$(CC) $(LDFLAGS) -shared -Wl,-soname,libcalc_$*.so.1 -o $@ $<
$(CC) -shared -Wl,-soname,libcalc_$*.so.1 -o $@ $<
cd $(@D) ; ln -sf libcalc_$*.so.1 libcalc_$*.so
# Compile lib specific source files
@ -102,10 +113,10 @@ $(OBJDIR)/$(COMMDIR)/%.o: $(SRCDIR)/$(COMMDIR)/$$(*F).c $(INCDIR)/$$(*D)_comm.h
if [ ! -d $(OBJDIR)/$(COMMDIR) ] ; then mkdir $(OBJDIR)/$(COMMDIR) ; fi
if [ ! -d $(OBJDIR)/$(COMMDIR)/$(*D) ] ; then mkdir $(OBJDIR)/$(COMMDIR)/$(*D) ; fi
cd $(INCDIR) ; ln -sfT $(*D)_comm.h specific_comm.h
$(CC) $(CFLAGS) -I$(INCDIR) -I$(LOCALDIR)/$(PAPIHIGHLEVELINCDIR) $< -o $@
$(CC) $(CFLAGS) -I$(INCDIR) $< -o $@
$(OBJDIR)/%.o: $(SRCDIR)/$$(*F).c $(INCDIR)/$$(*D)_comm.h $(INCDIR)/commtech.h
if [ ! -d $(OBJDIR) ] ; then mkdir $(OBJDIR) ; fi
if [ ! -d $(OBJDIR)/$(*D) ] ; then mkdir $(OBJDIR)/$(*D) ; fi
cd $(INCDIR) ; ln -sfT $(*D)_comm.h specific_comm.h
$(CC) $(CFLAGS) -I$(INCDIR) -I$(LOCALDIR)/$(PAPIHIGHLEVELINCDIR) $< -o $@
$(CC) $(CFLAGS) -I$(INCDIR) -I$(LOCALDIR)/$(PHL_INCDIR) -I../$(PHLDIR)/$(PHL_INCDIR) $< -o $@