Commit 997e4e2c authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Merge branch 'containers' into 'master'

Draft: update Makefiles to build libnptm library, then link to it

See merge request giacomo.mulas/np_tmcode!19
parents d01e05af e1d4e4cb
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3,5 +3,7 @@ build/cluster/*
build/sphere/*
build/testing/*
build/trapping/*
build/libnptm/*
doc/build/*
src/objects/*
 No newline at end of file
src/*/objects/*
src/*/dynobjects/*
+8 −7
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ building_stage:
         - build/sphere/*
         - build/testing/*
         - build/trapping/*
         - build/libnptm/*
         - doc/build/*
      exclude:
         - ".git*"
@@ -47,19 +48,19 @@ building_stage:
      - cat /etc/os-release
      - cd src
      - echo "Running make with gnu compilers version 11..."
      - make clean && BUILDDIR=$PWD/../build_gnu11 CXX=g++-11 FC=gfortran-11 make
      - make clean && BUILDDIR=$PWD/../build_gnu11 CXX=g++-11 FC=gfortran-11 make -j
      - echo "Running make with gnu compilers version 12..."
      - make clean && BUILDDIR=$PWD/../build_gnu12 CXX=g++-12 FC=gfortran-12 make
      - make clean && BUILDDIR=$PWD/../build_gnu12 CXX=g++-12 FC=gfortran-12 make -j
      - echo "Running make with gnu fortran version 12 and clang version 13..."
      - make clean && BUILDDIR=$PWD/../build_clang13 CXX="clang++-13 -stdlib=libc++" FC=gfortran-12 make
      - make clean && BUILDDIR=$PWD/../build_clang13 CXX="clang++-13 -stdlib=libc++" FC=gfortran-12 make -j
      - echo "Running make with gnu fortran version 12 and clang version 14..."
      - make clean && BUILDDIR=$PWD/../build_clang14 CXX="clang++-14 -stdlib=libc++" FC=gfortran-12 make
      - make clean && BUILDDIR=$PWD/../build_clang14 CXX="clang++-14 -stdlib=libc++" FC=gfortran-12 make -j
      - echo "Running make with gnu fortran version 12 and clang version 15..."
      - make clean && BUILDDIR=$PWD/../build_clang15 CXX="clang++-15 -stdlib=libc++" FC=gfortran-12 make
      - make clean && BUILDDIR=$PWD/../build_clang15 CXX="clang++-15 -stdlib=libc++" FC=gfortran-12 make -j
      - echo "Running make with gnu fortran version 12 and clang version 16..."
      - make clean && BUILDDIR=$PWD/../build_clang16 CXX="clang++-16 -stdlib=libc++" FC=gfortran-12 make
      - make clean && BUILDDIR=$PWD/../build_clang16 CXX="clang++-16 -stdlib=libc++" FC=gfortran-12 make -j
      - echo "Finally running make with default compilers..."
      - make clean && make
      - make clean && make -j
      - make docs -j && make -C ../doc/build/latex -j

running_stage:
+0 −0

File moved.

+26 −11
Original line number Diff line number Diff line
@@ -4,9 +4,17 @@ OBJDIR=$(SRCDIR)/objects
ifndef BUILDDIR
override BUILDDIR=$(SRCDIR)/../build
endif
ifndef BUILDDIR_NPTM
override BUILDDIR_NPTM=$(BUILDDIR)/libnptm
endif
ifndef LIBNPTM
# choose one of the two following lines, depending on whether a static or dynamic libnptm is wanted
override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.a
#override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.so
endif
DOCSDIR=$(SRCDIR)/../doc

all: $(SUBDIRS) $(BUILDDIR)
all: $(BUILDDIR) $(SUBDIRS) 

docs:
	cd $(DOCSDIR)/src; doxygen config.dox
@@ -14,20 +22,27 @@ docs:
$(BUILDDIR):
	mkdir -p $(BUILDDIR)

$(SUBDIRS): $(BUILDDIR)
	$(MAKE) -C $@
$(LIBNPTM):
	#echo "BUILDDIR_NPTM in libnptm is $(BUILDDIR_NPTM)"
	#echo "LIBNPTM in libnptm is $(LIBNPTM)"
	BUILDDIR=$(BUILDDIR) BUILDDIR_NPTM=$(BUILDDIR_NPTM) LIBNPTM=$(LIBNPTM) $(MAKE) -C libnptm $@

$(SUBDIRS): $(BUILDDIR) $(LIBNPTM)
	BUILDDIR=$(BUILDDIR) BUILDDIR_NPTM=$(BUILDDIR_NPTM) LIBNPTM=$(LIBNPTM) $(MAKE) -C $@

clean: $(BUILDDIR)
	$(MAKE) -C cluster clean
	$(MAKE) -C sphere clean
	$(MAKE) -C trapping clean
	$(MAKE) -C testing clean
	BUILDDIR=$(BUILDDIR) $(MAKE) -C cluster clean
	BUILDDIR=$(BUILDDIR) $(MAKE) -C sphere clean
	BUILDDIR=$(BUILDDIR) $(MAKE) -C trapping clean
	BUILDDIR=$(BUILDDIR) $(MAKE) -C testing clean
	BUILDDIR=$(BUILDDIR) BUILDDIR_NPTM=$(BUILDDIR_NPTM) $(MAKE) -C libnptm clean

wipe: $(BUILDDIR)
	$(MAKE) -C cluster wipe
	$(MAKE) -C sphere wipe
	$(MAKE) -C trapping wipe
	$(MAKE) -C testing wipe
	BUILDDIR=$(BUILDDIR) $(MAKE) -C cluster wipe
	BUILDDIR=$(BUILDDIR) $(MAKE) -C sphere wipe
	BUILDDIR=$(BUILDDIR) $(MAKE) -C trapping wipe
	BUILDDIR=$(BUILDDIR) $(MAKE) -C testing wipe
	BUILDDIR=$(BUILDDIR) BUILDDIR_NPTM=$(BUILDDIR_NPTM) $(MAKE) -C libnptm wipe
	if [ -d $(DOCSDIR)/build/html ]; then rm -r $(DOCSDIR)/build/html; fi
	if [ -d $(DOCSDIR)/build/latex ]; then rm -r $(DOCSDIR)/build/latex; fi

+23 −7
Original line number Diff line number Diff line
@@ -5,7 +5,15 @@ ifndef BUILDDIR_CLU
override BUILDDIR_CLU=$(BUILDDIR)/cluster
endif
ifndef OBJDIR
override OBJDIR=../objects
override OBJDIR=./objects
endif
ifndef BUILDDIR_NPTM
override BUILDDIR_NPTM=$(BUILDDIR)/libnptm
endif
ifndef LIBNPTM
# choose one of the two following lines, depending on whether a static or dynamic libnptm is wanted
override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.a
#override LIBNPTM=$(BUILDDIR_NPTM)/libnpTm.so
endif

include ../make.inc
@@ -13,22 +21,30 @@ include ../make.inc

F_CLU_OBJS=$(OBJDIR)/clu.o $(OBJDIR)/edfb_clu.o

CXX_CLU_OBJS=$(OBJDIR)/np_cluster.o $(OBJDIR)/Commons.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o $(OBJDIR)/sph_subs.o $(OBJDIR)/clu_subs.o $(OBJDIR)/cluster.o $(OBJDIR)/TransitionMatrix.o
#CXX_CLU_OBJS=$(OBJDIR)/np_cluster.o $(OBJDIR)/Commons.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o $(OBJDIR)/sph_subs.o $(OBJDIR)/clu_subs.o $(OBJDIR)/cluster.o $(OBJDIR)/TransitionMatrix.o
CXX_CLU_OBJS=$(OBJDIR)/np_cluster.o $(OBJDIR)/cluster.o $(LIBNPTM)


all: $(LIBNPTM) $(BUILDDIR_CLU)/clu $(BUILDDIR_CLU)/edfb_clu $(BUILDDIR_CLU)/np_cluster

$(OBJDIR):
	mkdir -p $(OBJDIR)

all: $(BUILDDIR_CLU)/clu $(BUILDDIR_CLU)/edfb_clu $(BUILDDIR_CLU)/np_cluster
$(LIBNPTM):
	BUILDDIR=$(BUILDDIR) BUILDDIR_NPTM=$(BUILDDIR_NPTM) LIBNPTM=$(LIBNPTM) $(MAKE) -C ../libnptm $@

$(BUILDDIR_CLU):
	mkdir -p $(BUILDDIR_CLU)

$(BUILDDIR_CLU)/clu: $(OBJDIR)/clu.o $(BUILDDIR_CLU)
$(BUILDDIR_CLU)/clu: $(OBJDIR) $(OBJDIR)/clu.o $(BUILDDIR_CLU)
	$(FC) $(FCFLAGS) -o $(BUILDDIR_CLU)/clu $(OBJDIR)/clu.o $(LDFLAGS)

$(BUILDDIR_CLU)/edfb_clu: $(OBJDIR)/edfb_clu.o $(BUILDDIR_CLU)
$(BUILDDIR_CLU)/edfb_clu: $(OBJDIR) $(OBJDIR)/edfb_clu.o $(BUILDDIR_CLU)
	$(FC) $(FCFLAGS) -o $(BUILDDIR_CLU)/edfb_clu $(OBJDIR)/edfb_clu.o $(LDFLAGS)

$(BUILDDIR_CLU)/np_cluster: $(CXX_CLU_OBJS) $(BUILDDIR_CLU)
	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_CLU)/np_cluster $(CXX_CLU_OBJS) $(CXXLDFLAGS) 
# We put $(LIBNPTM) as an object to link in directly, so that it will be found at runtime even if it is a shared object library. May change in the future when we have an install: target
$(BUILDDIR_CLU)/np_cluster: $(OBJDIR) $(CXX_CLU_OBJS) $(BUILDDIR_CLU) $(LIBNPTM)
	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_CLU)/np_cluster $(CXX_CLU_OBJS) $(LIBNPTM) $(CXXLDFLAGS) 

clean:
	rm -f $(F_CLU_OBJS) $(CXX_CLU_OBJS)
Loading