comm lib have their own directory as calc libs
This commit is contained in:
parent
cc1bde60c9
commit
e39c05664a
|
@ -9,6 +9,7 @@ LOCALDIR:=$(HOME)/local
|
||||||
PAPIHIGHLEVELLIBDIR:=lib
|
PAPIHIGHLEVELLIBDIR:=lib
|
||||||
PAPIHIGHLEVELINCDIR:=include
|
PAPIHIGHLEVELINCDIR:=include
|
||||||
CALCDIR:=calculation
|
CALCDIR:=calculation
|
||||||
|
COMMDIR:=communication
|
||||||
|
|
||||||
# Compilation flags
|
# Compilation flags
|
||||||
# I know -finline-functions and -finline-functions-called-once are enabled by
|
# I know -finline-functions and -finline-functions-called-once are enabled by
|
||||||
|
@ -23,8 +24,8 @@ CC=gcc
|
||||||
BINNAMES:=asm_cache_comm c_cache_comm pipe_comm shared_mem_comm shared_mem_opt_comm jikes_barrier_comm fake_comm
|
BINNAMES:=asm_cache_comm c_cache_comm pipe_comm shared_mem_comm shared_mem_opt_comm jikes_barrier_comm fake_comm
|
||||||
CALCLIBSNAMES:=calc_mat
|
CALCLIBSNAMES:=calc_mat
|
||||||
BINS:=$(patsubst %,$(BINDIR)/%,$(BINNAMES))
|
BINS:=$(patsubst %,$(BINDIR)/%,$(BINNAMES))
|
||||||
CALCLIBS:=$(patsubst %,$(LIBDIR)/lib%.so.1,$(CALCLIBSNAMES))
|
CALCLIBS:=$(patsubst %,$(LIBDIR)/$(CALCDIR)/lib%.so.1,$(CALCLIBSNAMES))
|
||||||
MAIN_OBJS:=main.o common.o
|
MAIN_OBJS:=main.o
|
||||||
COMMON_LIB_OBJS:=common.o
|
COMMON_LIB_OBJS:=common.o
|
||||||
|
|
||||||
.PHONY: all tidy clean distclean
|
.PHONY: all tidy clean distclean
|
||||||
|
@ -34,23 +35,27 @@ COMMON_LIB_OBJS:=common.o
|
||||||
default: $(BINS) $(CALCLIBS)
|
default: $(BINS) $(CALCLIBS)
|
||||||
|
|
||||||
# Compilation of binary
|
# Compilation of binary
|
||||||
$(BINDIR)/%_comm: $(patsubst %,$(OBJDIR)/\%/%,$(MAIN_OBJS)) $(LIBDIR)/lib%.a
|
$(BINDIR)/%_comm: $(patsubst %,$(OBJDIR)/\%/%,$(MAIN_OBJS)) $(LIBDIR)/$(COMMDIR)/lib%.a
|
||||||
if [ ! -d $(BINDIR) ] ; then mkdir $(BINDIR) ; fi
|
if [ ! -d $(BINDIR) ] ; then mkdir $(BINDIR) ; fi
|
||||||
$(CC) -o $@ $^ $(LDFLAGS)
|
$(CC) -o $@ $^ $(LDFLAGS)
|
||||||
|
|
||||||
# Creation of comm library
|
# Creation of comm library
|
||||||
$(LIBDIR)/lib%.a: $(OBJDIR)/%.o $(patsubst %,$(OBJDIR)/\%/%,$(COMMON_LIB_OBJS))
|
$(LIBDIR)/$(COMMDIR)/lib%.a: $(OBJDIR)/$(COMMDIR)/%.o $(patsubst %,$(OBJDIR)/$(COMMDIR)/\%/%,$(COMMON_LIB_OBJS))
|
||||||
if [ ! -d $(LIBDIR) ] ; then mkdir $(LIBDIR) ; fi
|
if [ ! -d $(LIBDIR) ] ; then mkdir $(LIBDIR) ; fi
|
||||||
|
if [ ! -d $(LIBDIR)/$(COMMDIR) ] ; then mkdir $(LIBDIR)/$(COMMDIR) ; fi
|
||||||
$(AR) -rcus $@ $^
|
$(AR) -rcus $@ $^
|
||||||
|
|
||||||
# Creation of calc library
|
# Creation of calc library
|
||||||
$(LIBDIR)/libcalc_%.so.1: $(OBJDIR)/$(CALCDIR)/calc_%.o
|
$(LIBDIR)/$(CALCDIR)/libcalc_%.so.1: $(OBJDIR)/$(CALCDIR)/calc_%.o
|
||||||
if [ ! -d $(LIBDIR) ] ; then mkdir $(LIBDIR) ; fi
|
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) $(LDFLAGS) -shared -Wl,-soname,libcalc_$*.so.1 -o $@ $<
|
||||||
|
cd $(@D) ; ln -sf libcalc_$*.so.1 libcalc_$*.so
|
||||||
|
|
||||||
# Compile lib specific source files
|
# Compile lib specific source files
|
||||||
$(OBJDIR)/%.o: $(SRCDIR)/%.c $(INCDIR)/%_comm.h $(INCDIR)/commtech.h
|
$(OBJDIR)/$(COMMDIR)/%.o: $(SRCDIR)/$(COMMDIR)/%.c $(INCDIR)/%_comm.h $(INCDIR)/commtech.h
|
||||||
if [ ! -d $(OBJDIR) ] ; then mkdir $(OBJDIR) ; fi
|
if [ ! -d $(OBJDIR) ] ; then mkdir $(OBJDIR) ; fi
|
||||||
|
if [ ! -d $(OBJDIR)/$(COMMDIR) ] ; then mkdir $(OBJDIR)/$(COMMDIR) ; fi
|
||||||
cd $(INCDIR) ; ln -sfT $*_comm.h specific_comm.h
|
cd $(INCDIR) ; ln -sfT $*_comm.h specific_comm.h
|
||||||
$(CC) $(CFLAGS) -I$(INCDIR) -c $< -o $@
|
$(CC) $(CFLAGS) -I$(INCDIR) -c $< -o $@
|
||||||
|
|
||||||
|
@ -92,9 +97,15 @@ distclean: clean
|
||||||
.SECONDEXPANSION:
|
.SECONDEXPANSION:
|
||||||
|
|
||||||
# Compile common source files using libcomm
|
# Compile common source files using libcomm
|
||||||
|
$(OBJDIR)/$(COMMDIR)/%.o: $(SRCDIR)/$(COMMDIR)/$$(*F).c $(INCDIR)/$$(*D)_comm.h $(INCDIR)/commtech.h
|
||||||
|
if [ ! -d $(OBJDIR) ] ; then mkdir $(OBJDIR) ; fi
|
||||||
|
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) -c $< -o $@
|
||||||
|
|
||||||
$(OBJDIR)/%.o: $(SRCDIR)/$$(*F).c $(INCDIR)/$$(*D)_comm.h $(INCDIR)/commtech.h
|
$(OBJDIR)/%.o: $(SRCDIR)/$$(*F).c $(INCDIR)/$$(*D)_comm.h $(INCDIR)/commtech.h
|
||||||
if [ ! -d $(OBJDIR) ] ; then mkdir $(OBJDIR) ; fi
|
if [ ! -d $(OBJDIR) ] ; then mkdir $(OBJDIR) ; fi
|
||||||
if [ ! -d $(OBJDIR)/$(*D) ] ; then mkdir $(OBJDIR)/$(*D) ; fi
|
if [ ! -d $(OBJDIR)/$(*D) ] ; then mkdir $(OBJDIR)/$(*D) ; fi
|
||||||
cd $(INCDIR) ; ln -sfT $(*D)_comm.h specific_comm.h
|
cd $(INCDIR) ; ln -sfT $(*D)_comm.h specific_comm.h
|
||||||
$(CC) $(CFLAGS) -I$(INCDIR) -I$(LOCALDIR)/$(PAPIHIGHLEVELINCDIR) -c $< -o $@
|
$(CC) $(CFLAGS) -I$(INCDIR) -I$(LOCALDIR)/$(PAPIHIGHLEVELINCDIR) -c $< -o $@
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ set -u
|
||||||
|
|
||||||
# Files and directories
|
# Files and directories
|
||||||
binDir="bin"
|
binDir="bin"
|
||||||
thisScript="$0"
|
calcDir="calculation"
|
||||||
|
|
||||||
# Param
|
# Param
|
||||||
binList="asm_cache_comm c_cache_comm pipe_comm shared_mem_comm shared_mem_opt_comm jikes_barrier_comm fake_comm" # Type de communication
|
binList="asm_cache_comm c_cache_comm pipe_comm shared_mem_comm shared_mem_opt_comm jikes_barrier_comm fake_comm" # Type de communication
|
||||||
|
@ -60,7 +60,7 @@ unset LD_LIBRARY_PATH_LEFT
|
||||||
function_run () {
|
function_run () {
|
||||||
case $typeProd in
|
case $typeProd in
|
||||||
"none" ) optTypeProd="" ;;
|
"none" ) optTypeProd="" ;;
|
||||||
"matrice" ) optTypeProd="-c $thisScript" ;;
|
"matrice" ) optTypeProd="-c lib/${calcDir}/libcalc_mat.so" ;;
|
||||||
* ) exit 1 ;;
|
* ) exit 1 ;;
|
||||||
esac
|
esac
|
||||||
case $typeCache in
|
case $typeCache in
|
||||||
|
|
Loading…
Reference in New Issue