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 76OBJSF = \ 77 hecmw.@f90objfilepostfix@ 78 79SRCF = \ 80 hecmw.f90 81 82HEADERS = \ 83 hecmw.h 84 85#-----------------------------------------------------------------------------# 86all: @build_target@ 87 88build-default: clean $(TARGET) $(F90TARGET) install-header install-module 89 90build-serial: clean $(TARGET) $(F90TARGET) install-header install-module 91 92build-without-f: clean install-header 93 94$(TARGET): $(OBJS) 95 $(AR) $(HECMWLIBDIR)/$@ $(OBJS) 96 97$(F90TARGET): $(OBJSF) 98 $(AR) $(HECMWLIBDIR)/$@ $(OBJSF) 99 100$(OBJS): $(HEADERS) 101 102$(OBJSF): $(SRCF) 103 104$(SRCF): 105 @src=$@; \ 106 echo module hecmw > $$src; \ 107 ls $(HECMWINCDIR)/*.$(F90MODULEPOSTFIX) | \ 108 sed -e 's#$(HECMWINCDIR)/\(.*\)\.$(F90MODULEPOSTFIX)#use \1#i' | \ 109 sed -e 's#^use hecmw$$##i' >> $$src; \ 110 echo end module hecmw >> $$src; \ 111 echo created $$src 112 113$(HEADERS): 114 @src=$@; \ 115 echo "#ifndef HECMW_H_INCLUDED" > $$src; \ 116 echo "#define HECMW_H_INCLUDED" >> $$src; \ 117 ls $(HECMWINCDIR)/*.h | \ 118 sed -e 's!$(HECMWINCDIR)/\(.*\)!#include "\1"!i' | \ 119 sed -e 's!^#include "hecmw.h"$$!!i' >> $$src; \ 120 echo "#endif" >> $$src; \ 121 echo created $$src 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