1MPIDIR            = @mpidir@
2MPIBINDIR         = @mpibindir@
3MPILIBDIR         = @mpilibdir@
4MPIINCDIR         = @mpiincdir@
5MPILIBS           = @mpilibs@
6
7PREFIX            = @prefix@
8BINDIR            = @bindir@
9LIBDIR            = @libdir@
10INCLUDEDIR        = @includedir@
11
12HECMWBINDIR       = ../../../../bin
13HECMWLIBDIR       = ../../../../lib
14HECMWINCDIR       = ../../../../include
15HECMWLIBS         = @hecmwlibs@
16
17REFINERDIR        = @refinerdir@
18REFINERINCDIR     = @refinerincdir@
19REFINERLIBDIR     = @refinerlibdir@
20REFINERLIBS       = @refinerlibs@
21
22MLDIR             = @mldir@
23MLLIBDIR          = @mllibdir@
24MLINCDIR          = @mlincdir@
25MLLIBS            = @mllibs@
26ML_CFLAGS         = @ml_cflags@
27ML_LDFLAGS        = @ml_ldflags@
28ML_F90FLAGS       = @ml_f90flags@
29ML_F90LDFLAGS     = @ml_f90ldflags@
30
31CC                = @cc@
32CFLAGS            = @cflags@
33BASE_CFLAGS       = @base_cflags@
34MPI_CFLAGS        = @mpi_cflags@
35HECMW_CFLAGS      = @hecmw_cflags@
36ALL_CFLAGS        = $(BASE_CFLAGS) $(HECMW_CFLAGS) $(MPI_CFLAGS) $(ML_CFLAGS) $(CFLAGS)
37LDFLAGS           = @ldflags@
38MPI_LDFLAGS       = @mpi_ldflags@
39HECMW_LDFLAGS     = @hecmw_ldflags@
40ALL_LDFLAGS       = $(HECMW_LDFLAGS) $(ML_LDFLAGS) $(MPI_LDFLAGS) $(LDFLAGS)
41OPTFLAGS          = @optflags@
42
43F90               = @f90@
44F90FLAGS          = @f90flags@
45BASE_F90FLAGS     = @base_f90flags@
46MPI_F90FLAGS      = @mpi_f90flags@
47HECMW_F90FLAGS    = @hecmw_f90flags@
48ALL_F90FLAGS      = $(BASE_F90FLAGS) $(HECMW_F90FLAGS) $(MPI_F90FLAGS) $(ML_F90FLAGS) $(F90FLAGS)
49F90LDFLAGS        = @f90ldflags@
50MPI_F90LDFLAGS    = @mpi_f90ldflags@
51HECMW_F90LDFLAGS  = @hecmw_f90ldflags@
52ALL_F90LDFLAGS    = $(HECMW_F90LDFLAGS) $(ML_F90LDFLAGS) $(MPI_F90LDFLAGS) $(F90LDFLAGS)
53F90FPP            = @f90fpp@
54F90OPTFLAGS       = @f90optflags@
55
56AR                = @ar@
57CP                = @cp@
58RM                = @rm@
59RANLIB            = @ranlib@
60MKDIR             = @mkdir@
61
62#-----------------------------------------------------------------------------#
63TARGET            = @hecmwlib_targetfile@
64F90TARGET         = @hecmwlib_f90targetfile@
65
66F90MODULEPOSTFIX  = @f90modulepostfix@
67COBJFILEPOSTFIX   = @cobjfilepostfix@
68F90OBJFILEPOSTFIX = @f90objfilepostfix@
69
70#-----------------------------------------------------------------------------#
71.SUFFIXES:
72.SUFFIXES: .@cobjfilepostfix@ @f90objfilepostfix@ .c .f90 .F90 .f
73
74.c.@cobjfilepostfix@:
75	$(CC) -c $< $(ALL_CFLAGS) $(OPTFLAGS)
76
77.f90.@f90objfilepostfix@:
78	$(F90) -c $< $(ALL_F90FLAGS) $(F90OPTFLAGS)
79
80.F90.@f90objfilepostfix@:
81	$(F90) -c $< $(ALL_F90FLAGS) $(F90FPP) $(F90OPTFLAGS)
82
83.f.@f90objfilepostfix@:
84	$(F90) -c $< $(ALL_F90FLAGS) $(F90OPTFLAGS)
85
86#-----------------------------------------------------------------------------#
87OBJS = \
88	hecmw_ML_helper_nn_c.@cobjfilepostfix@ \
89	hecmw_ML_wrapper.@cobjfilepostfix@ \
90
91OBJSF = \
92	hecmw_precond_BILU_nn.@f90objfilepostfix@ \
93	hecmw_precond_DIAG_nn.@f90objfilepostfix@ \
94	hecmw_precond_SSOR_nn.@f90objfilepostfix@ \
95	hecmw_precond_SAINV_nn.@f90objfilepostfix@ \
96	hecmw_precond_RIF_nn.@f90objfilepostfix@ \
97	hecmw_ML_helper.@f90objfilepostfix@ \
98	hecmw_ML_helper_nn_f.@f90objfilepostfix@ \
99	hecmw_precond_ML_nn.@f90objfilepostfix@ \
100	hecmw_precond_nn.@f90objfilepostfix@ \
101
102HEADERS = \
103	hecmw_ML_helper.h \
104	hecmw_ML_helper_nn.h \
105
106#-----------------------------------------------------------------------------#
107all: @build_target@
108
109build-default: $(TARGET) $(F90TARGET) install-module
110
111build-without-f: $(TARGET)
112
113$(TARGET): $(OBJS)
114	$(AR) $(HECMWLIBDIR)/$@ $(OBJS)
115
116$(F90TARGET): $(OBJSF)
117	$(AR) $(HECMWLIBDIR)/$@ $(OBJSF)
118
119$(OBJS): $(HEADERS)
120
121$(OBJSF):
122
123install-header: $(HEADERS)
124	$(CP) $(HEADERS) $(HECMWINCDIR)/.
125
126install-module:
127	$(CP) *.$(F90MODULEPOSTFIX) $(HECMWINCDIR)/.
128
129install:
130
131clean:
132	$(RM) *.$(COBJFILEPOSTFIX) *.$(F90OBJFILEPOSTFIX) *.$(F90MODULEPOSTFIX)
133
134distclean: clean
135