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 22CC = @cc@ 23CFLAGS = @cflags@ 24BASE_CFLAGS = @base_cflags@ 25MPI_CFLAGS = @mpi_cflags@ 26HECMW_CFLAGS = @hecmw_cflags@ 27ALL_CFLAGS = $(BASE_CFLAGS) $(HECMW_CFLAGS) $(MPI_CFLAGS) $(CFLAGS) 28LDFLAGS = @ldflags@ 29MPI_LDFLAGS = @mpi_ldflags@ 30HECMW_LDFLAGS = @hecmw_ldflags@ 31ALL_LDFLAGS = $(HECMW_LDFLAGS) $(MPI_LDFLAGS) $(LDFLAGS) 32OPTFLAGS = @optflags@ 33 34F90 = @f90@ 35F90FLAGS = @f90flags@ 36BASE_F90FLAGS = @base_f90flags@ 37MPI_F90FLAGS = @mpi_f90flags@ 38HECMW_F90FLAGS = @hecmw_f90flags@ 39ALL_F90FLAGS = $(BASE_F90FLAGS) $(HECMW_F90FLAGS) $(MPI_F90FLAGS) $(F90FLAGS) 40F90LDFLAGS = @f90ldflags@ 41MPI_F90LDFLAGS = @mpi_f90ldflags@ 42HECMW_F90LDFLAGS = @hecmw_f90ldflags@ 43ALL_F90LDFLAGS = $(HECMW_F90LDFLAGS) $(MPI_F90LDFLAGS) $(F90LDFLAGS) 44F90OPTFLAGS = @f90optflags@ 45 46AR = @ar@ 47CP = @cp@ 48RM = @rm@ 49RANLIB = @ranlib@ 50MKDIR = @mkdir@ 51 52#-----------------------------------------------------------------------------# 53TARGET = @hecmwlib_targetfile@ 54F90TARGET = @hecmwlib_f90targetfile@ 55 56F90MODULEPOSTFIX = @f90modulepostfix@ 57COBJFILEPOSTFIX = @cobjfilepostfix@ 58F90OBJFILEPOSTFIX = @f90objfilepostfix@ 59 60#-----------------------------------------------------------------------------# 61.SUFFIXES: 62.SUFFIXES: .@cobjfilepostfix@ @f90objfilepostfix@ .c .f90 .f 63 64.c.@cobjfilepostfix@: 65 $(CC) -c $< $(ALL_CFLAGS) $(OPTFLAGS) 66 67.f90.@f90objfilepostfix@: 68 $(F90) -c $< $(ALL_F90FLAGS) $(F90OPTFLAGS) 69 70.f.@f90objfilepostfix@: 71 $(F90) -c $< $(ALL_F90FLAGS) $(F90OPTFLAGS) 72 73#-----------------------------------------------------------------------------# 74OBJS = \ 75 hecmw_transfer_result_c.@f90objfilepostfix@ \ 76 hecmw_transfer_data_c.@f90objfilepostfix@ \ 77 hecmw_transfer_data_c2f.@f90objfilepostfix@ \ 78 hecmw_dist_result_copy_c2f.@f90objfilepostfix@ 79 80OBJSF = \ 81 hecmw_dlb_data_transfer.@cobjfilepostfix@ \ 82 hecmw_dynamic_load_balancing.@cobjfilepostfix@ \ 83 hecmw_dlb_mesh2graph.@cobjfilepostfix@ \ 84 hecmw_dlb_read_control.@cobjfilepostfix@ \ 85 hecmw_dlb_migrate.@cobjfilepostfix@ \ 86 hecmw_dlb_elem_sr_adapt.@cobjfilepostfix@ \ 87 hecmw_dlb_comm_util.@cobjfilepostfix@ \ 88 output_ucd_c.@cobjfilepostfix@ \ 89 hecmw_dlb_mem_util.@cobjfilepostfix@ \ 90 hecmw_dlb_output_result.@cobjfilepostfix@ 91 92HEADERS = \ 93 hecmw_repart.h \ 94 hecmw_dlb_comm_util.h 95 96#-----------------------------------------------------------------------------# 97all: @build_target@ 98 99build-default: $(TARGET) $(F90TARGET) install-module 100 101build-serial: $(TARGET) $(F90TARGET) install-module 102 103build-without-f: $(TARGET) 104 105no-build: 106 @echo "***" 107 @echo "*** compilation of 'src/operations/dynamic_load_balancing' is skipped" 108 @echo "***" 109 110$(TARGET): $(OBJS) 111 $(AR) $(HECMWLIBDIR)/$@ $(OBJS) 112 113$(F90TARGET): $(OBJSF) 114 $(AR) $(HECMWLIBDIR)/$@ $(OBJSF) 115 116$(OBJS): $(HEADERS) 117 118$(OBJSF): 119 120install-header: $(HEADERS) 121 $(CP) $(HEADERS) $(HECMWINCDIR)/. 122 123install-module: 124 $(CP) *.$(F90MODULEPOSTFIX) $(HECMWINCDIR)/. 125 126install: 127 128clean: 129 $(RM) *.$(COBJFILEPOSTFIX) *.$(F90OBJFILEPOSTFIX) *.$(F90MODULEPOSTFIX) 130 131distclean: clean 132