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
17METISDIR          = @metisdir@
18METISLIBDIR       = @metislibdir@
19METISINCDIR       = @metisincdir@
20METISLIBS         = @metislibs@
21METIS_CFLAGS      = @metis_cflags@
22METIS_LDFLAGS     = @metis_ldflags@
23
24REFINERDIR        = @refinerdir@
25REFINERINCDIR     = @refinerincdir@
26REFINERLIBDIR     = @refinerlibdir@
27REFINERLIBS       = @refinerlibs@
28
29CC                = @cc@
30CFLAGS            = @cflags@
31BASE_CFLAGS       = @base_cflags@
32MPI_CFLAGS        = @mpi_cflags@
33HECMW_CFLAGS      = @hecmw_cflags@
34ALL_CFLAGS        = $(METIS_CFLAGS) $(BASE_CFLAGS) $(HECMW_CFLAGS) $(MPI_CFLAGS) $(CFLAGS)
35LDFLAGS           = @ldflags@
36MPI_LDFLAGS       = @mpi_ldflags@
37HECMW_LDFLAGS     = @hecmw_ldflags@
38ALL_LDFLAGS       = $(METIS_LDFLAGS) $(HECMW_LDFLAGS) $(MPI_LDFLAGS) $(LDFLAGS)
39OPTFLAGS          = @optflags@
40
41F90               = @f90@
42F90FLAGS          = @f90flags@
43BASE_F90FLAGS     = @base_f90flags@
44MPI_F90FLAGS      = @mpi_f90flags@
45HECMW_F90FLAGS    = @hecmw_f90flags@
46ALL_F90FLAGS      = $(BASE_F90FLAGS) $(HECMW_F90FLAGS) $(MPI_F90FLAGS) $(F90FLAGS)
47F90LDFLAGS        = @f90ldflags@
48MPI_F90LDFLAGS    = @mpi_f90ldflags@
49HECMW_F90LDFLAGS  = @hecmw_f90ldflags@
50ALL_F90LDFLAGS    = $(HECMW_F90LDFLAGS) $(MPI_F90LDFLAGS) $(F90LDFLAGS)
51F90FPP            = @f90fpp@
52F90OPTFLAGS       = @f90optflags@
53
54AR                = @ar@
55CP                = @cp@
56RM                = @rm@
57RANLIB            = @ranlib@
58MKDIR             = @mkdir@
59
60#-----------------------------------------------------------------------------#
61TARGET            = @hecmwlib_targetfile@
62F90TARGET         = @hecmwlib_f90targetfile@
63
64F90MODULEPOSTFIX  = @f90modulepostfix@
65COBJFILEPOSTFIX   = @cobjfilepostfix@
66F90OBJFILEPOSTFIX = @f90objfilepostfix@
67
68#-----------------------------------------------------------------------------#
69.SUFFIXES:
70.SUFFIXES: .@cobjfilepostfix@ @f90objfilepostfix@ .c .f90 .F90 .f
71
72.c.@cobjfilepostfix@:
73	$(CC) -c $< $(ALL_CFLAGS) $(OPTFLAGS)
74
75.f90.@f90objfilepostfix@:
76	$(F90) -c $< $(ALL_F90FLAGS) $(F90OPTFLAGS)
77
78.F90.@f90objfilepostfix@:
79	$(F90) -c $< $(ALL_F90FLAGS) $(F90FPP) $(F90OPTFLAGS)
80
81.f.@f90objfilepostfix@:
82	$(F90) -c $< $(ALL_F90FLAGS) $(F90OPTFLAGS)
83
84#-----------------------------------------------------------------------------#
85OBJS = \
86	matrix2graph.@cobjfilepostfix@ \
87	matrix_repart.@cobjfilepostfix@ \
88	mem_util.@cobjfilepostfix@ \
89	separator_c2f_c.@cobjfilepostfix@ \
90
91OBJSF = \
92	m_irjc_matrix.@f90objfilepostfix@ \
93	m_crs_matrix.@f90objfilepostfix@ \
94	m_child_matrix.@f90objfilepostfix@ \
95	m_matrix_partition_info.@f90objfilepostfix@ \
96	m_elap.@f90objfilepostfix@ \
97	hecmw_solver_direct_parallel.@f90objfilepostfix@
98
99HEADERS =
100
101#-----------------------------------------------------------------------------#
102all: @build_target@
103
104build-default: $(TARGET) $(F90TARGET) install-module
105
106build-without-f: $(TARGET)
107
108$(TARGET): $(OBJS)
109	$(AR) $(HECMWLIBDIR)/$@ $(OBJS)
110
111$(F90TARGET): $(OBJSF)
112	$(AR) $(HECMWLIBDIR)/$@ $(OBJSF)
113
114$(OBJS): $(HEADERS)
115
116$(OBJSF):
117
118install-header: $(HEADERS)
119	$(CP) $(HEADERS) $(HECMWINCDIR)/.
120
121install-module:
122	$(CP) *.$(F90MODULEPOSTFIX) $(HECMWINCDIR)/.
123
124install:
125
126clean:
127	$(RM) *.$(COBJFILEPOSTFIX) *.$(F90OBJFILEPOSTFIX) *.$(F90MODULEPOSTFIX)
128
129distclean: clean
130