-
Notifications
You must be signed in to change notification settings - Fork 26
/
Makefile.ifort.windows
192 lines (165 loc) · 7.21 KB
/
Makefile.ifort.windows
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#################################################################
# Makefile created using the tool 'Creamake'
#
# Creamake is distributed under the GNU GPL license
# Author: Francisco Pena, fran.pena(at)usc.es
# Download page: http://sourceforge.net/projects/creamake/
#################################################################
#################################################################
# User-modifiable options
#################################################################
BMODLIB = basicmod\lib\libbasicmod.lib
# SOURCE AND COMMONS FOLDERS (separated by spaces)
dir_fuentes = source source\cuthill_mckee source\ansys source\patran \
source\unv source\mfm source\mum source\vtu source\mphtxt source\pmh \
source\flux source\freefem source\fem_extract source\gmsh source\main
# OBJECT AND .MOD FOLDER
dir_objetos = object
# MAIN SOURCE FILE (include relative path from folder where Makefile is)
condir_principal = source\main\main.f90
# EXECUTABLE NAME
ejecutable = feconv.exe
# NEEDED TO convert ejecutable THE DEFAULT RULE:
$(ejecutable): $(condir_principal)
# MODULES
modulos = module_field_database.f90 module_ALLOC_int_alloc_r2.f90 \
module_ALLOC_log_r2.f90 module_ALLOC_real_r2.f90 module_assign_references.f90 \
module_desplazamientos.f90 module_fuerzas.f90 module_cells.f90 \
module_dataset.f90 module_FE_DB.f90 module_groups.f90 module_patran.f90 \
module_mesh_unv.f90 module_mfm.f90 module_mum.f90 module_fe_database_pmh.f90 \
module_pmh.f90 module_utils_mphtxt.f90 module_write_mphtxt.f90 \
module_read_mphtxt.f90 module_manage_mphtxt.f90 module_mphtxt.f90 \
module_vtu.f90 module_pvd.f90 module_muf.f90 module_mff.f90 \
module_dataset_2467.f90 module_dataset_2414.f90 module_dataset_2412.f90 \
module_dataset_2411.f90 module_manage_unv.f90 module_unv.f90 \
module_utils_msh.f90 module_read_msh.f90 module_ip.f90 \
module_cuthill_mckee.f90 module_transform.f90 module_write_msh.f90 \
module_manage_msh.f90 module_msh.f90 module_dex.f90 module_utils_pf3.f90 \
module_read_pf3.f90 module_write_pf3.f90 module_manage_pf3.f90 module_pf3.f90 \
module_freefem.f90 module_fem_extract_complex.f90 module_fem_extract_real.f90 \
module_fem_extract.f90 module_gmsh.f90 module_feconv.f90
# MODULE DEPENDENCIES
# if pru1 depends on pru2... pru1.o: pru2.o
module_desplazamientos.obj: module_ALLOC_int_alloc_r2.obj \
module_ALLOC_real_r2.obj module_ALLOC_log_r2.obj
module_fuerzas.obj: module_ALLOC_int_alloc_r2.obj module_ALLOC_real_r2.obj
module_patran.obj: module_desplazamientos.obj module_fuerzas.obj \
module_groups.obj module_assign_references.obj
module_pmh.obj: module_fe_database_pmh.obj
module_utils_mphtxt.obj: module_pmh.obj
module_write_mphtxt.obj: module_pmh.obj module_utils_mphtxt.obj
module_read_mphtxt.obj: module_pmh.obj module_utils_mphtxt.obj
module_manage_mphtxt.obj: module_read_mphtxt.obj module_write_mphtxt.obj \
module_utils_mphtxt.obj
module_mphtxt.obj: module_manage_mphtxt.obj module_pmh.obj \
module_fe_database_pmh.obj
module_vtu.obj: module_pmh.obj module_fe_database_pmh.obj
module_pvd.obj: module_vtu.obj module_pmh.obj
module_muf.obj: module_pmh.obj
module_mff.obj: module_pmh.obj
module_dataset_2467.obj: module_dataset.obj module_mesh_unv.obj \
module_cells.obj module_groups.obj module_pmh.obj module_fe_database_pmh.obj
module_dataset_2414.obj: module_dataset.obj module_pmh.obj \
module_fe_database_pmh.obj
module_dataset_2412.obj: module_dataset.obj module_mesh_unv.obj \
module_FE_DB.obj module_cells.obj module_pmh.obj module_fe_database_pmh.obj
module_dataset_2411.obj: module_dataset.obj module_pmh.obj
module_manage_unv.obj: module_pmh.obj module_dataset_2411.obj \
module_dataset_2412.obj module_dataset_2467.obj module_dataset_2414.obj
module_unv.obj: module_pmh.obj module_fe_database_pmh.obj \
module_manage_unv.obj module_mesh_unv.obj
module_utils_msh.obj: module_pmh.obj module_fe_database_pmh.obj
module_read_msh.obj: module_pmh.obj module_utils_msh.obj
module_ip.obj: module_utils_msh.obj module_pmh.obj
module_cuthill_mckee.obj: module_vtu.obj
module_transform.obj: module_vtu.obj module_cuthill_mckee.obj module_pmh.obj
module_write_msh.obj: module_transform.obj module_pmh.obj module_utils_msh.obj
module_manage_msh.obj: module_transform.obj module_pmh.obj module_read_msh.obj \
module_write_msh.obj module_utils_msh.obj
module_msh.obj: module_pmh.obj module_fe_database_pmh.obj \
module_manage_msh.obj
module_dex.obj: module_pmh.obj
module_utils_pf3.obj: module_pmh.obj
module_read_pf3.obj: module_pmh.obj module_utils_pf3.obj
module_write_pf3.obj: module_pmh.obj module_utils_pf3.obj
module_manage_pf3.obj: module_read_pf3.obj module_write_pf3.obj
module_pf3.obj: module_manage_pf3.obj module_pmh.obj \
module_fe_database_pmh.obj
module_freefem.obj: module_fe_database_pmh.obj module_pmh.obj
module_fem_extract.obj: module_fem_extract_real.obj \
module_fem_extract_complex.obj
module_gmsh.obj: module_fe_database_pmh.obj module_pmh.obj
module_feconv.obj: module_transform.obj module_cuthill_mckee.obj \
module_msh.obj module_unv.obj module_patran.obj module_mfm.obj module_mum.obj \
module_vtu.obj module_pvd.obj module_mphtxt.obj module_pf3.obj \
module_field_database.obj module_mff.obj module_muf.obj module_freefem.obj \
module_pmh.obj module_fem_extract.obj module_gmsh.obj module_dex.obj \
module_ip.obj
# INCLUDES
includes = $(BMODLIB)
# COMPILER
FC = ifort
# COMPILER OPTIONS
FFLAGS = /module:$(dir_objetos) /nologo /stand:f15 /warn:all /check:all,noarg_temp_created /traceback /Ibasicmod\include
# LINKER OPTIONS
LDFLAGS = /static /link basicmod\lib\libbasicmod.lib
#################################################################
# Non-modifiable part
#################################################################
# SOURCE FOLDERS
VPATH = $(subst ,:,$(strip $(dir_fuentes)))
vpath %.obj $(dir_objetos)
# SOURCES
fuentes_ = $(filter %.f %.F %.for %.FOR %.f90 %.F90 %.f95 %.F95 %.f03 %.F03,$(shell dir /b $(dir_fuentes)))
fuentes = $(filter-out $(notdir $(condir_principal)) $(modulos),$(fuentes_))
# OBJECTS
modulos_obj = $(addsuffix .obj,$(basename $(modulos)))
fuentes_obj = $(addsuffix .obj,$(basename $(fuentes)))
# OBJECTS WIRH PATH
condir_modulos_obj = $(addprefix $(dir_objetos)/,$(modulos_obj))
condir_fuentes_obj = $(addprefix $(dir_objetos)/,$(fuentes_obj))
# COMPILATION OPTIONS
FFLAGS += $(patsubst %,/I%,$(dir_fuentes))
FFLAGS += /I$(dir_objetos)
# MAIN RULE
all: $(ejecutable)
$(ejecutable): $(includes) $(modulos_obj) $(fuentes_obj)
$(FC) /exe:$(ejecutable) $(FFLAGS) $(condir_principal) $(condir_modulos_obj) $(condir_fuentes_obj) $(LDFLAGS)
# SOURCES RULE
$(fuentes_obj): $(includes) $(modulos_obj)
# RULE PATTERNS
%.obj:%.f
$(FC) /c $(FFLAGS) $<
copy $@ $(dir_objetos)
del $@
%.obj:%.F
$(FC) /c $(FFLAGS) $<
copy $@ $(dir_objetos)
del $@
%.obj:%.for
$(FC) /c $(FFLAGS) $<
copy $@ $(dir_objetos)
del $@
%.obj:%.FOR
$(FC) /c $(FFLAGS) $<
copy $@ $(dir_objetos)
del $@
%.obj:%.f90
$(FC) /c $(FFLAGS) $<
copy $@ $(dir_objetos)
del $@
%.obj:%.F90
$(FC) /c $(FFLAGS) $<
copy $@ $(dir_objetos)
del $@
.PHONY: lib cleanlib
lib: $(BMODLIB)
$(BMODLIB):
${MAKE} -f Makefile.static.ifort.windows -C basicmod
cleanlib: clean
${MAKE} -f Makefile.static.ifort.windows -C basicmod cleanlib
.PHONY: clean
clean:
-del $(dir_objetos)\*.obj
-del $(dir_objetos)\*.mod
-del $(ejecutable)