1MPIDIR                  = @mpidir@
2MPIBINDIR               = @mpibindir@
3MPILIBDIR               = @mpilibdir@
4MPIINCDIR               = @mpiincdir@
5MPILIBS                 = @mpilibs@
6
7HECMWDIR                = ../../../hecmw1
8HECMWBINDIR             = $(HECMWDIR)/bin
9HECMWLIBDIR             = $(HECMWDIR)/lib
10HECMWINCDIR             = $(HECMWDIR)/include
11HECMWLIBS               = @hecmwlibs@
12
13FSTRBINDIR              = ../../bin
14FSTRLIBDIR              = ../../lib
15FSTRINCDIR              = ../../include
16FSTRLIBS                = @fstrlibs@
17
18METISDIR                = @metisdir@
19METISLIBDIR             = @metislibdir@
20METISINCDIR             = @metisincdir@
21METISLIBS               = @metislibs@
22METIS_CFLAGS            = @metis_cflags@
23METIS_LDFLAGS           = @metis_ldflags@
24METIS_F90FLAGS          = @metis_f90flags@
25METIS_F90LDFLAGS        = @metis_f90ldflags@
26HECMW_METIS_VER         = -DHECMW_METIS_VER=@hecmw_metis_ver@
27
28MUMPSDIR                = @mumpsdir@
29MUMPSLIBDIR             = @mumpslibdir@
30MUMPSINCDIR             = @mumpsincdir@
31MUMPSLIBS               = @mumpslibs@
32MUMPS_CFLAGS            = @mumps_cflags@
33MUMPS_LDFLAGS           = @mumps_ldflags@
34MUMPS_F90FLAGS          = @mumps_f90flags@
35MUMPS_F90LDFLAGS        = @mumps_f90ldflags@
36
37REVOCAPDIR              = @revocapdir@
38REVOCAPINCDIR           = @revocapincdir@
39REVOCAPLIBDIR           = @revocaplibdir@
40REVOCAPLIBS             = @revocaplibs@
41
42CC                      = @cc@
43CFLAGS                  = @cflags@
44BASE_CFLAGS             = @base_cflags@
45MPI_CFLAGS              = @mpi_cflags@
46HECMW_CFLAGS            = @hecmw_cflags@
47FSTR_CFLAGS             = @fstr_cflags@
48ALL_CFLAGS              = $(BASE_CFLAGS) $(FSTR_CFLAGS) $(HECMW_CFLAGS) $(MPI_CFLAGS) $(CFLAGS)
49LDFLAGS                 = @ldflags@
50MPI_LDFLAGS             = @mpi_ldflags@
51HECMW_LDFLAGS           = @hecmw_ldflags@
52FSTR_LDFLAGS            = @fstr_ldflags@
53ALL_LDFLAGS             = $(FSTR_LDFLAGS) $(HECMW_LDFLAGS) $(MPI_LDFLAGS) $(LDFLAGS)
54OPTFLAGS                = @optflags@
55
56REVOCAP_F90FLAGS        = @revocap_f90flags@
57REVOCAP_F90LDFLAGS      = @revocap_f90ldflags@
58
59F90                     = @f90@
60F90FLAGS                = @f90flags@
61BASE_F90FLAGS           = @base_f90flags@
62MPI_F90FLAGS            = @mpi_f90flags@
63HECMW_F90FLAGS          = @hecmw_f90flags@
64FSTR_F90FLAGS           = @fstr_f90flags@
65ALL_F90FLAGS            = $(BASE_F90FLAGS) $(FSTR_F90FLAGS) $(HECMW_F90FLAGS) $(MPI_F90FLAGS) $(F90FLAGS) $(REVOCAP_F90FLAGS) $(MUMPS_F90FLAGS) $(METIS_F90FLAGS)
66F90LDFLAGS              = @f90ldflags@
67MPI_F90LDFLAGS          = @mpi_f90ldflags@
68HECMW_F90LDFLAGS        = @hecmw_f90ldflags@
69FSTR_F90LDFLAGS         = @fstr_f90ldflags@
70ALL_F90LDFLAGS          = $(FSTR_F90LDFLAGS) $(HECMW_F90LDFLAGS) $(MPI_F90LDFLAGS) $(F90LDFLAGS) $(MUMPS_F90LDFLAGS)
71F90FPP                  = @f90fpp@
72F90OPTFLAGS             = @f90optflags@
73
74AR                      = @ar@
75CP                      = @cp@
76RM                      = @rm@
77RANLIB                  = @ranlib@
78MKDIR                   = @mkdir@
79
80#------------------------------------------------------------------------------#
81TARGET                  = @fstrlib_targetfile@
82F90TARGET               = @fstrlib_f90targetfile@
83
84F90MODULEPOSTFIX        = @f90modulepostfix@
85COBJFILEPOSTFIX         = @cobjfilepostfix@
86F90OBJFILEPOSTFIX       = @f90objfilepostfix@
87
88#------------------------------------------------------------------------------#
89.SUFFIXES:
90.SUFFIXES: .@cobjfilepostfix@ .@f90objfilepostfix@ .c .f90 .F90 .f
91
92.c.@cobjfilepostfix@:
93	$(CC) -c $(ALL_CFLAGS) $(OPTFLAGS) $< -o $@
94
95.f90.@f90objfilepostfix@:
96	$(F90) -c $(ALL_F90FLAGS) $(F90OPTFLAGS) $< -o $@
97
98.F90.@f90objfilepostfix@:
99	$(F90) -c $(ALL_F90FLAGS) $(HECMW_METIS_VER) $(F90FPP) $(F90OPTFLAGS) $< -o $@
100
101.f.@f90objfilepostfix@:
102	$(F90) -c $(ALL_F90FLAGS) $(F90OPTFLAGS) $< -o $@
103
104#------------------------------------------------------------------------------#
105OBJS =
106
107OBJSF = \
108        m_step.@f90objfilepostfix@ \
109        m_timepoint.@f90objfilepostfix@ \
110        m_out.@f90objfilepostfix@ \
111        m_common_struct.@f90objfilepostfix@ \
112        m_fstr.@f90objfilepostfix@ \
113        GaussM.@f90objfilepostfix@ \
114        dynamic_mass.@f90objfilepostfix@ \
115        static_LIB_1d.@f90objfilepostfix@ \
116        static_LIB_2d.@f90objfilepostfix@ \
117        static_LIB_3d.@f90objfilepostfix@ \
118        static_LIB_3d_vp.@f90objfilepostfix@ \
119        static_LIB_C3D8.@f90objfilepostfix@ \
120        static_LIB_Fbar.@f90objfilepostfix@ \
121        static_LIB_3dIC.@f90objfilepostfix@ \
122        static_LIB_beam.@f90objfilepostfix@ \
123        static_LIB_shell.@f90objfilepostfix@ \
124        heat_LIB_CAPACITY.@f90objfilepostfix@ \
125        heat_LIB_CONDUCTIVITY.@f90objfilepostfix@ \
126        heat_LIB_DFLUX.@f90objfilepostfix@ \
127        heat_LIB_FILM.@f90objfilepostfix@ \
128        heat_LIB_NEUTRAL.@f90objfilepostfix@ \
129        heat_LIB_RADIATE.@f90objfilepostfix@ \
130        precheck_LIB_2d.@f90objfilepostfix@ \
131        precheck_LIB_3d.@f90objfilepostfix@ \
132        precheck_LIB_shell.@f90objfilepostfix@ \
133        solve_LINEQ.@f90objfilepostfix@ \
134        static_LIB.@f90objfilepostfix@ \
135        eigen_LIB.@f90objfilepostfix@ \
136        heat_LIB.@f90objfilepostfix@
137
138HEADERS =
139
140#------------------------------------------------------------------------------#
141all: @build_target@
142
143@build_target@:
144	@cd utilities && $(MAKE) @build_target@
145	@cd user      && $(MAKE) @build_target@
146	@cd element   && $(MAKE) @build_target@
147	@cd physics   && $(MAKE) @build_target@
148	@cd contact   && $(MAKE) @build_target@
149	$(MAKE) BUILD_CURR
150
151build-with-rcap: @build_target@
152
153BUILD_CURR: $(TARGET) $(F90TARGET) install-module
154
155$(TARGET): $(OBJS)
156	$(AR) $(FSTRLIBDIR)/$@ $(OBJS)
157
158$(F90TARGET): $(OBJSF)
159	$(AR) $(FSTRLIBDIR)/$@ $(OBJSF)
160	F90="$(F90)" F90FLAGS="$(F90FLAGS)" F90TARGET="$(FSTRLIBDIR)/$(F90TARGET)" AR="$(AR)" RM="$(RM)" sh test_flush.sh
161
162install-header:
163	$(CP) $(HEADERS) $(FSTRINCDIR)/.
164
165install-module:
166	$(CP) *.$(F90MODULEPOSTFIX) $(FSTRINCDIR)/.
167
168$(OBJS): $(HEADERS)
169
170$(OBJSF):
171
172install:
173
174clean:
175	@cd utilities  && $(MAKE) clean
176	@cd user       && $(MAKE) clean
177	@cd element    && $(MAKE) clean
178	@cd physics    && $(MAKE) clean
179	@cd contact    && $(MAKE) clean
180	$(RM) *.$(COBJFILEPOSTFIX) *.$(F90OBJFILEPOSTFIX) *.$(F90MODULEPOSTFIX)
181	${RM} test_flush.log
182
183distclean: clean
184