diff --git a/communication_techniques/Makefile b/communication_techniques/Makefile index 0bdbf00..acdb948 100644 --- a/communication_techniques/Makefile +++ b/communication_techniques/Makefile @@ -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 $@