1# -*- mode: makefile -*- 2# 3# testexamples_X - Runs various PETSc test suites 4 5# 6 - C examples that don't work with complex numbers, require PETSc matrices 6# 8 - Fortran .F examples that don't work with complex numbers 7# 13 - Examples that should only be compiled. 8# 17 - requires PYTHON or wget and Unix (uses urlget) and popen() 9 10testexamples_C: ${TESTEXAMPLES_C} 11testexamples_C_Info: ${TESTEXAMPLES_C_INFO} 12testexamples_C_NotSingle: ${TESTEXAMPLES_C_NOTSINGLE} 13testexamples_Cxx: ${TESTEXAMPLES_CXX} 14testexamples_C_X: ${TESTEXAMPLES_C_X} 15testexamples_Fortran: ${TESTEXAMPLES_FORTRAN} 16testexamples_Fortran_NotSingle: ${TESTEXAMPLES_FORTRAN_NOTSINGLE} 17testexamples_C_X_MPIUni: ${TESTEXAMPLES_C_X_MPIUNI} 18testexamples_C_Complex: ${TESTEXAMPLES_C_COMPLEX} 19testexamples_C_NoComplex: ${TESTEXAMPLES_C_NOCOMPLEX} 20testexamples_C_NoComplex_NotSingle: ${TESTEXAMPLES_C_NOCOMPLEX_NOTSINGLE} 21testexamples_DATAFILESPATH: ${TESTEXAMPLES_DATAFILESPATH} 22testexamples_Cxx_DATAFILESPATH: ${TESTEXAMPLES_CXX_DATAFILESPATH} 23testexamples_DOUBLEINT32: ${TESTEXAMPLES_DOUBLEINT32} 24 25testexamples_F90_DataTypes: ${TESTEXAMPLES_F90_DATATYPES} 26testexamples_Fortran_NoComplex: ${TESTEXAMPLES_FORTRAN_NOCOMPLEX} 27testexamples_Fortran_NoComplex_NotSingle: ${TESTEXAMPLES_FORTRAN_NOCOMPLEX_NOTSINGLE} 28testexamples_Fortran_MPIUni: ${TESTEXAMPLES_FORTRAN_MPIUNI} 29testexamples_Fortran_Complex: ${TESTEXAMPLES_FORTRAN_COMPLEX} 30testexamples_C_Complex_MPIUni: ${TESTEXAMPLES_C_CCOMPLEX_MPIUNI} 31testexamples_F90: ${TESTEXAMPLES_F90} 32testexamples_F90_NotSingle: ${TESTEXAMPLES_F90_NOTSINGLE} 33testexamples_F90_Complex: ${TESTEXAMPLES_F90_COMPLEX} 34testexamples_F90_NoComplex: ${TESTEXAMPLES_F90_NOCOMPLEX} 35testexamples_F2003: ${TESTEXAMPLES_F2003} 36testexamples_13: ${TESTEXAMPLES_13} 37testexamples_17: ${TESTEXAMPLES_17} 38testexamples_18: ${TESTEXAMPLES_18} 39testexamples_PARMETIS: ${TESTEXAMPLES_PARMETIS} 40testexamples_METIS: ${TESTEXAMPLES_METIS} 41testexamples_SPAI: ${TESTEXAMPLES_SPAI} 42testexamples_ADIFOR: ${TESTEXAMPLES_ADIFOR} 43testexamples_FFTW: ${TESTEXAMPLES_FFTW} 44testexamples_FFTW_COMPLEX: ${TESTEXAMPLES_FFTW_COMPLEX} 45testexamples_SAWS: ${TESTEXAMPLES_SAWS} 46testexamples_VALGRIND: ${TESTEXAMPLES_VALGRIND} 47testexamples_MATLAB: ${TESTEXAMPLES_MATLAB} 48testexamples_MATLAB_ENGINE: ${TESTEXAMPLES_MATLAB_ENGINE} 49testexamples_MUMPS: ${TESTEXAMPLES_MUMPS} 50testexamples_MUMPS_DATAFILESPATH: ${TESTEXAMPLES_MUMPS_DATAFILESPATH} 51testexamples_SUPERLU: ${TESTEXAMPLES_SUPERLU} 52testexamples_SUPERLU_DATAFILESPATH: ${TESTEXAMPLES_SUPERLU_DATAFILESPATH} 53testexamples_PARMETIS_DATAFILESPATH: ${TESTEXAMPLES_PARMETIS_DATAFILESPATH} 54testexamples_ELEMENTAL: ${TESTEXAMPLES_ELEMENTAL} 55testexamples_SUNDIALS: ${TESTEXAMPLES_SUNDIALS} 56testexamples_SUITESPARSE: ${TESTEXAMPLES_SUITESPARSE} 57testexamples_SUITESPARSE_DATAFILESPATH: ${TESTEXAMPLES_SUITESPARSE_DATAFILESPATH} 58testexamples_MKL_PARDISO: ${TESTEXAMPLES_MKL_PARDISO} 59testexamples_SUPERLU_DIST: ${TESTEXAMPLES_SUPERLU_DIST} 60testexamples_SUPERLU_DIST_DATAFILESPATH: ${TESTEXAMPLES_SUPERLU_DIST_DATAFILESPATH} 61testexamples_SUPERLU_DIST_COMPLEX: ${TESTEXAMPLES_SUPERLU_DIST_COMPLEX} 62testexamples_HYPRE: ${TESTEXAMPLES_HYPRE} 63testexamples_HYPRE_DATAFILESPATH: ${TESTEXAMPLES_HYPRE_DATAFILESPATH} 64testexamples_HDF5: ${TESTEXAMPLES_HDF5} 65testexamples_CHACO: ${TESTEXAMPLES_CHACO} 66testexamples_CHOMBO: ${TESTEXAMPLES_CHOMBO} 67testexamples_TRIANGLE: ${TESTEXAMPLES_TRIANGLE} 68testexamples_CTETGEN: ${TESTEXAMPLES_CTETGEN} 69testexamples_SSL: ${TESTEXAMPLES_SSL} 70testexamples_PARMS: ${TESTEXAMPLES_PARMS} 71testexamples_TCHEM: ${TESTEXAMPLES_TCHEM} 72 73testexamples_BOOST: ${TESTEXAMPLES_BOOST} 74testexamples_TETGEN: ${TESTEXAMPLES_TETGEN} 75testexamples_PTSCOTCH: ${TESTEXAMPLES_PTSCOTCH} 76testexamples_PASTIX: ${TESTEXAMPLES_PASTIX} 77testexamples_PASTIX_DATAFILESPATH: ${TESTEXAMPLES_PASTIX_DATAFILESPATH} 78testexamples_ML: ${TESTEXAMPLES_ML} 79testexamples_CUSP: ${TESTEXAMPLES_CUSP} 80testexamples_CUDA: ${TESTEXAMPLES_CUDA} 81testexamples_CUDA_DATAFILESPATH: ${TESTEXAMPLES_CUDA_DATAFILESPATH} 82testexamples_YAML: ${TESTEXAMPLES_YAML} 83testexamples_MOAB: ${TESTEXAMPLES_MOAB} 84testexamples_MOAB_HDF5: ${TESTEXAMPLES_MOAB_HDF5} 85testexamples_TRILINOS: ${TESTEXAMPLES_TRILINOS} 86testexamples_REVOLVE: ${TESTEXAMPLES_REVOLVE} 87testexamples_X: 88testexamples_OPENGL: 89testexamples_MPE: 90testexamples_ESSL: 91testexamples_MPI: 92testexamples_BLASLAPACK: 93testexamples_SOWING: 94testexamples_C2HTML: 95testexamples_BLACS: 96testexamples_SCALAPACK: 97testexamples_CMAKE: 98testexamples_AFTERIMAGE: 99testexamples_OPENMP: 100testexamples_NETCDF: 101testexamples_EXODUSII: 102 103buildexamples_C: 104 -@${OMAKE} testexamples_C TESTEXAMPLES_C=`echo ${TESTEXAMPLES_C} | sed s/runex[0-9]*[a-z0-9_]*//g` 105buildexamples_Cxx: 106 -@${OMAKE} testexamples_Cxx TESTEXAMPLES_CXX=`echo ${TESTEXAMPLES_CXX} | sed s/runex[0-9]*[a-z0-9_]*//g` 107buildexamples_C_X: 108 -@${OMAKE} testexamples_C_X TESTEXAMPLES_C_X=`echo ${TESTEXAMPLES_C_X} | sed s/runex[0-9]*[a-z0-9_]*//g` 109buildexamples_Fortran: 110 -@${OMAKE} testexamples_Fortran TESTEXAMPLES_FORTRAN=`echo ${TESTEXAMPLES_FORTRAN} | sed s/runex[0-9]*[a-z0-9_]*//g` 111buildexamples_C_X_MPIUni: 112 -@${OMAKE} testexamples_C_X_MPIUni TESTEXAMPLES_C_X_MPIUNI=`echo ${TESTEXAMPLES_C_X_MPIUNI} | sed s/runex[0-9]*[a-z0-9_]*//g` 113buildexamples_C_Complex: 114 -@${OMAKE} testexamples_C_Complex TESTEXAMPLES_C_COMPLEX=`echo ${TESTEXAMPLES_C_COMPLEX} | sed s/runex[0-9]*[a-z0-9_]*//g` 115buildexamples_C_NoComplex: 116 -@${OMAKE} testexamples_C_NoComplex TESTEXAMPLES_C_NOCOMPLEX=`echo ${TESTEXAMPLES_C_NOCOMPLEX} | sed s/runex[0-9]*[a-z0-9_]*//g` 117buildexamples_DATAFILESPATH: 118 -@${OMAKE} testexamples_DATAFILESPATH TESTEXAMPLES_DATAFILESPATH=`echo ${TESTEXAMPLES_DATAFILESPATH} | sed s/runex[0-9]*[a-z0-9_]*//g` 119buildexamples_Cxx_DATAFILESPATH: 120 -@${OMAKE} testexamples_Cxx_DATAFILESPATH TESTEXAMPLES_CXX_DATAFILESPATH=`echo ${TESTEXAMPLES_CXX_DATAFILESPATH} | sed s/runex[0-9]*[a-z0-9_]*//g` 121 122buildexamples_F90_DataTypes: 123 -@${OMAKE} testexamples_F90_DataTypes TESTEXAMPLES_F90_DATATYPES=`echo ${TESTEXAMPLES_F90_DATATYPES} | sed s/runex[0-9]*[a-z0-9_]*//g` 124buildexamples_Fortran_NoComplex: 125 -@${OMAKE} testexamples_Fortran_NoComplex TESTEXAMPLES_FORTRAN_NOCOMPLEX=`echo ${TESTEXAMPLES_FORTRAN_NOCOMPLEX} | sed s/runex[0-9]*[a-z0-9_]*//g` 126buildexamples_Fortran_MPIUni: 127 -@${OMAKE} testexamples_Fortran_MPIUni TESTEXAMPLES_FORTRAN_MPIUNI=`echo ${TESTEXAMPLES_FORTRAN_MPIUNI} | sed s/runex[0-9]*[a-z0-9_]*//g` 128buildexamples_Fortran_Complex: 129 -@${OMAKE} testexamples_Fortran_Complex TESTEXAMPLES_FORTRAN_COMPLEX=`echo ${TESTEXAMPLES_FORTRAN_COMPLEX} | sed s/runex[0-9]*[a-z0-9_]*//g` 130buildexamples_C_Complex_MPIUni: 131 -@${OMAKE} testexamples_C_Complex_MPIUni TESTEXAMPLES_C_COMPLEX_MPIUNI=`echo ${TESTEXAMPLES_C_COMPLEX_MPIUNI} | sed s/runex[0-9]*[a-z0-9_]*//g` 132buildexamples_F90: 133 -@${OMAKE} testexamples_F90 TESTEXAMPLES_F90=`echo ${TESTEXAMPLES_F90} | sed s/runex[0-9]*[a-z0-9_]*//g` 134buildexamples_F90_Complex: 135 -@${OMAKE} testexamples_F90_Complex TESTEXAMPLES_F90_COMPLEX=`echo ${TESTEXAMPLES_F90_COMPLEX} | sed s/runex[0-9]*[a-z0-9_]*//g` 136buildexamples_F90_NoComplex: 137 -@${OMAKE} testexamples_F90_NoComplex TESTEXAMPLES_F90_NOCOMPLEX=`echo ${TESTEXAMPLES_F90_NOCOMPLEX} | sed s/runex[0-9]*[a-z0-9_]*//g` 138buildexamples_F2003: 139 -@${OMAKE} testexamples_F2003 TESTEXAMPLES_2003=`echo ${TESTEXAMPLES_F2003} | sed s/runex[0-9]*[a-z0-9_]*//g` 140buildexamples_13: 141 -@${OMAKE} testexamples_13 TESTEXAMPLES_13=`echo ${TESTEXAMPLES_13} | sed s/runex[0-9]*[a-z0-9_]*//g` 142buildexamples_17: 143 -@${OMAKE} testexamples_17 TESTEXAMPLES_17=`echo ${TESTEXAMPLES_17} | sed s/runex[0-9]*[a-z0-9_]*//g` 144buildexamples_18: 145 -@${OMAKE} testexamples_18 TESTEXAMPLES_18=`echo ${TESTEXAMPLES_18} | sed s/runex[0-9]*[a-z0-9_]*//g` 146buildexamples_PARMETIS: 147 -@${OMAKE} testexamples_PARMETIS TESTEXAMPLES_PARMETIS=`echo ${TESTEXAMPLES_PARMETIS} | sed s/runex[0-9]*[a-z0-9_]*//g` 148buildexamples_METIS: 149 -@${OMAKE} testexamples_METIS TESTEXAMPLES_METIS=`echo ${TESTEXAMPLES_METIS} | sed s/runex[0-9]*[a-z0-9_]*//g` 150buildexamples_SPAI: 151 -@${OMAKE} testexamples_SPAI TESTEXAMPLES_SPAI=`echo ${TESTEXAMPLES_SPAI} | sed s/runex[0-9]*[a-z0-9_]*//g` 152buildexamples_ADIFOR: 153 -@${OMAKE} testexamples_ADIFOR TESTEXAMPLES_ADIFOR=`echo ${TESTEXAMPLES_ADIFOR} | sed s/runex[0-9]*[a-z0-9_]*//g` 154buildexamples_FFTW: 155 -@${OMAKE} testexamples_FFTW TESTEXAMPLES_FFTW=`echo ${TESTEXAMPLES_FFTW} | sed s/runex[0-9]*[a-z0-9_]*//g` 156buildexamples_FFTW_COMPLEX: 157 -@${OMAKE} testexamples_FFTW_COMPLEX TESTEXAMPLES_FFTW_COMPLEX=`echo ${TESTEXAMPLES_FFTW_COMPLEX} | sed s/runex[0-9]*[a-z0-9_]*//g` 158buildexamples_SAWS: 159 -@${OMAKE} testexamples_SAWS TESTEXAMPLES_SAWS=`echo ${TESTEXAMPLES_SAWS} | sed s/runex[0-9]*[a-z0-9_]*//g` 160buildexamples_VALGRIND: 161 -@${OMAKE} testexamples_VALGRIND TESTEXAMPLES_VALGRIND=`echo ${TESTEXAMPLES_VALGRIND} | sed s/runex[0-9]*[a-z0-9_]*//g` 162buildexamples_MATLAB: 163 -@${OMAKE} testexamples_MATLAB TESTEXAMPLES_MATLAB=`echo ${TESTEXAMPLES_MATLAB} | sed s/runex[0-9]*[a-z0-9_]*//g` 164buildexamples_MATLAB_ENGINE: 165 -@${OMAKE} testexamples_MATLAB_ENGINE TESTEXAMPLES_MATLAB_ENGINE=`echo ${TESTEXAMPLES_MATLAB_ENGINE} | sed s/runex[0-9]*[a-z0-9_]*//g` 166buildexamples_MUMPS: 167 -@${OMAKE} testexamples_MUMPS TESTEXAMPLES_MUMPS=`echo ${TESTEXAMPLES_MUMPS} | sed s/runex[0-9]*[a-z0-9_]*//g` 168buildexamples_SUPERLU: 169 -@${OMAKE} testexamples_SUPERLU TESTEXAMPLES_SUPERLU=`echo ${TESTEXAMPLES_SUPERLU} | sed s/runex[0-9]*[a-z0-9_]*//g` 170buildexamples_SUNDIALS: 171 -@${OMAKE} testexamples_SUNDIALS TESTEXAMPLES_SUNDIALS=`echo ${TESTEXAMPLES_SUNDIALS} | sed s/runex[0-9]*[a-z0-9_]*//g` 172buildexamples_SUITESPARSE: 173 -@${OMAKE} testexamples_SUITESPARSE TESTEXAMPLES_SUITESPARSE=`echo ${TESTEXAMPLES_SUITESPARSE} | sed s/runex[0-9]*[a-z0-9_]*//g` 174buildexamples_MKL_PARDISO: 175 -@${OMAKE} testexamples_MKL_PARDISO TESTEXAMPLES_MKL_PARDISO=`echo ${TESTEXAMPLES_MKL_PARDISO} | sed s/runex[0-9]*[a-z0-9_]*//g` 176buildexamples_SUPERLU_DIST: 177 -@${OMAKE} testexamples_SUPERLU_DIST TESTEXAMPLES_SUPERLU_DIST=`echo ${TESTEXAMPLES_SUPERLU_DIST} | sed s/runex[0-9]*[a-z0-9_]*//g` 178buildexamples_SUPERLU_DIST_COMPLEX: 179 -@${OMAKE} testexamples_SUPERLU_DIST_COMPLEX TESTEXAMPLES_SUPERLU_DIST_COMPLEX=`echo ${TESTEXAMPLES_SUPERLU_DIST_COMPLEX} | sed s/runex[0-9]*[a-z0-9_]*//g` 180buildexamples_HYPRE_DATAFILESPATH: 181 -@${OMAKE} testexamples_HYPRE_DATAFILESPATH TESTEXAMPLES_HYPRE_DATAFILESPATH=`echo ${TESTEXAMPLES_HYPRE_DATAFILESPATH} | sed s/runex[0-9]*[a-z0-9_]*//g` 182buildexamples_HYPRE: 183 -@${OMAKE} testexamples_HYPRE TESTEXAMPLES_HYPRE=`echo ${TESTEXAMPLES_HYPRE} | sed s/runex[0-9]*[a-z0-9_]*//g` 184buildexamples_HDF5: 185 -@${OMAKE} testexamples_HDF5 TESTEXAMPLES_HDF5=`echo ${TESTEXAMPLES_HDF5} | sed s/runex[0-9]*[a-z0-9_]*//g` 186buildexamples_CHACO: 187 -@${OMAKE} testexamples_CHACO TESTEXAMPLES_CHACO=`echo ${TESTEXAMPLES_CHACO} | sed s/runex[0-9]*[a-z0-9_]*//g` 188buildexamples_CHOMBO: 189 -@${OMAKE} testexamples_CHOMBO TESTEXAMPLES_CHOMBO=`echo ${TESTEXAMPLES_CHOMBO} | sed s/runex[0-9]*[a-z0-9_]*//g` 190buildexamples_TRIANGLE: 191 -@${OMAKE} testexamples_TRIANGLE TESTEXAMPLES_TRIANGLE=`echo ${TESTEXAMPLES_TRIANGLE} | sed s/runex[0-9]*[a-z0-9_]*//g` 192 193buildexamples_BOOST: 194 -@${OMAKE} testexamples_BOOST TESTEXAMPLES_BOOST=`echo ${TESTEXAMPLES_BOOST} | sed s/runex[0-9]*[a-z0-9_]*//g` 195buildexamples_TETGEN: 196 -@${OMAKE} testexamples_TETGEN TESTEXAMPLES_TETGEN=`echo ${TESTEXAMPLES_TETGEN} | sed s/runex[0-9]*[a-z0-9_]*//g` 197buildexamples_PTSCOTCH: 198 -@${OMAKE} testexamples_PTSCOTCH TESTEXAMPLES_PTSCOTCH=`echo ${TESTEXAMPLES_PTSCOTCH} | sed s/runex[0-9]*[a-z0-9_]*//g` 199buildexamples_PASTIX: 200 -@${OMAKE} testexamples_PASTIX TESTEXAMPLES_PASTIX=`echo ${TESTEXAMPLES_PASTIX} | sed s/runex[0-9]*[a-z0-9_]*//g` 201buildexamples_ML: 202 -@${OMAKE} testexamples_ML TESTEXAMPLES_ML=`echo ${TESTEXAMPLES_ML} | sed s/runex[0-9]*[a-z0-9_]*//g` 203buildexamples_CUSP: 204 -@${OMAKE} testexamples_CUSP TESTEXAMPLES_CUSP=`echo ${TESTEXAMPLES_CUSP} | sed s/runex[0-9]*[a-z0-9_]*//g` 205buildexamples_CUDA: 206 -@${OMAKE} testexamples_CUDA TESTEXAMPLES_CUDA=`echo ${TESTEXAMPLES_CUDA} | sed s/runex[0-9]*[a-z0-9_]*//g` 207buildexamples_YAML: 208 -@${OMAKE} testexamples_YAML TESTEXAMPLES_YAML=`echo ${TESTEXAMPLES_YAML} | sed s/runex[0-9]*[a-z0-9_]*//g` 209buildexamples_MOAB: 210 -@${OMAKE} testexamples_MOAB TESTEXAMPLES_MOAB=`echo ${TESTEXAMPLES_MOAB} | sed s/runex[0-9]*[a-z0-9_]*//g` 211buildexamples_REVOLVE: 212 -@${OMAKE} testexamples_REVOLVE TESTEXAMPLES_REVOLVE=`echo ${TESTEXAMPLES_REVOLVE} | sed s/runex[0-9]*[a-z0-9_]*//g` 213buildexamples_X: 214buildexamples_OPENGL: 215buildexamples_MPE: 216buildexamples_ESSL: 217buildexamples_MPI: 218buildexamples_BLASLAPACK: 219buildexamples_SOWING: 220buildexamples_C2HTML: 221buildexamples_BLACS: 222buildexamples_SCALAPACK: 223buildexamples_CMAKE: 224buildexamples_AFTERIMAGE: 225buildexamples_OPENMP: 226 227TESTMODE = testexamples 228 229alltests: 230 -@${RM} ${PETSC_ARCH}/lib/petsc/conf/alltests.log alltests.log 231 -@ln -s ${PETSC_ARCH}/lib/petsc/conf/alltests.log alltests.log 232 -@${OMAKE} alltest DIFF=${PETSC_DIR}/bin/petscdiff PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} MPIEXEC="${MPIEXEC}" DATAFILESPATH=${DATAFILESPATH} 2>&1 | tee ${PETSC_ARCH}/lib/petsc/conf/alltests.log 233 234alltest: 235 -@date 236 -@for i in ${TEST_RUNS} ; do \ 237 echo "******* Testing: ${TESTMODE}_$$i *******"; \ 238 ${OMAKE} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=${TESTMODE}_$$i MPIEXEC="${MPIEXEC}" NO_PRINT_DIR=yes tree ; \ 239 done 240 -@date 241 242# 243# parallel make of examples by directory 244# The MAKEFLAGS= MFLAGS= are so that the sub make processes don't know about the parallel make server of the main make process 245# split the larger test directories up for more parallelism 246SUBDIRS = src/ts/examples/tutorials src/snes/examples/tutorials src/ksp/ksp/examples/tutorials src/dm src/sys src/mat src/vec src/ksp/ksp/examples/tests src/ksp/ksp/examples/tests src/ts/examples/tests src/ksp/pc 247 248$(SUBDIRS):: 249 MAKEFLAGS= MFLAGS= $(OMAKE) -j 1 -C $@ alltest > $@/alltests.log 2>&1 250 251palltests: 252 -@${RM} ${PETSC_ARCH}/lib/petsc/conf/alltests.log alltests.log 253 -@ln -s ${PETSC_ARCH}/lib/petsc/conf/alltests.log alltests.log 254 -@${OMAKE} -j ${MAKE_NP} $(SUBDIRS) 255 -@cat src/*/alltests.log src/*/examples/*/alltests.log src/ksp/pc/alltests.log > ${PETSC_ARCH}/lib/petsc/conf/alltests.log 256 257 258tests_DATAFILESPATH: 259 make ACTION=testexamples_DATAFILESPATH tree DATAFILESPATH=${DATAFILESPATH} 260 261 262