[4775] | 1 | SHELL = /bin/sh |
---|
| 2 | ############################### |
---|
| 3 | include ../Makefile.conf |
---|
| 4 | |
---|
| 5 | VPATH=$(SRCDIR)/mpi-serial |
---|
| 6 | # SOURCE FILES |
---|
| 7 | |
---|
| 8 | MODULE = mpi-serial |
---|
| 9 | |
---|
| 10 | SRCS_F90 = fort.F90 |
---|
| 11 | |
---|
| 12 | SRCS_C = mpi.c \ |
---|
| 13 | send.c \ |
---|
| 14 | recv.c \ |
---|
| 15 | collective.c \ |
---|
| 16 | req.c \ |
---|
| 17 | list.c \ |
---|
| 18 | handles.c \ |
---|
| 19 | comm.c \ |
---|
| 20 | group.c \ |
---|
| 21 | time.c \ |
---|
| 22 | pack.c |
---|
| 23 | |
---|
| 24 | |
---|
| 25 | OBJS_ALL = $(SRCS_C:.c=.o) \ |
---|
| 26 | $(SRCS_F90:.F90=.o) |
---|
| 27 | |
---|
| 28 | |
---|
| 29 | INCPATH:= $(INCFLAG)$(SRCDIR)/mpi-serial $(INCFLAG). $(INCFLAG)../ $(INCPATH) |
---|
| 30 | |
---|
| 31 | # |
---|
| 32 | # The values used from Makefile.conf |
---|
| 33 | # |
---|
| 34 | |
---|
| 35 | # ALLCFLAGS= -DFORTRAN_UNDERSCORE_ |
---|
| 36 | # ALLCFLAGS= -DFORTRAN_SAME |
---|
| 37 | # ALLCFLAGS= -DFORTRAN_CAPS |
---|
| 38 | |
---|
| 39 | # FC=pgf90 |
---|
| 40 | # AR=ar rv |
---|
| 41 | # CC=cc |
---|
| 42 | |
---|
| 43 | |
---|
| 44 | ############################### |
---|
| 45 | |
---|
| 46 | # TARGETS |
---|
| 47 | |
---|
| 48 | default: lib$(MODULE).a |
---|
| 49 | |
---|
| 50 | examples: ctest ftest |
---|
| 51 | |
---|
| 52 | |
---|
| 53 | MPIFH= mpif.$(FORT_SIZE).h |
---|
| 54 | |
---|
| 55 | |
---|
| 56 | mpif.h: $(MPIFH) |
---|
| 57 | cp -f $< $@ |
---|
| 58 | |
---|
| 59 | fort.o: mpif.h |
---|
| 60 | |
---|
| 61 | lib: |
---|
| 62 | @if [ ! "$(FORT_SIZE)" ] ; \ |
---|
| 63 | then echo "Please set FORT_SIZE (e.g. real4double8 or real8double16) when you do the main MCT configure"; \ |
---|
| 64 | exit 1; fi |
---|
| 65 | @if [ ! -r $(MPIFH) ] ; \ |
---|
| 66 | then echo "Error: there is no $(MPIFH) -" \ |
---|
| 67 | "check the value of FORT_SIZE in the main MCT configure" ; \ |
---|
| 68 | exit 1; fi |
---|
| 69 | cp -f $(MPIFH) mpif.h |
---|
| 70 | chmod -w mpif.h |
---|
| 71 | $(MAKE) $(LIB) |
---|
| 72 | |
---|
| 73 | |
---|
| 74 | |
---|
| 75 | lib$(MODULE).a: $(OBJS_ALL) |
---|
| 76 | echo $(OBJS_ALL) |
---|
| 77 | $(RM) $@ |
---|
| 78 | $(AR) $@ $(OBJS_ALL) |
---|
| 79 | |
---|
| 80 | |
---|
| 81 | LIB = lib$(MODULE).a |
---|
| 82 | |
---|
| 83 | |
---|
| 84 | ############################### |
---|
| 85 | #RULES |
---|
| 86 | |
---|
| 87 | .SUFFIXES: |
---|
| 88 | .SUFFIXES: .F90 .c .o |
---|
| 89 | |
---|
| 90 | .c.o: |
---|
| 91 | $(CC) -c $(INCPATH) $(CFLAGS) $< |
---|
| 92 | |
---|
| 93 | .F90.o: |
---|
| 94 | $(FC) -c $(INCFLAG). $(INCPATH) $(FPPDEFS) $(FCFLAGS) $(MPEUFLAGS) $< |
---|
| 95 | |
---|
| 96 | MYF90FLAGS=$(INCPATH) $(DEFS) $(FCFLAGS) $(MPEUFLAGS) |
---|
| 97 | |
---|
| 98 | clean: |
---|
| 99 | /bin/rm -f *.o ctest ftest $(LIB) mpif.h |
---|
| 100 | |
---|
| 101 | |
---|
| 102 | install: lib |
---|
| 103 | $(MKINSTALLDIRS) $(libdir) $(includedir) |
---|
| 104 | $(INSTALL) lib$(MODULE).a -m 644 $(libdir) |
---|
| 105 | $(INSTALL) mpi.h -m 644 $(includedir) |
---|
| 106 | $(INSTALL) mpif.h -m 644 $(includedir) |
---|
| 107 | |
---|
| 108 | |
---|
| 109 | |
---|
| 110 | ############################### |
---|
| 111 | # |
---|
| 112 | # Create mpif.realXdoubleY.h filesfrom mpif.master.h template |
---|
| 113 | # |
---|
| 114 | |
---|
| 115 | mpif: |
---|
| 116 | make-mpif 4 8 |
---|
| 117 | make-mpif 8 8 |
---|
| 118 | make-mpif 8 16 |
---|
| 119 | |
---|
| 120 | |
---|
| 121 | ############################### |
---|
| 122 | |
---|
| 123 | # |
---|
| 124 | # test programs |
---|
| 125 | # |
---|
| 126 | |
---|
| 127 | |
---|
| 128 | ctest: lib ctest.c |
---|
| 129 | $(CC) $(ALLCFLAGS) -o $@ ctest.c -L. -lmpi-serial |
---|
| 130 | |
---|
| 131 | ftest: lib ftest.F90 |
---|
| 132 | $(FC) $(MYF90FLAGS) -o $@ ftest.F90 -L. -lmpi-serial |
---|
| 133 | |
---|