annotate src/fftw-3.3.8/mpi/Makefile.am @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents d0c2a83c1364
children
rev   line source
Chris@82 1 # -I $(top_srcdir)/api is necessary because fftw3-mpi.h includes
Chris@82 2 # "fftw3.h", and we cannot change the latter to "api/fftw3.h" because
Chris@82 3 # fftw3-mpi.h is installed in /usr/include.
Chris@82 4 AM_CPPFLAGS = -I $(top_srcdir) -I $(top_srcdir)/api
Chris@82 5
Chris@82 6 if MPI
Chris@82 7 lib_LTLIBRARIES = libfftw3@PREC_SUFFIX@_mpi.la
Chris@82 8 include_HEADERS = fftw3-mpi.h
Chris@82 9 nodist_include_HEADERS = fftw3-mpi.f03 fftw3l-mpi.f03
Chris@82 10 noinst_PROGRAMS = mpi-bench
Chris@82 11 endif
Chris@82 12
Chris@82 13 CC=@MPICC@
Chris@82 14
Chris@82 15 EXTRA_DIST = testsched.c f03api.sh f03-wrap.sh genf03-wrap.pl fftw3-mpi.f03.in fftw3l-mpi.f03.in
Chris@82 16 BUILT_SOURCES = fftw3-mpi.f03.in fftw3-mpi.f03 fftw3l-mpi.f03.in fftw3l-mpi.f03 f03-wrap.c
Chris@82 17 CLEANFILES = fftw3-mpi.f03 fftw3l-mpi.f03
Chris@82 18
Chris@82 19 TRANSPOSE_SRC = transpose-alltoall.c transpose-pairwise.c transpose-recurse.c transpose-problem.c transpose-solve.c mpi-transpose.h
Chris@82 20 DFT_SRC = dft-serial.c dft-rank-geq2.c dft-rank-geq2-transposed.c dft-rank1.c dft-rank1-bigvec.c dft-problem.c dft-solve.c mpi-dft.h
Chris@82 21 RDFT_SRC = rdft-serial.c rdft-rank-geq2.c rdft-rank-geq2-transposed.c rdft-rank1-bigvec.c rdft-problem.c rdft-solve.c mpi-rdft.h
Chris@82 22 RDFT2_SRC = rdft2-serial.c rdft2-rank-geq2.c rdft2-rank-geq2-transposed.c rdft2-problem.c rdft2-solve.c mpi-rdft2.h
Chris@82 23 SRC = any-true.c api.c block.c choose-radix.c conf.c dtensor.c fftw3-mpi.h ifftw-mpi.h rearrange.c wisdom-api.c f03-wrap.c
Chris@82 24
Chris@82 25 libfftw3@PREC_SUFFIX@_mpi_la_SOURCES = $(SRC) $(TRANSPOSE_SRC) $(DFT_SRC) $(RDFT_SRC) $(RDFT2_SRC)
Chris@82 26
Chris@82 27 libfftw3@PREC_SUFFIX@_mpi_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
Chris@82 28 libfftw3@PREC_SUFFIX@_mpi_la_LIBADD = ../libfftw3@PREC_SUFFIX@.la @MPILIBS@
Chris@82 29
Chris@82 30 if THREADS
Chris@82 31 mpi_bench_CFLAGS = $(PTHREAD_CFLAGS)
Chris@82 32 if !COMBINED_THREADS
Chris@82 33 LIBFFTWTHREADS = $(top_builddir)/threads/libfftw3@PREC_SUFFIX@_threads.la
Chris@82 34 endif
Chris@82 35 else
Chris@82 36 if OPENMP
Chris@82 37 mpi_bench_CFLAGS = $(OPENMP_CFLAGS)
Chris@82 38 LIBFFTWTHREADS = $(top_builddir)/threads/libfftw3@PREC_SUFFIX@_omp.la
Chris@82 39 endif
Chris@82 40 endif
Chris@82 41
Chris@82 42 mpi_bench_SOURCES = mpi-bench.c $(top_srcdir)/tests/fftw-bench.c $(top_srcdir)/tests/hook.c
Chris@82 43 mpi_bench_LDADD = libfftw3@PREC_SUFFIX@_mpi.la $(LIBFFTWTHREADS) $(top_builddir)/libfftw3@PREC_SUFFIX@.la $(top_builddir)/libbench2/libbench2.a $(MPILIBS) $(THREADLIBS)
Chris@82 44
Chris@82 45 CHECK = $(top_srcdir)/tests/check.pl
Chris@82 46 NUMCHECK=10
Chris@82 47 CHECKSIZE=10000
Chris@82 48 CHECKOPTS = --verbose --random --maxsize=$(CHECKSIZE) -c=$(NUMCHECK) $(CHECK_PL_OPTS)
Chris@82 49
Chris@82 50 if MPI
Chris@82 51
Chris@82 52 check-local: mpi-bench$(EXEEXT)
Chris@82 53 perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 1 `pwd`/mpi-bench"
Chris@82 54 @echo "--------------------------------------------------------------"
Chris@82 55 @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 1 CPU"
Chris@82 56 @echo "--------------------------------------------------------------"
Chris@82 57 perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 2 `pwd`/mpi-bench"
Chris@82 58 @echo "--------------------------------------------------------------"
Chris@82 59 @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 2 CPUs"
Chris@82 60 @echo "--------------------------------------------------------------"
Chris@82 61 perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 3 `pwd`/mpi-bench"
Chris@82 62 @echo "--------------------------------------------------------------"
Chris@82 63 @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 3 CPUs"
Chris@82 64 @echo "--------------------------------------------------------------"
Chris@82 65 perl -w $(CHECK) $(CHECKOPTS) --mpi "$(MPIRUN) -np 4 `pwd`/mpi-bench"
Chris@82 66 @echo "--------------------------------------------------------------"
Chris@82 67 @echo " MPI FFTW transforms passed "$(NUMCHECK)" tests, 4 CPUs"
Chris@82 68 @echo "--------------------------------------------------------------"
Chris@82 69 if SMP
Chris@82 70 perl -w $(CHECK) $(CHECKOPTS) --mpi --nthreads=2 "$(MPIRUN) -np 3 `pwd`/mpi-bench"
Chris@82 71 @echo "--------------------------------------------------------------"
Chris@82 72 @echo " MPI FFTW threaded transforms passed "$(NUMCHECK)" tests!"
Chris@82 73 @echo "--------------------------------------------------------------"
Chris@82 74 endif
Chris@82 75
Chris@82 76 bigcheck: mpi-bench$(EXEEXT)
Chris@82 77 $(MAKE) $(AM_MAKEFLAGS) NUMCHECK=100 CHECKSIZE=60000 check-local
Chris@82 78
Chris@82 79 smallcheck: mpi-bench$(EXEEXT)
Chris@82 80 $(MAKE) $(AM_MAKEFLAGS) NUMCHECK=2 check-local
Chris@82 81
Chris@82 82 endif
Chris@82 83
Chris@82 84 fftw3-mpi.f03: fftw3-mpi.f03.in Makefile
Chris@82 85 sed 's/C_MPI_FINT/@C_MPI_FINT@/' $(srcdir)/fftw3-mpi.f03.in > $@
Chris@82 86
Chris@82 87 fftw3l-mpi.f03: fftw3l-mpi.f03.in Makefile
Chris@82 88 sed 's/C_MPI_FINT/@C_MPI_FINT@/' $(srcdir)/fftw3l-mpi.f03.in > $@
Chris@82 89
Chris@82 90 if MAINTAINER_MODE
Chris@82 91
Chris@82 92 fftw3-mpi.f03.in: fftw3-mpi.h f03api.sh $(top_srcdir)/api/genf03.pl
Chris@82 93 sh $(srcdir)/f03api.sh d f > $@
Chris@82 94
Chris@82 95 fftw3l-mpi.f03.in: fftw3-mpi.h f03api.sh $(top_srcdir)/api/genf03.pl
Chris@82 96 sh $(srcdir)/f03api.sh l | grep -v parameter | sed 's/fftw3.f03/fftw3l.f03/' > $@
Chris@82 97
Chris@82 98 f03-wrap.c: fftw3-mpi.h f03-wrap.sh genf03-wrap.pl
Chris@82 99 sh $(srcdir)/f03-wrap.sh > $@
Chris@82 100
Chris@82 101 endif