Skip to content

Commit 7dee054

Browse files
authored
Merge pull request #422 from mpaiao/mpaiao-pr-remove-mk-files
Simplify supported include.mk files (and system-dependent options).
2 parents 266aa04 + 639c2ac commit 7dee054

40 files changed

+873
-5419
lines changed

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,3 +166,13 @@ R-utils/read.q.quick.r
166166
#Xiangtao Ignores
167167
ED/build/ed2_gfortran
168168
ED/build/ed2_ifort
169+
#Include.mk ignores (and exceptions)
170+
ED/build/make/include.mk.*
171+
!ED/build/make/include.mk.docker.gnu
172+
!ED/build/make/include.mk.docker.intel
173+
!ED/build/make/include.mk.gnu
174+
!ED/build/make/include.mk.intel
175+
!ED/build/make/include.mk.macos
176+
!ED/build/make/include.mk.pgi
177+
!ED/build/make/include.mk.travisci
178+

ED/build/make/Makefile

Lines changed: 82 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,95 @@ ifeq ($(F_LOWO_OPTS),)
2020
endif
2121
#------------------------------------------------------------------------------------------#
2222

23-
ifeq ($(OPT),"dbg")
24-
INCLUDES = ""
23+
24+
25+
#------------------------------------------------------------------------------------------#
26+
# Make variables CMACH and FC_TYPE are correctly set. #
27+
#------------------------------------------------------------------------------------------#
28+
ifeq ($(CMACH),)
29+
CMACH_ERROR=Y
30+
else ifeq ($(CMACH),$(filter $(CMACH), LINUX MACOS))
31+
CMACH_ERROR=N
32+
else
33+
CMACH_ERROR=Y
34+
endif
35+
ifeq ($(FC_TYPE),)
36+
FCTYPE_ERROR=Y
37+
else ifeq ($(FC_TYPE),$(filter $(FC_TYPE), GNU INTEL PGI))
38+
FCTYPE_ERROR=N
39+
else
40+
FCTYPE_ERROR=Y
41+
endif
42+
#------------------------------------------------------------------------------------------#
43+
44+
45+
#------------------------------------------------------------------------------------------#
46+
# Gracefully fail if CMACH and FC_TYPE are not correctly set. This will allow users to #
47+
# make sure they selected a supported version. #
48+
#------------------------------------------------------------------------------------------#
49+
FATAL_ERROR=N
50+
ifeq ($(CMACH_ERROR),Y)
51+
$(info )
52+
$(info ---~---)
53+
$(info FATAL ERROR!)
54+
$(info ---~---)
55+
$(info Variable CMACH is either not defined or has an invalid value in your)
56+
$(info include.mk.[PLATFORM]. Please set to one of the following values)
57+
$(info )
58+
$(info CMACH=LINUX -- For Linux machines)
59+
$(info CMACH=MACOS -- For MacOS machines)
60+
$(info )
61+
$(info We currently do not support compilation in Windows. If you know how to set)
62+
$(info up ED2 to run on Windows machines, please submit a pull request.)
63+
$(info ---~---)
64+
$(info )
65+
FATAL_ERROR=Y
2566
endif
67+
ifeq ($(FCTYPE_ERROR),Y)
68+
$(info )
69+
$(info ---~---)
70+
$(info FATAL ERROR!)
71+
$(info ---~---)
72+
$(info Variable FC_TYPE is either not defined or has an invalid value in your)
73+
$(info include.mk.[PLATFORM]. Please set to one of the following values)
74+
$(info )
75+
$(info FC_TYPE=GNU -- To compile ED2 with gfortran/gcc)
76+
$(info FC_TYPE=INTEL -- To compile ED2 with ifx/icx, or ifort/icc in older systems)
77+
$(info FC_TYPE=PGI -- To compile ED2 with pgfortran/pgcc)
78+
$(info )
79+
$(info New types may be added in the future. Feel free to contribute with other)
80+
$(info compilers.)
81+
$(info ---~---)
82+
$(info )
83+
FATAL_ERROR=Y
84+
endif
85+
ifeq ($(FATAL_ERROR),Y)
86+
$(error CMACH and/or FC_TYPE are not properly set in your include.mk.[PLATFORM] file.)
87+
endif
88+
#------------------------------------------------------------------------------------------#
89+
90+
91+
92+
#----- Set parallel flag based on the settings. -------------------------------------------#
93+
ifeq ($(F_COMP),$(filter $(F_COMP), mpif90 mpifortran))
94+
PAR_DEFS=-DRAMS_MPI
95+
else ifdef $(PAR_LIBS)
96+
PAR_DEFS=-DRAMS_MPI
97+
else
98+
PAR_DEFS=
99+
endif
100+
#------------------------------------------------------------------------------------------#
101+
102+
26103

27104
#----- Compiler commands. -----------------------------------------------------------------#
28105
INCLUDES = $(PAR_INCS) -I$(ED_INCS) $(HDF5_INCS) $(MPI_INCS) $(LAPACK_INCS)
29106
F90_COMMAND = $(F_COMP) -c $(F_OPTS) $(INCLUDES) $(PAR_DEFS)
30107
F90_LOWO_COMMAND = $(F_COMP) -c $(F_LOWO_OPTS) $(INCLUDES) $(PAR_DEFS)
31-
FPP_COMMAND = $(F_COMP) -c -DUSE_INTERF=$(USE_INTERF) -DUSENC=$(USENC) -D$(CMACH) \
32-
-D$(FC_TYPE) -DUSE_COLLECTIVE_MPIO=$(USE_COLLECTIVE_MPIO) \
108+
FPP_COMMAND = $(F_COMP) -c -D$(CMACH) -D$(FC_TYPE) \
109+
-DUSE_COLLECTIVE_MPIO=$(USE_COLLECTIVE_MPIO) \
33110
-DUSE_MPIWTIME=$(USE_MPIWTIME) $(F_OPTS) $(INCLUDES) $(PAR_DEFS)
34-
FPP_LOWO_COMMAND = $(F_COMP) -c -DUSE_INTERF=$(USE_INTERF) -DUSENC=$(USENC) -D$(CMACH) \
111+
FPP_LOWO_COMMAND = $(F_COMP) -c -D$(CMACH) -D$(FC_TYPE) \
35112
-DUSE_COLLECTIVE_MPIO=$(USE_COLLECTIVE_MPIO) \
36113
-DUSE_MPIWTIME=$(USE_MPIWTIME) $(F_LOWO_OPTS) $(INCLUDES) $(PAR_DEFS)
37114
CXX_COMMAND = $(C_COMP) -c $(C_OPTS) -D$(CMACH) $(HDF5_INCS) $(INCLUDES) $(PAR_DEFS)

0 commit comments

Comments
 (0)