Skip to content
Snippets Groups Projects
Commit 41187a2c authored by Antoine Cyril David Hoffmann's avatar Antoine Cyril David Hoffmann :seedling:
Browse files

Simplification of the makefile and dirs.inc (should work on any plateforme)

parent 732bea8f
No related branches found
No related tags found
No related merge requests found
include local/dirs.inc include local/dirs.inc
include local/make.inc include local/make.inc
#Different namings depending on the make input
EXEC = $(BINDIR)/gyacomo #all # Standard version with optimized compilation (ifort compiler)
EFST = $(BINDIR)/gyacomo_fast #fast all: F90 = mpif90
EDBG = $(BINDIR)/gyacomo_debug #debug
EALP = $(BINDIR)/gyacomo_alpha #alpha
EGFT = $(BINDIR)/gyacomo_gfort #gfort version
# F90 = mpiifort
F90 = mpif90
# #F90 = ftn #for piz-daint cluster
# # Add Multiple-Precision Library
# EXTLIBS += -L$(FMDIR)/lib
# EXTINC += -I$(FMDIR)/mod
# # Add local fftw dir
# EXTLIBS += -L$(FFTWDIR)/lib
# EXTINC += -I$(FFTWDIR)/include
# # Add lapack
# EXTLIBS += -L$(LAPACKDIR)/lib
# EXTINC += -I$(LAPACKDIR)/mod
# Standard version with optimized compilation
all: dirs src/srcinfo.h
all: F90FLAGS = -O3 -xHOST all: F90FLAGS = -O3 -xHOST
all: $(EXEC) all: EXEC = $(BINDIR)/gyacomo
all: dirs src/srcinfo.h
all: compile
# Fast compilation # Fast compilation
fast: dirs src/srcinfo.h fast: F90 = mpif90
fast: F90FLAGS = -fast fast: F90FLAGS = -fast
fast: $(EFST) fast: EXEC = $(BINDIR)/gyacomo_fast
fast: dirs src/srcinfo.h
fast: compile
# Debug version with all flags # Debug version with all flags
debug: dirs src/srcinfo.h debug: F90 = mpif90
debug: F90FLAGS = -C -g -traceback -ftrapuv -warn all -debug all debug: F90FLAGS = -C -g -traceback -ftrapuv -warn all -debug all
# debug: F90FLAGS = -g -traceback -check all -ftrapuv -warn all -debug all debug: EXEC = $(BINDIR)/gyacomo_debug
debug: $(EDBG) debug: dirs src/srcinfo.h
# Alpha version, optimized as all but creates another binary debug: compile
alpha: dirs src/srcinfo.h
alpha: F90FLAGS = -O3 -xHOST # For compiling on marconi
alpha: $(EALP) marconi: F90 = mpiifort
# gfortran version, compile with gfortran marconi: F90FLAGS = -O3 -xHOST
gfort: dirs src/srcinfo.h marconi: EXEC = $(BINDIR)/gyacomo
gfort: F90FLAGS = -g -std=legacy -ffree-line-length-0 marconi: dirs src/srcinfo.h
gfort: EXTMOD = -J $(MODDIR) marconi: compile
gfort: $(EGFT)
install: dirs src/srcinfo.h $(EXEC) mvmod # For compiling on daint
daint: F90 = ftn
run: all daint: F90FLAGS = -O3
(cd wk; $(EXEC);) daint: EXEC = $(BINDIR)/gyacomo
daint: dirs src/srcinfo.h
daint: compile
# gfortran opt version, for compilation with gfortran
gopt: F90 = mpif90
gopt: F90FLAGS = -O3 -std=legacy -ffree-line-length-0
gopt: EXTMOD = -J $(MODDIR)
gopt: EXEC = $(BINDIR)/gyacomo
gopt: dirs src/srcinfo.h
gopt: compile
# gfortran version, compile with gfortran
gdebug: F90 = mpif90
gdebug: F90FLAGS = -C -g -std=legacy -ffree-line-length-0
gdebug: EXTMOD = -J $(MODDIR)
gdebug: EXEC = $(BINDIR)/gyacomo_debug
gdebug: dirs src/srcinfo.h
gdebug: compile
# subroutines
dirs: dirs:
mkdir -p $(BINDIR) mkdir -p $(BINDIR)
mkdir -p $(OBJDIR) mkdir -p $(OBJDIR)
mkdir -p $(MODDIR) mkdir -p $(MODDIR)
src/srcinfo.h: src/srcinfo.h:
( cd src/srcinfo; $(MAKE);) ( cd src/srcinfo; $(MAKE);)
clean: cleanobj cleanmod clean: cleanobj cleanmod
@rm -f src/srcinfo.h @rm -f src/srcinfo.h
@rm -f src/srcinfo/srcinfo.h @rm -f src/srcinfo/srcinfo.h
cleanobj: cleanobj:
@rm -f $(OBJDIR)/*o @rm -f $(OBJDIR)/*o
cleanmod: cleanmod:
@rm -f $(MODDIR)/*mod @rm -f $(MODDIR)/*mod
@rm -f *.mod @rm -f *.mod
cleanbin:
@rm -f $(EXEC)
mvmod: mvmod:
mv *.mod mod/. mv *.mod mod/.
# attach git info
$(OBJDIR)/diagnose.o : src/srcinfo.h $(OBJDIR)/diagnose.o : src/srcinfo.h
# Main source dependencies
FOBJ=$(OBJDIR)/advance_field_mod.o $(OBJDIR)/array_mod.o $(OBJDIR)/auxval.o \ FOBJ=$(OBJDIR)/advance_field_mod.o $(OBJDIR)/array_mod.o $(OBJDIR)/auxval.o \
$(OBJDIR)/basic_mod.o $(OBJDIR)/coeff_mod.o $(OBJDIR)/closure_mod.o \ $(OBJDIR)/basic_mod.o $(OBJDIR)/coeff_mod.o $(OBJDIR)/closure_mod.o \
$(OBJDIR)/collision_mod.o $(OBJDIR)/nonlinear_mod.o $(OBJDIR)/control.o \ $(OBJDIR)/collision_mod.o $(OBJDIR)/nonlinear_mod.o $(OBJDIR)/control.o \
...@@ -86,21 +88,11 @@ $(OBJDIR)/processing_mod.o $(OBJDIR)/readinputs.o $(OBJDIR)/restarts_mod.o \ ...@@ -86,21 +88,11 @@ $(OBJDIR)/processing_mod.o $(OBJDIR)/readinputs.o $(OBJDIR)/restarts_mod.o \
$(OBJDIR)/solve_EM_fields.o $(OBJDIR)/stepon.o $(OBJDIR)/tesend.o \ $(OBJDIR)/solve_EM_fields.o $(OBJDIR)/stepon.o $(OBJDIR)/tesend.o \
$(OBJDIR)/time_integration_mod.o $(OBJDIR)/utility_mod.o $(OBJDIR)/time_integration_mod.o $(OBJDIR)/utility_mod.o
$(EXEC): $(FOBJ) # To compile the executable
$(F90) $(LDFLAGS) $(OBJDIR)/*.o $(EXTMOD) $(EXTINC) $(EXTLIBS) -o $@ compile: $(FOBJ)
$(F90) $(LDFLAGS) $(OBJDIR)/*.o $(EXTMOD) $(EXTINC) $(EXTLIBS) -o $(EXEC)
$(EFST): $(FOBJ)
$(F90) $(LDFLAGS) $(OBJDIR)/*.o $(EXTMOD) $(EXTINC) $(EXTLIBS) -o $@
$(EDBG): $(FOBJ)
$(F90) $(LDFLAGS) $(OBJDIR)/*.o $(EXTMOD) $(EXTINC) $(EXTLIBS) -o $@
$(EALP): $(FOBJ)
$(F90) $(LDFLAGS) $(OBJDIR)/*.o $(EXTMOD) $(EXTINC) $(EXTLIBS) -o $@
$(EGFT): $(FOBJ)
$(F90) $(LDFLAGS) $(OBJDIR)/*.o $(EXTMOD) $(EXTINC) $(EXTLIBS) -o $@
# Modules compilation
$(OBJDIR)/advance_field_mod.o : src/advance_field_mod.F90 \ $(OBJDIR)/advance_field_mod.o : src/advance_field_mod.F90 \
$(OBJDIR)/grid_mod.o $(OBJDIR)/array_mod.o $(OBJDIR)/initial_par_mod.o \ $(OBJDIR)/grid_mod.o $(OBJDIR)/array_mod.o $(OBJDIR)/initial_par_mod.o \
$(OBJDIR)/prec_const_mod.o $(OBJDIR)/time_integration_mod.o $(OBJDIR)/basic_mod.o \ $(OBJDIR)/prec_const_mod.o $(OBJDIR)/time_integration_mod.o $(OBJDIR)/basic_mod.o \
......
...@@ -6,6 +6,7 @@ OBJDIR = $(PREFIX)/obj ...@@ -6,6 +6,7 @@ OBJDIR = $(PREFIX)/obj
LIBDIR = $(PREFIX)/lib LIBDIR = $(PREFIX)/lib
MODDIR = $(PREFIX)/mod MODDIR = $(PREFIX)/mod
HDF5_LIB = /usr/local/hdf5-1.8.22/lib
FMDIR = $(HOME)/lib/FM FMDIR = $(HOME)/lib/FM
FFTW3DIR = $(HOME)/lib/fftw-3.3.8 FFTW3DIR = $(HOME)/lib/fftw-3.3.8
#FFTW3DIR = $(FFTW_HOME)#for Marconi #FFTW3DIR = $(FFTW_HOME)#for Marconi
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment